В альфа-бета-обрезке в обширной игре для двух игроков (то есть в дереве игр) у вас всегда есть нижняя и верхняя границы при поиске из альфа-бета-обрезки. Эти границы, по сути, говорят, что интересны только значения между этими границами - все остальное будет обрезано предком в дереве.
Если у вас есть heuristi c, который является гарантированной нижней / верхней границей на значение всех дочерних элементов данного состояния, вы можете проверить это в отношении границ для текущего состояния. Если heuristi c говорит, что значение всех будущих состояний гарантированно будет больше или равно верхней границе (или меньше или равно нижней границе), то вы можете немедленно обрезать и остановить поиск.
Например, предположим, что максимальный игрок находится в состоянии с alpha=-10
и beta = 3
, а ваш heuristi c говорит h(s) >= 5
. Затем вы можете немедленно обновить alpha
до 5
. Поскольку alpha >= beta
, вы можете обрезать и сразу же вернуться. При одинаковых значениях альфа / бета в минимальном узле вам понадобится ваш heuristi c, чтобы сказать, что h(s) <= -10
для возможности сокращения.
Альфа-бета-сокращение может уменьшить размер дерева b^d
до b^(d/2)
. С идеальным heuristi c вы можете существенно уменьшить размер дерева до d. То есть ваш heuristi c может немедленно отключить всех оставшихся детей в каждом штате. На практике вы не сможете сделать это хорошо. Но heuristi c может значительно уменьшить размер поиска поверх альфа-бета-обрезки.