بسم الله الرحمن الرحيم اليوم إن شاء الله بدنا نكمل
موضوع الـ adversarial search موضوع الـ adversarial
search اللي بدينا فيه المحاضرة الماضية كان .. كنا
.. حكينا فيه اللي هو الـ minimax procedure أو الـ
minimax algorithm وبرجع سريعًا على المثال اللي
طلعنا عليه المحاضرة اللي فاتت، المثال كان عن كيف لو
احنا اللعبة اللي تبعت الـ Tic-Tac-Toe اللي هي كل
لاعب بيحط من عنده قطعة، والهدف أن اللاعب ينزم
اللاعب الآخر بإنه يكمل خط مستقيم سواء أفقي أو
عمودي أو قطري، هذا الـ problem، طبعًا الـ universe
algorithm تتعامل مع الموضوع على أساس أنه
تذكر الخطوات اللي حكينا فيها، أول خطوة إيش؟ أنه to
generate اللي هو الـ search space كله، مظبوط، الـ tree
كلها، بمعنى آخر، علشان نحدد اللي هو الـ leaf nodes، و
هذه كانت الخطوة رقم واحد، صح؟ إيش الخطوة رقم
اثنين؟ بعد هيك نفسنا بدنا نعمل evaluation للـ leaf
nodes، نأخذ الأرقام هذه الـ evaluation اعتمادًا على الـ
evaluation
function أو الـ fitness function، بعد ذلك هذا رقم
اثنين، بعد ذلك رقم ثلاثة إيش بيصير؟ أن احنا بدنا
نعمل propagation للقيم من الـ leaf nodes
إلى الـ parent nodes، الـ propagation هذا هو اللي في
الآخر بيعطي الـ root node الـ value تبعها، علشان الـ
max يعرف من أولها إذا كان إيش هي الـ child الأفضل هنا
الثلاثة، معناته الـ P، صح الكلام؟ الكلام
هذا، قلنا إن فيه وسيلة
نختصر الـ search space، بدلًا من أننا نضطر
أن يتم زيارة كل الـ nodes أثناء عملية الـ evaluation
والـ propagation، لأن نقدر من بدري، مبكرًا، نعرف إنه
ما في داعي، إذا كنت هنا ورأيت الثلاثة، ممكن أعرف إن
ما في داعي أكمل، أفحص الـ باقي الـ siblings، هذا الكلام
اللي كان اسمه الـ alpha beta pruning، صح؟ الـ alpha
beta pruning، صحيحة
للكلام، صح، okay، اليوم راح نبدأ نطلع على فكرة الـ
alpha beta pruning
بشكل سريع، وبعدين
نرجع ثاني للـ algorithm مرة أخرى، نشوفها بشكل
كامل، يعني هنا الآن الـ A والـ B والـ C والـ D هي
خطوات في تنفيذ الـ minimax procedure نفسها، لاحظت
هنا أن الـ A لسة أنا مش عارف الـ value تبعها، عشان
أعرف الـ value تبعها، لازم أخش على الـ parent، على الـ
child تبعها، الـ child أنا مش عارف، لازم أشوف مين الـ
children تبعهم، الـ children تبعهم، افترضنا أن هدول
خلاص، dead end، leaf nodes، ما فيش ما عليك تقاربهها
فأول child بنشوفه، طبعًا الشغل كله depth first،
مظبوط، أول child بنشوفه، ثلاثة، ثلاثة الآن هادي،
لأن احنا هنا الـ node هذه في البداية في دور مين؟
الدور هذا دور مين؟ الدور هذا دور مين؟ الـ max، الآن
في دور الـ min، أنا واقف على الـ node هذه وأفحص الـ
children تبعهم، جيت للثلاثة، جيت لأول child، الـ
value تبعه ثلاثة، فالثلاثة هذه بتصير هي الـ beta
بتصير هي الـ beta value، الـ beta value هذا هو عبارة
عن قيمة اللي لسة مبدئية، اللي بقيم بيها الـ node هذه،
الـ node هذه قيمتها تعتمد على الـ children تبعها،
مظبوط؟ بس أنا لسة ما شفتش الـ child الثاني، فمبدئيًا،
مبدئيًا الـ child هذا الـ value تبعه هو الـ value
تبعنا، لما نشوف other children ونلاقي إنه فيه أقل
من الثلاثة، مظبوط؟ أقل ولا أكثر؟ أقل، لأن أنا في دور
الـ Min، الـ Min بدي يحمل value أقل واحد في الـ
children تبعهم، أو لا لا، أنا بستمر الآن أشوف الـ
child الثاني، إذا وجدت واحد أقل من الثلاثة في دوره
أحطه الـ value تبعه هو بدل الثلاثة في الـ beta، ماشي؟
الحاجة هذه الآن، وهذه
إيش لكل
node؟ لكل node هيبقى فيه لها two values، alpha و
beta، في
إيه، الآن استمرينا في الـ .. جينا الـ chart الثاني،
إيش الـ value تبعه؟ ماشي، الـ beta بتظهر زي ما هي،
مظبوطة؟ الـ beta بتظهر زي ما هي، هنا ثمانية، الـ beta
نفس الشيء بالنسبة للـ alpha value، الـ alpha value،
الـ
beta مفترض أنه عبارة عن أقل قيمة، الـ alpha من
ناحية ثانية، الـ alpha إيش راح تكون؟ أقل قيمة
بالنسبة لي الـ children بعدهم، الآن هذا الـ child، إن
عرفت الـ beta value تبعه، صح؟ خلاص انحسمت، لأنه خلصت
احنا الـ children تمامًا، انحسمت، أن الـ beta value
تبعه ثلاثة، الآن على الـ level اللي أعلى، احنا في دور
من الـ max، مظبوط؟ فالـ max الآن بيطلع على الـ
children تبعون الـ node هذه، الـ node هذه، الـ children
تبعونها بياخذ الـ value الأعلى تبع الـ children هذه،
الآن الـ value تبعها مبدئيًا هي ثلاثة، لازم أفحص من
الـ child الثاني عشان نشوف لو ربما هذا أعلى من
ثلاثة، صح؟ أعلى من ثلاثة، خشينا على C، C، أول
child فيها اثنين، تذكروا أننا خشينا على C، C، لأن في
دور الـ min، فأول child اثنين، نستمر في البحث أساسًا أن
نجد أقل من اثنين، طيب ليش أنا استمر أبحث عن أقل من
اثنين، إذا كان أنا الـ parent تبعي بدور عن أكثر من
ثلاثة؟ فهنا في هذه اللحظة، في هذه اللحظة مجرد ما أشوف
الاثنين، والاثنين هذه تترحل كـ beta value للـ C، صح؟ مش
هي تترحل، تترحل كـ beta value للـ C، تمام؟ فلأن الـ beta
value تبع الـ C أقل من الـ alpha value تبع الـ parent
تبعها، مين الـ parent تبع الـ C؟ الـ A، الـ A إيش الـ
parent، إيش الـ alpha value تبع الـ A؟ من أين جاءت
الثلاثة؟ هي المرشحة، نتيجة أنه احنا عرفنا أن الـ B
الـ child الأول، الـ value تبعه ثلاثة، فاترشحت الثلاثة
كـ alpha value للـ A، اترشحت بمعنى أنه احنا إذا بدنا
نستمر في البحث، فبدنا نبحث عن أفضل من الثلاثة، ماشي؟
أنا الآن على الـ C، الـ beta value تبع الـ C اثنين،
والاثنين هم أقل من الـ alpha تبع الـ parent، الـ
parent
اللي هو مين؟
الـ beta تبع الـ C اثنين، وهي أقل من الـ alpha تبع
الـ parent، الـ parent اللي هي parent تبع الـ C، يعني
هذا الكلام بقدر آخذه كقاعدة باستمرار، أنه لما نكون
أنا واقف على node، والـ node هذه في مستوى الـ Min، و
الـ beta تبعها، beta تبع هذه الـ node كان أقل من الـ
alpha تبع الـ parent بتاعها، بقدر أوقف وما احتاجش
أفحص باقي الـ children تبعونها، للـ node C هي الـ node
الـ children تبعونها باقي الـ children، والـ parent
إذا أنا الـ children تبعونها الآن قيمتهم أقل
من الـ alpha تبع الـ parent، بقدر أوقف، ما في داعي
أستمر، صح؟ أستمر، ليش؟ أستمر عشان أجيب أقل من الاثنين،
في الوقت اللي الـ parent ملزمة بأكثر من الثلاثة، حتى
لو كانت الاثنين هذه تساوي الـ alpha، بوقف برضه، بقى
صح؟
يعني كـ rule، أهمية إذا أنا فعلاً node
عندما تكون الـ node على level من الـ min، وأنا الـ
beta تبع الـ node
أقل من أو تساوي الـ alpha تبع الـ parent تبعها،
اعتبرها rule عامة،
هنا نفس الشيء حصل، هنا
نفس الشيء، لا أنا اختلف هنا، إيش؟ خلاصنا من هنا، وقفنا
هنا، ما نفحصش، هنا وقفنا وانتقلنا على طول إلى مين؟ الـ
node الثاني، الـ sibling الثاني، دي أول child اللي كان
أربعة، أربعة عشر، أترحلت كـ beta للـ D، هل الـ beta هذه أقل من
الـ alpha تبع الـ parent؟ لا، الـ alpha تبع الـ parent
ثلاثة، صح؟ الـ alpha ليه؟ اللي على
الشمال، بالـ beta اللي على اليمين، مظبوط؟ فالآن الأربعة عشر
هذه، لأنها أربعة عشر، بتترحل كـ value بدل القيم الأولى،
مظبوط؟ لأن الـ alpha أصلاً بتطلع على أي حاجة على الأكبر،
بتطلع على الأكبر، فلما جينا هذه أربعة عشر، أكبر من
الثلاثة اللي كانت موجودة، فاتحولت ليش؟ إلى أربعة عشر الآن،
أستمر، أستمر، لأنه قد يكون فيه أكثر من الـ أربعة عشر، أستمر
بأفحص، فلاقيها خمسة، تمام؟ لأن الخمسة هذه ما بتحيلش
محل الأربعة عشر، ليش؟ لأن عندك الـ ..
الخمسة عند الـ D بتحل محل الأربعة عشر عند الـ D؟ لو مش
موجودة أربعة عشر، بتحل محلها، ما في أربعة عشر هنا، أتت وهيأت،
كانت أربعة عشر، أجري اللي شفنا خمسة، بتحل الخمسة محل أربعة عشر؟
طبعًا بتحل، ليش؟ لأن هذا الـ D في level إيش؟ الـ
Minimum، والـ Minimum، والـ Minimum، والـ Minimum،
بدور الأصغر، القليل، كانت أربعة عشر، أخذتها، وبعدين جاءت اثنين،
أخذتها، صارت اثنين، الآن هذه اللي كانت كويسة لها، لكن لأنها
استبدلت، فبدها تستبدل وترجع من الثلاثة، هي الأفضل،
يعني هذا الكلام، لما شفت الأربعة عشر، أخذتها، وروح حالتها
فوق، لكن لما شفت الخمسة، أخذتها، وروح حالتها فوق،
لما شفت الاثنين، أخذتها، وروح حالتها فوق، لأنها عندها
إيش؟ أفضل منها، فبأخذ الأفضل منها، هذا الآن كقاعدة على
مستوى الـ min، على مستوى الـ max، على مستوى الـ max،
الآن بقدر أعكس الكلام على مستوى الـ max، بقول: إن
الـ node at الـ max level، إيش أقول؟ إذا الـ alpha of
الـ n، إذا الـ alpha تبعت الـ node، إذا أنا واقف عليها،
max level، افترض
أنه هذا max level، مش min level، والـ node اللي أنا
واقف عليها، الـ alpha تبعها، الـ alpha تبعتها صارت أكبر
من الـ beta، أكبر من الـ beta تبعت من الـ parent، لأن
أنا الآن على max، هذا الآن يصير max، لأن
أنا أفترض أنه هو max، فأنا
جيت node، الـ node هذه الـ alpha تبعتها، أنا الآن max، الـ
node هذه، الـ child أترحلت، فصار عندنا الـ alpha تبعت الـ
parent، أكبر من الـ beta، تبع الـ alpha تبع الـ node،
أكبر من الـ beta تبع الـ parent، إيش بيصير في هذه
الحالة؟ لازم أوقف، ليش؟ لأنه أنا على max، وعندي شيء
كبير، وبدي أستمر عشان أجيب أكبر منه، وهذا الأكبر مش
بدي فيه، إذا كان أكبر من الـ beta تبع الـ parent، فقلت
لازم إيش؟ أوقف الـ search،
واضح هيك؟ اه، طيب خلينا الكلام هذا نشوف مثال ثاني
على الـ minimax problem، ونحاول
أولًا نحله بالـ minimax بدون pruning، وبعدين نطبق الـ
pruning عليه، افترض أن أنت عندك اللعبة، في أمامك
مجموعة من القطع، نقول سبع قطع، واتنين بيلعبوا اللعبة
اتنين اتنين اتنين اتنين اتنين اتنين اتنين اتنين
اتنين اتنين اتنين اتنين اتنين لو جسمت اتنين أول
واحدة في نفسها هي صح؟ في تانية واحدة أو واحد واحد
ثلاثة اه خلاص فيهم طب
هذه ممكن اجسم هذه الثلاثه أو اجسم هذه الثلاثه
صح؟ عشان هيكلع معايا واحد اتنين في زيها واحد واحد
اتنين ثلاثة هي اه
عشان نبسط خلاص يعني أنا اقسم حالتين سنة قسمت هذه
الثلاثه و هذه الثلاثه نفس الـ state نفس الوضع اللي
بيطلع معاها طيب هذه الآن نفسها نفس خياراتها كلهم
اللي هم اتنين هذول أو اتنين ماهم اللي هم اتنين
واحدين
اه أصلا هذه المفروضة أشرت عليها صح نشيلها من هنا
نعم نعم نعم نعم نعم نعم نعم نعم نعم نعم نعم نعم
نعم نعم
نعم نبعد هيك نفسها واحد اتنين اتنين واحد واحد
اتنين واحد اتنين واحد اتنين واحد اتنين واحد اتنين
واحد اتنين واحد اتنين واحد اتنين واحد اتنين واحد
اتنين واحد اتنين واحد اتنين واحد اتنين واحد اتنين
واحد اتنين واحد اتنين واحد اتنين واحد اتنين واحد
اتنين واحد اتنين واحد اتنين واحد اتنين واحد اتنين
واحد اتنين واحد اتنين واحد اتنين واحد اتنين واحد
اتنين واحد اتنين واحد اتنين واحد اتنين واحد اتنين
واحد اتنين واحد اتنين
أو نفسك
أو
نفسك أو نفسك أو نفسك
أو نفسك أو نفسك أو نفسك أو نفسك أو نفسك أو نفسك أو
نفسك أو نفسك أو نفسك أو نفسك أو نفس لو أخذت هذه و
لا هذه و لا هذه هيطلع لك نفس الـ state هذه صح؟ طيب
هنا واحد واحد اتنين واحد و بعدين اتنين اللي هي هذه
اتنين واحدات و اتنين واحد واحد واحد اتنين واحد
اتنين واحد اتنين واحد اتنين اتنين اتنين اتنين
اتنين اتنين اتنين اتنين اتنين اتنين اتنين اتنين
اتنين اتنين اتنين اتنين اتنين اتنين أول واحد ثلاثة
شغلان
اه نبتدي
الحل اش
كمان كم من هذه واحد واحد واحد واحد واحد أربعة خمسة
خمس و اتنين و بعدين اتنين و بعدين زيها مش زيها
زيها؟ و بعدين هي أكثر من واحد انها دي بدينا هنا في
level تبع max وهذا من وهذا max وهذا من وهذا max
وهذا منهنا هذه لمن مخسر و لا مكسر لو دور من هو
قدامه على الطاولة و الوضع زي ذلك مخسر المخسر لمن
مكسب ل max فده أحط أي one هذه الـ value تبقى مش هحط
تسعة أو أربعة ايش هحط تسعة أو أربعة هو يا اما مكسب
يا ما خسارة يعني تقييم الـ note يا اما win يا اما
lose when واحد will lose zero لأن لو كان عنده في
المقابل هنا في دور max وكان عنده اللوحة زي هيك
خسارة ل max لأنه مش هيقدر ما عنده خيار غير أنه يقسم
هذه ويقسم هذه فده هيخسر فهذا zero ل max هنا هذا
اه هذا مش leaf node
طيب هذه ليها مش leave node ايش الـ value تبعها لما
أنها parent ايش الـ child children اللي لها بس هذا
ايش بدها تاخد الـ value الـ value تبع الـ node اللي
جاي في max بده تكون الـ maximum تبع الـ children
تبعونها عموما في الشيء الـ child ايش الـ maximum هو
child واحد ايش الـ maximum تبعه واحد لأن هذه الـ
node لديها 8 children 1 0 1 1 يبقى 1 لماذا؟ لأنها
في دور الـ min الـ min يأخذ الـ minimum هذه الـ
node لديها child 1 لماذا؟ لأنها في دور الـ min
فتلقائيًا 0 هذه لديها child 1 و هي في دور الـ min
فتلقائيًا الـ value لها 0 بالأعلى هذه في دور الـ max
الـ children تبعونها هذا وهذا اتنين اتنين
Zero هذا الـ node لثلاثة children هذا قيمناها احنا
Zero هذه الـ node في دور الـ max
فهي Zero فهادد كله
Zero هيت شايد هيت شايد في عنا اشي غلطين يعني مفروض
أن يطلع معاه واحدة الاخيرة في دور
الـ min في دور الـ min تمام احنا ايش قلنا اه خسارة لمن فهي
max up لـ max الواحد هنا يعني max up لـ max طب أنت
بتضرر أني أحط 0 في الظلمة ما هي احنا بنحط الارقام
هذه relative to max صفر يعني مخسر لـ max واحد يعني
max up لـ max فهي اذا .. اه اذا ليه max .. هذه ايش
هذه؟ هذه مخسر لمن؟ مظبوط جاي في دوره وما عنده
خيار غير ايه بنقسم الاتنين الى هو ليش كانت بتصير
خسارة؟ ليش خسارة؟ لأنه بده يقسم الكوم الى جسمين
متساويين وهذا هي الخسارة لو أنت اضطريت انك تقسم
طبعا أنت بتقدر تقسم بدون ما يكونوا متساويين فانت
okay اذا اضطريت انك تتقسم ويكون الجسمين متساويين
فهذه خسارة خلاص اقتصادا لأن هو جيت خلينا نتبع على
الـ slide هذه بدل الذهب okay
عندي أنا هنا الـ state هي في دور مين اجت في دور max
فmax
وجه الحالة هذه بدل طرق يكسب الاتنين الى قسمين
متساويين فخسارة اذا ماشي حينها بدنا نطلع ثاني برضه
على الـ leaf nodes في الأول لازم تـ evaluate لازم ت
evaluate الـ leaf nodes هي دي الآن هي في وضع الـ min
وهي خسارة لمن فهي ماكس لـ max وين كمان فيه leaf
nodes هذا ليس leaf على هذا الـ level هذا leaf مظبوط
هذه leaf node في
دور الـ max وهي خسارة لـ max لأنه اذا اخذ أي واحد من
هؤلاء سيقسمهم مظبوط تستخدم فهي الـ zero لأن هؤلاء
بس هم الـ leaf nodes
لأن رحل على يعني propagation على الـ parents الـ
zero هنا في دور الـ min الـ zero بتروح للـ parent على
طول هنا في دور الـ max الـ واحد، مظبوط؟
لأن الـ parent هنا في دور الـ max ما عنده الـ child
واحد، الـ zero بياخد الـ zero صح؟ مظبوط هيك؟ هذا الـ
node ما عندكش الـ child واحد اللي هو الـ one اللي هي
تاخد one الان تعال على الـ level هذا فيه عندك الـ
node هذه الـ node هذه فيها two children الـ zero و
الـ one و هي في دور الـ min فبتاخد zero هذه الـ child
واحد على طول بتاخد زي ما هو هذه الـ child واحد
بتاخد الـ value نفسه وهذه برضه الـ node اللي هي
child واحد بتاخد الـ value نفسه صح الان تعال على
الـ level هذه هذه لـ two children و هي في دور الـ max
0 1 فتاخد one هذه one و zero فتاخد one هذه في الـ
child واحد فتاخد نفس الـ value نفس الـ واحد و واحد
فتاخد واحد اترحل في نهاية القمر على الـ level الـ
root اللي هو الواحد يعني الـ root هو الشبكة بتاعته؟
ايوة الـ root الان الـ root هو في دور الـ min و الـ
min أمامه الكوم الأساسي اللي فيه سبع حبات الان ايش
ياخد action؟ بدي ياخد الـ action اللي بيقطيه value
one مين هذول اللي بيقطيه value one؟ ثلاثة يمكن
بياخد أي واحد منهم randomly بالتساوي بنفس القيمة
الثالثة الآن افترض انه اخذ هذا الـ action الان في
دور الـ max والـ max أمامه هذا الـ action أمامه هذا
الـ state انا اسمه ياخد انهي action في two actions
two possible actions ياخد الـ action الـ value تبع
one مظبوط فمن الـ value تبع one هذا فياخد الـ action
ويقسم الأكوان من هذا الشكل يأتي دور الـ min الآن
مظبوط؟ فهذه أمامه خيار وحيد he has to play it this
way اللي هو أنه يكسب من 4 إلى 3 و 1 ما فيش غير هيك
صح؟ فالآن الإشارات الـ values هذه هي أصبحت كإنها
إشارات مرور بالنسبة للـ game أنه تروح و توجه و هي
مغمضة بعد عملية الـ evaluation للـ leave notes و بعد
عملية الـ propagation من الـ leave ل الـ parent notes
لما يوصل عندي evaluation للـ root خلاص الـ game
بتتبع من الـ values الـ value اللي تم اختياره على كل
note كنت دائما بتسأل عن الـ math بالنسبة للـ math
دائما تحسب بالنسبة للـ max دائما تحسب بالنسبة للـ
اتنين بس احنا قاعدة لما يكون اللعبة فيها min و max
و .. و .. و التقييم و التقييم للـ note يا اما zero
يا اما one ف الـ zero للـ max هو one للـ min و العكس
صحيح احنا حلنا ارقام و حطمناها بالنسبة للـ max صحيح و
العكس منها هو لـ Min يعني إذا حطيت واحد لـ Max فهو
نفسه هو نفسه الواحد هذا يعني Zero لـ Min صحيح ولا
لا هذا في حالة اللعبة هذه في حالة لعبة تانية زي
اللي شرحناها في الأول الـ Tic Tac Toe مشكلة عندك
الوضع عندك التقييم النوت الواحدة ما بتاخذش يا Zero
يا One تاخد تقييم في Range فاحنا بنعطي التقييم على
حسب ما هو الـ max الـ max بنعطي الـ node الـ value تبع
الـ max اللي بده على أساسه يشتغل خلّيني
الآن نطلع على مسألة الـ pruning على المثال هذا اللي
هو شبه بالمثال الأولى اللي تبع الـ tic-tac-toe عندك
تقييم اتنين ثلاثة لا أو هذه تقييم لـ Leaf nodes لأن
2 و 3 في دولة الـ Min الـ Max ماذا يأخذ؟ يأخذ الـ
3 هنا هذا يأخذ الـ 9 هذا الـ 0 وهذا الـ 7 وهذا الـ
2 وهذا الـ 6 تلقائيًا في دولة الـ Min يأخذ الـ 3
يأخذ الـ 0 يأخذ الـ 2 وفي دولة الـ Max يأخذ الـ 3
لو بدنا نعمل Pruning لهذا الكلام الآن Pruning
بمعنى أن أنابدي أجي أخلي الـ algorithm توفر جزء من
عملية الفحص لأن
على هذا الـ level الـ alpha لسه مش معروف دخلنا على
الـ child هذا لسه مش عارفين ايش الـ children تبعهم
دخلنا على الـ alpha وبالتالي الـ beta لسه مش معروف
هنا الـ alpha لسه مش معروف إلى أن شفنا الاتنين
الاتنين معناته alpha بساوي اتنين تمام؟ مظبوط؟ شفنا
الثلاثه الثلاثه أحسن من ال alpha فبنحوّنها لثلاثة
تمام؟ لأن ثبتت فش child آخر خلاص خلاص نقصد الثلاثه
ثبتت ال alpha على ثلاثة فخلاص أصبحت الـ value تبع هذه
الـ node ثلاثة مظبوط؟ حتى لأن ما عملناش any pruning
يعني ما قفرناش فحصنا كل الـ children هذه الثلاثه بما
أنها ثبتت تترقى كـ beta ل الـ parent الان شفنا
الثلاثه تترقى هنا الان هنا بنشوف الـ child الثاني
الـ child الثاني أنا لسه مش عارف مش عارف الـ value
لسه الـ beta اللي تبقى في الـ beta مش محددة لازم
أكمل أنا على max اتنين، واحدة، هل واحدة دي أكثر من اتنين؟
فبتظل تسمى على اتنين لأن سبت هذه على اتنين، صلت هذه.
الـ beta إيش اتنين؟ لأن هل استمر أشوف الـ child هذا؟
ليش؟ لأن أنا في level هنا، أنا الآن هنا، والـ beta
تبعي أقل من الـ alpha تبع الـ parent، أنا هنا على إيش؟
اتمن level with
بيتا أقل من أقصى من Alpha، أنا هنا.. أنا هنا.. و
ثبتت معايا.. وثبتت معايا.. وعندي الـ Beta على
اتنين تمام.. الـ Beta على اتنين، والاتنين هذول اللي أقل
من الـ Alpha تبعت الـ parent، صح؟ صحيح.. هل أكمل
الآن؟ أخش في هذا الـ branch ولا لأ؟ لأ، صح.
لأن الـ Beta تبعت أقل من Alpha of الـ parent، فبواجف و
بحط إيش؟ وين بحط؟ هنا مظبوط؟ ما أخشش على الفرع هذا.
كله يعني هي نفس القاعدة، هي نفس القاعدة، أنا أنا أنا
أنا أنا أنا أنا أنا أنا أنا أنا أنا أنا أنا
أنا أنا أنا أنا أنا أنا أنا أنا أنا أنا هنا أنا
على main level، الـ beta تبعي أقل من، أو نفس القاعدة.
هي beta قزمة يابا، في خطأ هذي الشيء، لأ كيف؟ طب إذا
القاعدة بتبقى طولها ماشي، بس أنا هنا في main أنا
هنا في max، أنا هنا في main أنا
هذه القاعدة أحطها هي نفسها، بخط نظر أنا الـ level
max، أكتب نفس القاعدة، أنا هنا على الـ max، وأنا هنا
على الـ min، طيب ماشي، عملياً احنا الآن بنكون طلعنا
على الـ alpha beta pruning، الـ alpha، الـ minimax
procedure في حد ذاتها، وبعدها الـ minimax with
alpha beta pruning عشان فكرة إن احنا نقلص الـ
search space، بيضل شغل آخر، وهي إن أحياناً الـ
adversarial games بتبقى multiplayer، يعني مش بس
اتنين خصمين، ممكن يبقى ثلاثة أو أربعة أو أكثر في هذه
الحالة، الـ evaluation تبع الـ node الواحدة بيبقى
vector، يعني عدة قيم، يعني مثلاً أنا عندي هنا اللعب
الأول A، اللعب بيبقى بيبقى بيبقى بيبقى بيبقى بيبقى
بيبقى بيبقى بيبقى بيبقى بيبقى بيبقى بيبقى بيبقى
بيبقى بيب
هي تقييم الـ node هذه بالنسبة لـ A، الاتنين هذه هي
تقييم نفس الـ node بس بالنسبة لـ B، بس الـ six هذه
تقييم بالنسبة لـ C، فالآن الـ player لما بدي يلعب أو
لما يجي دوره، بدي يبص بس على التقييم الخاص بأبيه
ماشي، إنما الـ concept هي هي نفس قالية العمل بالنسبة
لـ minimax procedure، كل الاختلاف إنه لما بنعمل
evaluation للنوت في الـ two player case بنعمل
تقييم لـ الـ max، إنما في الـ multiplayer case بنعمل
تقييم لكل واحد من الـ players، لكل واحد من الـ
players، إذا هم ثلاثة، إذا هم أربعة، والتقييم هذه
بيجي على شكل vector، يعني مصفوفة متكونة من اتنين من
ثلاثة أو أكثر من العناصر، كل لاعب بيبص بس على
التقييم تبعه، وعلى أساسه بيقرر إيش اللي هو الـ
state اللي ياخده، ماشي في هذا الـ.. الآن بنكون احنا
خلصنا موضوع الـ adversary الـ search، وعملياً نكون
خلصنا الـ search كله، كل اللي بدنا إياه عن الـ search
خلصناه، المحاضرة الجاية إن شاء الله بنبدأ موضوع جديد
ومن الكتاب الثاني اللي هو الكتاب تبع الـ guide to
intelligence systems، تمام؟ ماشي، الاتنين الموجودين
في الـ drop box