MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)

1、简介

  • 蒙特卡罗树搜索是一类树搜索算法的统称,简称MCTS。它是一种用于某些决策过程的启发式搜索算法,且在搜索空间巨大的游戏中会比较有效。
  • 从全局来看,蒙特卡洛树搜索的主要目标是:给定一个游戏状态来选择最佳的下一步。
  • 等常见应用包括Alpha Go、象棋、围棋AI程序等。
  • 算法过程
    • 选择 (Selection)
      • 选择能够最大化UCB值的结点。
      • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第1张图片
    • 扩展 (Node Expansion)
      • 创建一个或多个子结点。
    • 仿真 (Rollout)
      • 在某一结点用随机策略进行游戏,又称为playout或者rollout。
    • 反向传播 (Backpropagation)
      • 使用随机搜索的结果来更新整个搜索树。
  • 流程图
    • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第2张图片

2、选择

  • 选择子结点中UCB值最大的结点。
  • 下面为UCB的计算公式:
    • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第3张图片
    • 平均value = value / 探索次数。

3、扩展

  • 将选择结点所有可能的动作添加到树中。
  • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第4张图片

4、仿真

  • 对没有被探索过的结点进行仿真。
  • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第5张图片
  • 选择好结点后进行随机决策,得到仿真的价值。
    • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第6张图片
  • 伪代码:
    • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第7张图片

5、反向传播

  • 计算出value后,需要反向传播该值。
  • MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)_第8张图片

6、终止条件

  • 终止条件:
    • 给定的限制时间
    • 给定的固定迭代次数
  • 迭代完成后,选择value更大的结点即可完成决策。

你可能感兴趣的:(机器学习,算法)