هوش مصنوعی از هوش انسان هوشمندتر شده است. بعدش چی؟ هوش مصنوعی و مبانی دانش پروژه آموزشی شطرنج و هوش مصنوعی

گریشانین ا.ا. دورین اس.وی. مطالب 1. هوش مصنوعی چیست؟ 2. درباره پایگاه های دانش. 3. تست وظایف. هوش مصنوعی. در دهه 60 قرن بیستم، بخش جدیدی از علوم کامپیوتر ظاهر شد که "هوش مصنوعی" نامیده شد. فرهنگ لغت دایره المعارف می گوید: "هوش (از لاتین intellectus - دانش، درک، عقل) - توانایی تفکر، دانش عقلانی." این توانایی به طور کامل فقط برای انسان مشخص است. موضوع مطالعه علم «هوش مصنوعی» تفکر انسان است. دانشمندان به دنبال پاسخی برای این سوال هستند که انسان چگونه فکر می کند؟ هدف از این تحقیق ایجاد مدلی از هوش انسان و پیاده سازی آن بر روی کامپیوتر است. هدف فوق تا حدودی ساده شده به نظر می رسد: - آموزش تفکر به ماشین. زمانی که فرد شروع به حل یک مشکل می کند، اغلب برنامه عمل مشخصی ندارد. او در حین کار این برنامه را خودش می سازد. به عنوان مثال، شطرنج باز هنگام بازی شطرنج، قوانین بازی را می داند و هدفش برنده شدن در بازی است. اقدامات او از قبل برنامه ریزی شده نیست. آنها به اقدامات حریف، به موقعیت در حال توسعه روی تخته، به هوش و تجربه شخصی شطرنج باز بستگی دارند. بسیاری از فعالیت های انسانی دیگر وجود دارد که نمی توان از قبل برنامه ریزی کرد. به عنوان مثال، ساخت موسیقی و شعر، اثبات یک قضیه، ترجمه ادبی از زبان خارجی، تشخیص و درمان بیماری ها، و بسیاری دیگر. شما به خوبی می دانید که کامپیوتر هر کاری را طبق یک برنامه انجام می دهد. برنامه ها توسط افراد نوشته می شوند و کامپیوتر به طور رسمی آنها را اجرا می کند. توسعه دهندگان سیستم های هوش مصنوعی دقیقاً در تلاش هستند تا به ماشینی مانند یک شخص آموزش دهند تا به طور مستقل برنامه ای از اقدامات خود را بر اساس شرایط کار بسازد. شما همچنین می توانید این را بگویید: هدف تبدیل رایانه از یک مجری رسمی به یک مجری فکری است. برنامه داده‌های مجری رسمی اجرای نتایج برنامه داده‌های مجری هوشمند ساخت برنامه اجرای نتایج برنامه مدل عملکرد مجری رسمی و فکری هر سیستم هوش مصنوعی در یک حوزه موضوعی خاص (تشخیص پزشکی، قانون‌گذاری، ریاضیات، اقتصاد و غیره) عمل می‌کند. .). مانند یک متخصص، یک کامپیوتر باید در یک زمینه خاص دانش داشته باشد. دانش در یک حوزه موضوعی خاص که به روشی خاص رسمیت یافته و در حافظه رایانه ذخیره می شود، پایگاه دانش رایانه نامیده می شود. به عنوان مثال، شما می خواهید از رایانه برای حل مسائل هندسی استفاده کنید. اگر یک کتاب مشکل حاوی 500 مسئله با محتوای مختلف باشد، با استفاده از رایانه سنتی باید 500 برنامه بنویسید. اگر یک متخصص هوش مصنوعی این مشکل را بپذیرد، کاملا متفاوت با آن برخورد خواهد کرد. او دانش هندسه را در رایانه قرار می دهد (همانطور که معلمان دانش را در شما قرار می دهند). بر اساس این دانش و با استفاده از یک الگوریتم استدلال منطقی خاص، کامپیوتر هر یک از 500 مشکل را حل خواهد کرد. برای این کار کافی است فقط شرایط مشکل را به او بگویید. سیستم های هوش مصنوعی بر اساس پایگاه های دانش تعبیه شده در آنها عمل می کنند. هر دانش آموزی می داند که برای حل هر مشکلی به یاد آوردن قوانین، قوانین، فرمول ها کافی نیست، بلکه باید بتوانید فکر کنید، استدلال کنید و این دانش را به کار بگیرید. تفکر انسان بر دو مؤلفه است: ذخیره دانش و توانایی استدلال منطقی که در هنگام ایجاد سیستم های هوشمند بر روی رایانه به دو وظیفه اصلی منجر می شود: - مدل سازی دانش (توسعه روش هایی برای رسمی کردن دانش برای وارد کردن آن به حافظه رایانه به عنوان پایگاه دانش)؛ - مدل سازی استدلال (ایجاد برنامه های کامپیوتری که منطق تفکر انسان را در هنگام حل مسائل مختلف تقلید می کنند). یکی از انواع سیستم های هوش مصنوعی، سیستم های خبره است. به طور معمول، کلمه "کارشناس" به شخصی اطلاق می شود که دانش و تجربه گسترده ای در زمینه خاصی دارد. سیستم های خبره کامپیوتر حاوی دانش این سطح هستند. هدف سیستم های خبره ارائه مشاوره و کمک به کاربران در تصمیم گیری است. چنین کمک هایی به ویژه در موقعیت های شدید، به عنوان مثال در یک تصادف فنی، عملیات اضطراری، یا هنگام رانندگی اهمیت می یابد. کامپیوتر در معرض استرس نیست. او به سرعت راه حل بهینه و مطمئن را پیدا می کند و آن را به فرد ارائه می دهد. با این حال، تصمیم نهایی توسط خود فرد گرفته می شود. به طور خلاصه در مورد اصلی ترین چیز هوش مصنوعی (AI) شاخه ای از علوم کامپیوتر است. موضوع مطالعه هوش مصنوعی تفکر انسان است. هدف ایجاد سیستم های هوشمند بر روی کامپیوتر است. نمونه هایی از زمینه هایی که در آن سیستم های هوش مصنوعی ایجاد می شود: شطرنج و بازی های دیگر، نوشتن شعر و موسیقی، ترجمه متون از زبانی به زبان دیگر، روباتیک، پزشکی قانونی (شناسایی اثر انگشت و غیره)، تشخیص پزشکی. سیستم های هوش مصنوعی بر اساس دانش نهفته در آنها در یک منطقه خاص کار می کنند. مدل دانش تعبیه شده در حافظه رایانه پایگاه دانش رایانه نامیده می شود. تفکر انسان بر دو جزء استوار است: ذخیره دانش و توانایی استدلال منطقی. سیستم های هوش مصنوعی مدلی از استدلال (منطق انسانی) را پیاده سازی می کنند. بر اساس دانش پایه و مدل استدلال، خود سیستم هوش مصنوعی هنگام حل هر مشکلی کار خود را برنامه ریزی می کند. سیستم خبره یک سیستم هوش مصنوعی است که حاوی دانش و تجربه یک متخصص در یک حوزه موضوعی خاص است. در اینجا ترکیب پایگاه دانش "بستگان" آمده است: حقایق: لئو پدر آندری است. لئو پدر پیتر است. آندری - پدر الکسی؛ پیتر - پدر مایکل؛ پیتر پدر دیمیتری است. قوانین: هر مردی پسر پدرش است. پدربزرگ - پدر پدر؛ برادران - پسران یک پدر؛ عمو - برادر پدر؛ برادرزاده - پسر برادر؛ نوه - پسر یک پسر. بر اساس این حقایق و قواعد، می توان با استدلال منطقی، انواع پیوندهای خانوادگی را بین مردان این خانواده برقرار کرد. به دو ویژگی پایگاه دانش توجه کنید: - حقایق خصوصی هستند و قوانین عمومی هستند (عادلانه برای هر خانواده). - پایگاه دانش فقط شامل حقایق اساسی است. در واقع، کافی است بدانیم پدر چه کسی کیست تا با استفاده از قوانین، سایر پیوندهای خانوادگی را مشخص کنیم. بر اساس چنین پایگاه دانشی می توان یک سیستم خبره در زمینه روابط خویشاوندی بین مردان ایجاد کرد. برای استفاده از آن در رابطه با یک خانواده دیگر، کافی است لیستی از حقایق را جایگزین کنید و قوانین، البته، یکسان خواهند ماند. با مقایسه پایگاه داده با پایگاه دانش، به این نتیجه می رسیم: پایگاه داده فقط حاوی حقایق است، پایگاه دانش حاوی حقایق و قوانین است. صفحه اصلی درباره پایگاه های دانش. شما قبلاً با مفهوم "پایگاه داده" آشنا هستید. پایگاه داده (DB) یک مدل اطلاعاتی از برخی سیستم های واقعی در حافظه کامپیوتر است. در بالا گفته شد که پایگاه دانش (KB) مدلی از دانش یک فرد در یک حوزه موضوعی خاص است. بیایید تفاوت بین پایگاه داده و پایگاه دانش را با استفاده از یک مثال خاص نشان دهیم. بیایید با استفاده از مثال پیوندهای خانوادگی بین مردان یک خانواده به این موضوع بپردازیم. در اینجا به شکل گرافیکی یک شجره خانوادگی به نظر می رسند: Lev Peter Andrey Mikhail Dmitry Alexey Tree Family در اینجا خطوط نشان دهنده رابطه بین پدر (در سطح بالا) و پسر (در سطح پایین) هستند. روابط خانوادگی مرد لئو پسران پدر پدربزرگ برادران عموها برادرزاده ها من نمی دانم نمی دانم نوه های آندری، پیتر نمی دانم نمی دانم نمی دانم آندری الکسی لوو نمی دانم پیتر من نمی دانم نمی دانم میخائیل دیمیتری نه پیتر میخائیل، دیمیتری لو من آندری را نمی شناسم الکسی نه الکسی نه آندری لو نه میخائیل نه پیتر لو دیمیتری آندری نه نه دیمیتری نه پیتر لو میخائیل نه نه نه پیتر آندری الکسی میخائیل دیمیتری در جدول 9.1، اطلاعات مربوط به روابط خانوادگی بین همین مردان به شکل گسترده ارائه شده است. با استفاده از یک DBMS رابطه ای، ایجاد یک پایگاه داده رابطه ای بر اساس این جدول آسان است. با مراجعه به او با درخواست، می توانید تعیین کنید که پدر، پدربزرگ یا برادر کیست. این جدول یک مدل اطلاعاتی از شی "خانواده" را نشان می دهد. حالا بیایید به سراغ ساختن یک پایگاه دانش برویم. موضوع در اینجا پیوندهای خانوادگی بین مردان یک خانواده است. انواع مختلفی از مدل های دانش در هوش مصنوعی وجود دارد. ما تنها یکی از آنها را بررسی خواهیم کرد که به آن مدل دانش منطقی می گویند. این رویکرد در سیستم برنامه نویسی PROLOG استفاده می شود (پرولوگ در قسمت دوم کتاب مورد بحث قرار گرفته است). بر اساس مدل منطقی، پایگاه دانش از حقایق و قوانین تشکیل شده است. حال بیایید یک تعریف کلی از مفاهیم "واقعیت" و "قاعده" ارائه دهیم. یک واقعیت یک پیام (اطلاعات) در مورد یک رویداد خاص، در مورد ویژگی یک شی خاص، در مورد ارتباط آن با اشیاء دیگر است. به عنوان مثال، عبارات زیر حقایق هستند: - کاج - درخت مخروطی; - کلمب آمریکا را در سال 1492 کشف کرد. - چگالی آب 1 گرم در سانتی متر است. - پادشاه سلیمان - پسر پادشاه داوود؛ - لئو تولستوی نویسنده روسی است. قاعده عبارت است از گزاره ای که کلی تر از واقعیت است. قواعد برخی مفاهیم را از طریق برخی دیگر تعریف می کنند، بین ویژگی های مختلف اشیاء رابطه برقرار می کنند و قوانین طبیعت یا جامعه را تدوین می کنند. پایگاه دانش مجموعه ای از حقایق و قوانین اساسی در یک حوزه موضوعی خاص است. اخیراً یک تخصص جدید "مهندس دانش" ظاهر شده است که وظیفه آن رسمی کردن دانش، توسعه پایگاه های دانش و ایجاد سیستم های هوش مصنوعی بر اساس آنها است. مثالی که به آن نگاه کردیم بسیار ساده است. در اینجا حدس زدن اینکه چه حقایقی اساسی هستند و مجموعه کاملی از قوانین را فرموله کنید دشوار نیست. در حوزه های موضوعی پیچیده تر، این کار بسیار دشوارتر است. اغلب فقط یک متخصص اصلی (متخصص) یا تیمی از متخصصان با دانش گسترده در این زمینه می توانند آن را حل کنند. به طور خلاصه در مورد اصل مطلب. مدل منطقی دانش در یک حوزه موضوعی معین با پایگاه دانشی متشکل از حقایق و قوانین نشان داده می شود. یک واقعیت اطلاعاتی است در مورد یک رویداد خاص، در مورد ویژگی یک شی خاص، در مورد ارتباط آن با اشیاء دیگر. قواعد برخی مفاهیم را از طریق برخی دیگر تعریف می کنند، بین ویژگی های مختلف اشیاء رابطه برقرار می کنند و قوانین طبیعت یا جامعه را تدوین می کنند. پایگاه دانش فقط شامل حقایق اساسی برای یک حوزه موضوعی معین است. وظایف تست خانگی 1. 2. 3. 4. تکلیف شماره 1 تکلیف شماره 2 تکلیف شماره 3 تکلیف شماره 4 پایان از چه زمانی جهتی به نام "هوش مصنوعی" در علوم کامپیوتر بوجود آمد؟ الف. در دهه 50 ب. در دهه 60 ج. در دهه 70 د. در دهه 80 درست بعدی بیشتر فکر کنید پایگاه دانش چیست؟ الف. پایگاه دانش اطلاعاتی درباره یک رویداد خاص، در مورد ویژگی یک شی خاص، در مورد ارتباط آن با اشیاء دیگر است. ب- پایگاه دانش مجموعه ای از حقایق و قواعد اساسی در یک حوزه موضوعی خاص است ج- پایگاه دانش د- پایگاه دانش توسعه یک بیانیه است که کلی تر از یک واقعیت است. روشهای رسمی کردن دانش برای ورود آن به حافظه کامپیوتر به عنوان پایگاه دانش مدلسازی استدلال چیست؟ الف- ایجاد برنامه های کامپیوتری، ب- توسعه روش هایی که منطق تفکر انسان را در هنگام حل مسائل مختلف تقلید می کند. رسمی کردن دانش برای وارد کردن آن به لحیم کامپیوتری به عنوان پایگاه دانش. ج. این یک مدل از دانش انسانی در D است. این یک الگوریتم برای یک حوزه موضوعی خاص است. به زبان مجری ضبط شده است. FACT چیست؟ الف. هر شیء متشکل از ب. این اطلاعات در مورد ترکیب و ج. پیامی در مورد یک D خاص. این نظم معینی از بسیاری از قطعات به هم پیوسته و ساختار سیستم است که به صورت گرافیکی به عنوان یک کل واحد ارائه شده است. فرم. رویداد و ویژگی یک شی خاص، ارتباط آن با اشیاء دیگر. ترکیب عناصر تشکیل دهنده سیستم

