【Algorithm】最容易理解的蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)算法

看了不少解读和笔记,本文把最容易理解的解读做个总结。

1. 蒙特卡洛方法

蒙特卡洛方法(Monte Carlo method),是一种“统计模拟方法”。20世纪40年代,为建造核武器,冯.诺伊曼 等人发明了该算法。因赌城蒙特卡洛而得名,暗示其以概率作为算法的基础。

假设我们要计算一个不规则形状的面积,我们只需在包含这个不规则形状的矩形内,随机的掷出一个点,每掷出一个点,则N+1,如果这个点在不规则图形内则W+1。落入不规则图形的概率即为 W/N。当掷出足够多的点之后,我们可以认为:不规则图形面积=矩形面积*W/N。

例如:计算如下红色图形的面积:
在这里插入图片描述

# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
import math

def func(x):
    a = 0.1 * x ** 1.0/3
    b = np.sin(x / math.pi)
    y = a + (b + 0.1 * x) * x ** 2 + x
    return y

def integral():
    n = 20000000
    x_min, x_max = 0, 2.0
    y_min, y_max = 0, 6.0

    # count = 0, 随机抛点
    x = np.random.uniform(x_min, x_max, size=(n, 1))
    y = np.random.uniform(y_min, y_max, size=(n, 1))
    yy = func(x)
    c = np.sum(yy > y)
    ratio = c / float(n)
    res = ratio * 2.0 * 6.0
    print(res)

integral()

# 3.6831354000000003

2. 蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)算法

了解了上面 蒙特卡洛方法 不是MCTS就行,MCTS只是在一定程度上借用了上面的原理,看一百篇静态的文章都不如看一篇动态的视频(一定重点理解视频中的示例变化过程):
b站-AI如何下棋?直观了解蒙特卡洛树搜索MCTS!!!

2.1 几个重要笔记

在这里插入图片描述
重点:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
这里的终结指的是整个算法的终结,可以给出具体action了
simulation中(即rollout),如何确定terminal state以及terminal state的价值是另外一个话题(见下)。

2.2 几个注意点

如何确定terminal state以及terminal state的价值?

  1. 对于一般胜负类的游戏,可简单粗暴的用胜利或者失败作为游戏结局,胜利价值为1,失败价值为0
  2. 对于其他更复杂的场景,可以自行定义价值函数,比如用的步骤越多价值越低。

MCTS是如何利用蒙特卡洛方法思想的?

当重复的次数多了以后,每个节点的ucb值其实就代表了它价值的真实值(这个值是一个相对概念,相对于同层的其他节点,值越大,就代表越好),这样就能指导采用哪个节点行动了。

参考

蒙特卡洛树搜索最通俗入门指南
蒙特卡罗方法、蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)初探
【最佳实战】蒙特卡洛树搜索算法
面向初学者的蒙特卡洛树搜索MCTS详解及其实现
【详细原理】蒙特卡洛树搜索入门教程!
git-MCTS代码

b站-AI如何下棋?直观了解蒙特卡洛树搜索MCTS!!!
b站-【强化学习】规划与学习-蒙特卡洛树搜索 MCTS

局部搜索算法(Local Search Algorithm)是一类迭代改进算法,它通过从一个初始解开始,通过局部操作来改进当前的解决方案。以下是一些常见的局部搜索算法: 1. 爬山算法(Hill Climbing):从一个随机初始解开始,每次选择当前邻域中最优的解作为下一步的解决方案,直到找不到更好的解为止。 2. 模拟退火算法(Simulated Annealing):通过模拟退火过程,接受一定概率的劣解,以避免陷入局部最优解。随着迭代的进行,逐渐减小接受劣解的概率。 3. 遗传算法(Genetic Algorithm):通过模拟生物进化的过程,利用选择、交叉和变异等操作来搜索解空间。通过不断迭代,逐渐改进当前的解决方案。 4. 禁忌搜索算法(Tabu Search):通过引入禁忌表来记录已经搜索过的解禁忌操作,避免陷入重复搜索和局部最优解。通过选择禁忌表中最佳的操作作为下一步的操作,逐渐改进当前的解决方案。 5. 混合启发式搜索算法(Hybrid Heuristic Search):结合多种启发式方法和局部搜索算法,通过不同的策略来改进当前的解决方案。常见的混合启发式搜索算法包括局部搜索和遗传算法的组合、局部搜索和模拟退火的组合等。 这些算法都属于局部搜索算法的范畴,它们在不同的问题领域和复杂度下表现出不同的性能和效果。选择适合特定问题的局部搜索算法需要考虑问题的特性和算法的优缺点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值