玩转你的Alpha狗
外传
AlphaGo的代码已经开源了(AiphaGo),里面有一些代码是空的,说是在开发中,大公司内部还在审核评估吧。
放出来的代码里
interface 里server文件里是一个python的网页版围棋工具,可以导入SGF格式(一种围棋棋谱格式)。
启动server,goServer.py 68行需要插入 path = path.strip(“go.html”)
python goServer.py
浏览器里通过访问
http://localhost:8000/go.html
AlphaGo文件里是一些训练的代码和数据建模。可以拿来学习一下,具体用法可以看看test文件夹里的测试代码。
好了,说说简单的alphaGo开发
1.物料
一个简易版的alpha狗需要什么组件?
- 一个围棋UI,能够接入各种的围棋引擎。GoGui一个Java的围棋UI,支持GTP协议(这个协议是什么一会儿讲)。
- 一个围棋策略引擎,就像Alpha狗里的算法。看到的文章里提到了一个shedskin(应该就是人家写着玩的东西)。在examples文件夹里面。
只要引擎支持的协议UI支持就ok了。
引擎和UI之间通过一个协议进行通信,这就是GTP(http://www.lysator.liu.se/~gunnar/gtp/)。GTP是非对称协议,包括控制端和引擎两方面。控制端发送命令,引擎响应之。
2.安装
1.策略引擎shedskin下载即可。
进入examples文件夹,go.py是一个cmd界面的游戏,和MUD似的。disco.py是引擎脚本。支持GTP协议。可以执行试试效果。
python go.py
2.编译GoGUI
因为GoGUI已经很久不维护了,所以里面的配置比较老,编译主要碰到了两个问题:
- docbook-xsl配置
- SetFile配置
1)docbook-xsl安装
从docbook-xsl这里下载。我下载的是1.78.0。
解压缩,并将xsl拷贝到/usr/local/share,这一步不做也可以,下一步制定路径的时候制定到解压缩路径即可。
cp -r docbook-xsl-1.78.0 /usr/local/share/xml/docbook/docbook-xsl
制定docbook-xsl.dir参数编译。
ant gogui.app -Ddocbook-xsl.dir=/usr/local/share/xml/docbook/docbook-xsl
2)SetFile配置
编译的时候报了这么错误,蒙圈了。
/Users/yangpeng/Downloads/code/gogui/build.xml:376: Execute failed: java.io.IOException: Cannot run program "/Developer/Tools/SetFile": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at java.lang.Runtime.exec(Runtime.java:617) at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
仔细看了看,原因现在SetFile已经不在这个路径了。
修改build.xml的这一行<property name="osx.setfile" value="SetFile"/>
再次打包就ok了。
3.执行
进入/gogui/build,双击GoGUI。
GoGUI主界面如下图:
先把棋盘改为9 * 9的,没办法disco支持不了19 * 19的。
打开Program->New Program,用下图Command和Work Dictionary的配置就行。
在打开Program->Attach里选择“disco”引擎。
4.引用文章
学习你能打败这个简易版的AlphaGo 所得。