Я выдернул свои волосы, пытаясь понять, как работает алгоритм MinMax, и, надеюсь, работают алгоритмы отсечения альфа-бета. Я запутался в том, что происходит с рекурсией.
Я попытался найти простую программу на C или C ++, чтобы продемонстрировать это, но мне не повезло. Я пытаюсь выучить этот алогритм, я могу создать презентацию для остальной части моего класса компьютерного программирования.
Большое спасибо!
В
Только конечные позиции (после поиска покоя) оцениваются. Нетерминальные позиции сравнивают оценку, возвращаемую рекурсивным вызовом minimax (), с наилучшей оценкой, полученной на данный момент. В случае альфа-бета возвращенная оценка также сравнивается с альфа-значением.
Смысл минимакса — оценка. Похоже, ваша ошибка — думать, что минимаксная функция поиска должна возвращать лучший ход. Это может быть закодировано таким образом, но для вас может быть проще иметь цикл верхнего уровня в другой функции, которая выполняет перемещение, использует minimax () для получения результата и не выполняет движение. Следите за ходом с лучшим счетом и возвращайте этот ход, когда цикл завершится или время выбора хода истечет.
Других решений пока нет …