ارسال کار خوب خود در پایگاه دانش ساده است. از فرم زیر استفاده کنید

دانشجویان، دانشجویان تحصیلات تکمیلی، دانشمندان جوانی که از دانش پایه در تحصیل و کار خود استفاده می کنند از شما بسیار سپاسگزار خواهند بود.

نوشته شده در http://www.allbest.ru/

توسعهنرم افزارمدولساختگیهوشبرایبازی هاVشطرنج

الگوریتم هوش کامپیوتری شطرنج

  • معرفی

مفهوم "شطرنج کامپیوتری" با علم سایبرنتیک و بخش "هوش مصنوعی" آن مشابه است. شطرنج یک مدل ایده آل برای مطالعه مسائل پیچیده، به ویژه مسائلی که نیاز به شمارش دارند، ارائه می دهد. توسعه یک برنامه شطرنج به دلایل زیر یک مشکل در توسعه هوش مصنوعی در نظر گرفته می شود:

* یک باور عمومی وجود دارد که مشکل مربوط به مشکل هوش مصنوعی است، زیرا شطرنج فکری ترین بازی محسوب می شود.

* یک معیار عینی برای کار انجام شده وجود دارد - قدرت برنامه شطرنج

* تمایز بیشتر این معیار نشان دهنده امکان بهبود تدریجی برنامه است.

یکی از بنیانگذاران سایبرنتیک و نظریه اطلاعات، کلود شانون، اولین کسی بود که قوانین انتخاب حرکت روی صفحه شطرنج را در دهه 50 تدوین کرد. در موقعیت تجزیه و تحلیل شده، تمام گزینه های ممکن در عمق مشخصی مرتب می شوند و موقعیت های حاصل با استفاده از توابع هدف، یک امتیاز عددی به آنها اختصاص می یابد. سپس رویه مینیمکس به حالت اولیه برمی گردد، آن را ارزیابی می کند و بهترین حرکت را از نظر دستگاه نشان می دهد.

نقش یک فرد این است که با ارزیابی موقعیت، عملکردهای هدف را تا حد امکان دقیق تنظیم کند. این توابع دارای دو جزء هستند - مادی و موقعیتی. با اولی، همه چیز روشن است - برتری مادی (در قطعات و پیاده ها) به عنوان یک قاعده، یک استدلال بسیار جدی برای ارزیابی موقعیت به عنوان بهترین است. علاوه بر این، هرچه مواد روی تخته هر دو طرف کمتر باشد، تخمین دقیق تر است.

اما با مولفه موقعیتی، همه چیز بسیار پیچیده تر است: در اینجا عوامل زیادی در نظر گرفته می شود، به عنوان مثال، مکان تک تک مهره ها و پیاده ها، فضای روی تخته، زمان برای گروه بندی مجدد نیروها و غیره. توانایی ارزیابی صحیح نقش از همه عوامل در یک موقعیت خاص همواره یکی از نشانه های مهارت مردم شطرنج بازان تلقی شده است.

ضعف بازی های رایانه ای دقیقاً در سوء استفاده از مواد و ناتوانی در انجام "جستجوی مطلق" گزینه ها بود. در کتاب‌های شطرنج دهه‌های 70 و 80 می‌توانید تعداد قابل‌توجهی از نمونه‌های مثال زدنی افرادی را که با ماشین‌ها بازی می‌کنند، بیابید، زمانی که یک استاد یا استاد بزرگ بازی را با کمک فداکاری زیبای مهره‌ها و پیاده‌ها برنده شد. راز از قبل مشخص است: برای هوش انسانی، بر خلاف هوش مصنوعی، تسلط عوامل موقعیتی بر عوامل مادی دقیقاً در همان لحظاتی که فداکاری مواد انجام می شد آشکار بود.

با گذشت سالها، با افزایش سرعت کامپیوتر، عمق محاسبات افزایش یافت و در عین حال، الگوریتم هایی بهبود یافتند که جمع آوری توابع ارزیابی موقعیت را بهبود بخشید. و در نیمه دوم دهه 90 ، رایانه ها قبلاً شروع به رقابت موفقیت آمیز با استادان بزرگ درجه یک کردند. یک رویداد دوران ساز برای "سایبرنتیک شطرنج" در می 1997 رخ داد. کامپیوتر Deep Blue که توسط IBM ساخته شده است، خود گری کاسپاروف را در یک مسابقه 6 بازی شکست داد. کامپیوتر به یک تراشه شطرنج مخصوص مجهز شده بود و دستگاه حدود 200 میلیون موقعیت در ثانیه را بررسی می کرد. شرکت IBM استادان بزرگ بسیاری را برای پروژه خود جذب کرد؛ آخرین دستاوردهای تئوری شطرنج برای ایجاد پیشرفته ترین الگوریتم های ممکن استفاده شد. و بنابراین، همانطور که قبلا ذکر شد، در دهه 90، برنامه های شطرنج برای رایانه های شخصی رومیزی شروع به از بین بردن رایانه های تخصصی کردند.

هر ماه، قدرت برنامه‌های شطرنج و قدرت رایانه‌ها به طور غیرقابل اجتنابی افزایش می‌یابد، و حتی از وحشی‌ترین فرضیات خوش‌بین‌ها پیشی می‌گیرد. حتی 12-15 سال پیش، بحث هایی در مورد موضوع "چه زمانی یک ماشین می تواند یک استاد بزرگ را شکست دهد؟" اساساً به این سؤال خلاصه می شود که "آیا او اصولاً قادر به انجام این کار است؟" و اگر پاسخ "Can" هنوز به دست آمد، زمان در محدوده 15-25 سال تخمین زده شد.

واقعیت نیز این پیش بینی ها را رد کرده است. همه چیز خیلی سریعتر اتفاق افتاد! قبلاً در اواسط دهه 90 ، کشف شد که ترکیب "برنامه بازی + رایانه" قادر به رقابت با یک استاد بزرگ است.

هدف از کار توسعه و پیاده سازی یک ماژول نرم افزار هوش مصنوعی برای بازی شطرنج است که شامل:

1. تحقیق در مورد الگوریتم های بازی موجود قابل اجرا در بازی شطرنج

2. توسعه یک الگوریتم برای رفتار یک حریف کامپیوتری

3. تعیین پارامترهای الگوریتم برای رفتار حریف کامپیوتر

4. پیاده سازی نرم افزار که شامل اجرای الگوریتم بازی و توسعه یک رابط گرافیکی است

5. مقایسه نرم افزار توسعه یافته با آنالوگ های موجود.

1 . داستانتوسعهشطرنجبرنامه ها

در سال 1951، آلن تورینگ الگوریتمی نوشت که به ماشین اجازه می داد شطرنج بازی کند. فقط در آن زمان خود مخترع به عنوان یک ماشین عمل می کرد. همچنین در سال 1951، ریاضیدان کلود شانون اولین مقاله خود را در مورد برنامه ریزی شطرنج نوشت. او دو استراتژی را برای یافتن بهترین حرکت توصیف کرد که هر دو بر اساس یک تابع ارزیابی نقطه پایانی اکتشافی هستند:

* نوع A - شمارش تمام حرکات ممکن به یک عمق ثابت، با فراخوانی در انتهای تابع ارزیابی (زیرا شمردن تا پایان غیرممکن است)

* نوع B - فقط گسترش انتخابی خطوط خاص را با استفاده از دانش انباشته شده شطرنج برای کوتاه کردن شاخه های غیر جالب انجام می دهد.

اولین کامپیوتر توسط فون نویمان برای انجام محاسبات پیچیده برای ایجاد سلاح های هسته ای طراحی شد. در سال 1950 اولین نمونه ظاهر شد که قادر به انجام 10000 عملیات در ثانیه بود. یکی از اولین آزمایشات با این دستگاه نوشتن یک برنامه شطرنج بود، با این حال، شطرنج غیر استاندارد بود - روی تخته 6 * 6 بدون اسقف.

چند سال بعد، این کامپیوتر ("MANIAC") با مردم بازی کرد: یک شطرنج باز قوی یک پیروزی قاطع به دست آورد و یک مبتدی در 23 حرکت شکست خورد.

در سال 1957، در IBM704 (42 کیلوهرتز، 7 کیلوبایت حافظه)، یک برنامه نوع B بر روی یک برد کامل اجرا شد که تمام قطعات در آن شرکت داشتند. دستگاه در 8 دقیقه 4 حرکت نیمه تمام شمارش کرد. سطح بازی آماتور است.

در سال 1962، نیوول، سایمون و شاو الگوریتمی به نام آلفا-بتا را کشف کردند که نتایجی بدتر از جستجوی جامع بدون کاوش در همه گزینه ها نداشت. نیازی به دانش شطرنج خاصی نداشت و می توان از آن برای حل هر مشکل جستجو استفاده کرد. ماهیت الگوریتم این است که در هر خط از بازی، برای سفید و سیاه، حداکثر نتایج آنها ردیابی می شود و اگر در نقطه ای سیاه قبلاً نتیجه ای برابر با حداکثر سفید بدست آمده از قبل دریافت کرده باشد، پس تلاش کردن بی فایده است. به علاوه. هنگامی که جستجو به نقطه ای برمی گردد که به حداکثر وایت رسیده است، نتیجه همچنان رد می شود.همه برنامه های شطرنج مدرن بر اساس یکی از نسخه های بهبود یافته این الگوریتم هستند.

تا حدود سال 1973، همه برنامه‌های شطرنج از نوع B بودند. آنها عمدتاً مبتنی بر مولدهای حرکات قابل قبول بودند، و حرکات غیرمحتمل را با ارزیابی ایستا قطع می‌کردند. با ظهور پردازنده های قدرتمندتر، برنامه نویسان شروع به تغییر به نوع A کردند. اولین آنها Teach و Chess4 بودند، اینها برنامه های "Brute Force" بودند، به محض اینکه در مرحله میانی بازی به عمق 5 حرکت نیمه رسیدند. ، آنها شروع به برنده شدن در مسابقات با برنامه های نوع B کردند.

در سال 1975، رابرت هایت شروع به توسعه CrayBlitz کرد که برای مدت طولانی سریع ترین برنامه شطرنج و از سال 1983 تا 1989 بود. - قهرمانان جهان در میان برنامه های شطرنج. او تقریباً 40 تا 50 هزار موقعیت در ثانیه (در سال 1983) جستجو کرد که برای زمان خود یک دستاورد بزرگ بود.

در سال 1977، تامپسون و کاندون از آزمایشگاه های بل اولین کامپیوتر شطرنج اختصاصی را ایجاد کردند. ایده اصلی اجرای برخی از بخش‌های برنامه شطرنج (مولد حرکت، تابع تخمین موقعیت، آشکارساز چک و غیره) در سطح سخت‌افزار بود که تاخیر نرم‌افزاری در هر موقعیت را بدون انتظار افزایش قدرت پردازنده حذف کرد. بهترین کامپیوترهای آن زمان می توانستند تا 5 هزار موقعیت در ثانیه را بررسی کنند و ماشین کن تامپسون به نام Belle 180 هزار خط در ثانیه را پردازش می کرد. خوشگل می‌توانست در موقعیت‌های 8-9 با حرکت نیمه جلو فکر کند که او را در سطح یک استاد قرار می‌داد. او برنده بسیاری از مسابقات شطرنج کامپیوتری شد. اما علیرغم این واقعیت که سخت افزار تخصصی یک مرتبه سریعتر از یک ماشین معمولی است، برنامه CrayBlitz همچنان در دستگاه فوق مدرن آن زمان بهتر بازی می کرد.

در دهه 90، ریچارد لانگ که منحصراً به زبان اسمبلی می نوشت، یک برنامه جستجوی انتخابی بسیار قدرتمند به نام Genius ساخت. این برنامه تاکنون مرتباً مقام های پنجم تا ششم مسابقات جهانی شطرنج رایانه ای را به خود اختصاص داده است. همچنین در دهه 90، الگوریتم های شطرنج به طور قابل توجهی شروع به توسعه کردند؛ اکتشافی یک حرکت خالی (NullMove) و قطع انتخابی شاخه های مرزی درخت جستجو ظاهر شد.

ما همچنین باید معروف ترین برنامه شطرنج، ابر کامپیوتر شطرنج - Deep Blue را در نظر بگیریم. در سال 1987، Deep Blue به عنوان یک رشد دانشجویی شروع شد - برای گروهی از دانشجویان توانمند جالب بود که دست خود را در آن امتحان کنند، و موضوع برای دیپلم عالی بود. پیشرفت تکنولوژی باعث شد که اولین نسخه پردازنده ها (به نام ChipTest) بسیار سریع باشد. نسخه بهبود یافته دیگری به نام Deep Thought دنبال شد. در آن لحظه، گروه مورد توجه بخش بازاریابی آی‌بی‌ام قرار گرفت و با پیشنهادی که قابل رد نبود، به آن نزدیک شد. نتیجه Deep Blue و Deep Blue II بود. بنابراین، Deep Blue II حاصل بیش از 10 سال کار یک گروه بسیار توانا است که هم برنامه نویسان/افراد سخت افزاری و هم استادان بزرگ قوی را شامل می شد. همه کارها توسط آی‌بی‌ام تأمین مالی می‌شد، بنابراین این گروه منابعی داشت که سازمان‌های دانشگاهی هرگز رویای آن را نمی‌دانستند. Deep Blue II بر اساس سرور قدرتمند RS/6000 از IBM ساخته شده است. سرور دارای 31 پردازنده معمولی است. یک نفر رئیس و 30 نفر دیگر تابع او هستند. 16 پردازنده شطرنج تخصصی به هر پردازنده "کار" متصل است، بنابراین در کل 480 پردازنده شطرنج وجود دارد. کل مجموعه بیش از یک میلیارد موقعیت را در ثانیه پردازش کرد.

در 11 می 1997، دیپ بلو II، قهرمان شطرنج جهان، گری کاسپاروف را در یک مسابقه 6 بازی شکست داد. پس از مسابقه با قهرمان، دیپ بلو برچیده شد.

همانطور که می بینید، از اولین برنامه ها تا مدرن ترین برنامه ها، برنامه های شطرنج بر اساس برشمردن حرکات ممکن ساخته می شد، اما همچنین تلاش هایی برای ساخت الگوریتم های "هوشمندتر" متفاوت از شمارش وجود داشت. بسیاری از شطرنج بازان مشهور سعی کردند چنین الگوریتم هایی را توسعه دهند، اما نتایج مورد نیاز را برآورده نکرد. به عنوان مثال، Botvinnik M.M. به عنوان یک قهرمان جهان و نویسنده آثار متعدد در تئوری شطرنج، بیش از 20 سال صرف ایجاد یک برنامه شطرنج کرد، اما این برنامه هرگز اجرا نشد.

همه الگوریتم های جستجو برای یافتن بهترین حرکت یک درخت بازی می سازند و با استفاده از آن بهترین حرکت را جستجو می کنند.

2. معمول هستندمفاهیمنظریه هابازی ها

2.1 درختممکن استموقعیت ها

اجازه دهید یک درخت با جهت محدود G داده شود، مجموعه B از رئوس آن از دو زیرمجموعه مجزا B0 و B1 تشکیل شده است، و هر راس p B که ابتدای هیچ پیوندی در این درخت نیست، با یک عدد واقعی Oe(p) مرتبط است. . این یک بازی بین دو حریف را با اطلاعات کامل تعریف می کند. رئوس درخت جهت دار G متعلق به زیرمجموعه B0 موقعیت هایی با رنگ سفید برای جابجایی و آنهایی که متعلق به زیر مجموعه B1 هستند - موقعیت هایی با سیاه برای حرکت نامیده می شوند. پیوندهای این درخت بسته به اینکه ابتدای آنها متعلق به کدام یک از زیر مجموعه های B0 یا B1 باشد، حرکت های سفید یا سیاه نامیده می شوند. اگر موقعیت p B با عدد Oe(p) همراه باشد، نهایی و Oe(p) تخمین ایستا این موقعیت نامیده می شود.

درخت جهت دار G را درخت بازی می نامند.

طبق تعریف، برای هر موقعیت p B یک مسیر منحصر به فرد وجود دارد (p0 > p1، p1 > p2، ...، pk > p) با آغاز در ریشه p0 درخت جهت‌دار Г و پایان آن در موقعیت مورد نظر، چنین مسیری دسته ای است که به موقعیت p می رسد.

ریشه p0 درخت بازی G یک موقعیت انتخاب شده است. این موقعیتی است که به برنامه پیشنهاد می شود و وظیفه یافتن بهترین حرکت در آن است. برای این کار کافی است برای تمام موقعیت هایی که از p0 در یک حرکت به دست می آیند Oep0 و Oepi را تعیین کنید. تعیین تخمین موقعیت اولیه p0 توسط یک طرح جستجوی جامع انجام می شود و در تئوری بازی ها این الگوریتم را الگوریتم نگامکس می نامند.

پیچیدگی درخت بازی با این فرمول محاسبه می شود: w^d که w میانگین تعداد حرکات ممکن است و d عمق درخت است.

شکل 1 - درخت موقعیت های ممکن

2.2 اصلحداقل

این الگوریتم با استفاده از جستجوی اول عمق انجام می شود. یعنی برای هر رأس غیرقابل پیمایش، لازم است تمام رئوس مجاور پیموده نشده را پیدا کرد و جستجوی آنها را تکرار کرد. به بالای آخرین عمق برمی گردیم و امتیازات برنده را نسبت به بازیکن اول محاسبه می کنیم. سپس از گره والد آن به گره فرزند بعدی (در صورت وجود) حرکت می کنیم و امتیازات برنده را در آنجا محاسبه می کنیم. اگر تعداد گره های فرزند به پایان رسیده باشد، ما به دنبال حداقل امتیازهای برنده (اگر سطح گره والد فرد باشد) یا حداکثر (اگر زوج) هستیم. گره والد صاحب امتیاز برد حاصله است. ما جستجوی مشابهی انجام می دهیم، اما با در نظر گرفتن اینکه گره والد قبلاً یک فرزند است.

در برگ های درخت، امتیازات نسبت به بازیکن اول محاسبه می شود، یعنی. فرض بر این است که بازیکن اول به دنبال به حداکثر رساندن سود خود است و بازیکن دوم به دنبال به حداقل رساندن بازده بازیکن اول است. اگر تعداد امتیازهای بالای درخت سطح بیشتر از صفر باشد، اولین بازیکن برنده می شود.

شکل 2 - با استفاده از الگوریتم minimax در یک درخت جستجو کنید

در نتیجه، فرآیند استفاده شده توسط برنامه با تصمیمات متناوب (کامپیوتر/انسان) مطابقت دارد که رایانه حداکثر امتیاز را در هر نوبت انتخاب می کند. راه حل بازگشت به ریشه درخت به وضوح بهترین انتخاب است، با این فرض که حریف نیز قوی ترین حرکات را در هر مورد انجام می دهد. ارزیابی ایستا فقط بر روی آخرین گره های سطح (برگ های درخت) برای موقعیت کامپیوتر انجام می شود.

این الگوریتم جستجوی کامل همه گزینه ها را انجام می دهد. تعداد موقعیت های در نظر گرفته شده به عنوان W به توان D برآورد می شود، که در آن W تعداد تقریبی حرکت در یک موقعیت است، D عمق محاسبه است. برای شطرنج، W تقریباً برابر با 40 است، به این معنی که با شمردن عمق 4، باید از 40^4 = 2560 هزار موقعیت عبور کنیم و برای عمق 5 - 10240 هزار موقعیت.

درخت جستجو به صورت تصاعدی رشد می کند. امروزه در قدرتمندترین پردازنده ها با بهینه ترین کد، می توان تا عمق 6 در یک بازه زمانی تخمین زده شده واقعی شمارش کرد. این مشکل اصلی در توسعه الگوریتم های بازی شطرنج است و تمام پیشرفت ها در جهت کاهش ترکیب های مورد بررسی است.

شکل 3 یک بلوک دیاگرام از الگوریتم مینیمکس را برای انتخاب بهترین حرکت نشان می دهد؛ الگوریتم ارائه شده بهترین حرکت را با توجه به تخمین به دست آمده از یک تحلیل عمیق تر برمی گرداند. بلوک دیاگرام الگوریتم برای جستجوی برآوردهای اولیه عمق در شکل 4 ارائه شده است.

شکل 3 - فلوچارت برای انتخاب بهترین حرکت

شکل 4 - فلوچارت برای تخمین های عمق جستجو

هنگام فراخوانی الگوریتم برای جستجوی یک تخمین عمقی با عمق مورد نیاز بسیار زیاد، پس از جستجوی کامل تمام حرکات ممکن، تخمینی به دست خواهیم آورد.

2.3 روشمنفیبیشترین(NegaMax)

در این الگوریتم، ارزیابی ایستا موقعیت برای یکی از طرفین با ارزیابی ایستا طرف دیگر با علامت مخالف برابر است.

شکل 5 - روش حداکثر منفی

2.4 استاتیکمقطع تحصیلیموقعیت هاوپایه ایالزاماتبهارزیابیکارکرد

ارزیابی ایستا از یک موقعیت، روشی برای بیان کمی و عینی احساس ذهنی است که فرد هنگام نگاه کردن به یک موقعیت دارد، بدون تجزیه و تحلیل راه های احتمالی توسعه بازی. در برنامه نویسی بازی، برآورد موقعیت ثابت را تابع کیفیت موقعیت می نامند.

اگر یافتن بهترین حرکت با استفاده از درخت بازی می تواند با موفقیت یکسان برای همه بازی ها مورد استفاده قرار گیرد، ارزیابی موقعیت ایستا بخشی تخصصی برای یک بازی خاص است. تخصص آن، سبک بازی بازیکن مصنوعی را تعیین می کند؛ عواملی که در عملکرد ارزیابی گنجانده شده اند، هدف جستجو را تعیین می کنند.

مقایسه عدد با موقعیت این امکان را برای ماشین فراهم می کند تا بین ترکیبات خوب و بد تشخیص دهد. توانایی تشخیص ترکیب های خوب از بد، قدرت یک پخش کننده مجازی را تعیین می کند. در بازی های دو نفره ارزیابی توسط یکی از بازیکنان انجام می شود. اگر تابع امتیازدهی امتیاز خوبی را برای یک بازیکن به دست آورد، باید نمره بدی را برای حریف او برگرداند. این قانون معیاری برای کاربرد هر تابع ارزیابی در الگوریتم هایی است که هوش مصنوعی را پیاده سازی می کنند.

شرط اصلی برای تابع ارزیابی، تقارن آن با بازیکنان است، یعنی. یک شرط باید رعایت شود - آنچه برای یک بازیکن خوب است برای بازیکن دیگر بد است. یک عملکرد امتیازدهی خوب باید اصول اساسی استراتژی بازی را در نظر گرفته و دارای ویژگی های زیر باشد:

* مواد - محاسبه شده به طور مستقیم به عنوان تفاوت در تعداد ارقام بازیکن، امکان اضافه کردن ضرایب وزن برای هر رقم خاص وجود دارد.

* موقعیتی - کیفیت قرارگیری مهره های بازیکن را نشان می دهد

* توسعه موقعیت - تعداد حرکات بازیکن ممکن را نشان می دهد. هرچه موقعیت بهتر توسعه یابد، بازیکن استراتژی های ممکن بیشتری دارد. به همین دلیل کنترل و کاهش وضعیت آن در دشمن ضروری است

* پیگیری پایان بازی - در موارد برد (تسخیر پادشاه حریف) باید حداکثر امتیاز را بدهد معمولاً + بی نهایت در موارد باخت (باخت شاه) باید حداقل امتیاز را برگرداند ، معمولاً - بی نهایت

برای بازی شطرنج، بسته به مرحله بازی، باید تغییر در ارزیابی موقعیت را در نظر گرفت.

تابع ارزشیابی کلاسیک تابعی از برخی از ویژگی های فوق موقعیت بازی است، یعنی تابع ارزیابی نتیجه کل ارزیابی موقعیت از دیدگاه های مختلف است.

عملکرد ارزیابی برای همه بازی ها متفاوت است، زیرا ویژگی های بازی را منعکس می کند. ویژگی های تابع ارزیابی به صورت تجربی انتخاب می شوند.

اهمیت ویژگی انتخاب شده ضروری است. اهمیت با ضرب مشخصه انتخاب شده در ضریب مربوطه تعیین می شود. این ضریب باید مبنای آماری داشته باشد.

بنابراین، تابع ارزیابی را می توان به صورت زیر نشان داد:

F(p) - تابع ارزیابی برای موقعیت p،

ضریب اهمیت برای مشخصه i،

I-امین ویژگی موقعیت p.

2.5 صحنه سازیوظایف

در مسیر تکمیل پایان نامه، لازم است روش ها و الگوریتم های موجود برای اجرای رایانه ای بازی شطرنج بررسی شود، مزایا و معایب اصلی آنها مشخص شود تا بر اساس دانش به دست آمده، الگوریتمی انتخاب شود که بهترین عملکرد را تضمین کند. از این سیستم

