مثال: هرس آلفا بتا

Download Report

Transcript مثال: هرس آلفا بتا

Slide 1

‫دانشگاه امام رضا (ع)‬

‫سعید راحتی‬
‫‪1387‬‬

‫تهیه کننده اسالیدها‪ :‬مصطفی جهانگیر‬
‫‪1‬‬


Slide 2

‫‪2‬‬

‫‪‬بازيها حالتی از محيطهای چند عاملي هستند‬
‫‪‬هر عامل باید فعالیت سایر عامل ها و تاثیر آنها بر روند کار خود را در نظر بگیرد‪.‬‬
‫‪‬تفاوت بین محيطهای چند عاملی رقابتي و همکار‬
‫‪‬محيطهای رقابتی‪ ،‬که در آنها هدف هر یک از عامل ها در تعارض با دیگر عامل ها می باشد‪ ،‬منجر به مسئله‬
‫های جستجوی تخاصمی مي شود که به عنوان بازی شناخته مي شوند‬
‫‪‬چرا بازی ها مورد بررس ی قرار می گیرند؟‬
‫‪‬قوای عقالنی زیادی به خود اختصاص داده اند‪.‬‬
‫‪‬طبیعت انتزاعی بازی ها‬
‫‪‬بازنمایی حالت یک بازی ساده است و عامل ها معموال به انجام یک سری از اقدامات که نتایج آنها نیز به‬
‫صورت قوانین دقیق مشخص شده است‪ ،‬محدود می باشند‪.‬‬


Slide 3

‫‪3‬‬

‫‪‬بازی دو نفره‪ :‬کمینه و بیشینه‬
‫‪ ‬بیشینه اولین حرکت را انجام می دهد و سپس دو طرف به نوبت بازی می کنند تا بازی خاتمه یابد‪.‬‬
‫‪‬در خاتمه ی بازی‪ ،‬برنده امتیاز می گیرد و بازنده جريمه مي شود‬

‫‪‬بازی به عنوان يک مسئله جستجو‪:‬‬
‫‪‬حالت اوليه‪ :‬شامل موقعیت اولیه بازی و شخص ی که باید بازی را شروع کند‪ ،‬می باشد‪.‬‬
‫‪‬تابع پسین‪:‬ليستی از زوج های (‪ )move,state‬را برمی گرداند که معرف يک حرکت مجاز و حالت نتیجه‬
‫آن می باشد‪.‬‬
‫‪‬آزمون پایانی‪ :‬پايان بازی چه موقع است؟(حالتهای پايانی)‬
‫‪‬تابع سودمندی(تابع هدف یا تابع تسویه)‪ :‬برای هر حالت پايانه يک مقدار عددی را ارائه ميکند‪ .‬مثال‬
‫برنده(‪ )+1‬و بازنده(‪)-1‬‬
‫‪‬حالت اوليه و حرکات معتبر برای هر بازيکن‪ ،‬درخت بازی را برای آن بازی ايجاد مي کند‬


Slide 4

‫الگوريتم؛‬
‫‪‬بازيکن‪ :‬انتخاب بهترين حالت‬

‫‪‬حريف ‪ :‬انتخففاب بهتففرين موقعيففت‬
‫ب فرای خ ففودر ي ففا ب ففدترين وض ففعيت‬
‫برای بازيکن‬
‫بازيکن‪ :‬حالت بیشینه‬
‫حري ‪ :‬حالت کمینه‬

‫‪4‬‬


Slide 5

5


Slide 6

6


Slide 7

7


Slide 8

8


Slide 9

9


Slide 10

10


Slide 11

‫‪11‬‬

‫یک کاور اول عمق را در درخت بازی انجام می دهد‪ .‬اگر فرض کنیم حداکثر عمق درخت برابر ‪ m‬باشد و در هر‬
‫نقطه بتوان ‪ b‬حرکت مجاز انجام داد داریم‪:‬‬
‫کامل بودن‪ :‬بله (اگر درخت محدود باشد)‬
‫بهينگي‪ :‬بله‬
‫پيچيدگي زمانی‪:‬‬
‫پيچيدگی فضا‪:‬‬

