我最近在和一个非编码人员讨论国际象棋计算机的可能性。我不是很精通理论,但我想我知道的够多了。
我认为,不可能存在一个确定性的图灵机,总是赢得或僵持在国际象棋。我认为,即使你搜索所有玩家1/2动作组合的整个空间,计算机在每一步决定的单一动作是基于启发式的。基于启发式,它不一定能打败对手的所有动作。
My friend thought, to the contrary, that a computer would always win or tie if it never made a "mistake" move (however do you define that?). However, being a programmer who has taken CS, I know that even your good choices - given a wise opponent - can force you to make "mistake" moves in the end. Even if you know everything, your next move is greedy in matching a heuristic.
大多数国际象棋计算机试图将一个可能的最终游戏与正在进行的游戏进行匹配,这本质上是一个动态编程回溯。不过,有问题的最后阶段是可以避免的。
编辑: 嗯... ... 看起来我惹恼了一些人。那很好。
再想想,解决象棋这样的有限博弈似乎不存在理论上的问题。我认为国际象棋比西洋跳棋要复杂一些,因为胜利不一定是由棋子的数量耗尽决定的,而是由一个伙伴决定的。我最初的断言可能是错误的,但是我认为我已经指出了一些还没有被令人满意地证明(正式地)的东西。
我猜想我的思维实验是,无论什么时候,只要树上有一根树枝,那么算法(或者记忆的路径)就必须找到一条通往配偶的路径(在没有交配的情况下) ,以便在对手移动的任何可能的树枝上找到配偶。经过讨论,我相信如果有比我们想象中更多的记忆,所有这些道路都是可以找到的。