社区
数据结构与算法
帖子详情
★★★ 求顶级黑白棋的估值方法。欢迎讨论!
NowCan
2004-11-26 01:18:29
国内的黑白棋智能和国外的差距很大,希望大家能讨论讨论,怎样才能写出顶级的黑白棋程序。
...全文
2441
42
打赏
收藏
★★★ 求顶级黑白棋的估值方法。欢迎讨论!
国内的黑白棋智能和国外的差距很大,希望大家能讨论讨论,怎样才能写出顶级的黑白棋程序。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
42 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shines77
2005-06-28
打赏
举报
回复
4天?我倒了。。。。真有毅力:)
NowCan
2005-06-28
打赏
举报
回复
呵呵,4天还是保守估计,经过昨天一夜的运算,我发现程序有越来越慢的趋势。而且今天发现程序有错误,只好重来。
其实,统计逼近的方法也可以用在经典的估值方法(行动力、潜在行动力、稳定子)上,应该是一样的,而且计算起来应该会快很多,也许我还会试试这条路。
NowCan
2005-06-27
打赏
举报
回复
现在已经基本明白了模板估值。编了个程序正在计算模板参数,估计运行时间4天左右,这个帖子结了。
xu770
2005-06-03
打赏
举报
回复
mark
wh_5
2005-06-02
打赏
举报
回复
高手看哈这个问题。。http://community.csdn.net/Expert/topic/4054/4054933.xml?temp=.1963007
NowCan
2005-06-02
打赏
举报
回复
最新进展。
看到了Zebra的源代码,很复杂,难。
反编译了Booby java版,还没仔细看。
jerryy
2005-04-07
打赏
举报
回复
我倒是一直想做一个五子棋的
wuyi8808
2005-04-03
打赏
举报
回复
mark
NowCan
2005-02-07
打赏
举报
回复
我倒是见过一个用C写的全bitboard的黑白棋,计算棋子翻转的地方比求行动力复杂很多,没仔细看。本想看看他怎么计算模板的,但是没有。
我看到Logistello模板值的计算方法了,是迭代的,还不是很明白。再找找其他程序的方法看看。
shines77
2005-02-07
打赏
举报
回复
今天是魔兽世界WoW欧洲内测的最后一天,也许我会上去一下,他陪伴我度过了近4个月,再下来偶就没有钱在发行的时候玩它了(内测免费的),纪念一下。国内的至少要5月以后才能上市,同样,不一定有时间和money玩
shines77
2005-02-07
打赏
举报
回复
我现在在写bitboard的计算某位置的flip disc list(翻转棋子列表的函数),我想出了一个还可以通过的方法,不知道有没有效率更高的方法,这个函数看起来比bitboard计算计算行动力难度高了许多,开始本想写一个漂亮的函数,结果发现实在没有办法写得漂亮,代码量会比计算行动力的多一倍左右
这个函数完成了,搜索过程中其他的部分就基本上可以全部使用bitboard了,当然,估值的时候最好也是用模板pattern,它太适合bitboard了,那是我写一步要做的。我现在也把我的AI函数写成了DLL和静态的Lib(两种方式),不知道什么时候可以完成。上面的翻转列表函数(使用MMX+汇编)写完了我会公开的
NowCan
2005-02-07
打赏
举报
回复
又研究了一下模板估值,镜像和旋转都看成是同一模板。现在主要问题就是模板的值怎么计算了。
Logistello作者公布的那些文档我找了很久,也没发现特别详细的说明。
我现在可以统计棋局,把各个阶段各种模板的取胜比例都统计出来,但是下一步呢?我卡在这里了。
NowCan
2005-01-28
打赏
举报
回复
谢谢关注.
其实你说的模板估值方法我大概也知道,一般的程序有11种模板,2*2角,3*3角,2*5角,4种横线,长度超过4的斜线,还有一种是边加两个X格.然后对于任意棋局,都可以拆分为这11种模板或其旋转,镜像.最后进行线性组合.
我主要是不知道这些模板的值怎么计算.以及在生成这些值时如何处理他们的旋转和镜像.
MPC我倒是知道一些,但没开始实用.因为我现在的估值函数太不稳定了.
Booby我领教过他的棋力,确实很强.但你说他终局比WZebra还快,我到没觉得,也许是版本不同,我的是4.21版,Booby是4.0版.但我看不出他终局搜索了多少层,感觉上好像是20-24层,不过可以看出,他刚开始的几次终局搜索是胜负搜索,并没有搜索确切比分,这样能快很多.我试验过我自己的程序,如果胜负搜索22层,一般会在1分钟内出结果,但是要搜索确切比分,10分钟都不一定能有结果.
Booby的开局库是exe文件里的一些资源,又没有相关的菜单,没办法不用开局库.
Booby的网站对我来说没用,全是乱码:)
shines77
2005-01-26
打赏
举报
回复
说说我所了解的模板估值方法吧,其实这是一个漫长的统计过程,先确定模板的类型,大概有10几种。然后确定每一个模板的估值,像Nowcan说的,估值的大概就是类似查表的方法。再找一个比较厉害的程序或棋手,进行大量的对局,进而判断胜率或评估棋力。根据模拟火的策略(棋力会忽高忽低的反弹,模拟金属加热和退火的过程,在碰到表现不佳的模板参数时,在一定的概率上继续尝试下去(参数仅做少量的修改)),不断的修改模板的估值,然后重复上一步的大量对局,这样有可能求出一个较优解。Logistello的作者的一个.ps文件里有一些更详细的讲述,只是我当时没怎么看懂。还有,就是不同的棋局的阶段应使用相应的模板的参数。
至于WZebra等搜索较深的程序来讲,一般都用到了MPC(Mutil-Prob Cut,多重概率剪枝),但是这个算法要求有一个比较稳定而且较为准确的高质量评估函数作为基础,因为它在浅层(如8层)的搜索里就要剪掉很多的分支(好像这是对于ProbCut而言的,对于Mutil-ProbCut是对每一层都会剪掉一些分支),所以它的搜索节点是减少了很多的,所以可以搜索较深的层数。
还有就是,其实日本对于的黑白棋的研究也是相当不错的,某些程序也是很牛的,比如Booby REVERSI这个小程序,竟然是Turbo Pascal 7.0写的,程序很小,但棋力也很强,走棋没有WZebra快,但终局的搜索比WZebra快(好像是),唯一的遗憾就是无法去掉其开局的开局库(你会看到某些它存有的开局,它都是不必搜索就下了的,好像不容易检验其真正的棋力,尤其是开局),其中对棋局的分析有其独到之处(可以使用菜单里的Analyze查看),主页好像是:http://www.amy.hi-ho.ne.jp/okuhara/
yeeshengwei
2005-01-21
打赏
举报
回复
关注一下!
NowCan
2005-01-19
打赏
举报
回复
如何进行对战去我的blog看。
http://blog.csdn.net/nowcan
wvins
2005-01-19
打赏
举报
回复
人工智能对战的能提供网址吗?
希望有一天也能成为高手!
wvins
2005-01-19
打赏
举报
回复
我有个黑白棋的游戏,同学的同学编的。据说很强,我又不会。有兴趣的找我,自己分析吧。
QQ:36330393
赖勇浩
2004-12-26
打赏
举报
回复
我会时时帮顶的.
Fortress
2004-12-24
打赏
举报
回复
最近没空考虑这个,不过还是顶一下。
加载更多回复(22)
价值神经网络在计算机围棋的优化研究_王力.caj
在象棋与国际象棋被计算机用穷举加上搜索的
方法
战胜了世界上
顶级
的棋手后,围棋成为了人工智能最想要征服的游戏。但是,传统的计算机围棋程序面对职业围棋棋手时仍然被让3到4子,在2015年国际学术界普遍认为解决围棋...
JAVA
黑白棋
之算法浅析
本为主要对我在开发JAVA
黑白棋
人机算法过程中所用的博弈思想、
估值
函数、搜索算法分3个方面进行了阐述,由于本人水平有限,如果大家希望了解更多有关
黑白棋
博弈策略以及人机算法的深入的理论研究,可以参看本文...
基于Minimax和Alpha-Beta剪枝实现的C语言五子棋AI入门
五子棋AI是上大学第一学期做的第一个工程,其中断断续续做了近一个月时间,其中的思路和
估值
参考了许多这位大神的作品lihongxun,但其中有些算法功能还未能完全掌握运用,不过目前棋力很多时候已不输于其AI。...
AlphaGo围棋论文中文翻译
这种方式可以在国际象棋,西洋棋,
黑白棋
游戏中达到超人一样的水平,但是因为围棋的计算复杂度,这种
方法
被认为很难在围棋中有效。第二条原则,在一个策略 ( | ) 上的采样走子减少搜索的宽度,策略 ( | ) 为在...
AlphaGo围棋 论文笔记
这种方式可以在国际象棋,西洋棋,
黑白棋
游戏中达到超人一样的水平,但是因为围棋的计算复杂度,这种
方法
被认为很难在围棋中有效。第二条原则,在一个策略 ( | ) 上的采样走子减少搜索的宽度,策略 ( | ...
数据结构与算法
33,029
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章