找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 4324|回复: 14

对开局库的再思考

[复制链接]

6

主题

22

回帖

80

积分

注册会员

积分
80
发表于 2-10-2025 23:07:09 | 显示全部楼层 |阅读模式
本帖最后由 种肉肉的农夫 于 2-10-2025 23:14 编辑

开局库,指运行程序之前经行大量的计算,或者打原有的棋谱,已达到让自己快速取胜(对黑棋而言)或保证自己走在强防点位(对白棋而言)的一种手段。


就比如下述局面




此时,你是白方,你会选择走在哪里?是A,抑或是B?

这个问题并不简单,但是实际上,在上世纪电脑还未诞生的年代,此问题已由当时的研究五子棋的棋手研究出结论

A或者B,对于白而言都是必败的局面,但是对于白棋而言,A处可以使黑棋更难,且需要步骤更多的杀白,A更优于B处
(顺带提一下,这在五子棋中有个对A,B两点的特定名称,A叫做:花月开局白4最强防,B叫做:花月开局白4强防,还有一个次强防点,在3上面)

白4从AI的角度来看,判断出A点的并不困难,

但是对于黑棋而言,当白4走在A处时,黑5的选点判断则较为困难,或者说在5秒内,通过9层搜索,比较难找到最优点



请问,此时对于黑5而言,A,B,C哪个选点最优

这也是一个有定论的结论,通过枚举法可以知道,黑5的最优选点是A处,且在白接下来每一手都走在正招上(最强防),对于白最好情况也是31手杀。

(白6走在B处被称之为花月白6最强防,他有一个特殊的名字,叫:J78防)

对于计算机而言,你给他指定到黑5之后,算力不足的AI基本上也不一定能后续步步走在最优的杀点,甚至会出现偏差给你送掉导致白棋胜利。

那么开局库就是给这些算力不足的AI使用

通过哈希表等手段,在程序检测倒特定棋局的时候(比如利用zobrist对每个走过的选点进行异或操作,这一点很容易实现且没有技术含量),不进行任何的计算或者搜索,直接给出提前准备好的结果。

就比如上面举的例子,当白4走在那个位置,形成一个交叉的局面的时候,就规定走在(9,8)的位置,黑5最强杀点。这就强行的“提升了AI”的算力。

但是,这样的行为真的值得提倡或者模仿吗?或者说他真的是AI嘛?

不知道各位有没有学过围棋。

围棋里面有一句话叫做:千古无同局。固然,围棋棋手需要背很多的定时,需要刷很多的死活题,看到很多棋形都要立刻反映出来如果做活或者如果做杀

我小的时候也学过围棋,学到后面定了一段之后就不再学了(上小学一年级了,而且一段水平也不咋地),脑子里现在还有很多定式之类的。

但是,难道学这些定式就是为了在遇到特定的场合使用嘛???或者说,就是要在棋盘和棋谱书上面一摸一样的时候用嘛?

不是这样的,学习定式更多的是为了融会贯通,有如此多的棋形,你每一个都要学一遍,背一遍,可能连10级都考不出来,是没有前途的。

因为你背的东西终究不是你自己的,是别人研究好之后发出来的,是从古至今无数先辈呕心沥血研究出来的。

如果不能将其吸收学习,凭借自己的本事下出那些 ”妙手“, 则永远是不会有前途的!

对于五子棋AI也是一样,你要期望一个深度在5秒内只有搜索出来寥寥9层,宽度只有15,还是用python写出来的程序,算出那些要影响到15,16手后的妙手吗?

(哦,我说的是我的程序,因为我的程序就能搜9层,写过搜索的人都知道,搜索需要的计算量每加一层都是指数型的增加)
(顺带提一下,据我所知,搜索之王弈心深度也就11层,传统的启发式搜索的局限性就在这里,当年11层搜索就能称霸世界冠军这么多年)

如果是自己的程序,耗费比如一天,两天的时间算出来一些惊世骇俗的妙手,并计入在案,在后续的对弈中,遇到特定的棋形的时候拿出来用,这还能理解,或者说这的确是棋实力的一部分。

但如果运用别人的劳动成果,动辄打谱几十手,从开局直接打到最后一手,程序看上去实力超凡,实则哈希表运用到飞起。

这真的是人工智能吗?还仅仅是批了AI外衣的哈希表?

---

顺带讲讲开局库的历史吧

当年是搞象棋AI的人最先搞的开局库。结果由于象棋自身复杂度比较低,象棋AI给这群人玩死了

现状就是,2025年了,甚至没有一款强大的运用NNUE等先进算法的象棋AI出世。

愿意不是因为做不出,而是因为对于象棋而言这根本没有意义了。

比如,拼死拼活搞出象棋的神经网络,结果和人家用开局库的一比,搞不好还会出错,败下阵来

先进的算法永远比不上穷举法。

---

那么为什么五子棋AI能搞出来呢?

可以参照世界五子棋人工智能竞标赛Gomocup

每次比赛之前,人家都会弄几个新的特别的开局,其中一般5个黑优,5个白优,剩下的平衡。

直到开赛的那一刻,开局才会公布,这就从根源上杜绝了开局库的存在。

因为五子棋15*15的棋盘,也有3^(15*15)种可能性,更别提21路围棋,19路围棋了,枚举法枚举不完

因此,才有了后来神经网络,NNUE之类的高阶的算法的诞生

才有了对零和博弈类游戏人工智能的推动与发展

否则,也就不会有Alphago横扫围棋界,也就不会有现在AI对围棋界的推动作用,也就不会有那么多所谓的”AI定式“了。

如果固步自封,沿用前人的老路而没有自己的创新,那终究只会有两条路

要么这个游戏被玩死,要么你被时代所淘汰

单选投票, 共有 3 人参与投票
您所在的用户组没有投票权限

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

6

主题

22

回帖

80

积分

注册会员

积分
80
 楼主| 发表于 2-10-2025 23:11:05 | 显示全部楼层
楼主无意冒犯任何人

只是对某种技术手段的评价而已

一家之言,反对也无可厚非

6

主题

22

回帖

80

积分

注册会员

积分
80
 楼主| 发表于 2-10-2025 23:15:07 | 显示全部楼层
本帖最后由 种肉肉的农夫 于 2-10-2025 23:35 编辑

哦对了,发现有个回帖奖励,我的积分不多,如果回帖了发现没得到奖励,那估计是我的分被薅完了

0

主题

1

回帖

7

积分

注册会员

积分
7
发表于 2-10-2025 23:39:45 | 显示全部楼层

回帖奖励 +2 金钱

新人蹭个积分

8

主题

14

回帖

77

积分

版主

积分
77
发表于 2-11-2025 18:09:55 | 显示全部楼层
所以花月和浦月可否被理解为两种开局库?
楼主在决赛中执黑表现极其乏力,是因为白棋第二手没有贴着第一手下,在无法打开局库(花月浦月)的情况下棋力下降?

点评

首先,我的程序并没有任何的局库,也没有任何的针对花月,蒲月的开局库。不信我可以把程序全部公开,我的每一步都是程序自己的计算  发表于 2-11-2025 18:36

8

主题

14

回帖

77

积分

版主

积分
77
发表于 2-11-2025 18:26:28 | 显示全部楼层
楼主设计投票的能力有待提升。

我们来看两个选项:
1.  开局库属于棋力的一部分       
2.  运用开局库的程序并不能体现程序的实力

很容易可以发现,这两个选项并不是对立的,因此不能构成单选题。应当作为两道判断题。

私认为:
1. 对他人程序生成开局库的运用可以体现他人程序的实力
2. 对自己程序生成开局库的运用可以体现自己程序的实力
3. 开局库不是棋力的必要组成部分
4. 开局库可以提升棋力
5. 运用开局库的程序的棋力主要由开局库和程序算力组成
6. 运用开局库的程序实力也有高下之分

