五子棋是一种常见的棋类游戏。其规则简单、明确,很受大众喜爱。在这里,我们来说说五子棋的博弈,了解一下博弈的一些基本过程,以及构建计算机博弈模型的思路。
试想一些,人类是怎么进行五子棋对弈的?与其他棋类一样,玩家都想取胜。玩家从开局就会想,第一步下在哪里?对方会把第二步下在哪里?然后我又该把第三步下在哪里?可以看到,博弈的过程,就是计算我方与对方落子的可能性,以获得最大的赢面。人们往往只能往后算三到五步,而计算机由于计算能力较强,可以模拟更多步,在这种情况下,相当于可以更早地看到结局。它能知道在哪些点落子能获得更高的胜率。这个就是构建计算机博弈程序的基础思路,往往通过一棵博弈树,从开局往后模拟落子过程。
图里是一棵最大最小树,这是一种非常基础的博弈树。五边形代表的是我方,圆圈的代表是对方。五边形和圆圈里边的数值代表下棋在这个点,能产生的收益。在这里需要解释一下,为什么叫最大最小树呢?对弈过程中,双方都会考虑自身利益,使得局面向有利于我方的方向发展,也就是我方和对方都会挑选自己一方获得利益最大的一种方案。所以我们在构建一棵属于我方的博弈树的时候,我们会采取对自己最有利的一个点落子。而下一回合时,由于对方会采取对自己最有利的点落子,那么相对来说,这个点对于我方而言,就是收益最小的一个点,综合在一起,就叫做最大最小树。
在这里,大家或许会有一个新的疑问,那就是如何评估每一个落子点的收益呢?在五子棋的博弈中,这个答案比较简单,那就是通过深入的推演来评估。当我们完成所有可能性的模拟时,就能得到对所有落子点的评价,每个落子点对应一个胜率。我们在下棋的时候,选择胜率高的点落子就容易取得最后的胜利。因而,如果一台计算机的计算能力很强大,通过这种最简单的博弈树的构建,就能模拟所有局面的可能性,对人类而言就是完全的“碾压”。
http://www.dashoubi.org/news/shwx/2020-06-23/136095.html