编辑:似乎我的问题还不够清楚。我再说一句:最大的N值是多少?我们可以说出“从开始位置开始,棋子不是N步中的强制配偶”吗?
国际象棋没有解决,也就是说,不知道从起始位置得到的结果是完美的比赛。
但是,如果任何一位玩家的起始位置都是赢球,则对于N个玩家来说,它是N的队友。同样,例如,如果我们确定起始位置在5次移动中(对于任何一位玩家)都不可取胜,则5是N的下限。
在实践中从头开始进行详尽搜索大概有多深?N的下限有多高?
编辑:似乎我的问题还不够清楚。我再说一句:最大的N值是多少?我们可以说出“从开始位置开始,棋子不是N步中的强制配偶”吗?
国际象棋没有解决,也就是说,不知道从起始位置得到的结果是完美的比赛。
但是,如果任何一位玩家的起始位置都是赢球,则对于N个玩家来说,它是N的队友。同样,例如,如果我们确定起始位置在5次移动中(对于任何一位玩家)都不可取胜,则5是N的下限。
在实践中从头开始进行详尽搜索大概有多深?N的下限有多高?
Answers:
本质上,这是国际象棋的游戏复杂性是什么的问题。注意,由于有限性,我们知道棋是确定的,但是我们不知道起始位置是白棋赢,黑棋赢还是平局。国际象棋的游戏复杂度大约是我们需要在游戏树中检查以确定初始位置状态所需的最小位置数。这就是香农数。在有影响力的论文《为象棋编程计算机》中,香农估计香农数至少为10 ^ {120)。请注意,宇宙中的粒子数估计为10 ^(80)。为了回答这个问题,我们实际上想知道高度确定初始位置时,游戏树的位置。我们还应该除以2这个高度,因为此举在国际象棋通常被认为是白色和黑色的举动。该树的分支因子估计约为30。因此,我们可以采用最大的N,使得30 ^(2N)<10 ^(120)。
回答。在信封的背面,N = 40。巧合的是,这恰好是大师之间平均一场比赛的时间(尽管他们经常辞职并且实际上并没有下定论)。
编辑。这个故事的寓意是,我试图估计您的下限的上限。香农的推理的第一部分不是循环的。他说每个位置大约有30个合法动作,并且这个数字对于游戏的第一部分来说是恒定不变的。
因此,我们可以估计N 的当前已知值(这实际上是您要的N,称为N')最多为log_30(C),其中C等于历史记录中已经存在的计算能力人类。即使对C进行保守估计,我们最多也只能得到N'20。实际上,我认为没有人在树上进行过此计算,因为先验的我们知道,经过很长一段时间后,计算变得不可行。身高矮小,没有必要穷举搜索树来编写好的国际象棋程序。
但是请注意,您问的是一个较弱的问题,因为游戏的初始状态可能是具有最佳玩法的平局。因此,通过编写一个目标是尽可能不丢失的程序,可以限制N。然后,我们可以与世界上最好的节目或人类玩家一起玩这个节目,看看最短的游戏的长度是多少。再一次,这不能正确回答这个问题,因为我们不能假设我们的对手正在发挥最佳状态。真正的最佳游戏需要对游戏树有充分的了解,但是我们已经看到这在计算上是不可行的。因此,我们目前能做的最好的就是用Kasparov或一个很好的国际象棋程序来近似地打一个最佳的对手。
使用国际象棋完整动作的标准定义,在5个动作或更少动作中不能赢得起始位置是不正确的。可以通过愚人的伴侣分两步完成。
为了解决您的问题,国际象棋引擎的强度取决于软件和硬件。1997年,Deep Blue是硬件概念的证明,这是一台大型并行超级计算机,能够每秒评估2亿次移动,平均深度为7到8个移动。但是,在2006年,运行在双核个人计算机上的Deep Fritz获得了等效的结果,而每秒仅评估了800万步。
如今,已应用于国际象棋的最强大的超级计算机是Blue Gene。Blue Gene使用131,000个处理器,每秒可计算280万亿次操作。尽管没有数据可以确定Blue Gene可以计算的深度,但我认为它会很深。当然,这取决于计算机的运行时间。
但是,在这种情况下,我们在解决和开放时不能使用术语“穷举”。当确定最终结果是决定性的时,国际象棋引擎无需转到行尾。这样,当评估明确表明赞成某一方面时,该程序将退出。这在理论计算机科学中被称为Alpha-Beta修剪。
如果我必须做一个大概的估计,我会说Blue Gene每秒可以计算大约15到20个动作。尽管其硬件和软件令人印象深刻,但我们必须记住,象棋的复杂性呈指数级增长。根据最近的估计,国际象棋的游戏树复杂度至少为10 ^ 123,潜在位置数为10 ^ 46.7。
假设存在从给定位置开始的获胜延续并假设为完美比赛,则意味着隐含N
是固定的且不受限制的(否则,它不是完美的比赛!)。
在这种情况下,必须真正倒退-这由Endgame Tablebase完成
可免费下载所有最多六件的最终游戏的表库,也可以使用Web界面进行查询(请参阅下面的外部链接)。Nalimov表库需要超过1 TB的存储空间
N
,将发挥完美效果。
编辑:对不起,看起来我读错了问题。我的猜测是,任何合理的N都远远超出计算机的范围。如果我们设置一台非常强大的计算机来计算起始位置,这可能是我们可以显示的唯一置信度X,那么说它可以在10天后每秒1000万个节点,我们可以计算出10 * 86400 * 10 ^ 8个节点= 8.64 * 10 ^ 13个节点。如果我们假设前20个动作的平均位置大约有15个合法动作(较低,因为开始时的位置少得多,并且由于alpha-beta修剪而可能甚至稍低),但在10天后只有大约12个动作(仅在第6个动作之后才存在位置) ),那么您就会明白为什么这个问题很难看。但是,我认为实际比赛可能暗示着更高得多的价值。一世'
让我们忽略一下象棋很可能是平局。我们必须考虑在实践中下棋的规则。在几乎每种锦标赛情况下,都有一条有效的50步规则,该规则规定,如果“每位球员在不移动任何棋子且不捕获任何棋子的情况下进行了最后50次连续移动,则该游戏为平局。”
因此,这意味着我们每次捕获或典当移动可以有49.5次移动。每个棋子最多可以移动6次,并且每侧可以捕获15个棋子(尽管必须留出1个棋子来传送将死的棋子),因此我们可以将移动数作为上限。
得出49.5 *(8 * 2 * 6(棋子移动)+ 29)= 6187.5,因此这意味着如果国际象棋是白人的强制胜利,并且遵循50棋规则,那么白棋最多可以进行6188步。我可以稍微降低一点点而不必做太多事情,只需说所有被强迫的K +队友v K队友(仅在女王后行)就可以进行不到50步的动作(我认为与Nalimov一起进行16场比赛)我认为我们可以自信地从总数中减去34步,总共6134个!
因此: 如果国际象棋是遵循50步法则的白棋强制赢球,则棋局最多6134步。