PythonChess - получить движок, чтобы предсказать список лучших ходов в позиции - PullRequest
1 голос
/ 03 марта 2020

У меня в настоящее время есть доска, затем я перемещаю пешку е2 на е4. Я ищу способ заставить двигатель предсказывать количество лучших ходов Х для черных.

Я знаю, как предсказать лучший ход с учетом позиции:

result = engine.play(board, chess.engine.Limit(time=0.1))
board.push(result.move)

Но это только предсказывает лучший ход номер 1. Я хочу список, содержащий второй, третий ... Х лучших ходов.

Как бы я это сделал?

1 Ответ

0 голосов
/ 04 марта 2020

Вы не предоставляете никаких подробностей о своей функции поиска, но обычно она должна возвращать последовательность ходов (основной вариант, иначе известный как PV), который ваш движок считает наилучшим и, следовательно, ожидает воспроизведения.

Вы можете изменить свою функцию поиска, чтобы она возвращала несколько PV, в основном собирая и сообщая о нескольких последовательностях следующих лучших ходов. Но учтите, что для этого обычно требуется менее эффективный root поиск, при котором последующие ходы ищутся с более широким окном альфа-бета.

В качестве альтернативы вы можете просто сохранить каждое «лучшее ход» во время поиска, добавив любой ход, который поднимает альфа. Это не даст вам несколько PV, но, по крайней мере, даст вам список «лучших ходов».

...