国际象棋中所有可能动作的数据库


14

想象一下,有一个国际象棋数据库,其中包含所有可能的移动和位置。该数据库包含从开始到结束游戏的所有可能动作。

如果我凭直觉对一台国际象棋引擎进行游戏,它可以预测哪一步会令我输赢。

因此,这意味着不需要“象棋引擎”,因为已经记录了所有可能的动作。

如果存在这样的数据库,它将具有以下优点:

  • 在快速的闪电战中,国际象棋引擎肯定会失去对抗国际象棋的可能性。
  • 我们可以确切地知道哪个开口将有更多机会与其他对手竞争。

或者,如果还不存在这样的数据库,我们可以对从开局到结束游戏的所有可能动作进行数学计算。

这样的数据库是否可能存在?


5
不,任何可想象的技术都是不可能的。
托尼·恩尼斯

我徘徊了一段时间..仍然没有创建它。你是对的。啊哈哈
艾哈迈德·阿兹瓦

3
祝您建立一个比宇宙中原子多得多的字节的数据库
David

嗨,我是这个社区的新成员,我来自MathStack。只是想分享一下,宇宙中的原子少于国际象棋比赛中的国际象棋游戏数量。尝试使用Shannon编号(youtube.com/watch?v=Km024eldY1A)。
Sujit Bhattacharyya

Answers:


33

我相信您的问题实质上可以归结为是否有可能完全“解决”国际象棋这一话题。Wikipedia上有一篇关于该主题的出色文章,应该给您很好的概述。

总而言之,国际象棋中可能出现的游戏变异数估计为10 ^ 120。为了比较,考虑到可观察到的宇宙中的原子数估计为10 ^ 80左右,这是一个惊人的巨大数字。换句话说,如果您将整个可观察的宇宙用作硬盘驱动器,则仍然需要在每个原子上存储10 ^ 40种国际象棋游戏组合,以便简单地存储所有这些。不用说,这远远超出了我们当前和可预见的技术,大多数人认为这是完全不可能的。

国际象棋残局的复杂性要低得多,我们已经可以计算五件套和六件套残局的所有可能组合。这些通常是研究人员可以使用超级计算机完成的艰巨任务,并且最终的最终数据库很大(大约数百TB)。每次添加新片段,计算的规模和复杂性都会成倍增加,这意味着在可预见的将来,我们可以预期这些结果只会增加几块。


现在我想像是有代表最终游戏表的算法.. ^^
艾哈迈德·阿兹瓦尔

3
@AhmadAzwarAnas好吧,我认为国际象棋引擎中已经使用了简单的引擎,并且在技术允许的情况下将添加更完整的引擎。就算法而言,我猜您可以通过分析最终模式来“压缩”最终游戏桌的模式,并将其概括为一组规则,这些规则显然会导致结果。然而,在所有可能的情况下,这套规则仍然绝对是庞大的,因为微小的变化(例如是否反对)会改变游戏的结果。
Daniel B

@AhmadAzwarAnas实际上,为什么不只是国际象棋的算法?每一场输掉的比赛都必须有一个错误的举动,对吗?也就是说,在此之前,无论对手的动作如何,都存在不输的道路,但是在此之后,这不再是正确的。那么算法必须做的“全部”就是识别这些举动,这样您就可以避免它们。
2014年

1
@Michael比这更难-无论对手如何移动,您如何知道存在获胜的途径?充其量只有一种情况是只有50%的时间,因为如果一个人获胜,那么另一个人就会被迫输。实际上让它回到起始位置-为了在游戏中进一步存在一条路径,那时候应该存在一个“绝对获胜路径”-如果我们知道了这一点,那么为什么有人会再扮演失败的色彩呢? ,知道无论他们采取什么行动,他们都会输掉?如果可以的话,为什么没人再下棋呢?
user2813274 2014年

2
+1,但您的分析是错误的。要存储一个数据库,您只需要存储每个位置,而不是每个可能的游戏。香农估计大约有10 ^ 43个位置,而地球上大约有10 ^ 50个原子。因此,您可以通过将整个地球变成一台计算机来解决国际象棋。
David Richerby 2014年

8

不,这样的数据库不可能存在。计算该计算机将需要一台不可行的大型计算机,并且该计算将花费很长时间,以致您的计算机不存在足够长的时间来完成任务。

