是否有任何国际象棋引擎可以显示一侧是否被强制平局?


11

是否有任何具有分析模式的国际象棋引擎可以显示某个位置是否是双方的强制平局?

引擎在检测到平局时通常输出0.0的评估值。但是0.0的评估可能意味着很多事情。例如,假设移动为白色,则评估值为0.0表示:

  • 不管哪个玩家玩法如何(例如,材料不足),该游戏无疑都是平局。
  • 双方都可以平局。如果他们的对手玩的很好,任何一个玩家都不会希望赢。
  • 不管白色棋是哪一步,计算机都会100%确信黑色如果他愿意的话可以强制平局。如果黑方表现出色,那么白方将无法赢得胜利。平局是最有可能的结果,但更深入的搜索可能表明黑人可以迫使胜利。
  • 电脑100%确信如果愿意,白人可以强制平局。如果白人表现出色,黑人就无法指望获胜。平局是最有可能的结果,但更深入的搜索可能表明白人可以赢得胜利。
  • 该计算机尚未发现任何一方的强制抽签,但到目前为止的评估完全是水平。平局是最有可能的结果,但是更深入的搜索可能稍后会显示出一侧优势。

仅举一个例子说明什么时候可能有用,如果白方不需要获胜并且只想尽可能确定获得平局,那么他们可能更喜欢在评估为+0.0且已知强制平局的情况下进行移动即使可以使用更高评价的另一招。

另一个例子是,如果您需要获胜(例如,平局与损失一样糟糕),您可能希望以略微负面的评价进行移动,以避免让对手有机会强制平局。即使这增加了您输球的机会,也增加了获胜的机会。

显然,有些位置很难或不可能确定是否有强制抽签。但是,如果引擎宣布强制平局,则必须可以强制平局。误报是可以接受的,但不应有误报。

因此,总而言之,我想知道一个人(或两个球员)是否都可以使用强制平局来确定特定位置。不必计算位置的数值评估,但是如果同时提供了该数值,那将是一个好处。


难道不知道6张残局桌的这一部分吗?
Tony Ennis

2
表格基础会有所帮助,因为这样您就可以知道分数0.0肯定是具有最佳比赛的强制平局。但是我希望引擎告诉我它是否从任意起始位置找到了强制抽奖,包括(尤其是)超过6件的情况。例如,如果白人进入可以进行永久检查的位置,我希望引擎告诉我,即使不一定是白人根据评估功能的最佳举动。
Mark Byers 2012年

我很好奇您何时实际上可以在实践中利用这种计算方法。这将是一个不错的功能。在stock鱼中,我使用UCI分析的“多重变异”功能,该功能按其评估得分的顺序对移动进行排序。强制抽签在永久性支票或僵持状态下非常明显地出现在清单中,但有时情况不太清楚,正如您所说,如果深入了解,可能不是抽签。
伊芙·弗里曼

1
但是,强迫有多强?我认为,在很多情况下,所谓的强制平局,对手仍然可以偏离,但会以明显更差的位置为代价。白色可以强制平局或完全平局的位置不会强制平局,从而限制了其实用性。
RemcoGerlich 2013年

如果怀特可以迫使平局而不是白手起家,那么我想知道这一点。
Mark Byers 2013年

Answers:


9

对您的问题的简短回答是“ 否”,没有象棋引擎可以可靠地显示一侧是否被强制平局。例如,此锁定位置显然很容易吸引人眼:

锁定位置,平局无望

但是,请注意,评估值为0.17,而不是0.00。胡迪尼也给0.05-曾经对白色有一点好处。这个非常重要。这表明由于某些特定原因,这些程序保留了0.00的评估,的确如此。基本上,即使处于“相等”位置,计算机也永远不会说分数是0.00,相反,它将使一侧或另一侧有微小的边缘。

因此,有了这一背景,就可以具体介绍!首先,如果由于位置(即僵持,材料不足等)而导致游戏只是平局,则大多数GUI都会弹出一条消息,提示“游戏已绘制”或类似的结果。剩下的就是您在问题中提到的更复杂的案例。为了涵盖大多数内容,我将介绍另一个职位。摘自新奥尔良蒙眼模拟的Morphy-NN 1-0:

莫菲-NN 1-0,新奥尔良蒙眼的Simul

请注意,Morphy当前以6开头的伴侣为6 18.b4+!。但是,如果Morphy莫名其妙地错过了这个伴侣,他仍然会被重复强制抽签,计算机很快就会看到。通过增加计算机显示的变化数量,可以看到白色在打出像一样的动作之后18.Qxc3+?,白色仍然可以强制平局,尽管掉下了车子和一块。0.00的评估再次提示我们这是一个特殊的位置,因为计算机可以计算出永久支票。如果在18.Qxc3+? Kxd5棋盘上进行了移动,则评估为0.00,表明怀特的最佳延续是强迫平局。否则,将导致游戏丧失最佳状态。


