خوش آمديد!
05:10 سه شنبه 2 خرداد ماه ، 1391
همه از يك خانواده ايم
رويدادهاي در جريان (Current)
تهیه کتب شطرنجی



تهیه کتب شطرنجی

کتاب های جدید رسید 

یک تصویر (4)



اسمارتیزهای شطرنجی!

ما را از طریق فید بخوانید

كامپيوتر چگونه شطرنج بازي مي كند (2)



ادامه ...

 

اما واقعيت اينستكه هيچ كامپيوتري نمي تواند كل درخت مورد نظر را ايجاد كند . و تمام 10120 حركت ممكن را انجام دهد . بلكه كامپيوتر به جاي تمام كردن كل بازي مي تواند 3 يا 5 يا حتي 10 تا 20 حركت بعدي را انجام دهد (‌پيش بيني كند) .

 

 اگر فرض را بر اين بگيريم كه براي هر حركت مهره در بازي تنها 20 انتخاب داريم براي ايجاد يك درخت 5 مرحله اي كه بتواند 5 حركت جلوتر را پيش بيني كند 320000 حركت ممكن بايد بررسي شود . همچنين اگر بتوان يك درخت 10 مرحله اي ايجاد كرد بنابراين مي توان 10000000000000 ( 10 تريليون ) حركت ممكن را بررسي كرد  بنابراين در اينجاست كه سرعت كامپيوتر براي بازي شطرنج مشخص مي شود .

 

هرقدر سرعت كامپيوتر براي بازي بيشتر باشد حركات اينده بهتري در نتيجه با قدرت بيشتري پيش بيني مي شود . اما واقعيت اينجاست كه پرسرعتترين كامپيوتر شطرنج باز دنيا تنها مي تواند تا چند ميليون حركت را در هر ثانيه پيش بيني كند .

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

 

 مثلا اگر كامپيوتر در انتهاي حركت 11 مهره خواهد داشت و حريف 9 مهره در نهايت دو مهره ( 2 = 9 - 11 ) بيشترخواهد داشت كه اين نتيجه "خوب" دارد .


البته تابع فوق براي بازي شطرنج بسيار ساده است و تنها ملاك براي بازي تعداد مهره ها نيست . همانطور كه همه مي دانيم هر كدام از مهره ها براي خود ارزشي دارند . موقعيت و محل مهره ها نيز قابل توجه است .

 اينكه آيا شاه ما در خطر كيش هست يا خير ، وزير ما در خطر از دست رفتن مي باشد يا خير و موارد ديگر . اينجا وظيفه برنامه نويس است كه فرضا با ارزش گذاري روي مهره ها با اعداد بتواند ارزش مهره ها را مشخص كند مثلا قلعه معادل 5 سرباز است ، فارغ از اينكه تابع ما چه پيچيدگي هاي ديگري مي تواند داشته باشد . مهم اينست كه تابع ما در نهايت چه عددي بر مي گرداند . كه اين تابع نشانگر ميزان خوب يا بد بودن حركتي است كه قرار است انجام شود .
براي تشريح بيشتر مساله سعي مي كنيم يك درخت سه مرحله اي كه قابليت درست كردن سه حركت آينده را دارد را بكشيم و مساله را روي آن دنبال كنيم .

 
فرض را براين مي گيريم كه در هر حالت هر يك از مهره ها مي توانند تنها سه حركت انجام دهند .

 

 

 

كامپيوتر مهره سفيد است و مي تواند يكي از سه حركت ممكن را انجام دهد . اگر هر يك از سه حركت ممكن را انجام دهد مهره گردان مشكي هم ميتواند سه حركت انجام دهد ( در عمل تعداد حركات بيشتر است كه بدليل بزرگ شدن درخت از كشيدن تمامي حالات صرف نظر مي كنيم ) . بعد از حركت مهره هاي سياه مهره هاي سفيد هم ميتوانند دو حركت انجام دهند . (پايين ترين مرحله درخت ) Parsx 


