这学期做了一个计算机围棋的项目,也因此自学了围棋,就程序而言虽然最后比赛结果不是很好,但仍然有了一个初步的轮廓。
先上一个程序自己跟自己下的截图
接下来我来逐步介绍一些细节,里面会涉及到很多围棋方面的知识,但大部分是简单的,因为复杂的围棋概念,例如薄厚,眼形,模样,目前还是很难用计算机程序来描述的。另外这个程序还存在一些其他更重要的问题尚未解决,下面我会一一道来。如果你有任何问题,也可以在留言中回复,我尽力回答。由于这篇文章规模巨大,再加上我一边还在重写代码,更新的进度估计很慢,我估计寒假能把这篇文章写完。
首先,读者需要建立一个这样的概念,计算机围棋的搜索空间是10^700次方,目前为止没有任何一台机器能够解决如此复杂的问题。第二,计算机围棋作为人工智能领域的著名难题,至今仍然没有超过人类棋手水平。现在世界上最强的计算机围棋的水平大致相当于专业初段的水平。而大名鼎鼎的忘忧围棋我一个围棋初学者也能赢上五六十目。所以我说,这是一个人类尚未解决的问题。
现在尝试解决计算机围棋的方法有很多,UCT算法,模式匹配,博弈搜索,神经网络等等非常多。我们使用的是基于评估模型的博弈搜索方法。既然是建模,那么这个模型本身是否合理很重要,如果模型合理的话,我们可以用机器学习的方法训练模型参数。
今天先写这么多。。。