Я буду использовать шахматы для пояснения в этом ответе, конечно, это рассуждение с небольшими изменениями может быть применено и к другим настольным играм.
Таблицы транспонирования в программах настольных игр - это кеши, в которых хранятся уже оцененные доски. в кеше. Замечательно иметь простое в обращении значение кэша, которое однозначно идентифицирует позицию, например:
WKe5Qd6Pg2h3h4 BKa8Qa7
Так что если вы попадаете на позицию, вы проверяете наличие ключа кеша, и еслиИтак, затем повторно использовать его оценку. Всякий раз, когда вы посещаете позицию на глубине = 0, после ее правильной оценки она может быть кэширована. Таким образом, если некоторые шаги сделаны, в подвариантах вы можете более или менее перепрыгнуть через оценку. Например, давайте рассмотрим пример того, что в начальной позиции белые переместились на 1. Nf3, а черные ответили 1 ... Nf6. После того, как результирующие позиции для обоих слоев были кэшированы, позиция 2. Белые Ng1 нуждаются в оценке, поскольку они еще не оценивались и не кэшировались, но возможно, что черные 2 ... Ng8 не нуждаются в оценке, потому что это приводит к старту. position.
Конечно, вы можете выполнять более агрессивное кэширование и сохранять позиции до глубины = 1 или даже больше.
Вам необходимо убедиться, что вы не пропустили некоторые стратегические деталиигра. В случае с шахматами вам необходимо помнить:
- эффект правила 50 ходов
- 3-кратный повтор повторов
- кто на ходу
- были / есть какие-то особые ходы, такие как рокировка или проход, возможно в прошлом / в настоящем, а не в другом случае
Итак, вы можете добавить некоторые дополнительные нюансыв ваш алгоритм, но, чтобы ответить на исходный вопрос: позиции, которые уже присутствовали в игре или находятся очень высоко в таблице вариантов, могут быть кэшированы и более или менее проигнорированы (чем больше в большинстве случаев, тем меньше нюансов означаетобведено выше)