6

主题

22

回帖

80

积分

注册会员

积分
80
 楼主| 发表于 2-11-2025 18:45:20 来自手机 | 显示全部楼层
我需要强调一件事情。我这里所指的开局库是针对于如图中的白四选点,或者是黑5选点的思考

花月,蒲月,只是一种开局,而并非“开局库”

我不知道你知不知道,五子棋一共有24种开局

花月,蒲月只是24种的2种罢了,还有类似于恒星,彗星,流星,云月,雨月。

在正式的五子棋比赛中,如果是天元开局,则必须要在24种开局种选择一种。这并不是计算的结果,而是比赛的规定。

如果你不清楚规则,你可以百度一下五子棋比赛的规则。注意。我这里说的是天元开局五子棋规则。

其次,我的程序第三手选择花蒲,不是因为我有所谓的“花蒲开局库”,而是因为我遵守规则在24种棋形中选择了这2种。

在rt五子棋大赛中,没有24手开局这种规定。但规定自己程序走第3手我并不认为是错误的。

其次,本文讨论的是关于开局之后的事情,这才是“开局库”的范畴

开局库的范畴是从第3手一直到最后一手的范畴。

本文讨论的是,如果这种技术,被运用到所有的步骤,棋形,或者仅仅是针对某种特定的局面而下的。那则是不道德的。这也仅仅是楼主的观点。

最后我要强调的是。本文中并未讨论rt五子棋大赛中的任何一盘棋

6

主题

22

回帖

80

积分

注册会员

积分
80
 楼主| 发表于 2-11-2025 18:47:29 来自手机 | 显示全部楼层
我文中举了象棋ai的例子

愚以为,有了前车之鉴,为何后人依旧要重蹈覆辙

2

主题

9

回帖

78

积分

版主

积分
78
发表于 2-11-2025 18:57:25 来自手机 | 显示全部楼层
任何比赛中有过于op(超模)的选项/走法/策略是主办方应当想办法解决的问题;而非依赖所谓的君子协定进行禁止,亦或是攻击该走法以及使用该走法的选手。

点评

其次,我并没有攻击该选手 我至始至终没有提到有人采用该手段 请勿对号入座  发表于 2-11-2025 19:14

6

主题

22

回帖

80

积分

注册会员

积分
80
 楼主| 发表于 2-11-2025 19:02:14 来自手机 | 显示全部楼层
Ray 发表于 2-11-2025 18:09
所以花月和浦月可否被理解为两种开局库?
楼主在决赛中执黑表现极其乏力,是因为白棋第二手没有贴着第一手 ...

此外,我并不认为我决赛中执黑表现不佳
理由如下

1,黑5走在现代ai认为的1选上
2,黑7也是杀棋。
3,黑9纵使错过了一个20多步以后的杀棋,也是走在了一个胜率80几的选点上。对于一个启发式搜索的ai而言,可以说,一直到黑9,程序都没有打的错误
后续出现的问题手,究其原因是正好出发了底层逻辑中43的bug
即由于判断程序的判断失误,将43认为是必胜的棋形,没有考虑43时白方可能在黑棋的连5选点堵住活路造成无法必胜。

这的确是本人程序的缺陷,从2021年至今,也是比赛当天前一天晚上才发现的问题(已经没时间改了)

至于该问题为什么会出现并发现的如此之晚,究其原因是该情况发生的概率微乎其微,从来没有遇到过

试想,正好在成五的选点上堵住且是冲四或活四,这看上去是不是很难很难发生

当然,对本局决赛执黑由于底层逻辑的失误,造成的失败,我个人也是承认的,将在后续的版本修复这个bug
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 4-19-2025 04:25 , Processed in 0.105169 second(s), 34 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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