کامپیوتر چگونه شطرنج بازی میکند 6 ص رایگان
متن کامل
کامپیوتر چگونه شطرنج بازی میکند؟
درباره موفقیت کامپیوتر در شکست دادن قهرمانان بازی شطرنج حتماً شنیدهاید. به راستی کامپیوتر چگونه شطرنج بازی میکند؟ این سؤال جالبی است.
درباره موفقیت کامپیوتر در شکست دادن قهرمانان بازی شطرنج حتماً شنیدهاید. به راستی کامپیوتر چگونه شطرنج بازی میکند؟ این سؤال جالبی است. به نظر من بهترین پاسخ را میتوانید از برنامهنویسان بازیهای شطرنج کامپیوتری بپرسید. این مقاله تحقیقی در همین زمینه است. در اینجا کوشیدهام مدل برنامهنویسی شطرنج و شیوه تجزیه و تحلیل بازی از نگاه کامپیوتر را تشریح کنم. اطلاعاتی را که در اینجا آوردهام، همه از سایت برنامهنویسان بازیهای کامپیوتری، بهویژه برنامهنویسان بازی شطرنج، استخراج شدهاند.
- چرا بررسی شطرنج کامپیوتری؟
ممکن است بپرسید بررسی آناتومی یک برنامه شطرنج اصلاً چه فایدهای دارد؟ پاسخ را در دو سه نکته میتوانم خلاصه کنم. در وهله نخست، بررسی آناتومی یک بازی شطرنج از لحاظ تئوری هوشمصنوعی میتواند نمونه بسیار جالبی از کاربرد این علم تلقی شود. در بسیاری مواقع وقتی گفته میشود هوش مصنوعی، برای بسیاری از مردم واقعاً سؤال است که این هوش از کجا میآید و چگونه شکل میگیرد. شطرنج یکی از جاهایی است که میتوانید ببینید چگونه یک سری معادلات ریاضی که ظاهری ساده، اما باطنی پیچیده دارند، به تدریج در پیچ و خم پردازشهای بعدی مبنای هوشمندی ماشین۱ را فراهم میکنند.
گذشته از این، بررسی مکانیزم شطرنجبازیِ کامپیوتر یک موضوع تأملبرانگیز است و به شما نوعی بینش شبه فلسفی درباره تفاوت رویکرد انسان و ماشین نسبت به نوع خاصی از معماها میدهد. ضمن اینکه، دریچه ذهن شما را به روی برخی اشتباهات رایج ذهن انسان بازمیکند که منجر به تصمیمگیریهای اشتباه و در نتیجه پیامدهای نامطلوب میشوند. از این رهیافت میتوانید ببینید که از دیدگاه علمی یکی از نظریههای مربوط به مبنای اشتباهکردن انسان هنگام تصمیمگیری میان گزینههای مختلف چیست.
آگاهی از این مسئله میتواند برای هرکارشناس کامپیوتر، آن هم در دنیایی که یک اشتباه کوچک میتواند به مدد شبکه جهانی اطلاعات در عرض چند ثانیه سراسر کره زمین را درنوردد و همچون ویروسهای مخرب کامپیوتری، پیامدهای وخیمی را ایجاد کند، مهم و آموزنده باشد.
این موضوع نکته دیگری را نیز روشن میکند و آن اینکه، چگونه برنامهنویسان باهوشی که توسعهدهنده مدل برنامهنویسی شطرنج بودهاند، به منطق این اشتباهات پیبردهاند و سعی کردهاند به کامپیوتر یاد دهند با پیشبینی این اشتباهات، از انسان پیشدستی کند. جالب اینجاست که در مدل برنامهنویسی شطرنج، دغدغه کامپیوتر نه سرمایهگذاری روی اشتباهات حریف، بلکه چارهجویی در مورد اشتباهات احتمالی خودش است! از آن جالبتر اینکه، بازی شطرنج جزء بازیهای اصطلاحاً <با اطلاعات کامل> طبقهبندی میشود. بازیهایی که هر دو طرف دستشان برای یکدیگر رو شده است.
بنابراین، وقتی میفهمیم که بهرغم اطلاع طرفین از وضعیت مهرههای یکدیگر، این همه پیچیدگی در تجزیه و تحلیل وضعیتهای پیش رو وجود دارد، میتوانید حدس بزنید علت این همه ناکامی آدمیزاد در پیشبینی سرنوشت بسیاری از تحولات چیست؛ آن هم هنگامی که دست حریف برایش رو نیست.
در نهایت، مطالعه و بررسی مدل برنامهنویسی شطرنج یک تمرین فکری خوب و آموزنده برای همه برنامهنویسان ماجراجوست و می تواند ذهن کاوشگر آنان را بیش از پیش ورزیده کند. به قول معروف، هم فال است و هم تماشا!
- اثر افق
کالبد یک نرمافزار شطرنج از قسمتهای مختلفی تشکیل شده است که کمی جلوتر خواهم گفت، اما اجازه بدهید برای ورود به بحث، شما را با یکی از چالشهای همیشگی برنامهنویسان شطرنج آشنا کنم تا ببینید کامپیوتر برای موفقیت در یک بازی شطرنج، با چه معماهای غامضی دست و پنجه نرم میکند.
لابد شنیدهاید که کامپیوتر هنگام شطرنج بازی تا چند مرحله جلوتر را در ذهن خودش مرور میکند و پیامدهای هر یک از حرکتهای فرضی را در هر مرحله ارزیابی میکند. واقعاً هم همینطور است.
حالا فرض کنید یک نرمافزار طوری برنامهریزی شده است که تا هفت مرحله جلوتر را میتواند محاسبه و ارزیابی کند. تصور کنید یک کامپیوتر با استفاده از چنین الگویی ناگهان متوجه شود که ممکن است در پنج نوبت دیگر مُهرهِ وزیرِ خودش را از دست بدهد و حتماً میدانید مهره وزیر چقدر مهم است.
بنابراین، باید جایی در منطق نرمافزارِ شطرنج، به کامپیوتر گفته شده باشد که در تصمیمسازی برای حرکت بعدی خودت <به وضعیت مهره وزیر اولویت بده.> البته از لحاظ تئوریِ مدرن شطرنج، میتوان پرسید که آیا واقعاً ارزش یک مهره وزیر در سراسر یک بازی یکسان است؟ و آیا باید یک شطرنج باز در هر شرایطی به حفظ جان این مهره بیش از هر مهره دیگر اهمیت بدهد؟
اگر پاسخ منفی باشد، وضعیت خیلی پیچیدهتر خواهد شد، ولی فعلاً بیایید برای ساده شدن صورت مسئله، فکر کنیم که منطق تصمیمسازی کامپیوتر چنین باشد.
در آن صورت نتیجه بدیهی این منطق این خواهد بود که کامپیوتر شروع به بررسی سناریوهای مختلف نجات جان وزیر در پنج نوبت دیگر کند و در این میان به این نتیجه برسد که بهترین گزینه این است که مهره اسب خود را در همین نوبت قربانی کند تا با افزودن فلان حرکت در نوبت سوم، دستیابی حریف به این هدف را دست کم تا نوبت هشتم به تعویق بیندازد. اما مشکل اینجاست که این کامپیوتر میتواند تا هفت نوبت جلوتر را محاسبه کند. بنابراین، عملاً تا یک دست دیگر بازی نکند، نمیتواند پیشبینی کند در نوبت هشتم چه اتفاقی خواهد افتاد.
از دیدگاه کامپیوتر، عدم روِیت یک معضل در افق دیدش به معنی نبودن آن معضل است. بنابراین، وقتی با انجامدادن یک حرکت میتوان آن معضل را تا عمق هفت مرحله از میدان دید خارج کرد، شاید به این معنی باشد که مشکل حل شده است، ولی چنین نیست. چون در همان گام اول یک اسب فدا میشود، یک نوبت بازی انجام میشود و دوباره همان مشکل (تهدید شدن وزیر) در افق دید کامپیوتر ظاهر میشود. پس مشکل حل نشد و کامپیوتر اشتباه کرد.
در شطرنج کامپیوتری که اولین بار توسط هانس برلینر مطرح شد، از این جهت جالب است که بهگونه طنزآمیزی تبلور ماهیت بعضی از خطاهای انسانی نیز هست. به راستی خیلی از ما آدمها دقیقاً به دلیل همین کوتهبینی، اشتباه میکنیم. یعنی بارها در زندگی تصور میکنیم وقتی مشکلی در افق دیدمان نیست، یعنی آن مشکل وجود ندارد؛ در حالی که مشکل وجود دارد و کافی است یک گام به جلو برداریم تا آن را ببینیم، ولی تا آن گام را برنداریم، از دیدنش ناتوان هستیم. درست مثل زمانی که یک بطری نوشابه گازدار را ناگهان بدون حضورذهن باز میکنیم و تازه وقتی آن را باز کردیم و گازش بیرون جهید و پیراهنمان را کثیف کرد، یادمان میافتد که باید در بطری را آرام باز میکردیم.
اولین درسی که از اثر افق میتوان گرفت این است که پیدا کردن وضعیتی که نرمافزار بتواند قدرت نسبی نیروها را در وضعیت کنونی سبک و سنگین کند، اصلاً خیلی مهم نیست؛ زیرا این ارزیابی ماهیت پویا بودن نیروها را در طول زمان درنظر نگرفته است. ارزیابی کنونی به درد آرایش کنونی میخورد، ولی چون لحظه بعد آرایش نیروها عوض میشود، ارزیابی کنونی شاید به کلی بیهوده باشد!!
به زبان ریاضیات مهندسی، میتوان گفت که وقتی شرایط اولیه یک معادله ریاضی ثابت باشد، یک کامپیوتر میتواند این معادله را هرچند هم پیچیده باشد، به سادگی حل کند. اما اگر بلافاصله در ثانیه بعدی شرایط اولیه تغییر کند، آن هم تغییری که خودش تابعی از چگونگی اولین برخورد شما با معادله است، در آن صورت حل این معادله ممکن است از لحاظ نظری تا بینهایت به تعویق بیفتد.
درس دیگری که از این پدیده میتوان گرفت این است که دنبال کردن خط سیر تحولات در هرجهت تا عمق x مرحله کار بیهودهای است. بعضی از مسیرها مهمترند. این مسیرها را باید تا عمق مثلاً ده یا پانزده نوبت بازی دنبال کرد و بعضی دیگر را باید تا عمق پنج مرحله دنبال و بعد از آن را رها کرد. اشتباه است اگر همه مسیرها را تا عمق مثلاً هفت نوبت دنبال کنیم. در این صورت چگونه باید تشخیص دهیم کدام مسیر اهمیت استراتژیک بیشتری دارد و کدامیک از مسیرها کم اهمیتتر هستند؟
این چیزی است که یک انسان هوشمند گاهی به صورت خودآگاه و گاهی ناخودآگاه انجام می دهد. به همین دلیل وقتی مثلاً شیئی را در اتاقمان گم میکنیم، تمام اتاق را به شعاع سه متر زیر و رو نمیکنیم. این کار نادرست است. پس با خود میگوییم کجاها را باید دقیقتر بگردیم؟ کجاها را باید یک نگاه سطحی بیندازیم؟ شما از کجا میفهمید برخی مناطق داخل اتاقتان اهمیت بیشتری برای پیدا کردن یک شی گمشده دارد؟
http://www.aftab.ir/articles/computer_internet_infortmation_technology/software/c14c1178265643_software_p1.php
کامپیوتر چگونه شطرنج بازی میکند 6 ص