克劳德·香农(Claude Shannon)估计,国际象棋中大约有10 43个可能的职位,您的数据库将需要存储所有这些职位的结果(从本质上来说,这将是一个32人的数据库)。但是,据估计,地球仅包含约10 50个原子,即使您仅用10,000,000个原子就能构建一个存储单元,您仍将需要一台像地球大小的计算机来存储所有位置。

但是这么大的计算机带来了很大的问题。地球的直径约为12,800公里,光大约需要43毫秒才能跨越该距离。这意味着,如果一个时钟周期持续时间超过,持续时间43ms长,那么不仅你有可怕的时钟偏斜您的计算机,但不同地区甚至不在同一个时钟周期。避免这种情况,将时钟速度限制为大约23.5Hz(不是GHz或MHz;只有Hz)。即使您可以在单个时钟周期内完全评估一个位置,这也意味着您的计算机将需要大约4.3x10 41秒来完成其任务。大约是1.4x10 34年。那是1.4万亿亿亿年。

天体物理学家认为,在1.4x10 34年内,宇宙看起来将与现在完全不同。到那时,恒星将很久以前就不复存在,即使是那些没有意义的放射性元素也将经历大量的放射性衰变。甚至形成原子核的质子也将经历显着的放射性衰变。因此,您的地球大小的计算机根本不再存在。


2
所以你的意思是有机会吗?
bpromas

6

我认为丹尼尔(Daniel)的回答很好(+1),但无论如何都想补充一些想法。

32片桌子的桌子真的可以代替国际象棋引擎吗?答案肯定是不!

为了下好棋,需要的信息比举步成功,失败还是失败都要多。当然,这样的数据库是无与伦比的,但也很难击败任何人。

要强烈下棋,仅在每一步都选择不输的动作是不够的。每个位置上的许多抽签动作中,只有极少数会给对手施加实际压力。

通过访问表库,现有的国际象棋引擎变得更加强大。但是随着数据库的增长,在将宇宙中的每个原子用于内存之前,访问时间将成为一个阻碍因素;-)。

因此,我认为您的结论是错误的:这样的数据库永远不会丢失,也几乎不会赢。除了几乎所有的都是平局之外,它什么也没告诉我们。我们可能会设计出新算法来挖掘该数据库,并得出有关各种位置的有趣结论,但是我认为这不会以任何重大方式改变国际象棋的世界。


您误解了数据库将包含的内容。每个可能的举动将被标记为“如果我玩此游戏,我的对手可以强制我赢,然后我做下一步”,“如果我玩这个游戏,我可以强制我赢我对手的下一个任务”或“平局”。这样,您就不会“每转都玩不输球”:只要有这样的举动,您就会在每转都玩强制赢。
David Richerby 2014年

1
好吧,实际上,我确切地理解了数据库将包含的内容……我要说明的重点是,在高级象棋游戏中,“没有强迫胜利!” 超过90%的职位。而且,您需要的方式远比“此举平手而败”还要多,才能真正在对等球员的情况下获得胜利。
BlindKungFuMaster 2014年

2
举个例子:在开始位置,数据库中唯一的信息就是“所有动作平局”。因此,您将完全依靠自己。如果您完全靠自己,那么您如何在与强者的对抗中获得胜利呢?答案是:您不会。如果您遵循一条唯一的绘图线,那么您的位置将越来越糟。
BlindKungFuMaster 2014年

不,那是不对的。获得成功的举动是微不足道的。只需从当前位置计算所有可能的移动,检查DB上的最终位置,然后选择一个获胜或平局。根据定义,如果您当前的职位是“您赢了”,那么下一个职位中至少会有一个人是“您赢了”;如果您当前的位置是“平局”,那么下一个位置中的至少一个将是“平局”(如果您的对手表现不佳,则可能会有一些“您获胜”)。
伊格纳西奥·卡尔沃

1
关键是当前职位通常不是“您赢了”。例如,很可能在起始位置没有强制胜利。
BlindKungFuMaster

3

