有一个完美的国际象棋算法吗?

最近我和一位非编码人员讨论了国际象棋计算机的可能性。 我对理论不甚了解,但认为我足够了解。

我争辩说,不可能存在一个在国际象棋中总是赢得或僵持的确定性图灵机。 我认为,即使你搜索了所有的player1 / 2组合动作的整个空间,计算机在每一步所决定的单一动作都是基于启发式的。 基于启发式,它不一定会击败对手所能做的所有动作。

相反,我的朋友认为,如果计算机从来没有犯过“错误”的举动,那么计算机总是会赢得胜利或者平局(但是你是否定义了这一点?)。 然而,作为一名CS的程序员,我知道即使你的好选择 - 给予明智的对手 - 也可能迫使你最终做出“错误”的举动。 即使你知道所有的事情,你的下一步行动都是在匹配启发式方法时很贪心。

大多数国际象棋计算机都试图将可能的最终游戏与正在进行的游戏进行匹配,这本质上是一种动态编程回溯。 同样,有争议的结局也是可以避免的。

编辑:嗯...看起来像我在这里弄了一些羽毛。 那很好。

再想一想,似乎解决象棋这样的有限游戏没有理论上的问题。 我认为国际象棋比跳棋要复杂一点,因为胜利不一定是数字用尽,而是伙伴。 我原来的主张可能是错误的,但是我认为我已经指出了一些尚未得到令人满意证明(正式)的东西。

我想我的想法实验是,只要树中的某个分支被占用,那么算法(或记忆路径)就必须为对手的任何可能分支移动时找到匹配的路径(没有交配)。 讨论之后,我会购买比我们想象的更多的记忆,所有这些路径都可以找到。


“我认为,不可能存在一个在国际象棋中总是赢得或僵持的确定性图灵机。”

你不太对。 可以有这样一台机器。 问题在于它必须搜索的状态空间的巨大性。 它是有限的,它只是真正的大。

这就是为什么国际象棋回归启发式 - 国家空间太大(但有限)。 甚至可以列举 - 在每个可能的游戏的每个过程中搜索每一个完美的动作 - 将是一个非常非常大的搜索问题。

开场是脚本让你到一个中等的游戏,让你“强”的位置。 不是已知的结果。 即使是结局游戏 - 当有更少的棋子时 - 也很难枚举,以确定最佳的下一步棋。 技术上他们是有限的。 但替代品的数量巨大。 即使是2个白嘴鸦+国王也有22个可能的下一步行动。 如果需要6次移动配对,则您正在查看12,855,002,631,049,216次移动。

对开场动作进行数学运算。 虽然只有大约20次开局动作,但仍有大约30次左右的动作,所以通过第三步,我们正在寻找360,000个备选游戏状态。

但是国际象棋游戏在技术上是有限的。 巨大的,但有限的。 有完美的信息。 有定义的开始和结束状态,没有硬币掷骰子或掷骰子。


我几乎不知道关于国际象棋的真实发现。 但作为一名数学家,这是我的推理:

首先我们必须记住,白棋先走了,也许这给了他一个优势; 也许这给了黑方一个优势。

现在假设黑方没有完美的战术,让他总是赢/僵持。 这意味着无论黑方做什么,白方都可以采取一种策略来赢得胜利。 等一下 - 这意味着有一个完美的白色战略!

这告诉我们,至少有一名球员确实有一个完美的策略,可以让该球员总是赢或赢。

那么只有三种可能性:

  • 如果他打得很好,白方总能赢
  • 如果他完美地打出黑色,他总能赢
  • 如果一个球员打得非常好(如果两个球员打得非常好,那么他们总是僵持不下)
  • 但是其中哪些是真正正确的,我们可能永远不会知道。

    这个问题的答案是肯定的 :必须有一个完美的国际象棋算法,至少对于两名球员之一来说。


    已经证明,在跳棋的比赛中,一个程序总是可以赢得比赛或者与比赛结合。 也就是说,没有其他选手可以做出的强制其他选手失败的选择。

    顺便说一下, 研究人员花费了将近20年的时间 ,通过5000亿亿可能的棋子位置,这仍然是国际象棋棋子数量的一小部分。 跳棋的努力包括顶级球员,他们帮助研究团队将跳棋的经验法则转化为分类成功或失败的软件。 然后研究人员让程序运行,每天平均有50台电脑。 有些日子,该程序运行在200台机器上。 研究人员监测进展情况并相应调整计划。 实际上,奇努克在1994年击败人类赢得了跳棋世界冠军。

    是的,你可以解决国际象棋,不,你不会很快。

    链接地址: http://www.djcxy.com/p/40205.html

    上一篇: Is there a perfect algorithm for chess?

    下一篇: Example images for code and mark