其他分享
首页 > 其他分享> > 人生路径规划-蒙特卡洛树搜索

人生路径规划-蒙特卡洛树搜索

作者:互联网

  1、人的一生几十年,总会有那么几个关键节点需要决策,常见的有:

      这些都是人生的重大的路口,每个分支都有可能改变人生的轨迹。对于普通的个体而言,在关键的分岔口前怎么选择才能达到最优了?

      回顾一下之前TSP的解决思路:以树的形式列举所有可能的路线,然后从“终点”开始往根节点回溯,每遇到一个分支就PK另一个相连分支的成本,通过二选一的形式找出成本最低的分支后继续往上回溯(感觉好残酷,类似大厂内部不同团队做同样的产品,最终只能有团队一个活着),直到达到根节点!蒙特卡洛树搜索的思路基本一致,也是从某个节点开始expansion,计算这个分支的成本,并和另一个相连的分支PK,成本低的分支保留,继续向上回溯。整个算法的核心流程如下:

      

      怎么样?是不是很像人生的决策? 读高中的时候不知道选文科还是理科,读大学不知道学数学、物理、化学、生物、计算机、环境、医学等,都可以参考这种思路,穷举所有的可能分支,计算每条分支的预取收益或成本,最终选择最优的那条!比如高中读理科,大学学医学,毕业做医生是一条路径;高中读理科、大学学计算机,毕业当码农又是一条路径。这两条路径那条的收益高、成本低了? 

  2、(1)手动遍历前先介绍一下整个过程的核心计算公式:UCB1(Upper Confidence Bound,上置信区间)公式来计算一个节点的”潜力“:UCB1越大,说明该节点的潜力越大,后续就从该节点继续分叉(这也是本算法的精要所在:面临多个选择的时候选择最优的路线,节约后续的时间成本),其他有共同父节点的相邻节点就不要了!那么这个公式每个变量的含义是啥? 为啥又能代表该节点的潜力了?

        (2)公式如下:UCB1(Si)代表Si节点的“潜力值”,是Si状态的平均value(下面会介绍具体的计算方法),N是Si状态父节点的考察次数,ni是Si状态的考察次数;可以看出“潜力值”是由Si状态平均值和考察次数决定的:

          

         (3)现在手动开始考察每个状态:

         

         

        

       从S2开始rollout,假设value=10,此时要往上回溯:跟新S2和S0的value和考察次数(都是累加),结局看红框框的地方:

       

      第2轮迭代就此完成;接下来要进行第3次迭代,还是面临同样的问题:从S1还是S2开始了?老办法:看看UCB1的值!选择潜力值大的点下手!计算S1和S2的UCB1(注意,logN用的是父节点的考察次数),明显S1的比S2大,接着从S1开始扩展(expansion);

      

      

       

       

 

    

参考:1、https://www.bilibili.com/video/BV1CJ411A7K9/?spm_id_from=333.788.videocard.0   大约从3:30开始演示演示算法过程

           2、https://zhuanlan.zhihu.com/p/43758287  蒙特卡洛树搜索 - 以蛮力对抗智慧

标签:S2,S1,路径,value,次数,搜索,UCB1,蒙特卡洛,节点
来源: https://www.cnblogs.com/theseventhson/p/14366287.html