我认为总有一天象棋会解决。为什么?因为,不久前,在计算机上下棋是不可思议且不可想象的!您如何训练计算机下棋?好吧,他们做到了!(此外,计算机的概念很奇怪……)我的观点是,这似乎很奇怪,因为我们从未见过或听说过它。这不是我们容易想象的东西。但是技术正在以指数级的速度增长。如果在不久的将来(10年以上)以一种或另一种形式解决它,我不会感到惊讶。


1
解决国际象棋的障碍是您需要整理的字面上的天文数字。香农估计国际象棋大约有10 ^ 43个职位,您需要存储每个职位的结果。从角度看,地球包含大约10 ^ 50个原子,因此,即使您可以从10,000,000个原子构建一个存储单元,您仍然需要将整个地球转换为一个存储库,以存储结果!
David Richerby

1
@DavidRicherby假设国际象棋是打法最好的平局。然后,对于每一次白色动作,黑色都有足够的反应。对于下一个白色动作,黑色也有适当的响应,依此类推。可以想象,构建这样的“绘制树”需要的位置少于10 ^ 43。
Dag Oskar Madsen 2014年

4
@DagOskarMadsen是的,实际上存储树可能需要更少的内存(尽管仍然是天文数字)。但是,当前用于构建此类树木的技术是从所有结束位置进行逆行分析,这至少需要在每个中间阶段建立一个完整的数据库,以了解每个位置的操作。
David Richerby 2014年

1
抱歉宣布你错了!@DagOskarMadsen但是,如果您不知道如何反驳“不足”的回答,您真的可以声称您已经解决了游戏吗?
大卫,

2

早在1980年代初期,我在一次游戏中读到一段文字,即如果计算机可以计划,评估和执行移动,那么从游戏开始到每1/3纳秒的任何结论,任何单步移动,大约每秒30 亿步,要想想得到的每个结果都要花10到120世纪才能完成。还有谁等那么久?

另一个惊人的统计数字?您显然听说过googol吗?不是Google,而是数字?是10的100次方。10后跟100个零。现在想象一下googolplex。那是googol'th力量的10。

我读过,在已知的宇宙中,甚至没有原子,没有什么东西需要使用googleplex。实际上,即使googol也太大了,无法描述任何东西。您应该查看有关这些数字的一些令人惊讶的琐事。


1

如果您使用“修剪”,则可以删除错误的选项(肯定会导致您不知所措的选项),并在修剪时继续循环播放。这样,您可能有足够的内存来存储“良好”选项。


0

尽管在这个宇宙中不可能在数据库中实现国际象棋,但是可以说游戏的抽象结构是作为有限的数学对象而存在的。尽管我们可能不知道那是什么,但人们可以对此进行推理并得出结论,它具有确定的结果。然后,如果您将其视为矩阵,则可以提出类似国际象棋的最大特征值的问题。确实柏拉图认为数字确实存在,所以我想他会说象棋游戏以同样的崇高和无益的方式存在。

但实际上,我可以想象一台先进的量子计算机可能真正能够代表这一点,甚至可以解决国际象棋。关于这项技术的功能尚无定论,但原则上我看不出这是不可能的


-1

是的,我认为这是可能的。但是只有在数据库更像是神经网络的情况下,采取行动导致数据库丢失并删除它们。该计算是基于对象棋游戏中所有可能的动作(一次移动一次,移动100个左右)进行求幂的。同时,如果我们避免重复,((Ke3 Ke4 Ke3 Ke4)循环)10 ^ 120可能会变成10 ^ 70。这仍然是可笑的,但是如果我们能够以某种方式将其编码到4D平面上(我相信这是可能的),那将是孩子们的游戏。


2
欢迎来到国际象棋!请在游览时进行游览。您的帖子可能被否决了,因为它像我们在这里期望的那样,更多是一种意见,而更少一种答案;请参阅帮助中心文章“ 如何回答”
Glorfindel

2
我不是国际象棋人,从记录上看,我也不是拒绝投票的人之一,但是我读过有10 ^ 43个不同的职位。仅仅因为您有一种允许过滤掉某些数据的方法,为什么您会自动假定这样做是可能的?我认为您完全低估了这个数据库需要多大的空间。这远远超出了现代计算技术的范围,我无法想象我们正走在这样的轨道上,即使从现在开始一个世纪也是如此。但欢迎来到SE Chess。(也欢迎我,我想:P)
乔·马耶夫斯基
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.