Альфа-бета відсічення — алгоритм пошуку, що зменшує кількість вузлів, які необхідно оцінити в дереві пошуку мінімаксного алгоритму і при цьому дозволяє отримати ідентичний результат. Цей алгоритм використовується в програмуванні настільних ігор, де грають два гравці (хрестики-нулики, шахи, ґо). Використовуючи цей алгоритм, програма повністю припиняє оцінювати хід, якщо знайшла доказ, що цей хід гірший, ніж оцінений раніше. Такі ходи не потребують подальшої оцінки.
Приклад здійснення
private int AlphaBeta(int color, int Depth, int alpha, int beta) { if (Depth == 0) return Evaluate(color); int bestmove; Vector moves = GenerateMoves(); for(int i = 0; i < moves.size(); i++) { makeMove(moves.get(i)); eval = -AlphaBeta(-color, Depth-1, -beta, -alpha); unmakeMove(moves.get(i)); if(eval >= beta) return beta; if(eval > alpha) { alpha = eval; if (Depth == defaultDepth) { bestmove = moves.get(i); } } } return alpha; }
Приклад першого виклику:
AlphaBeta(1, 6, Integer.MIN_VALUE, Integer.MAX_VALUE);
При першому виклику метод (функція) викликається з максимальним вікном. При рекурсивних викликах змінні alpha і beta міняються місцями з інверсією знаку і «звужують» обшир пошуку.
Альфа-бета алгоритм, при найкращому порядку ходів, побудує значно менше дерево перебору. Це приблизно дорівнює кореню квадратному з числа позицій, що переглядаються при повному переборі. Альфа-бета дуже чутливий до порядку ходів. Тому потрібно врахувати, що при найгіршому порядку ходів, тобто коли відсічення за beta викликає останній хід, альфа-бета прогляне стільки ж позицій, що і мінімакс. Швидкість прорахунку також дуже залежить на практиці від можливого діапазону оцінок. Наприклад, коли враховується тільки матеріал, то оцінка всім ходам, крім узяття, буде дорівнювати нулю. Це означає, що відсічень буде дуже багато, особливо якщо узяття розглядатимуться першими.
Ця стаття не містить . (грудень 2018) |
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Alfa beta vidsichennya algoritm poshuku sho zmenshuye kilkist vuzliv yaki neobhidno ociniti v derevi poshuku minimaksnogo algoritmu i pri comu dozvolyaye otrimati identichnij rezultat Cej algoritm vikoristovuyetsya v programuvanni nastilnih igor de grayut dva gravci hrestiki nuliki shahi go Vikoristovuyuchi cej algoritm programa povnistyu pripinyaye ocinyuvati hid yaksho znajshla dokaz sho cej hid girshij nizh ocinenij ranishe Taki hodi ne potrebuyut podalshoyi ocinki Derevo alfa beta poshuku Mashina pereviryaye hodi zliva napravo vidsikaye vsi gilki ta piddereva zi sirimi hodami yak girshi ta pripinyaye poshuk u nih Prodovzhuye poshuk lishe v bilih gilkahPriklad zdijsnennyaprivate int AlphaBeta int color int Depth int alpha int beta if Depth 0 return Evaluate color int bestmove Vector moves GenerateMoves for int i 0 i lt moves size i makeMove moves get i eval AlphaBeta color Depth 1 beta alpha unmakeMove moves get i if eval gt beta return beta if eval gt alpha alpha eval if Depth defaultDepth bestmove moves get i return alpha Priklad pershogo vikliku AlphaBeta 1 6 Integer MIN VALUE Integer MAX VALUE Pri pershomu vikliku metod funkciya viklikayetsya z maksimalnim viknom Pri rekursivnih viklikah zminni alpha i beta minyayutsya miscyami z inversiyeyu znaku i zvuzhuyut obshir poshuku Alfa beta algoritm pri najkrashomu poryadku hodiv pobuduye znachno menshe derevo pereboru Ce priblizno dorivnyuye korenyu kvadratnomu z chisla pozicij sho pereglyadayutsya pri povnomu perebori Alfa beta duzhe chutlivij do poryadku hodiv Tomu potribno vrahuvati sho pri najgirshomu poryadku hodiv tobto koli vidsichennya za beta viklikaye ostannij hid alfa beta proglyane stilki zh pozicij sho i minimaks Shvidkist prorahunku takozh duzhe zalezhit na praktici vid mozhlivogo diapazonu ocinok Napriklad koli vrahovuyetsya tilki material to ocinka vsim hodam krim uzyattya bude dorivnyuvati nulyu Ce oznachaye sho vidsichen bude duzhe bagato osoblivo yaksho uzyattya rozglyadatimutsya pershimi Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2018 Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi