★★★ 求顶级黑白棋的估值方法。欢迎讨论!

NowCan 2004-11-26 01:18:29
国内的黑白棋智能和国外的差距很大,希望大家能讨论讨论,怎样才能写出顶级的黑白棋程序。
...全文
2396 42 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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)
对于人工智能来说,棋类由于其巨大的复杂度一直是最具有挑战的游戏。围棋自从被创造出来,已经有数千年的历史了,在19路围棋中,即棋盘是由19*19个纵横交叉点组成的,每个交叉点都有黑白空三种不同的状态,则博弈树的复杂度在10的300次方左右,其天文数字远远的超过了宇宙中原子的个数。在象棋与国际象棋被计算机用穷举加上搜索的方法战胜了世界上顶级的棋手后,围棋成为了人工智能最想要征服的游戏。但是,传统的计算机围棋程序面对职业围棋棋手时仍然被让3到4子,在2015年国际学术界普遍认为解决围棋问题至少需要10年到20年的时间。但是,2016年3月,DeepMind团队的人工智能程序AlphaGo以4比1的成绩战胜了韩国棋手世界围棋冠军李世乭九段,引起了围棋界以及人工智能界的广泛关注,这对于计算机围棋来说具有跨时代的意义,AlphaGo所使用的深度学习技术也成为人们关注和讨论的热点。AlphaGo围棋程序程序通过决策与评估两个大脑的组合进行围棋的对弈,策略大脑对当前盘面进行下一步棋的选择,评估大脑对当前的盘面进行大局观的评价。本文主要研究AlphaGo的价值神经网络的设计与实现,通过从围棋数据集的制作,到价值神经网络模型的复现,从网络训练过程中的算法优化,到实现一个36层深度残差价值神经网络,最后进行大规模分布式的神经网络的训练,并训练出更为精确的价值神经网络。本文研究的目的在于设计出一个更为精确的价值神经网络,该网络可以准确的预测出当前盘面的黑子与白子的胜率,具有很好的大局观,从而可以提升计算机围棋的水平,同时价值神经网络的工作模式可以应用解决生活中的估值问题。本文相较于AlphaGo的价值神经网络在数据集制作,网络模型的构建和大规模分布式训练方面都有较大的改进,从而提升了估值的准确性。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