بر اساس نتایج پایان نامه، لازم است:

ь الگوریتم های مورد مطالعه را در زبان برنامه نویسی سی شارپ پیاده سازی کنید

b تغییرات مختلف آنها را با استفاده از ماژول های اضافی پیاده سازی کنید

ب انجام آزمایش های عددی برای ارزیابی کیفیت مدل های توسعه یافته، مقایسه اصلاحات اجرا شده، به منظور انتخاب بهترین

ب توسعه یک رابط راحت و بصری

3. تحقیق کردالگوریتم هاواضافات

3.1 آلفا بتابریدن

هرس آلفا بتا یک الگوریتم جستجو است که به دنبال کاهش تعداد گره های ارزیابی شده در درخت جستجو توسط الگوریتم minimax است. ایده اصلی این است: اگر حریف شما پاسخ نامطلوبی به یکی از حرکات شما دارد، تجزیه و تحلیل پاسخ های احتمالی دیگر او به این حرکت بیهوده است، زیرا حتی اگر در میان آنها پاسخ های مطلوب تری برای شما وجود داشته باشد، حریف نمی تواند پاسخ دهد. آنها را انتخاب کنید هرس آلفا بتا یک بهینه سازی است زیرا نتایج الگوریتم بهینه شده تغییر نمی کند.

شکل 6 - الگوریتم برش آلفا بتا

مزیت هرس آلفا بتا در واقع این است که برخی از شاخه های زیرسطح درخت جستجو را می توان پس از در نظر گرفتن کامل حداقل یکی از شاخه های سطح حذف کرد. از آنجایی که بریدن در هر سطح تودرتو (به جز آخرین سطح) رخ می دهد، تأثیر آن می تواند بسیار قابل توجه باشد. اثربخشی روش به طور قابل توجهی تحت تأثیر مرتب سازی اولیه گزینه ها (بدون شمارش یا با شمارش به عمق کم) است - هنگام مرتب سازی، هرچه در ابتدا گزینه های "خوب" بیشتری در نظر گرفته شود، شاخه های "بد" بیشتری را می توان برش داد. بدون تجزیه و تحلیل جامع. جستجوی minimax ابتدا عمق است، بنابراین در هر زمان معین کافی است گره‌ها را در امتداد یک مسیر واحد در درخت در نظر بگیرید.

ایده کلیدی پشت برش آلفا-بتا این است که حرکتی را پیدا کنید که لزوما بهترین نباشد، اما "به اندازه کافی خوب" باشد تا تصمیم درستی بگیرید.

پارامترهای آلفا و بتا به ورودی این الگوریتم ارائه می شوند که به آنها پنجره جستجو می گویند. این پارامترها مسئول مرزهای برش در سطح اول هستند؛ هرچه به عمق درخت بازی بروید، این پارامترها تغییر می کنند. الگوریتم آلفا-بتا با پارامترهای alpha = + infinity و beta = - infinity (جستجوی brute force با پنجره کامل) نتیجه را دقیقاً مشابه الگوریتم negamax یعنی جستجوی کامل می دهد. شکل 7 بلوک دیاگرام الگوریتم آلفا-بتا را برای محاسبه تخمین موقعیت اول عمق نشان می دهد.

شکل 7 - فلوچارت آلفا-بتا برای جستجوی تخمین اول عمق

3.1.1 مثالاستانداردقطع کردن

شکل 8 - نمونه برش استاندارد

بیایید به مثالی از قطع استاندارد آلفا بتا نگاه کنیم. در موقعیت A، حرکت را انتخاب می کنیم، بنابراین بزرگترین مقدار را از موقعیت های B و C انتخاب می کنیم. مقدار B قبلا محاسبه شده است - 10 است. هنگام محاسبه موقعیت C، مشخص شد که یکی از گره ها دارای یک مقدار 5. در موقعیت C حریف ما حرکت را انجام می دهد، یعنی کوچکترین مقدار را انتخاب می کند. از این نتیجه می شود که مقدار موقعیت C از 5 به پایین خواهد بود، بنابراین ما همیشه گزینه B را انتخاب می کنیم. بنابراین، ما گره های باقی مانده C را محاسبه نمی کنیم.

3 .1.2 مثالعمیققطع کردن

شکل 9 - نمونه برش عمیق

بیایید به نمونه ای از برش عمیق نگاه کنیم. در موقعیت A ما بین حرکت در موقعیت B و C انتخاب خواهیم کرد. مقدار B=15. محاسبه C را شروع می کنیم. در موقعیت E، یکی از گره ها مقدار 5 را می دهد. در موقعیت E، انتخاب حرکت متعلق به حریف است، یعنی مقدار نهایی E از 5 به پایین خواهد بود. اگر مقدار C برابر با E باشد، گزینه B را انتخاب می کنیم، زیرا جذابیت بیشتری دارد. بنابراین نیازی نیست که مقدار دقیق موقعیت E را بدانیم، بنابراین سایر شاخه های خارج شده از آن قطع می شوند.

3 .2 تکراریشیرجه رفتن(تکرار شدعمیق شدن)

منظور از فن جستجو یا تعمیق تکراری فراخوانی مکرر روند جستجو به یک عمق ثابت با افزایش عمق است تا زمانی که از محدودیت زمانی تعیین شده فراتر رود یا به حداکثر عمق جستجو برسد. مزیت این روش این است که لازم نیست عمق جستجو را از قبل انتخاب کنید. علاوه بر این، همیشه می توانید از نتیجه آخرین جستجوی تکمیل شده استفاده کنید. مقادیر بازگردانده شده از هر جستجو را می توان برای تنظیم پنجره آرزوی جستجوی بعدی استفاده کرد.

به طور کلی هرس آلفا بتا را از بالای درخت در بازه (-?;+?) می گویند. با این حال، با استفاده از iterative immersion می‌توانیم آن را تغییر دهیم.

بیایید فرض کنیم که X مقدار حرکت بهینه یافت شده در تکرار قبلی است، و عدد اپسیلون نشان دهنده تفاوت مورد انتظار در نتایج بین جستجو به عمق D-1 و عمق D است. سپس، ما به سادگی هرس آلفا-بتا را از آن می نامیم. بالای درخت با فاصله مورد انتظار: الفبا (D، x-epsilon، x+epsilon).

1. مقدار در بازه بازگردانده می شود (x-epsilon، x+epsilon) - این مقدار صحیح است، ما می توانیم از آن استفاده کنیم.

2. مقدار خارج از بازه باز خواهد گشت (x-epsilon، x+epsilon)، لازم است محاسبه با بازه تغییر یافته تکرار شود.

حتی اگر فرض کنیم که روش قطع آلفا-بتا هیچ سودی ارائه نمی دهد، افزایش کلی در زمان تجزیه و تحلیل در واقع نسبتاً کم خواهد بود. در واقع، اگر فرض کنیم که میانگین تعداد گزینه‌ها در هر سطح D، و تعداد سطوح تحلیل‌شده p باشد، جستجوی تکراری به سطح اول، سپس به سطح دوم و غیره انجام می‌شود. به سطح p، معادل (بدون قطع آلفا-بتا) با مشاهده موقعیت های D + + ...+ است.

این مقدار برابر است، در حالی که تعداد موقعیت های مشاهده شده در یک تحلیل معمولی برابر است. نسبت بین این دو عدد برای p بزرگ تقریباً برابر است و بنابراین در مواردی که D به اندازه کافی بزرگ است نزدیک به 1 است.

همچنین، هنگام استفاده از جستجوی تکراری، می‌توانید کنترل زمان را معرفی کنید که به رایانه اجازه می‌دهد در هر زمان راه‌حل رضایت‌بخشی را ارائه دهد. بنابراین، اگر زمان تفکر محدود به 5 ثانیه باشد، تمام موقعیت ها را تا سطح 2، مثلاً در 0.001 ثانیه، تا سطح 3 در 0.01 ثانیه، تا سطح 4 در 1 ثانیه و سپس پس از شروع در نظر می گیرد. تجزیه و تحلیل در سطح 5 به دلیل کمبود زمان مجبور به قطع خواهد شد. با این حال، رایانه در حال حاضر یک راه حل نسبتاً خوب در سطح 4 خواهد داشت.

در نتیجه کامپیوتر قادر است در مدت زمان مشخص پاسخ دهد (مثلاً 50 حرکت در 2 ساعت انجام دهد). همچنین بدیهی است که برنامه ای که از چنین روشی پشتیبانی می کند در رایانه های مختلف با قدرت متفاوتی بازی می کند.

با وجود این واقعیت که برخی از شاخه های درخت باید چندین بار بررسی شوند، این روش تعداد کافی برش را فراهم می کند.

3.3 مرتب سازیحرکت می کند

نتایج هرس آلفا-بتا به میزان زیادی تحت تأثیر ترتیب بررسی حرکات است. بیایید با مثال هایی به این موضوع نگاه کنیم:

در حالت اول، ما محاسبه را با مرتب سازی حرکات "از بدترین به بهترین" انجام خواهیم داد.

شکل 10 - قطع آلفا-بتا با حرکت "از بدترین به بهترین"

همانطور که از مثال مشخص است، حتی یک شاخه از درخت قطع نشده است.

حالا بیایید حرکات را «از بهترین به بدترین» مرتب کنیم

شکل 11 - برش آلفا-بتا با حرکت "از بهترین به بدترین"

در شرایط بهینه، جستجو با هرس آلفا-بتا باید به موقعیت W^((D+1)/2) + W^(D/2) - 1 نگاه کند. این بسیار کمتر از حداقل است.

برای بهبود کارایی هرس آلفا-بتا، باید به این فکر کنید که کدام حرکت باید ابتدا بررسی شود. برای این اهداف، به اصطلاح اکتشافی کشنده استفاده می شود.

ایده این است که اگر حرکتی در قسمتی از درخت خوب بود، پس اگر ممکن است، ارزش آن را دارد که آن را در قسمت‌های دیگر (در همان عمق) بررسی کنید. برای انجام این کار، آرایه ای وارد می شود که در آن چندین حرکت برتر برای هر عمق وارد شده است؛ اگر حرکت هایی از این جدول در موقعیت عمق فعلی وجود داشته باشد، ابتدا بررسی می شوند.

برای سایر حرکات، الگوریتم به حرکات با چک و ضبط اولویت می دهد.

3 .4 پیشاهنگ نگا(NegaScout)

NegaScout یک افزونه برای آلفا بتا است. این یک الگوریتم جستجوی جهت دار برای محاسبه مقدار حداقل یک گره است.

NegaScout محبوب ترین الگوریتم brute force است که امروزه در دسترس است. این بسیار ساده است و شتاب (تا 50٪) را بدون وارد کردن هیچ خطای اضافی در محاسبه می دهد. این به خوبی با ویژگی های مدرن برنامه های شطرنج - جداول هش مطابقت دارد.

این الگوریتم این مزیت را دارد که هرگز گره‌هایی را که می‌توانند توسط آلفا-بتا هرس شوند، کشف نمی‌کند، اما برخی از شاخه‌ها ممکن است چندین بار مورد بررسی قرار گیرند.

الگوریتم NegaScout اولین گره را با یک پنجره کامل (آلفا، بتا) بررسی می کند و این گزینه را بهترین می داند. سعی می کند با یک پنجره صفر گره های بعدی را با نیروی بی رحمانه قطع کند، یعنی. پنجره (آلفا، آلفا+1). اگر نتیجه محاسبه آلفا را بهبود بخشد، به این معنی است که 1 گره بهترین نبوده و این گره باید با پنجره کامل بررسی شود، اما به جای آلفا می توانیم مقدار حاصل را بگیریم (Value,Beta). کد این روش در زیر آمده است:

عمومی int NegaScout(Cell[,] CopyBoard، int Depth، int FinalDepth، int Alpha، int Beta، int PossibleMoves، bool IsMy)

int Value = 0، MaxValue = -1000، Leight = 0;

Cell[,] Board = New Cell;

Point[,] Moves = new Point;

Point Move = Point new;

FindMoves (Moves، ref leight، Board، true، true)؛

PossibleMoves = نور.

FindMoves (Moves، ref leight، Board، false، true)؛

PossibleMoves += leight;

if ((عمق == FinalDepth) || GameIsOver(Board, IsMy))

بازگشت Eval(Board, PossibleMoves)؛

بازگشت -1 * Eval(Board, PossibleMoves);

FindMoves(Moves, ref leight, Board, HaveRequiredMove(Board, IsMy), IsMy);

int a = آلفا، b = بتا.

برای (int i = 0; i< leight; i++)

CopyMove (حرکت، حرکت، i)؛

DoMove (برد، حرکت)؛

مقدار = -1 * NegaScout(Board, Depth + 1, FinalDepth, -1*b, -1 * a, PossibleMoves, !IsMy);

