先手最优策略
像这样完整画出游戏树,找出最优策略的游戏叫做已解决游戏。尽管如此,大部分情况下,井字棋还是会出现输赢,这是因为有些人对游戏树掌握的好,有些人掌握的不好。
后手最优策略
一旦对方出现失误
对游戏树掌握信息好的人
就能迅速抓住这个漏洞
让不会玩的人陷入必败的游戏树分支之中
这就是大师和新手的区别
围棋
其实,象棋和围棋的本质
与井字棋没有本质不同
只是复杂度比井字棋高很多
围棋
以围棋为例:围棋在19x19=361个格子上轮流放棋子,所以每个格子有黑白空三种可能,整个围棋棋盘上的状态数上限是3361=1.7x10172,去掉一些重复和对称,围棋的状态复杂度大约是10171量级。
要知道:宇宙中的原子个数只有大约1080个,就算用宇宙中的一个原子代表一个围棋局面,穷尽宇宙中所有的原子,也不能表示出围棋所有的棋局局面。
围棋的游戏树就更难画了。因为围棋可以提子,有了空白的地方可以继续下,所以并不一定是填满了棋盘就结束。不过,我们可以估计游戏树的总层数和每一层的平均分支。根据统计和计算:一盘围棋的平均手数是150手,每一手的平均分支数是250种,所以整个围棋的游戏树复杂度大约250150≈10360。
理论上讲,如果我们遍历了所有10360种情况,就能知道围棋结局到底是先手必胜,还是后手必胜,或者一定是和棋了。但是,这个计算量实在太大了。世界上最快的计算机富岳每秒最高可以计算100亿亿次浮点运算,假如1次浮点运算就能算出一条路径,那么算完所有围棋游戏的可能情况,需要10342秒,而宇宙的年龄只有138亿年,大约只等于1017s。
显然我们知道围棋一定有最优策略,但是我们无法计算出这个最优策略。不过,数学家们也找到了一些其他方法,不用遍历所有情况,也能找到比较好的获胜方法,比如1997年深蓝战胜国际象棋世界冠军卡斯帕罗夫,2016年阿法狗打遍天下无敌手,都是采用了人工智能的方法。
人工智能战胜人类的过程
除了围棋以外,人们也估算了其他几种棋类游戏的复杂度,如下表所示。你会发现井字棋情况特别少,因此很容易成为大师,两位大师碰到一起,只能是和棋。五子棋情况稍多,但是只要玩的多,也能发现套路,从而成为大师,无禁手时先手必胜。像国际象棋、中国象棋,围棋复杂度就更高了。