Альфа-бета отсечение
Тот же ответ, что минимакс — но ветки, не влияющие на решение, не раскрываются.
1function alphabeta(node: Node, depth: number, alpha: number, beta: number, maximizing: boolean): number {2 if (isLeaf(node)) return node.value3 4 if (maximizing) {5 let best = -Infinity6 for (const child of node.children) {7 best = Math.max(best, alphabeta(child, depth + 1, alpha, beta, false))8 alpha = Math.max(alpha, best)9 if (beta <= alpha) break // β-отсечение: соперник не пустит нас сюда10 }11 return best12 } else {13 let best = Infinity14 for (const child of node.children) {15 best = Math.min(best, alphabeta(child, depth + 1, alpha, beta, true))16 beta = Math.min(beta, best)17 if (beta <= alpha) break // α-отсечение18 }19 return best20 }21}Проблема
Тот же ответ, что минимакс — но ветки, не влияющие на решение, не раскрываются.
Что вы видите
α — лучший уже найденный максимум, β — минимум соперника; β ≤ α — ветку можно выбросить.
Как это работает
Если соперник уже гарантировал себе β меньше нашего α, эту ветку он никогда не выберет — зачем считать? Порядок ходов определяет число отсечений: с хорошей эвристикой — корень из дерева.
Пошаговый разбор
- 01
α и β
Лучший максимум и минимум.
- 02
Отсечение
β ≤ α: ветка мертва.
- 03
Экономия
Тот же ответ вдвое-вчетверо быстрее.
Complexity и ограничения
Сложность см. в шапке страницы.
Edge cases
- Пустой вход
Корректная тривиальная обработка.
- Вырожденный случай
Минимум работы — сразу ответ.
Где встречается в реальности
Stockfish
Движки мирового уровня.
Игры
AI в стратегиях и го-движках (до MCTS).
Планирование
Adversarial search в роботике.
Связанные алгоритмы
«Шахматный движок не смотрит всё дерево»
Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.
Shorts 9:16
Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.