Всегда ли Negamax должен возвращать положительное значение?

StackOverflow https://stackoverflow.com/questions/8876539

Вопрос

родовое слово

Итак, если это мой негамакс-код (скопирован из Википедии), и он называется следующим образом:

родовое слово

Тогда будет ли эта функция всегда возвращать положительное значение, независимо от того, с какой глубиной мы вызываем функцию.Это предполагает, что эвристическое значение само по себе всегда положительно.

Это было полезно?

Решение

Да, если оценка листового узла положительна, негамакс вернет положительное значение.Это то, что выполняет умножение на значение цвета, оно гарантирует, что всегда существует противодействующее отрицание, чтобы отменить окончательное отрицание, если существует нечетное количество рекурсивных вызовов негамакса.Это потому, что при нечетном количестве рекурсивных вызовов цвет всегда будет -1.Если существует четное количество рекурсивных вызовов, все отрицания отменяются и цвет будет 1, что не повлияет на возвращаемое значение.

Обратите внимание, что если вы вызываете negamax с цветом== -1 (теперь очередь для движения другой стороны), вы должны отменить этот вызов, чтобы получить правильное значение.То есть:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top