综上所述,没有一个现有的引擎可以确切地说一个位置是平局。但是,0.00的评估是特殊的,如果它显示为主要得分或变化得分,则意味着可能在该特定行中强制平局。最简单的检查方法是嬉戏地称为“空格键分析”-当用户一遍又一遍地敲击空格键以迫使计算机播放推荐的最高动作时。最终,您将到达一个对人类和机器都显而易见的位置。


最后,解决您关于“鄙视”的观点

另一个例子是,如果您需要获胜(例如,平局与损失一样糟糕),您可能希望在举牌时稍加负面评价,以避免让对手有机会强制平局。即使这增加了您输球的机会,也增加了获胜的机会。

在国际象棋程序员中,这很简单地称为轻蔑。大多数引擎将允许您在设置中设置蔑视级别。蔑视设置为正(通常为100时,是一个合理的分析水平)将告诉引擎相当努力(当量值)以避免平局。负设置将导致引擎寻求强制吸气(即,材料不足,僵持或永续)。


这与韦斯·弗里曼(Wes Freeman)对问题的评论大致相同,并且正如他所描述的一样,需要一些人工输入-“ [显然] [强制抽奖明显地出现在列表中,但有时不太清楚”-您的答案是人类贡献的“空格键分析”。这就是为什么我建议在答案中调整评估功能的原因;我们这样做是为了使引擎本身能够真正找出强制吸声,并让我们知道它们何时最终出现。这似乎是这两种方法之间的唯一实质性区别。
ETD 2012年

@EdDean我同意。最难发现的局面是无法赢得一场决赛,但一方可以永远争取胜利。另外,更改引擎的评估功能将是一种方法,但很可能不是在合理的时间范围内可以完成的事情。当前可以使用蔑视设置,但是这与您建议的对引擎重新编程的功能不同。人工可编辑的设置在当前引擎上相当有限。
安德鲁

鄙视设置很整洁-没注意到。
伊芙·弗里曼

2
顺便说一句,我认为0.00并不总是表明您似乎暗示过强制抽奖。我有时甚至在开盘初期就看到它-我想这只是意味着给定当前位置和材料,它很可能是偶数,并且评估恰好是0.00。
伊芙·弗里曼

3
有趣。在鳕鱼中绝对不是。仅分析打开位置几秒钟,将返回0.00分。
伊芙·弗里曼

4

就像引擎可以在某些点看到强制配合有些移​​动一样,因为有足够多的线条使引擎可以在剩余深度内完美看到一切直到配合,在国际象棋游戏中也存在关口引擎可以看到强制平局,其原因与完全能够调查游戏中有限可能性的原因相同。

此外,很容易调整引擎的评估功能,以便找出并偏向于导致强制平局的动作:就像实现配对通常具有巨大的价值,这使引擎的评估算法的所有其他数值因素相形见war为了引导引擎发挥最终目的,我们可以考虑提供如此巨大的数值来实现我所想到的其中一种平局。

例如,自动评估对手没有足够材料配合的任何位置为+1000000。然后,如果引擎发现自己可以选择强制淘汰对手的那么多材料,它将让您知道。此外,调整评估算法以将任何三倍重复评估为+1000000而不是通常的0。然后,如果存在强制重复(如在永久检查情况下),引擎会喜欢它并让您知道。同样,如果可以强行达到基准抽奖,则给+1000000。

您还可以确保只有在完全确定抽奖确实是强制性的(因为此处和那里的树已经能够被完全检查)的情况下,引擎才会提供这些估值,就像引擎不宣布配合一样,除非是肯定的。因此,您当然不会得到任何误报,尽管您当然会理智/有必要地在问题中允许很多误报。


我不认为由于蔑视因素及其修剪方式,任何引擎都无法像“开箱即用”那样工作。基本上,如果发现平局,则任何赢得材料的线都将被排除。因此,例如,检查国王比夺取免费车更可取。我正考虑发布一个较长的答案,因为那里办法用现有的发动机要做到这一点,但我不想放弃太多准备的秘密。;)
安德鲁

诚然,没有一种引擎能够像我所说的“开箱即用”那样工作,因为它们旨在寻求胜利。出于同样的原因,您必须进行一些调整才能使引擎正常运转,例如自杀棋。我已经让我们修改了评估功能;可以对任何鄙视因素进行调整/禁用,如果需要的话,我建议的内容也可以,是吗?我的主要观点是,我认为可以重新配置现有引擎(以一种相当简单的方式)以实现Mark想要的功能。因此,至少在目前,我仍然将此视为“使用当前引擎”的方法。我的想法总是可以改变的。:)
ETD 2012年
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.