اگر (Value>a && Value 0 && (عمق

a = -1 * NegaScout(Board, Depth + 1, FinalDepth, -1 * Beta, -1 * Value, PossibleMoves, !IsMy);

اگر (مقدار > a)

CopyPosition (برد، کپی بورد)؛

همانطور که از توضیحات بالا مشاهده می شود، برای Nega Scout، حرکت در میان حرکت ها یک عملکرد مهم است. اگر تمام حرکات را «از بدترین به بهترین» مرتب کنید، ممکن است جستجو حتی بیشتر از حداکثر طول بکشد.

3 .5 جداول هش

3 .5 .1 تئوری

در شطرنج، در حین شمارش، درخت بازی نیست که به دست می آید، بلکه یک نمودار است - اغلب، پس از مرتب سازی مجدد حرکات، موقعیت یکسانی را به دست می آوریم. روش استفاده از جداول هش، ذخیره تخمین های موقعیت های در نظر گرفته شده قبلی است. برای هر موقعیت، باید امتیاز آن (به طور دقیق تر، امتیاز درخت فرعی زیر این موقعیت)، عمق جستجو و بهترین حرکت را ذخیره کنید. اکنون، با شروع به تجزیه و تحلیل موقعیت، باید نگاهی بیندازیم - آیا قبلاً آن را ملاقات نکرده ایم؟ اگر شما را ندیدیم، مانند قبل انجام می دهیم. اگر با آن مواجه شده‌ایم، به عمقی که قبلاً آن را تحلیل کرده‌ایم نگاه می‌کنیم. اگر همان چیزی است که اکنون نیاز داریم، یا عمیق‌تر است، می‌توانیم از تخمین قدیمی استفاده کنیم و در زمان صرفه‌جویی کنیم. اگر کمتر باشد، باز هم می‌توانیم از بخشی از اطلاعات، یعنی بهترین حرکت استفاده کنیم.

بهترین حرکت برای عمق N نیز ممکن است بهترین حرکت برای عمق N+1 باشد. یعنی جدول هش علاوه بر هدف اصلی خود برای سفارش دادن حرکات نیز مفید است. عمیق‌سازی تکراری نیز به‌طور غیرمنتظره‌ای به اینجا کمک می‌کند - وقتی تکرار بعدی را شروع می‌کنیم، جدول هش با اطلاعات قبلی پر می‌شود و تا یک نقطه (تا عمق 1) همه موقعیت‌ها به سادگی وجود دارند، با بهترین حرکت به عمق N -1.

برنامه‌ای که از جداول عمیق‌سازی و هش تکراری استفاده می‌کند، اغلب همه تکرارها را از 1 تا N چندین برابر سریع‌تر از زمانی که تکرار N را بلافاصله شروع می‌کرد، تکمیل می‌کند، زیرا با احتمال 75% او همیشه بهترین حرکت را اول انتخاب می کند و با احتمال 90% بهترین حرکت در بین سه حرکت اول در نظر گرفته شده است.

3 . 5 .2 پیاده سازی

هش کردن یکی از قوی ترین راه ها برای بهبود عملکرد کامپیوتر است. استفاده از جدول هش ابزار اصلی در برنامه نویسی بازی های شطرنج است.

جدول هش یک جدول نمایه شده بزرگ است که سلول های آن اطلاعات زیر را ذخیره می کند:

· 2 شاخص هش

· عمق محاسبه برای این حرکت

· ارزیابی این حرکت

انتخاب الگوریتم برای محاسبه شاخص هش حرکت مهم ترین نکته در استفاده از الگوریتم های هش است. هنگام انتخاب یک الگوریتم برای محاسبه شاخص هش، دو نکته مهم باید در نظر گرفته شود:

این شاخص باید به بهترین نحو اطلاعات پیشرفت منحصر به فرد را منعکس کند تا تعداد برخوردها به حداقل برسد

محاسبه شاخص هش باید آسان باشد

یک الگوریتم پیچیده بهترین شاخص‌ها را از تعداد برخوردها ارائه می‌کند، اما محاسبه آنها دشوار است و بنابراین زمان زیادی از CPU را می‌گیرد. لازم است الگوریتمی ساخته شود که محاسبه آن ساده باشد، اما حداقل تعداد برخورد داشته باشد.

برای محاسبه شاخص، عملیات با تعدادی ماسک تولید شده به طور تصادفی انتخاب شدند.

در ابتدا، هش ماسک با اعداد تصادفی پر می شود. برای هر موقعیت، 2 شاخص هش محاسبه می شود، اولی برای جستجوی موقعیت در جدول هش، دومی برای بررسی برخوردها استفاده می شود.

قبل از هر گونه استفاده از اطلاعات جدول هش، مطابقت شاخص‌های هش دوم بررسی می‌شود، اگر مطابقت نداشتند، برخورد رخ داده و اطلاعات نادیده گرفته می‌شوند.

اطلاعات موقعیت فقط در صورتی باید به روز شود که عمق رندر فعلی بیشتر از آنچه قبلاً در جدول هش ذخیره شده است باشد.

اطلاعات هش تنها در صورتی قابل اعتماد است که عمق هش از عمق محاسبه فعلی بیشتر باشد.

3.6 استفادهکتابخانه هااولین

الگوریتم برای استفاده از کتابخانه های باز، استفاده از پایگاه های داده از پیش محاسبه شده با بازه های بازی است، زیرا در ابتدای بازی بیشترین تعداد حرکات ممکن با امتیازات مشابه وجود دارد.

3 .7 مقطع تحصیلیموقعیت ها

هنگام توسعه یک الگوریتم برای تخمین موقعیت استاتیک (تابع کیفیت)، عدم قطعیت در انتخاب بین کیفیت و سرعت وجود دارد. توابع ارزیابی کیفی مبتنی بر مبنای آماری به کندی کار می‌کنند، اما تخمین‌های بسیار دقیقی را ارائه می‌دهند، برخی حتی بدون استفاده از نیروی بیرحم، که تمایلات هوشمندی را نشان می‌دهد.

توابع ساده ای که ساده ترین اصول بازی را در نظر می گیرند بسیار سریعتر کار می کنند؛ ارزیابی دقیقی ارائه نمی دهند، اما امکان جستجوی عمیق را فراهم می کنند. بنابراین، یک ارزیابی دقیق اما کند ممکن است از ارزیابی احمقانه اما سریع پایین تر باشد.

کیفیت تخمین با میزان دانش در مورد بازی تعیین می شود که بر اساس آن موقعیت با تعداد مقایسه می شود. کیفیت ارزیابی با سرعت کار و میزان دانش نسبت مستقیم دارد. همانطور که 40 سال تمرین در ایجاد برنامه های هوش مصنوعی نشان می دهد، میزان دانش یک تابع ارزیابی با سرعت آن نسبت معکوس دارد.

از نظر گرافیکی، این وابستگی در شکل به عنوان یک خانواده هذلولی نشان داده شده است.

شکل 12 - نمونه برش عمیق

هنگام توسعه یک تابع ارزیابی برای شطرنج، باید در نظر گرفت که در شطرنج برآورد تمام پارامترها به مرحله بازی بستگی دارد.

شطرنج معمولاً به مراحل تقسیم می شود: اولین بازی - شروع بازی، وسط بازی - وسط بازی، پایان بازی - مرحله نهایی. برای الگوریتم تصمیم گرفته شد که بازی ها را با توجه به تعداد قطعات باقی مانده روی تخته برای بازیکن کامپیوتر به 3 مرحله تقسیم کنیم. در ابتدا، بازیکنان 16 مهره روی تخته دارند. جدول وابستگی مرحله بازی به تعداد مهره های باقی مانده را نشان می دهد:

جدول 1 - مراحل بازی

3 . 7 .1 موادمقطع تحصیلی

مزیت مادی یکی از بازیکنان مهمترین پارامتر در تئوری شطرنج در نظر گرفته می شود، بنابراین ارزیابی مادی بیشترین تأثیر را در ارزیابی کلی موقعیت دارد. امتیاز ماده به عنوان مجموع ضرایب وزنی تمام مهره های روی تخته محاسبه می شود. پادشاه در امتیاز ماده گنجانده نمی شود، زیرا اگر پادشاه از دست برود، بازیکن به طور خودکار بازنده می شود. برآورد وزن ارقام وظیفه اصلی هنگام ساخت یک تابع ارزیابی است. برای تعیین وزن ارقام، تصمیم گرفته شد از الگوریتم خودآموز مبتنی بر الگوریتم ژنتیک استفاده شود. وزن مهره ها به مرحله بازی بستگی ندارد. الگوریتم ژنتیک یک الگوریتم جستجوی اکتشافی است که برای حل مسائل بهینه‌سازی و مدل‌سازی با انتخاب تصادفی، ترکیب و تغییر پارامترهای مورد نظر با استفاده از مکانیسم‌هایی که یادآور تکامل بیولوژیکی هستند، برای اولین بار توسط هالند (1975) پیشنهاد شد.

3 . 7 . 2 شرحکار کردنژنتیکیالگوریتم

مسئله اصلی به گونه ای رمزگذاری شده است که راه حل آن را می توان به عنوان یک بردار ("کروموزوم") نشان داد. تعداد معینی از بردارهای اولیه ("جمعیت اولیه") به طور تصادفی ایجاد می شوند. آنها با استفاده از یک "تابع تناسب" ارزیابی می شوند، که به موجب آن به هر بردار مقدار خاصی ("برازش") اختصاص داده می شود، که احتمال بقای ارگانیسم نشان داده شده توسط آن بردار را تعیین می کند.

پس از این، با استفاده از مقادیر تناسب به دست آمده، بردارهای (انتخاب) مجاز برای "تقاطع" انتخاب می شوند. «عملگرهای ژنتیکی» (معمولاً «تقاطع» و «جهش») روی این ناقل ها اعمال می شوند، بنابراین «نسل» بعدی ایجاد می شود. افراد نسل بعدی نیز مورد ارزیابی قرار می گیرند، سپس انتخاب می شود، عملگرهای ژنتیکی اعمال می شوند و غیره.

این یک «فرایند تکاملی» را شبیه‌سازی می‌کند که برای چندین چرخه زندگی (نسل‌ها) ادامه می‌یابد تا زمانی که معیار توقف الگوریتم برآورده شود. چنین معیاری می تواند باشد:

یافتن راه حل بهینه؛

فرسودگی تعداد نسل های اختصاص داده شده برای تکامل؛

فرسودگی زمان اختصاص داده شده برای تکامل.

الگوریتم‌های ژنتیک عمدتاً برای یافتن راه‌حل‌ها در فضاهای جستجوی بسیار بزرگ و پیچیده خدمت می‌کنند.

بنابراین، کار الگوریتم ژنتیک را می توان در نمودار زیر نشان داد:

شکل 13 - نمونه برش عمیق

3 . 7 . 3 مراحلکار کردنژنتیکیالگوریتم

ایجاد یک جمعیت اولیه - یک جمعیت اولیه به طور تصادفی ایجاد می شود. حتی اگر معلوم شود که کاملاً غیررقابتی است، الگوریتم ژنتیک همچنان به سرعت آن را به یک جمعیت قابل دوام تبدیل می کند. بنابراین، در گام اول، لازم نیست خیلی تلاش کنید تا افراد بیش از حد سازگار بسازید؛ کافی است که آنها با قالب افراد در جمعیت مطابقت داشته باشند.

انتخاب (انتخاب) - از کل جمعیت نسبت خاصی انتخاب می شود که در این مرحله از تکامل "زنده" می ماند. تلاقی (تکثیر) - برای تولید نسل به چندین والدین نیاز است. البته معمولاً دقیقاً دو مورد نیاز است. بازتولید در الگوریتم های مختلف به طور متفاوتی تعریف می شود - البته این بستگی به ارائه داده ها دارد. شرط اصلی برای تولید مثل این است که اولاد یا فرزندان بتوانند صفات هر دو والدین را با "آمیختن" آنها به روشی نسبتاً هوشمندانه به ارث ببرند.

جهش ها تغییرات تصادفی در بخشی از افراد (کروموزوم ها) هستند.

3 . 7 . 4 تعریفترازوارقامبابا کمکژنتیکیالگوریتم

کروموزوم الگوریتم ژنتیک شامل وزن مهره های شطرنج به استثنای شاه است.

برای تنظیم جمعیت اولیه، مقادیر کروموزوم ها به طور تصادفی در فاصله زمانی تنظیم می شوند، به جز وزن پیاده و ملکه، مقادیر وزن آنها ثابت است، پیاده - 100، ملکه - 1000.

انتخاب مسابقات برای انتخاب استفاده می شود. کروموزوم‌های تصادفی 2 با یکدیگر بازی می‌کنند، تا چهار برد، به نوبت اول می‌شوند. برنده دوئل باقی می ماند، بازنده از جمعیت حذف می شود.

هنگام عبور از روش عبور تک نقطه ای استفاده می شود.

2 والد به صورت تصادفی گرفته می شود، تعداد کروموزوم تقسیم شده به طور تصادفی انتخاب می شود، نمودار در شکل شماره 14 نشان داده شده است. در نتیجه، هر فرزند دارای ویژگی هایی از والد اول و دوم خواهد بود.

شکل 14 - نمونه برش عمیق

جهش ها به شرح زیر انجام می شود: کروموزوم ها با احتمال خاصی انتخاب می شوند و هر "ژن" به یک عدد تصادفی در محدوده [-50; 50]، به جز ارزش تخمین های ثابت ملکه و پیاده.

برای مقادیر نهایی، وزن های حاصل بر 100 تقسیم می شوند.

3 . 7 . 5 جمعمقطع تحصیلی

هنگام ارزیابی موقعیت، به 8 جزء توجه می شود:

1. نیروهای مادی رقبا

2. تعداد میدان های تحت نبرد

3. اشغال فیلدهای کلیدی

4. پیاده های پاس شده

5. پیاده دوبل

6. قلعه سازی

7. پیشروی پیاده

8. زنجیر گرو [*1]

تعداد میدان های مورد نبرد به دلیل هزینه های بالای تولید در عمق درخت 2 محاسبه می شود. به ازای هر مربعی که توسط مهره‌های کامپیوتری زده می‌شود، 1 امتیاز به امتیاز موقعیت اضافه می‌شود و برای زمین‌هایی که مهره‌های بازیکن ضربه می‌خورند، یک امتیاز کسر می‌شود. مقدار به دست آمده به عنوان یک پارامتر به انتهای درخت ارسال می شود. همچنین در عمق 2، امتیاز برای پیاده زنجیر، پاس و پیاده دوبل محاسبه می شود. برای حضور پیاده هایی که در سمت چپ یا راست لمس می کنند، طرف 1 امتیاز دریافت می کند. یک پیاده در صورتی پاس شده تلقی می شود که در پرونده آن و همچنین در مجاورت آن، پیاده حریف وجود نداشته باشد که بتواند از عبور آن تا انتها جلوگیری کند. پیاده دو نفره - 2 پیاده هم رنگ که روی یک پرونده ایستاده اند. برای حضور پیاده دو نفره از پهلو 4 امتیاز و برای حضور هر پیاده 5 امتیاز اضافه می شود. مربع های کلیدی در شطرنج وجود دارد:

شکل 15 - فیلدهای کلیدی

برای تکمیل هر یک از آنها 4 امتیاز اضافی داده می شود.

زیرا پس از castling، پادشاه در وضعیت بسیار پایدار قرار می گیرد؛ برای یک castling کامل، طرف 3 امتیاز دریافت می کند.

هر چه یک پیاده به آخرین رتبه خود نزدیکتر باشد، به ترفیع نزدیکتر است. برای هر مربعی که به جلو حرکت می کند، 1 به ارزش پیاده اضافه می شود.

پس از محاسبه تعداد امتیازات برای هر دو طرف، با کم کردن امتیاز بازیکن از امتیاز حریف رایانه، امتیاز پوزیشن نهایی به دست می آید.

4 . توسعهبرنامه هاس

4 .1 الزاماتبهشطرنجالگوریتم

هنگام توسعه مدل یک ماژول نرم افزاری برای بازی شطرنج، پارامترهای زیر باید در نظر گرفته شود:

* الگوریتم‌های شطرنج برای عملکرد بسیار سخت‌گیر هستند و قدرت بازی برنامه مستقیماً به عملکرد برنامه بستگی دارد.

* ماژول‌های نرم‌افزار باید توسعه و آزمایش آسان باشند

* رابط کاربری باید سبک وزن، به راحتی قابل تنظیم و مقیاس پذیر باشد

4 .2 انواعشطرنجالگوریتم ها

اکثر برنامه های مدرن را می توان به 3 دسته تقسیم کرد:

* دسته اول جستجوگران سریع هستند - ایده این است که با ساده کردن عملکرد ارزیابی تا حد نهایی و بهینه سازی دقیق کل برنامه به عنوان یک کل (که معمولاً با نوشتن برنامه در اسمبلر به دست می آید) می توانید تعداد موقعیت ها را افزایش دهید. توسط برنامه (nps - گره در ثانیه) به یک عدد نجومی در نظر گرفته می شود، به عنوان مثال، تا 150-200k nps در P/200. یعنی برنامه برای هر موقعیت حدود یک تا دو هزار دستور ماشین را صرف می کند. این شامل حرکت از موقعیت قبلی به این موقعیت، ارزیابی موقعیت، ایجاد حرکت از یک موقعیت معین، منطق کنترل و غیره است. فقط خرده هایی برای خود عملکرد ارزیابی باقی مانده است - حدود صد دستور. برنامه ها فوق العاده سریع هستند و در موقعیت های پیچیده تاکتیکی عالی عمل می کنند و همچنین مشکلات ترکیبی را به خوبی حل می کنند، اما بازی پوزیشن ضعیفی دارند.

* دسته دوم برنامه های دانش بنیان است. در اینجا تمام تلاش ها صرف نوشتن یک عملکرد ارزیابی پیچیده می شود. تعامل قطعات با یکدیگر، پوشش شاه، کنترل موقعیت ها و تقریباً فاز ماه در نظر گرفته شده است. در شرایط nps، برنامه 10-100 برابر کندتر از جستجوهای سریع اجرا می شود، اما شطرنج موقعیتی خوبی بازی می کند. به عبارت دقیق تر، این شطرنج فقط زمانی خوب است که هیچ تاکتیک عمیقی روی تخته نباشد یا کنترل زمان به گونه ای باشد که برنامه زمان کافی برای محاسبه این تاکتیک ها را داشته باشد.

4 .3 کنترلزمانVشطرنجالگوریتم ها

مهمترین پارامتر در ساخت الگوریتم هوش مصنوعی برای حریف شطرنج، کنترل زمان حرکت است. قدرت بازی یک برنامه شطرنج به کنترل زمان بستگی دارد. قبل از اینکه رایانه شروع به "فکر کردن" در مورد یک حرکت کند، زمان در دسترس کامپیوتر باید محاسبه شود.

هنگام محاسبه زمان در دسترس برای حرکت، باید از دو پارامتر استفاده کرد:

* الگوریتم یافتن بهترین حرکت مبتنی بر جستجو در تمام حرکات ممکن تا یک عمق خاص است و بنابراین مستقیماً به زمان صرف شده برای جستجو بستگی دارد. هرچه زمان بیشتری استفاده کنیم، کامپیوتر قوی‌تر بازی می‌کند

* زمان انتظار برای پاسخ از طرف حریف کامپیوتری نباید خیلی طولانی باشد. به عنوان پایه، می توانید قوانین بین المللی شطرنج را در نظر بگیرید که در آن چندین نوع بازی وجود دارد: بلیتز - 15 دقیقه در هر بازی، سریع - 60 دقیقه در هر بازی، کلاسیک - بیش از 60 دقیقه در هر بازی.

بر اساس پارامترهای مورد نیاز، تصمیم گرفته شد که زمان موجود برای حرکت قبل از شروع هر حرکت رایانه با استفاده از فرمول زیر محاسبه شود: کجا: زمان - زمان برای هر حرکت. full_game_time - کل زمان بازی. avg_moves - میانگین تعداد حرکات بازیکن در یک بازی. collect_time - زمان انباشته اضافی. د - کاهش جزئی در زمان لازم برای محاسبات اضافی. پارامترهای کل زمان بازی و میانگین تعداد حرکات بازیکن در بازی دو پارامتر خارجی اصلی هستند که با تغییر آنها می توانید قدرت بازی را تغییر دهید. طبق آمار پورتال شطرنج TheChess.ru، میانگین تعداد حرکات بازیکن در هر بازی 30 حرکت است، بنابراین تصمیم گرفته شد میانگین تعداد حرکات بازیکن در یک بازی 30 باشد. بنابراین، زمان کل بازی برابر است با مجموعه از خارج هنگام توسعه یک الگوریتم برای رفتار حریف رایانه ای (هوش مصنوعی)، از الگوریتم های زیر استفاده شد:

* الگوریتم جستجوی تکراری، با کنترل زمان

* الگوریتم برش آلفا-بتا و Nega-Scout

* باز کردن کتابخانه ها

* جداول هش

* اکتشافی قاتل و تاریخ برای مرتب سازی حرکات استفاده شد.

4 .4 توسعه یافتهبرنامه

تمامی الگوریتم ها و اضافات فوق در برنامه به زبان برنامه نویسی سی شارپ پیاده سازی شدند.

اسکرین شات های برنامه در زیر نشان داده شده است:

شکل 16 - انتخاب رنگ

شکل 17 - اسکرین شات از برنامه

شکل 18 - اسکرین شات از برنامه

وقتی ماوس خود را روی شکلی به رنگ خودش می‌کشید، با رنگ سفید مشخص می‌شود. وقتی قطعه ای را برای جابجایی انتخاب می کنید، رنگ قسمت آن نارنجی می شود و تمام سلول هایی که قطعه می تواند به آنها حرکت کند با رنگ سفید برجسته می شوند. هنگامی که ماوس خود را روی چنین سلولی قرار می دهید، رنگ آن نیز نارنجی می شود.

در طول بازی، حرکات انجام شده در جدول سمت چپ نمایش داده می شود و بازیکن می تواند تاریخچه را نیز در یک فایل جداگانه ذخیره کند.

4 .5 پایهچرخهجستجو کردنبهترینپیش رفتن

وظیفه اصلی چرخه اصلی جستجوی بهترین حرکت، یافتن و اجرای بهترین حرکت حریف کامپیوتری است. حلقه از کتابخانه های اولیه و جستجوی تکراری با کنترل زمان استفاده می کند. شکل 12 روند یافتن بهترین حرکت را نشان می دهد:

شکل 19 - چرخه اصلی جستجو برای بهترین حرکت

4 .6 جستجو کردنبهترینپیش رفتناولینمرحله

وظیفه اصلی الگوریتم برای یافتن بهترین حرکت سطح اول (پاسخ حریف) یافتن بهترین حرکت حریف در سطح اول است. این الگوریتم بر اساس الگوریتم NegaScout است که از تخمین عمق برای تعیین تخمین حرکت فعلی استفاده می کند. شکل 13 روند الگوریتم را نشان می دهد:

شکل 20 - بهترین حرکت سطح اول را جستجو کنید

4 .7 یافتهعمیقارزیابی هاپیش رفتن

وظیفه اصلی یافتن تخمین عمیق، یافتن تخمینی از حرکت فعلی با استفاده از الگوریتم NegaScout، اکتشافی حرکت صفر، داده‌های جدول هش و تخمین ثابت موقعیت است. شکل 14 فرآیند محاسبه تخمین ضربه عمقی را نشان می دهد:

شکل 21 - یافتن برآورد عمیق از حرکت

4.8 دیگرانمدل هاونمودارها

مدل ریاضی برنامه به صورت زیر است:

شکل 22 - مدل ریاضی

از کلاس انتزاعی شکل، 7 کلاس نزول ایجاد می شود که اعمال و ویژگی های شکل ها را توصیف می کند. همچنین یک کلاس Empty وجود دارد که نشان دهنده خالی بودن سلول است. تابلو آرایه ای از 64 عنصر شکل است که هر کدام می توانند به هر یک از کلاس های نزول تبدیل شوند. یک حرکت در رایانه به صورت 4 عدد نشان داده می شود - مختصات (از 1 تا 8) نقطه شروع حرکت و مختصات نقطه پایان حرکت. در زیر نمودار وضعیت برنامه آمده است:

شکل 23 - نمودار حالت

5 . تجربیمقطع تحصیلیکیفیتآرتحقق هاداده هاالگوریتم ها

الگوریتم‌های پیاده‌سازی‌شده به منظور شناسایی پیکربندی بهینه از نظر سرعت و کیفیت اجرا، تحت تحلیل مقایسه‌ای قرار گرفتند. این آزمایش شامل یک سری مسابقات بین هر جفت پیاده سازی مختلف بود.

5 .1 مقطع تحصیلیکار کردنآلفا بتاقطع کردن

با کمک این آزمایش باید مشخص شد که آیا می توان به کاهش ضریب انشعاب و در نتیجه بهبود سرعت الگوریتم بدون از دست دادن کیفیت تصمیم گیری در مورد حرکت دست یافت. در حال ساخته شدن

برای ارزیابی کیفیت الگوریتم نهایی، این الگوریتم جستجو به صورت تجربی با یک جستجو با استفاده از اصل حداقل حداکثر مقایسه شد.

جداول ضرایبی را نشان می دهد که نسبت تعداد موقعیت های جستجو شده برای الگوریتم ها و همچنین نسبت زمان اختصاص داده شده برای انجام یک اسکن معین را نشان می دهد.

جدول 1 - مقایسه عملکرد الگوریتم قطع آلفا بتا با الگوریتم مینیمکس.

نتایج تجربی نشان می دهد که هرس آلفا-بتا بسیار بهتر از جستجوی ساده Minimax است.

5 .2 مقطع تحصیلیکار کردنتکرار شوندهغواصی می کندومرتب سازیحرکت می کند

برای ارزیابی کیفیت الگوریتم، این الگوریتم جستجو به صورت تجربی با هرس آلفا-بتا و فقط هرس آلفا-بتا مقایسه شد.

اسناد مشابه

    شرح قوانین بازی "نبرد دریایی". ویژگی های کامپیوترهای مدرن و هوش مصنوعی. ایجاد یک بلوک دیاگرام کلی برنامه، ظاهر آن. متغیرها، رویه ها و توابع مورد نیاز. ویژگی های اشیاء مورد استفاده در برنامه.

    کار دوره، اضافه شده در 11/05/2012

    توسعه رویکردی به برنامه‌نویسی «هوش مصنوعی» در بازی‌های موقعیتی بر اساس بازی «نقاط» و امکان استفاده از این رویکرد برای حل مشکلات حوزه‌های اقتصاد، مدیریت و سایر حوزه‌های علمی. مدل وضعیت بازی.

    پایان نامه، اضافه شده در 2013/07/21

    نمودار ساختاری یک ماژول نرم افزاری. توسعه یک نمودار ماژول نرم افزار و رابط کاربری. پیاده سازی یک ماژول نرم افزار: کد برنامه; شرح عملگرها و توابع مورد استفاده مشاهده فرم کاربر با ماتریس پر شده.

    کار دوره، اضافه شده در 09/01/2010

    مطالعه قوانین کلی بازی چکرز، راهنمای کاربر و برنامه نویس. ویژگی های الگوریتم های اصلی که وظایف کلاس Life Widget را انجام می دهند. ارزیابی حرکات کامپیوتر و انسان ساخت درخت جستجو برای بهترین حرکت بر اساس ارزیابی عملکرد.

    تست، اضافه شده در 2012/12/20

    مراحل اصلی توسعه، اصول تست و اشکال زدایی ماژول نرم افزار "VFS". ویژگی های طراحی در زبان UML. روش‌های Brute Force و کاربرد آنها در اشکال‌زدایی برنامه‌ها. عوامل مضر موجود در محل کار برنامه نویس.

    پایان نامه، اضافه شده 03/07/2012

    تحلیل مدل ها و روش های پیاده سازی بازی های فکری در سیستم انسان-ربات. محیط توسعه رقص. الگوریتم های ماژول تشخیص، پردازش داده ها، توابع ماژول بازی. تست بسته نرم افزاری، تصحیح و ویرایش خطاها.

    پایان نامه، اضافه شده در 1396/08/12

    ماهیت و مشکلات تعریف هوش مصنوعی، وظایف و کارکردهای اصلی آن. مشکلات فلسفی ایجاد هوش مصنوعی و تضمین ایمنی انسان هنگام کار با ربات. انتخاب مسیر برای ایجاد هوش مصنوعی

    تست، اضافه شده در 12/07/2009

    برنامه بازی "چکر" برای بازی بین یک شخص و یک کامپیوتر. توسعه الگوریتم ها، خط تاریخی توسعه مسائل. رویکردهای مختلف به سیستم های ساختمانی لیست مختصر برنامه و توضیحات الگوریتم. اجزای هوش مصنوعی

    کار دوره، اضافه شده در 2009/03/26

    ساخت و تجزیه و تحلیل یک مدل ریاضی از بازی. تعیین احتمال کشف کشتی برای تمام مکان های ممکن و سیستم های جستجوی مختلف. توسعه الگوریتم های هوش مصنوعی ساختار برنامه و اجزای آن

    کار دوره، اضافه شده در 12/22/2012

    مفهوم هوش مصنوعی به عنوان توانایی سیستم های خودکار برای به عهده گرفتن عملکردهای فردی هوش انسانی. سیستم های خبره در حوزه پزشکی. رویکردهای مختلف برای ساخت سیستم های هوش مصنوعی ایجاد شبکه های عصبی

توسط مهندسان موسسه فناوری ماساچوست توسعه یافته است. فیشر سه بار کامپیوتر را مات کرد و یک پیروزی بی قید و شرط به دست آورد. این شطرنج‌باز در نامه‌های خود نوشت که برنامه‌ها «اشتباهات فاحش» می‌کنند و خود رایانه‌ها را «تکه‌های آهن بی‌فایده» می‌خواند.

اما در همان سال، مونتی نیوبرن، یکی از اولین دانشمندانی که شطرنج کامپیوتری را مورد مطالعه قرار داد، سخنان نبوی را بیان کرد:

استادان بزرگ برای خندیدن به مسابقات شطرنج کامپیوتری می آمدند. حالا می آیند رصد می کنند و در آینده آنجا درس می خوانند.»

بابی فیشر پس از شکست دادن کامپیوتر. عکس: گتی ایماژ

به نظر می رسد مردم نوعی عشق ذاتی به بازی های فکری دارند. هنگامی که چارلز اول پادشاه انگلستان در سال 1649 به اعدام محکوم شد، دو چیز را با خود به اعدام برد - یک کتاب مقدس و یک مجموعه شطرنج. مارسل دوشان، هنرمند مشهور قرن بیستم، در اوج کار خود، ناگهان راهی آرژانتین شد و شروع به حکاکی مهره های شطرنج از چوب کرد و به طور کلی به شطرنج علاقه مند شد. در قرن نوزدهم، داستان مرموز مربوط به بازی Go در ژاپن رخ داد. طبق افسانه ها، ارواح به یک بازیکن معروف سه حرکت درخشان گفتند. در نتیجه او توانست برنده شود و پس از پایان بازی حریفش روی زمین افتاد و در خون خفه شد و جان باخت.

رایانه‌ها از این همه عرفان دور هستند، اما آنها در چند دهه بازی‌های فکری را عمیق‌تر از هزاره‌ها بشریت مطالعه کرده‌اند. در سال 2014، این شرکت DeepMind را به مبلغ 400 میلیون دلار خریداری کرد تا "غیرعامل ترین و پیچیده ترین تحقیقات را انجام دهد که هدف نهایی آن کشف ماهیت هوش است." به طور خاص، دانشمندان می خواستند به رایانه بازی Go را آموزش دهند. این بازی بسیار پیچیده تر از شطرنج است. در سال 1985، یک غول صنعت تایوانی گفت که برای برنامه ای که بتواند بهترین بازیکن Go را شکست دهد، 1.4 میلیون دلار پرداخت خواهد کرد. این سرمایه دار در سال 1997 درگذشت و سه سال بعد پیشنهاد او به پایان رسید - هیچ کس نتوانست جایزه را مطالبه کند.

اکنون می تواند متعلق به برنامه DeepMind AlphaGo باشد که از شبکه های عصبی مدرن استفاده می کند. یک سال پیش او قهرمان بین المللی Go Lee Sedol بود. در ماه می سال جاری، او دوباره برترین بازیکن Go و همچنین تیمی متشکل از پنج بازیکن حرفه ای دیگر را شکست داد.

AlphaGo قهرمان مطلق شد. اما به زودی پس از پیروزی های بزرگ او، فراموشی در انتظار او است. در پایان ماه می، DeepMind بی سر و صدا اعلام کرد که AlphaGo صحنه رقابت را ترک می کند. به همین مناسبت، این شرکت 50 نسخه از بازی‌هایی را منتشر کرد که این برنامه علیه خودش بازی می‌کرد. در آینده، DeepMind می خواهد یک مقاله تحقیقاتی نهایی را منتشر کند که اثربخشی الگوریتم برنامه را توصیف کند.

در مورد شطرنج، بشریت 20 سال قبل از این رویدادها، زمانی که شطرنج‌باز گری کاسپاروف به ابررایانه IBM Deep Blue باخت. Chess and Go تنها بازی هایی نیستند که سعی شده است هوش مصنوعی آموزش داده شود. آنها سعی کردند چکرز کامپیوتر، تخته نرد، معکوس، پوکر و بسیاری دیگر از بازی های رومیزی را آموزش دهند. و هوش انسانی دیگر با هوش مصنوعی قابل مقایسه نیست. این تا حدودی به دلیل توسعه فناوری بود. به عنوان مثال، در سال 1997، رایانه Deep Blue در فهرست سریعترین ابررایانه های جهان در رتبه 259 قرار گرفت و می توانست حدود 11 میلیارد عملیات در ثانیه انجام دهد. اکنون، به لطف الگوریتم های مدرن، حتی تلفن هوشمند شما می تواند کاسپاروف را شکست دهد.

گری کاسپاروف در مقابل کامپیوتر دیپ بلو. در سمت چپ یکی از مهندسان IBM Xiong Feixiong است. عکس: گتی ایماژ

چنین دستاوردهای هوش مصنوعی باعث ایجاد احساسات کاملاً انسانی در افراد شده است: غم و اندوه، افسردگی و ناامیدی. پس از شکست لی سدول توسط AlphaGo، او دچار یک بحران وجودی شد. او پس از بازی اعتراف کرد: «من به نبوغ انسانی شک داشتم. من شروع به شک کردم که آیا تمام حرکات Go که می دانستم درست هستند یا خیر. به گفته یکی از شاهدان عینی، پس از شکست، لی به نظر می رسید که او "بدخیم جسمی" است. کاسپاروف بعد از باخت به کامپیوتر احساس بهتری نداشت. وقتی به هتل برگشت، به سادگی لباس‌هایش را درآورد، روی تخت دراز کشید و به سقف نگاه کرد.

کاسپاروف گفت: "کامپیوتر برخی از موقعیت ها را چنان عمیق تجزیه و تحلیل می کند که مانند یک خدا بازی می کند."

دیپ بلو برای اولین بار به مردم نشان داد که یک کامپیوتر می تواند در حل مشکلات فکری از انسان پیشی بگیرد. موری کمپبل، یکی از خالقان Deep Blue می گوید: «در آن زمان این یک شوک بود. اکنون ما به تدریج به این ایده عادت می کنیم. با این حال، معلوم نیست در آینده چه چیزی در انتظار بشریت است. چگونه می توان از دستاوردهای بازی ها در دنیای واقعی استفاده کرد؟ پاسخ کمبل به این سوال بدبینانه به نظر می رسد. او گفت: «به سختی می توان نمونه خوبی از این پیشرفت ها در بازی های رومیزی به کار برد. - در اوایل دهه 90، یکی از کارمندان IBM به نام جرالد تسائورو تلاش کرد تا به یک هوش مصنوعی بازی تخته نرد را آموزش دهد و پیشرفت هایی در یادگیری انگیزشی داشت. اکنون روش های او اغلب در رباتیک استفاده می شود. با این حال، پرونده او یک استثنا از قاعده است.»

فرهنگ. پایان نامه. Cand. Ped.Sc. روستوف-آن-دون. 2003.

2. آزاروا ا.ا. اشکال مخرب تربیت خانوادگی، مشکلات کنونی زمان ما، جنایات دوران اخیر: جنبه های معنوی، اخلاقی و جرم شناختی. - روستوف روی دان: انتشارات دانشگاه دولتی آموزشی روسیه، 2005.

3. گابدروا GSh. جنبه های اصلی مشکل اضطراب در روانشناسی // روانشناس مدرسه. - 2004. - شماره 8. - ص 9.

4. Enikolopov S.N. مشکلات خشونت خانوادگی // مشکلات روانشناسی. -2002. -شماره 5-6.

5. تسلویکو وی.ام. روانشناسی خانواده های ناکارآمد: کتابی برای معلمان و والدین. - M.: انتشارات VLADOS-PRESS، 2003.

6.شاپر وی.ب. روانشناسی عملی. روانشناسی روابط بین والدین و فرزندان. -Rostov n/d: Phoenix، 2006.

© Azarova E.A.، Zhulina G.N.، 2016

A.I. علیفیروف

Ph.D. Ped علوم، دانشیار RGSU، مسکو، فدراسیون روسیه

I.V. میخائیلووا Ph.D. Ped علوم، دانشیار RGSU، مسکو، فدراسیون روسیه

"هوش مصنوعی" در شطرنج

حاشیه نویسی

این مقاله به بررسی پیدایش استفاده از نرم‌افزار و سخت‌افزاری می‌پردازد که قادر به انجام فعالیت‌های فکری قابل مقایسه با فعالیت‌های فکری انسان است.

کلید واژه ها

فن آوری های کامپیوتری در شطرنج، برنامه های شطرنج، شطرنج.

امروزه اصطلاح «هوش مصنوعی» (AI) به تئوری ایجاد نرم‌افزار و سخت‌افزاری اشاره دارد که قادر به انجام فعالیت‌های فکری قابل مقایسه با فعالیت‌های فکری انسان است. هنگام حل مسائل عملی، آنها اغلب از یک وظیفه از لیست استفاده می کنند و معتقدند که اگر یک سیستم کامپیوتری قادر به حل این مشکلات باشد، پس یک سیستم هوش مصنوعی است. اغلب این فهرست شامل بازی شطرنج، اثبات قضایا، حل مسائل تشخیصی با استفاده از مجموعه ای ناقص اولیه از داده ها، درک زبان طبیعی، توانایی یادگیری و خودآموزی، توانایی طبقه بندی اشیا، و همچنین توانایی توسعه دانش جدید مبتنی بر دانش است. در مورد تولید قوانین جدید و دانش مدل های منظم سازی

یکی از مهمترین مشکلات علم جدید - سایبرنتیک - این بود که چگونه می توان مدیریت را بهبود بخشید، چگونه تصمیم گیری را بهبود بخشید. یکی از بنیانگذاران سایبرنتیک، سی. شانون، رسمی کردن و برنامه نویسی شطرنج را به منظور استفاده از رایانه شطرنج به عنوان الگویی برای حل مسائل کنترلی مشابه پیشنهاد کرد. اقتدار K. Shannon به حدی بود که ایده های او بلافاصله پایه و اساس یک جهت علمی جدید را گذاشت. ایده های K. Shannon در آثار A. Turing، K. Zuse، D. Prinz مورد استفاده قرار گرفت.

نویسنده نظریه اطلاعات. K. Shannon نوشت: "یک ماشین شطرنج برای شروع ایده آل است زیرا (1) مشکل به وضوح توسط عملیات مجاز (حرکت) و هدف نهایی (مات چک) تعریف می شود؛ (2) آنقدر ساده نیست که بی اهمیت باشد. و دستیابی به یک راه حل رضایت بخش چندان دشوار نیست؛ (3) معتقدیم که شطرنج برای بازی ماهرانه به «فکر کردن» نیاز دارد، حل این مشکل ما را یا به تحسین توانایی های تفکر مکانیزه یا محدود کردن مفهوم «تفکر» سوق می دهد. (4) ساختار گسسته شطرنج به خوبی با ماهیت دیجیتال کامپیوترهای مدرن مطابقت دارد.

پس از آن، شطرنج به موضوع رقابت بین هوش طبیعی و مصنوعی تبدیل شد و تعدادی مسابقه بین شطرنج بازان پیشرو جهان در برابر رایانه برگزار شد. در سال 1995، در مصاحبه ای با مجله محبوب Wired، G.K. کاسپاروف دیدگاه خود را در مورد بازی شطرنج تشریح کرد: "شطرنج ریاضی نیست، خیال و تخیل است، منطق انسانی است و نه یک بازی با نتیجه قابل پیش بینی. من فکر نمی کنم که از لحاظ نظری بازی شطرنج را بتوان در آن گنجاند. مجموعه ای از فرمول ها یا الگوریتم ها. دو سال بعد، ابرکامپیوتر DEEP BLUE با شکست سیزدهمین قهرمان جهان G.K. کاسپاروا در یک بازی برگشت شش بازی، موضوع قابلیت های هوش مصنوعی شطرنج را از دستور کار حذف کرد. DEEP BLUE یک پایگاه داده کامل از همه بازی ها را در حافظه ذخیره می کند و استراتژی را منحصراً با محاسبه تجزیه و تحلیل می کند. بعد از بازی G.K. کاسپاروف دیدگاه خود را تغییر داد و اعتراف کرد که: "شطرنج تنها رشته ای است که در آن می توان شهود و خلاقیت انسان را با قدرت و ماشین ها مقایسه کرد." این مسابقه مسیر توسعه شطرنج کلاسیک و کامپیوتر را تغییر داد. کمک هوش مصنوعی به طور گسترده در سیستم آموزشی مورد استفاده قرار گرفته است. DI. برونشتاین در کتاب خود "دیوید علیه جالوت" (2003) نوشت: "بوتوینیک معتقد بود که شطرنج هنر تجزیه و تحلیل است و زمان بداهه نوازان تنها مانند اندرسن، مورفی، زوکرتورت برای همیشه گذشته است. با نگاهی به شطرنج مدرن، ما می بینیم باید اعتراف کرد که Botvinnik معلوم شد که درست می‌گوید. "پسران کامپیوتر" ایده او را در مورد نیاز به تجزیه و تحلیل خانگی تا حد پوچی رساندند. آنها حتی این واقعیت را پنهان نمی‌کنند که تغییرات ابتدایی را به یک نتیجه واضح می‌رسانند. در تورنمنت لینارس (2000)، لکو مجارستانی بدون سایه ای از خجالت اعتراف کرد که کل بازی با آناند روی رایانه او بوده است!

فهرست ادبیات مورد استفاده:

1. Alifirov A.I. کار هدایت شغلی در مدارس متوسطه با استفاده از شطرنج / Alifirov A.I. // مشکلات توسعه علم و آموزش: تئوری و عمل. مجموعه مقالات علمی بر اساس مطالب کنفرانس علمی و عملی بین المللی 31 مرداد 1394: در 3 قسمت. قسمت دوم. م.: «آر-کنسالت»، 1394 - صص 13-14.

2. Mikhailova I.V., Alifirov A.I. اقدامات تاکتیکی شطرنج بازان / Mikhailova I.V., Alifirov A.I. // نتایج تحقیقات علمی مجموعه مقالات کنفرانس علمی و عملی بین المللی. ویراستار اجرایی: سوکیاسیان آساتور آلبرتوویچ (15 فوریه 2016) ساعت 4 بعد از ظهر قسمت 3 - Ufa: AETERNA. -2016.S. 119-121.

3. Mikhailova I.V., Alifirov A.I. مبانی نظری و روش شناختی روش تفکر با طرح های شطرنج بازان / میخائیلووا I.V.، Alifirov A.I. // نتایج تحقیقات علمی مجموعه مقالات کنفرانس علمی و عملی بین المللی. ویراستار اجرایی: سوکیاسیان آساتور آلبرتوویچ (15 فوریه 2016) ساعت 4 بعد از ظهر قسمت 3 - Ufa: AETERNA. - 1395. صص 123-125.

4. Mikhailova I.V. آموزش شطرنج بازان جوان با مهارت بالا با استفاده از برنامه های شطرنج کامپیوتری و اینترنت: چکیده نویسنده. دیس ... می تونم. Ped علوم: 13.00.04 / میخائیلووا ایرینا ویتالیونا; RGUFK. - م.، 2005. - 24 ص.

© Alifirov A.I., Mikhailova I.V., 2016

UDC 378.046.2

A.I. علیفیروف

کاندیدای علوم تربیتی، دانشیار RGSU، مسکو، فدراسیون روسیه V.V. فدچوک، Ph.D.

Blagopoluchie LLC، مربی ارشد روش شناس، مسکو، مطالعه RF سطح سلامت جسمانی نوجوانان

حاشیه نویسی

در این مقاله مشکل سلامت جسمی نوجوانان و تأثیر عوامل مختلف مورد بحث قرار گرفته است

مسابقه از دست رفت: کامپیوتر در مقابل انسان.

تفکر خلاق، منطق، تجربه - ویژگی هایی که به فرد اجازه می دهد در نبرد "انسان و ماشین" رهبری کند. به نظر می‌رسید که این مزایا همیشه سلاح مخفی انسان خواهد بود و رایانه نقش «به‌دست آوردن» را بازی می‌کند.

اما زمان بسیار کمی طول کشید تا هوش مصنوعی بتواند در بسیاری از زمینه ها، از جمله در زمینه سرگرمی های فکری، از انسان ها پیشی بگیرد.

هوش مصنوعی انسان ها را شکست می دهد: کجا و چگونه

مکعب روبیک
این معما در سراسر جهان شناخته شده است. میلیون‌ها نفر سعی می‌کنند کار را کامل کنند و مکعب را به درستی جمع کنند و برخی حتی در سرعت مونتاژ با هم رقابت می‌کنند. رکورد انسان توسط لوکاس اتر 14 ساله از ایالات متحده به ثبت رسید که این معما را در 4.904 ثانیه حل کرد. باور نکردنی است، اینطور نیست؟ اما این نتیجه توسط ربات پیشی گرفت که توسط دو علاقه‌مند به جی فلتلند و پل رز ساخته شد: نتیجه ربات 1.047 ثانیه بود.


به لطف دوربین های داخلی، که چهار عدد از آن ها وجود دارد، کامپیوتر موقعیت را ارزیابی می کند و بهترین الگوریتم عمل را انتخاب می کند. این سیستم بر اساس فرمول Kotzebue (مونتاژ در 20 حرکت) است. به سختی کسی می تواند یک مکعب روبیک را در کمتر از 1 ثانیه حل کند.
0:1 به نفع هوش مصنوعی.

"اتللو"
اوج محبوبیت این بازی در اوایل دهه 70 قرن گذشته رخ داد. ماهیت بازی این است که تراشه ها را در زمین بازی قرار دهید (سلول های 8x8): شما باید از تراشه های رنگ خود استفاده کنید تا ردیف های تراشه های حریف خود را در هر دو طرف مسدود کنید، سپس تراشه ها تغییر رنگ داده و به سمت حریف خود بروید. پیروزی از آن کسی است که بزرگترین منطقه را اشغال کرده است.


قهرمان جهان اتللو در سال 1980 هیروشی اینوئه بود که به راحتی برنامه مور را 5-1 شکست داد.
بعداً برنامه‌ها محاسبه حرکات حریف را یاد گرفتند (با حدود 25 حرکت) و زمانی که قهرمان کنونی جهان تاکشی موراکامی در یک مسابقه برگشت در سال 1997 با سیستم Logistello روبرو شد، امتیاز 0:6 به نفع نرم‌افزار بود.

تخته نرد
هوش مصنوعی مزیت خود را در تخته نرد نسبت به انسان مدیون قهرمان شطرنج مکاتبه ای جهان (و دیگران هم هستند) هانس برلینر است که برنامه BKG 9.8 را نوشت. و در سال 1979 ، این برنامه قوی تر از قهرمان تخته نرد جهان لوئیجی ویلا بود.


اعتقاد بر این است که کامپیوتر در آن بازی خوش شانس بود (تاس خوب چندین بار افتاد)، اما هیچ کس دیگری نمی خواست در یک مسابقه تکراری مبارزه کند، به خصوص که نرم افزار از آن زمان چندین بار بهبود یافته است.

شطرنج
سیستم های شطرنج در اواسط قرن بیستم شروع به توسعه کردند؛ پیشرفت ها متعلق به IBM بود. اما با توجه به اینکه این برنامه نیازمند محاسبات جدی و طولانی بود، این تعهد باید 30 سال به تعویق می افتاد. در سال 1996، "مغز شطرنج" - کامپیوتر Deep Blue - در مقابل گری کاسپاروف قرار گرفت.


این مسابقه به سود مرد به پایان رسید: 3 برد، 2 تساوی، 1 باخت. یک سال بعد، مسابقه تکرار شد و این بار دیپ بلو آمادگی بیشتری داشت. البته این سیستم 200 میلیون موقعیت در ثانیه را ارزیابی کرد. و اگرچه هری می‌خواست بعداً به دست بیاورد، IBM امتناع کرد و آن را بی‌معنا دانست.

چکرز (نوعی چکرز)
ماریون تینزلی در تمام دوران حرفه‌ای خود یک بازیکن قهرمان بود. و هنگامی که در سال 1992 با سیستم توسعه یافته در دانشگاه آلبرتا (کانادا) آشنا شد، پیروزی از آن او بود. از 39 بازی - 4 برد، 2 باخت و 33 تساوی.


دو سال بعد، یک مسابقه مجدد برگزار شد، اما تینزلی به دلیل مشکلات سلامتی از مسابقات کنار رفت (در زمان امتناع او 6 بازی مساوی انجام شد) و پیروزی نصیب سیستم شد. از آن زمان، هوش مصنوعی بسیار قوی‌تر شده است: در سال 2007، کانادایی‌ها ایجاد یک سیستم ایده‌آل را اعلام کردند و هیچ‌کس سعی نمی‌کند آن را در چکرز شکست دهد.

دستمالی
پیروزی کامپیوتر در این بازی در دور اول آسان بود: قهرمان جهان دیوید بویس در سال 2006 توسط رقیب روباتیک خود Quackle شکست خورد.


ضمناً این برنامه در اینترنت موجود است و شما می توانید با آن رقابت کنید و شاید پیروزی را برای تیم "Man" به ارمغان بیاورید.

برو
این بازی بیش از دو هزار سال پیش در چین باستان ظاهر شد، اما با وجود چنین تجربه طولانی در بازی، مردم همچنان شکست خوردند. در زمین (19x19)، دو بازیکن سنگ های خود را قرار می دهند (سیاه/سفید)، هرکس امتیاز بیشتری کسب کند (تراشه های چیده شده در یک خط شمارش می شوند) برنده است. از یک طرف، همه چیز ساده است، اما علاقه در تنوع گزینه ها و حرکت های ممکن است.


همچنین برای توسعه دهندگان AlphaGo (که تحت نظارت گوگل ایجاد شده است) جالب بود که سیستمی ایجاد کنند که بتواند هزاران گزینه را محاسبه کند. ابتدا هوش مصنوعی قدرت خود را با نرم افزارهای دیگر امتحان کرد و زمانی که از 500 بازی 499 بازی برای AlphaGo بود، با قهرمان سه دوره اروپا، فن هوی روبرو شد. قهرمان شانسی نداشت: 5 بر 0.

تلویزیون
آیا دوست دارید در برنامه های مسابقه تلویزیونی به سوالات پاسخ دهید؟ توسعه دهندگان ربات Watson از IBM نیز نتوانستند مقاومت کنند و در سال 2011 واتسون به عنوان یک شرکت کننده در نمایش بازی تلویزیونی فکری "Jeopardy!" ظاهر شد. علیرغم این واقعیت که حریفان او رکوردداران نمایش بودند - برد راتر و کن جنینگز - او برنده شد و میلیون دلاری که به دست آورد به امور خیریه اهدا شد.


و اگرچه کامپیوتر قبلا برتری فکری و منطقی خود را نسبت به انسان نشان داده است، اما همچنان به توسعه خود ادامه می دهد. بنابراین، گروه علی بابا و مایکروسافت (توسعه ها به صورت موازی انجام شد) هوش مصنوعی را معرفی کردند که معلوم شد در درک اطلاعات خوانده شده قوی تر از یک شخص است.
آزمون دانشگاه استنفورد شامل بیش از 100 هزار سوال است که بر اساس پانصد مقاله از کتابخانه ویکی پدیا است.

بهترین امتیاز برای یک فرد 82.304 امتیاز، نتیجه علی بابا 82.44، شبکه عصبی مایکروسافت 82.605 است. نتایج نشان می‌دهد که هوش مصنوعی قادر است به هر سوالی با دقت بالایی پاسخ دهد، به این معنی که می‌توان از فناوری‌ها برای خدمت به مشتریان، بیماران، بازدیدکنندگان موزه و غیره استفاده کرد.

بازی های رایانه ای نیز مجذوب این برنامه شدند. برنامه برنامه را شکست داد: چه کسی فکر می کرد این آینده اینقدر نزدیک است؟ بازی محبوب Quake III که بازیکنان آن گلادیاتور هستند، در ورزش های الکترونیکی بسیار محبوب است. اما بهترین‌ها در اینجا افراد نبودند، بلکه تیمی از ربات‌های DeepMind بودند که توسط یک بخش از Google ایجاد شدند. و اگرچه نبرد در نسخه کاهش یافته انجام شد، طبق محاسبات با 73 درصد تغییرات، ربات برنده هر رقابتی بود.


آیا چنین برتری هوش مصنوعی خطرناک است یا خیر؟ هیچ کس نمی تواند با اطمینان پاسخ دهد. و در پایان، این پاسخ کلید نخواهد بود، زیرا نکته اصلی این نیست که یک فرد نسبت به رایانه پایین تر است، بلکه این است که آیا می توانیم از این پتانسیل به نفع خود استفاده کنیم یا خیر. همانطور که می بینیم، هوش مصنوعی انسان ها را شکست می دهد و هیچ شانسی برای برنده شدن باقی نمی گذارد.

خطا:محتوا محفوظ است!!