wfGo 围棋 AI对弈模式

前言

wfGo 是笔者大学毕设作品,这几天有时间把它整理一下。该项目已在github开源,有需要的小伙伴可以看第一篇博客的末尾获取git地址:

https://blog.csdn.net/wf824284257/article/details/104085281

本文介绍了 wfGo的 AI对弈模式 。

使用VS2017+打开项目即可。

开始

首先进入到client主界面,并点击 【AI对弈模式】 按钮 后,进入下面界面。 依次点击菜单栏的 绿色开始按钮,选择执黑,难度选择3,最后点击 开始AI对局 按钮。

#################### 1

此时会弹窗显示 read in weight ok , 这个弹窗表明ANN的节点参数文件被读入,在高难度AI对弈时,ANN算法会使用读入的weight文件数据来构造神经网络,并进行计算。读入的文件位于exe文件同目录下,weight.txt . 该文件使用AI训练模式来生成。关于AI训练模式,将在下一篇博客进行介绍。

开始AI对局后,点击棋盘落子,即可以与AI进行对局。

#################### 2

菜单栏的按钮,与单人打谱模式下对应按钮的功能一致。不了解的小伙伴可以查看文章开始时给出的链接地址。

目前AI对弈的神经网络部分不是太完善,存在一定问题。 代码仅供参考。

关于AI对弈的难度与对应的算法:

#################### 3

蒙特卡洛 MTCL

使用随机与概率来解决问题的一种方法。 比如下图,求解不规则图形的面积时,可以通过随机掷点,用落在图形内的概率来计算不规则图形的面积。

#################### 4

由 蒙特卡洛方法衍生出来的 蒙特卡洛树搜索 方法 在围棋中的应用 大概如下:

#################### 5

蒙特卡洛树搜索 图解:

#################### 6

若蒙特卡洛树的宽度为w,深度为d,则有下面的粗略计算:

#################### 7

BP神经网络

#################### 8
#################### 9
#################### 10
#################### 11

结束

本项目封装了AIPlayer , 可以轻易的扩展出 AI vs. AI 的模式,有兴趣的小伙伴可以尝试。