DEV//UNIT

MCTS (дерево+Монте-Карло)

Выбор/расширение/симуляция/бэкпроп: статистика вместо полного перебора.

время O(sims · игра)память O(дерево)уровень: продвинутый
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1function mcts(root: Node, sims: number, rng: () => number): Node {
2 const C = 1.4 // UCT-константа исследования
3
4 for (let i = 0; i < sims; i++) {
5 // 1. Selection: спуск по UCT-максимумам
6 let node = root
7 while (node.children.length > 0 && !hasUntried(node)) {
8 node = bestUCT(node, C)
9 }
10
11 // 2. Expansion: один непробованный ребёнок
12 const child = expandRandom(node, rng)
13
14 // 3. Simulation: случайный плейаут до конца
15 const winner = playout(child, rng)
16
17 // 4. Backpropagation: победы текут вверх
18 for (let n = child; n; n = n.parent) {
19 n.visits++
20 if (won(n, winner)) n.wins++
21 }
22 }
23
24 return bestChild(root) // самый посещаемый
25}
26
27function uct(n: Node, C: number): number {
28 return n.wins / n.visits + C * Math.sqrt(Math.log(n.parent!.visits) / n.visits)
29}

Проблема

Выбор/расширение/симуляция/бэкпроп: статистика вместо полного перебора.

Что вы видите

UCT: exploitation (win-rate) + exploration (√lnN/n); плейауты дают оценку.

Как это работает

Дерево растёт asymmetric: глубокое там, где перспективно. AlphaGo совместил MCTS с нейросетями. Случайные плейауты — оценка позиции без эвристик.

Пошаговый разбор

  1. 01

    Выбор

    UCT-максимум.

  2. 02

    Расширение

    Один ребёнок.

  3. 03

    Симуляция

    Случайный плейаут.

Complexity и ограничения

time
O(sims · игра)
space
O(дерево)

Сложность см. в шапке страницы.

Edge cases

  • Пустой вход

    Корректная тривиальная обработка.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

AlphaGo

Победа над чемпионами.

Игры

Помощник ходов.

Планирование

Оптимизация решений.

Связанные алгоритмы

Shorts

«AlphaGo: дерево + случайность»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

AlphaGo: дерево + случайность
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/mcts