4、计算UCB值
每个节点UCB值的设计是蒙特卡洛算法中比较关键的一点,分为两部分,前部分为计算该节点上的胜率,胜率越高被选择的几率越大,而后一部分则是为了平衡模拟方向,使得之前模拟次数越少的点越有机会被选中 nodes[sel].winRound/(nodes[sel].totRound+epsilon) +
C*sqrt(log(nodes[fNode].totRound+1)/(nodes[sel].totRound+epsilon)))
实现语言: c++
编译工具:g++
运行环境:Windows
编译方式:同目录下运行makefile
【测试结果】
1、 与62-100.dll对战结果(胜场数/总场数):
2、与100.dll对战100场(50rounds)结果(AI为A方):
Stat:
ratio of A wins : 0.57
ratio of B wins : 0.43
ratio of Tie : 0
ratio of (A wins + tie) : 0.57
ratio of (B wins + tie) : 0.43
【结果分析】
在测试过程中我打印了所选节点的胜率,结果基本符合之前的收敛分析,在