‫‪m‬‬

‫) ‪O(b‬‬

‫)‪O(bm‬‬


Slide 12

‫‪‬تخصيص يک بردار به هر گره‪ ،‬به جای يک مقدار‬
‫ً‬
‫‪‬بازيهای چند نفره معموال شامل اتحاد هایی میان بازيکنان است‬
‫‪‬اتحاد با پيشروی بازی ايجاد و از بین میرود‬
‫‪‬بازيکنان بطور خودکار همکاری ميکنند‪ ،‬تا به هدف مطلوب انحصاری برسند‬

‫‪12‬‬


Slide 13

‫در الگوريتم بیشینه کمینه‪:‬‬
‫‪‬تعداد حالتهای بازی که بايد بررس ی شوند‪ ،‬بر حسب تعداد حرکتها‪ ،‬توانی است‬
‫‪‬راه حل‪ :‬محاسبه تصميم الگوريتم‪ ،‬بدون ديدن همه گره ها امکان پذير است‬
‫هرس آلفا بتا‪:‬‬
‫‪‬انشعابهايي که در تصميم نهايي تأثیر ندارند را حذف ميکند‬
‫‪‬آلفا‪ :‬مقدار بهترين انتخاب ممکن در هر نقطه انتخاب در مسیر بیشینه تاکنون‬
‫‪‬بتا‪ :‬مقدار بهترين انتخاب در هر نقطه انتخاب در مسیر کمینه تاکنون‬
‫تقليل ميابد‬
‫‪‬تعداد گره هايي که بايد بررس ی شوند به‬
‫‪‬فاکتور انشعاب مؤثر به جای ‪ b‬برابر با جذر‪ b‬خواهد بود‬
‫‪d/2‬‬
‫‪O(b‬‬
‫)‬
‫‪‬پيش بيني آن نسبت به بیشینه کمینه دو برابر است‬

‫‪13‬‬


Slide 14

‫‪‬گره ‪ n‬که هر جای درخت ميتواند باشد‪ ،‬بررس ي مي شود‬
‫‪‬اگر بازيکن انتخاب بهتری داشته باشد‬
‫‪‬در گره والد ‪n‬‬
‫‪‬يا هر انتخاب بهتری تا کنون‬
‫‪ n‬هيچوقت در بازی واقعی قابل دسترس نخواهد بود‬
‫‪‬در نتيجه ‪ n‬هرس ميشود‬

‫‪14‬‬


Slide 15

‫‪15‬‬

‫محدوده مقادير ممکن‬

‫]∞‪[-∞,+‬‬
‫]∞‪[-∞, +‬‬


Slide 16

16

[-∞,+∞]

[-∞,3]


Slide 17

17

[-∞,+∞]
[-∞,3]


Slide 18

18

[3,+∞]

[3,3]


Slide 19

‫‪19‬‬

‫]∞‪[3,+‬‬
‫اين گره برای ‪ Max‬مناسب نيست‬

‫]‪[-∞,2‬‬

‫]‪[3,3‬‬


Slide 20

20

[3,14]

,
[-∞,14]

[3,3]

[-∞,2]


Slide 21

21

[3,5]

[3,3]

[−∞,2]

,

[-∞,5]


Slide 22

22

[3,3]

[3,3]

[−∞,2]

[2,2]


Slide 23

23

[3,3]

[3,3]

[-∞,2]

[2,2]


Slide 24

‫‪24‬‬

‫‪‬معايب الگوريتم های پيشین‬
‫‪‬الگوريتم بیشینه کمینه کل فضای جست و جوی بازی را توليد مي کند‬
‫‪‬الگوريتم آلفا‪-‬بتا با وجود هرس درخت‪ ،‬اما کل مسیر حالتهای پايانه‪ ،‬حداقل برای بخش ي از فضای حالت‪ ،‬بايد جست و جو‬
‫شود‬

‫‪‬اين عمق عملي نيست‪ ،‬زيرا حرکات بايد در زمانی معقول انجام شود‬
‫‪‬برای کمتر شدن زمان جست و جو و اعمال تابع ارزيابي اکتشافی به حالتهای جستجو‪ ،‬بهتر است از گره های غیر پايانه به‬
‫گره های پايانه پرداخته شود‬


Slide 25

‫‪25‬‬

‫‪‬در شانون‪ minimax ,‬و آلفا‪-‬بتا به دو رور بطور متناوب عمل ميکنند‬
‫‪‬جايگزيني تابع سودمندی با تابع ارزيابی اکتشافی بنام ‪EVAL‬‬
‫‪‬تخمينی از سودمندی موقعيت ارائه ميکند‬
‫‪‬جايگزين تست پايانه با تست توق‬
‫‪‬تصميم ميگیرد ‪ EVAL‬چه موقع اعمال شود‬


Slide 26

‫‪26‬‬

‫‪‬تابع ارزيابی‪ ،‬ارائه تخمينی از سودمندی مورد انتظار بازی از يک موقعيت خاص‬
‫‪‬توابع اکتشافی‪ ،‬تخمينی از فاصله تا هدف را بر ميگرداندند‬
‫‪‬اغلب توابع ارزيابي‪ ،‬خواص گوناگونی از حالتها را محاسبه ميکنند‬
‫‪‬خواص روی هم رفته‪ ،‬کالسهای هم ارزی يا دسته های مختلفی از حالتها را تعري ميکنند‬
‫‪‬حالتهای هر دسته‪ ،‬برای تمام خواص مقدار يکسانی دارند‬
‫‪‬هر دسته حاوی چند حالت است که‬
‫‪‬موجب برنده شدن‬
‫‪‬موجب رسم شدن‬
‫‪‬منجر به باختن‬
‫‪‬تابع ارزيابی نميداند کدام حالت منجر به چه چیزی ميشود‪ ،‬اما ميتواند مقداری برگرداند که تناسب حالتها را با هر نتيجه نشان‬
‫دهد‬


Slide 27

‫‪‬اغل ففب تواب ففع ارزي ففابی‪ ,‬مق ففدار‪w‬ع ففددی جداگان ففه‬
‫ای بف فرای هف ففر خاصف ففيت محاسف ففبه‪ ،‬سف ففپس آنهف ففا را‬
‫ترکيب ميکنند تا مقدار کل بدست آيد‬
‫‪i‬‬

‫مثال در تابع بازی شطرنج‪:‬‬

‫‪fi‬‬

‫‪fi‬‬

‫تعداد هر نوع قطعه در صفحه‬

‫مقف ففادير آن قطعف ففات(‪ 1‬بف فرای پيف ففاده‪ 3 ،‬بف فرای‬
‫اسب يا فيل‪ 5،‬برای رخ و ‪)...‬‬

‫‪27‬‬

‫)‪Eval(s) = w1 f1(s) + w2 f2(s) + … + wnfn(s‬‬


Slide 28

‫از مقدار پیروزی در دو موقعيت کامال متفاوت ‪EVAL‬ارزيابی تابع‬

‫ب) سفيد حرکت ميکند‬

‫الف) سفيد حرکت ميکند‬

‫ال ) سياه‪ ،‬مزيت اسب و دو پياده دارد و بازي را مي برد‬
‫‪28‬‬

‫ب) پس از اينکه سفيد‪ ،‬وزير را در اختيار ميگیرد‪ ،‬سياه مي بازد‬


Slide 29

‫‪29‬‬

‫‪‬وقتففی بوجففود مففي آيففد کففه برنامففه بففا اثففری از رقيففب مواجففه‬
‫شود که منجر به خرابی جدی گشته و اجتناب پذير است‬
‫‪‬مثال‪ :‬شکل مقابل؛‬
‫سففياه در اصففل جلوسففت‪ ،‬امففا اگففر سفففيد پيففاده ار را‬
‫از سففطر هفففتم بففه هشففتم ببففرد‪ ،‬پيففاده بففه وزيففر تبففديل‬
‫ميشود و موقعيت برد برای سفيد بوجود مي آيد‬


Slide 30

30