标签:
下棋的程序,主要难点在“人机对战”,也就是机器有多聪明,下棋水平(AI)高不高。 不同的棋类,棋盘、棋子、规则都各不相同。但制作人机大战的思路有许多共同的特点。
1.局面估值 根据当前的棋局和“轮到谁走下一步棋”对当前局面进行估算,得到一个或少数几个整数(小数也无防)。一般是4个整数合成(加法)一个整数,这4个整数是: 我攻+我防+敌攻+敌防。即对自己有利的 避开对自己有害的 避开对敌人有利的 对敌人有害的。(感谢咙想酒甜 446828992)
2.搜索
2.1 单步搜索。根据当前棋局,算出我方最可能下的一步棋几种情况,然后计算每一种可能下子后的局面估值,哪个局势对我方最有利就下哪一步。
2.2 多步搜索。在内存中演绎(模拟)我方走一步(记为第1步),敌方走一步(记为第2步),我方再走一步(记为第3步)……模拟n步后,每一步都取对己方(有时我是己方,有时敌是己方)最有利的一步,最终算出第1步应该走哪步。
搜索往往是核心,计算量非常大,所以一般很难搜得深。为了加速搜索速度,会引入许多剪枝算法,常用的是Alpha-Beta剪枝。
标签:
原文地址:http://www.cnblogs.com/BillySir/p/5077886.html