اما براي تحليل درخت كامپيوتر از پايين ترين گره ( برگ ) شروع به محاسبه مي كند از سمت چپ پايين عدد بين دو برگي كه ارزش 8 و 2 دارند عدد 8 انتخاب مي شود اين بآن دليل است كه از آنجايي كه مهره سياه حريف است بايد پرارزشترين حركت را انتخاب كرد ( مهره سياه = ماكسيمم) از بين برگ هاي 4 و 8 هم 8 را انتخاب مي كند و بهمين ترتيب تا درخت به شكل زير در مي آيد :

 

 

حال كه به انتخاب حركت مشكي رسيديم بايد مقادير مينيمم را در مرحله دوم يعني عمق 3 ( مهره هاي مشكی ) انتخاب كنيم يعني بصورت قراردادي حركات مهره هاي سفيد كه خودش مي باشد بايد كمترين ارزش را داشته باشند بنابراين از سمت چپ بين سه عدد 887 عدد 7 براي مهره سفيد سمت راستي قرار مي گيرد و براي بعدي عدد 5 و بعدي عدد 4 بنابراين شكل درخت به شكل زير در مي آيد :

 

 

 

همانطور كه از شكل پيداست نوبت به انتخاب براي حركات سفيد است بنابراين بايد دوباره ماكسيموم مقادير را انتخاب كنيم . اكنون كامپيوتر آماده انتخاب مقدار ماكسيموم از بين سه عدد 754 مي باشد بنابراين كامپيوتر حركتي كه ارزش 7 دارد را انتخاب مي كند ( ماكسيموم )  Parsx 
الگوريتم حل اين مساله به الگوريتم  Minimax مشهور است كه در اين مساله ما مهره هاي سفيد را ماكسيموم و مهره هاي سياه را مينيموم ناميديم و به صورت يك در ميان از بين اعداد به ترتيب اعداد ماكسيموم و مينيموم را انتخاب مي كنيم

 .
بعد از آنكه كامپيوتر حركت به ارزش 7 را انجام داد . منتظر مي ماند تا مهره سياه نيز حركت خود را انجام دهد ، پس از آن دوباره درختي به شكل فوق درست مي كند و به ادامه بازي مي پردازد ،  البته اين الگوريتم با روشهايي چون هرس آلفا بتا قابليت هاي بالاتري از لحاظ سرعت و حجم حافظه مصرفي پيدا مي كند كه از تشريح جزئيات بيشتر خودداري مي كنيم .

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

 

در اين بين الگوريتم هاي ديگري نيز براي حل مساله صفحات شطرنج وجود دارند كه علاقمندان مي توانند براي اطلاعات بيشتر به جستجو در اين زمينه بپردازند .

نوشته شده توسط وحيد آقامحمدي



کلمات کليدي :
ارسال شده در مورخه : چهارشنبه، 6 تير ماه ، 1386 توسط admin  چاپ مطلب

مرتبط با موضوع :

 2  [دوشنبه، 1 خرداد ماه ، 1391]
 1  [دوشنبه، 1 خرداد ماه ، 1391]
 تاریخچه جام ملت های آسیا - بخش آقایان  [جمعه، 29 ارديبهشت ماه ، 1391]
 تاریخچه جام ملت های آسیا - بخش بانوان  [جمعه، 29 ارديبهشت ماه ، 1391]
 شطرنج با مهره های انسانی در محله هارلم!  [جمعه، 15 ارديبهشت ماه ، 1391]
 كامپيوتر چگونه شطرنج بازي مي كند (1)  [سه شنبه، 5 تير ماه ، 1386]
 نخستين كتاب شطرنج  [جمعه، 1 تير ماه ، 1386]
 نقش شطرنج بر يافته هاي باستاني !  [پنجشنبه، 31 خرداد ماه ، 1386]

ورود
نام کاربری

رمز عبور

چنانچه تاکنون عضو این سایت نشده اید می توانید با تکمیل فرم مخصوص عضویت به جمع کاربران این سایت بپیوندید و از امكانات مخصوص كاربران استفاده نمائيد .
امتیاز دهی به مطلب
امتیاز متوسط : 4.2
تعداد آراء: 5


لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

عالی
خیلی خوب
خوب
متوسط
بد

اشتراک گذاري مطلب