| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11464 人关注过本帖
标题:常见棋类AI复杂度介绍
取消只看楼主 加入收藏
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:4 
常见棋类AI复杂度介绍
本帖子是扫盲帖子,是关于棋类复杂度的介绍
这里介绍五种常见棋类:黑白棋,五子棋,中国象棋,国际象棋,围棋

黑白棋:相当经典的游戏,因为棋盘为8X8大小,且每一步变化不多,估算的搜索空间复杂度为10的28次方
而小棋盘版的6X6黑白棋,已经被软件穷尽所有变化,证明是后手必胜,人们猜测8X8也是后手必胜

五子棋:虽然是经典游戏,但在加入禁手,三手交换,五手两打后,变得复杂化起来,特别是禁手会存在各种假禁手,
导致禁手判断的工作一点也不轻松,日本曾有人出的一些禁手题,还能难倒很多爱好者。
目前,即使先不考虑禁手规则,而棋盘大小为15X15的五子棋,
考虑了开局有很多不必要的着法,剪掉以后,空间复杂度仍然有10的105次方
如果加入禁手规则,会让空间复杂度略减(当有禁手点出现的时候),但禁手判断的复杂性,却填补了这个复杂度的减小,
反而使软件的复杂度更大(拖慢软件搜索速度)

中国象棋:几百年以来唯一规则没变化过的古老棋类,棋盘比国际象棋稍大(9X10),
总变化也比国际象棋略多一些,为10的48次方

国际象棋:国际上知名度很高的棋类,并且他的发明的传说也一样出名(就是第一个格子放一个谷子,后面每格是前面的两倍那个)
它的空间复杂度比中国象棋稍低,为10的47次方

围棋:当之无愧的复杂度之王,拥有19X19的超大棋盘,空间复杂度高达10的360次方,居棋类复杂度之首,并且远远抛离第二名的棋类


可能有些人认为,五子棋的AI比象棋AI要容易实现?按状态空间复杂度来看,显然不是这样,
那为什么产生这个错觉?这是因为他看到的只是着法生成的复杂度

着法生成是棋类AI的一个组成部分,着法生成显然和棋类规则的复杂程度有关。对于以上几种棋类,显然是中国象棋和国际象棋的着法最为复杂
但这并不表明这个棋类就复杂,规则更简单的围棋显然不是这样
我猜很可能是他只看到着法生成器的复杂度,因为只要有着法生成器,电脑就已经能应对下子了,
再加上简单的静态评估函数,就可以实现最简单的AI,即使根本没有进行搜索。
但不搜索的AI没有任何意义

如何公平比较AI的实现难度呢?这些棋类都是竞技棋类,有严格的水平段位制
和人类相同段位的棋手做比较,拿五子棋和象棋的话,我们假设和五子棋的初段棋手,和中国象棋的初段棋手来比
目前最顶尖的五子棋软件是黑石,但总体水平只达到了职业初段,虽然局部攻杀水平极高,但也不能和人类最高水平棋手相较量
最顶尖的中国象棋软件,很多,有倚天,旋风,天机,大圣,奇兵,其中大圣曾和许银川(九段)六战成和

如果说国际象棋,最出名的当数1997年的深蓝之战,3.5 : 2.5 击败了人类最顶尖的棋手

其实这也可见,这和棋类的状态空间复杂度有着密切的联系,较低的空间复杂度的棋类,机器在人类面前显得水平越强
特别是黑白棋,自从zebra的出现,就把人类最顶尖棋手远远抛离

更多的其它棋类状态空间复杂度的比较,可以见wiki百科:
http://en.

部分英文词汇:
Chess   国际象棋
Xiangqi 中国象棋
Gomoku  无禁手的五子棋(Renju才是有禁手五子棋的名字)
Reversi 黑白棋(另一名字是Othello)
Go      围棋
收到的鲜花
搜索更多相关主题的帖子: 中国象棋 国际象棋 五子棋 爱好者 经典的 
2010-12-25 13:55
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
五子棋AI比象棋AI实现同等级水平要更困难,是国际学术上公认的结果,不知道谁有本事得可以如此简单地打算用两句无引据的说话就去推翻
大话说的太过火,对你没好处

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-12-26 19:07
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
他咄咄逼人是好事,你们就不要阻止他了

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-12-27 19:20
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
以下是引用pangding在2010-12-27 21:54:11的发言:

好久不来C版块了,不明就里,不乱说话。不过这面果断还是很激烈呀。
只看了这个帖子,就说扫盲的话,我觉得确实还不错。不过御坂前一阵子干过什么不是很清楚。

不过这个 AI 写码难度问题,不是写码本身,还是人们对相关领域的研究是不是充分。我在这方面研究的很少,只知道一点关于围棋的。但研究的也很浅。
比如 StarWing 说的评估函数,这个的确很重要。有好多问题其实主要是没算法。围棋里这个很明显,妙手根本无法评价。人们下了相当的精力去研究开局。其实从另外的角度看,就是人类目前还没有能力研究其它的(官子相对容易一点)。而且有人夸张地觉得几个世纪以内这种局面都无法突破。
而象棋之类的,人们研究成果要好的多。比如 你们都要疼我哦 说有好多棋库之类的,其实就是相关的变化研究清楚了。这能解决好多问题。在围棋里往往不是这样的,本来以为的恶手有时会发挥不可想像的作用,但局部好手有时反而会拖垮整体的形势。

我这显然是外行人的见解,你们研究过的就不用喷我口水了。
什么东西导致人类上千年也无法研究充分?什么东西导致短短几十年的黑白棋,电脑就轻松击败人类?不要忽略最根本的原因,棋类本身的复杂度

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-12-27 22:11
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
以下是引用pangding在2010-12-27 22:52:27的发言:

嗯。主要原因是棋本身的难度。

我当时的意思是,这和编程没关系。如果围棋现在已经研究清楚了,但还没有写过 AI,那么用不了多久就能开发出来。但如果黑白棋现在还没研究出什么头绪,代码不一定比围棋好写。
我是刚看了没几楼时回的帖,看来没说在点上。不过没关系。
对,这个说的对,和编程关系不大,是棋本身的难度决定的,
不过有少数棋类的复杂度容易被低估,比如五子棋,所以才出现这种纠纷,发这个帖子不是在怪他们,只是想纠正大家的认识,大家共同学习进步
而且,我从没放弃过和任何一个热爱编程和热爱学习的人交朋友,
所以他们每一次的回帖,即使是说不好听的,我也觉得很开心,他们在当我是好朋友,在顶我的帖子呢!
哪天,他们真愿意和我当朋友的话,我更开心

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-12-27 23:10
快速回复:常见棋类AI复杂度介绍
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016964 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved