飞扬围棋论坛

 找回密码
 注册
搜索
查看: 9995|回复: 1
打印 上一主题 下一主题

转载【Computer Go】如何搭建围棋算法间对战平台

[复制链接]
跳转到指定楼层
1#
发表于 2018-5-24 08:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://tieba.baidu.com/p/2539475202
【Computer Go】如何搭建围棋算法间对战平台        只看楼主[url=]收藏[/url]回复                                                                     
               
            
  •                                                                                         
  •                                         琼蕊耹曌
  •                                             原子弹
    12
                        


                                            
                                    
吧友@yc10k  提到如何实现围棋算法间的对弈和比较呢?
我以前使用的是笨办法,就是将两个软件打开,一个电脑执黑人执白,一个电脑执白人执黑,然后跟局两个软件的走步,来回在摆子即可。

现在介绍一种能够让电脑间自动实验对弈的方法。
首先算法必须支持GTP,即Go Text Protocol, 是一种用文本方式与计算机围棋算法交流的协议。是GMP(Go Modem Protocol)协议的改进版。 由于其简单方便易读,现在很多围棋算法都遵循此协议。
其次需要有能够连接两个算法的平台,这里主要介绍GoGui。这是一款开源软件,本身只提供围棋对弈的界面,不自带围棋算法。如果想要实现人机对弈,需要连接相应的围棋算法即可。唯一不方便之处就是,有些算法是可以调节难度的,在GoGui中无法直接通过界面调节,需要通过算法传参。但只要通过了解,也可以很快掌握。

附件中包含了Windows版的GoGui,以及一些常见的围棋算法。
AmiGo 是最早的围棋开源算法。最早是1983年Stoney Ballard使用Pascal程序所写,后于1989年Todd R. Johnson改写为C语言。相对于新近的软件算法,Amigo的棋力是比较弱的(个人感觉18k+)。
Pachi 目前版本10.00,发布于2012年8月12日。棋力水平跟机子配置有关,在9×9棋盘棋力可达7D,在19×19大约1K。但在KGS上使用较为强力的计算机,棋力可达2D。如果使用计算机阵列(64台电脑,每台20核CPU),可达4D,甚至曾被让6子赢周俊勋九段。
GNU Go 从其名称GNU就可看出,是一款开源的围棋算法。最新版本是2009年2月发布的3.8版本。目前GNU Go活跃KGS平台,水平从25k到10k不等。
此处提供版本均为Windows版,如需Mac或Linux可通过搜索到其官方网站下载。

                    
                        gogui-1.4.7-install.exe
大小:1.18MB下载:245次转存:75次

下载转存到百度云
pachi-10.00-win32.7z
大小:215.78KB下载:126次转存:62次

下载转存到百度云
amigo.rar
大小:524.70KB下载:187次转存:76次

下载转存到百度云
gnugo-3.8.rar
大小:2.17MB下载:132次转存:59次

下载转存到百度云


                            [url=]送TA礼物[/url]                    


回复举报|1楼2013-08-18 21:32



                                                        
如果希望人机对战,可以选择Program->New Program,打开如上图界面。
单击Command后面的按钮,选择对应的围棋算法。

这里我选择amigogtp算法,直接点确定,这时算法就会记录到程序中。
在次通过Program->Attach->AmiGo,选择相应的程序。



通过Game->Computer Color 可以选择电脑的黑白,就可以和电脑进行对弈了。






                    
                        

                                                        如果只要设置一个围棋算法自身之间的对弈比较简单,只需要在Game->Computer Color->Both 选上后,程序会自动进行对弈。

但如果要让两个算法间进行对弈,这个就比较麻烦了。首先,这里就要使用到gogui-twogtp模块。而且只能通过命令行进行调用。

首先点开windows的开始菜单,在下图的框中输入CMD,回车,即可打开命令行窗口。


打开后应该是下图的模样,然后进入GoGui的安装目录,我这里是D:\Program Files (x86)\GoGui 这时就可以尽情使用GoGui提供的各项功能。





这里直接上个例子,黑棋是默认棋力的GNU GO,而白棋是棋力最高的GNU GO。调用gogui-twogtp,首先设置黑棋和白棋,其次-games是设置对局次数, -size 是设置棋盘大小, -alternate 是轮流执黑, -sgffile 对局存于文件, -auto 每局结束后自动继续。

BLACK="gnugo --mode gtp"
WHITE="gnugo --mode gtp --level 5"
gogui-twogtp -black "$BLACK" -white "$WHITE" -games 100 \
  -size 9 -alternate -sgffile gnugo5 -auto
(此段代码为Linux或Mac下可用,Windows下的命令见后面)

但这个方法是无法实时观测到对弈进程的,只能通过存储的文件来查看。但优点是速度快。

下例是通过界面显示程序实时进程,同时还可通过Tool->Analyze在运行中调整参数。缺点就是运行较慢。

BLACK="gnugo --mode gtp"
WHITE="gnugo --mode gtp --level 5"
gogui -program "gogui-twogtp -black \"$BLACK\" -white \"$WHITE\""
(此段代码为Linux或Mac下可用,Windows下的命令见后面)

上面两段例子适合作为参考,由于Windows使用的是Dos命令行,所以其命令又有所不同。
下面是一例,利用界面显示电脑对弈过程,黑棋是Amigo,白棋是Pachi。输入完命令,回车后,就会打开GoGui并对弈。

D:\Program Files (x86)\GoGui>gogui -program "gogui-twogtp.exe -black \"amigo\amigogtp.exe\" -white \"pachi\pachi.exe\"" -computer-both





                    
                        
~完~






回复

使用道具 举报

2#
发表于 2018-5-24 23:17 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|飞扬围棋网 ( 苏ICP备11029047号-1 )

GMT+8, 2024-4-20 04:29 , Processed in 0.135828 second(s), 18 queries .

since 2003飞扬围棋论坛 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表