Кіріспе

Минимакс ойын ағашын іздеудің вариациясы. Негамакс іздеуі – екі ойыншының ойынының нөлдік қосынды қасиеттеріне сүйене отырып, минимакс іздеуінің бір түрі. Бұл алгоритм 1 = min(a, b) = max(b, a) фактісіне сүйенеді, бұл минимакс алгоритмін іске асыруды жеңілдетеді. Нақтырақ айтқанда, мұндай ойында А ойыншысы үшін позицияның мәні В ойыншысы үшінгі мәннің теріс шамасына тең болады. Осылайша, қозғалыс жасап отырған ойыншы, қозғалыс нәтижесінде туындаған мәннің теріс шамасын барынша арттыратын қозғалысты іздейді: бұл ұрпақ позициясы міндетті түрде қарсылас бағалаған болуы керек. Жоғарыдағы аргумент А немесе В қозғалыс жасап жатса да жұмыс істейді. Бұл екі позицияны да бағалау үшін бір процедураны қолдануға болады дегенді білдіреді. Бұл минимакс-тен кодтауды жеңілдетеді, себебі минимакс А ең жоғары бағаланған ұрпақты, ал В ең төмен бағаланған ұрпақты таңдауын талап етеді. Оны негаскаутпен шатастыруға болмайды, ол 1980-ші жылдары ашылған альфа-бета кесуді тиімді пайдалану арқылы минимакс немесе негамакс мәнін жылдам есептеуге арналған алгоритм. Альфа-бета кесудің өзі, позицияның минимакс немесе негамакс мәнін қызығушылық тудырмайтын белгілі бір позицияларды іздеуден аулақ болу арқылы жылдам есептеудің бір тәсілі екенін атап өткен жөн. Көптеген қарсыластық іздеу жүйелері негамакс іздеуінің кейбір түрлерін қолданады.

Альфа-бета кесумен Negamax

Минимакс үшін алгоритмдік оңтайландырулар Negamax үшін де толыққанды қолданылады. Альфа-бета кесу, Negamax алгоритмі іздеу ағашында бағалайтын түйіндер санын, Minimax алгоритмінде қолданылуымен салыстырылатын тәсілмен азайта алады. Альфа-бета кесуді қолдана отырып, тереңдігі шектелген Negamax іздеуінің псевдокоды төменде келтірілген: Альфа-бета кесуді оңтайландыру, бұл түйіннің мәнін беретін ең мүмкін балалық түйіндерді болжауға бағытталған. Алгоритм осы балалық түйіндерді бірінші кезекте іздейді. Сәтті болжаулардың нәтижесінде альфа/бета кесулері ертерек және жиірек орын алып, осылайша ойын ағашының қосымша тармақтары мен іздеу ағашының қалған балалық түйіндері кесіледі.