如何在计算机国际象棋中使用人工智能


19

在某些(历史)论文中,国际象棋被称为人工智能的果蝇。尽管我认为在当前的研究中,仅应用搜索算法最多只能算是高级计算机科学,但我相信仍然存在可以应用(和实践)人工智能技术的领域。

一个简单的例子是开书学习,因为该程序不适合某些类型的职位,因此可以该程序在开场中使用还是不使用某些动作。我们可以使用一种强化学习的形式并将其自动化:我想我可以对自己进行编程,并增加赢得线路的可能性并降低失去线路的可能性。

更为复杂的示例是使用一种学习评估功能(例如,可以调整块平方表的值)。但是,我在想:

  • 由于存在大量实际位置(相对于实际的打开线的数量)而产生了所有噪音
  • 以及计算机国际象棋游戏的成本(持续时间)以及玩游戏的需求。

如何才能有效地做到这一点?(或者我应该看看其他技术,例如神经网络。)


3
标准方法是alpha-beta修剪的minimax。启发式 它来自AI的Search系列,而不是来自机器学习系列。
Lyndon White

2
实际的国际象棋大师基本上只记得他们以前玩过的所有游戏...所以他们有很强的记忆力。

2
还有反诉。我不记得是谁说的,但是它是这样的。生物学家使用果蝇实验来获得对生理学,遗传学等的越来越深入的了解。AI人会写象棋计算机,以更好地下象棋。这根本没有教我们多少有关计算机科学的知识。就像生物学家繁殖超快,超强的果蝇并使它们相互竞争。
David Richerby,2015年

用这个比喻,可以想像它不只是“人工智能果蝇”,在各个方面,尤其是考虑到它直到1997年才果断地击败了最顶尖的人,并且对其的研究还在继续,等等
vzn 2015年

Answers:


16

象棋的整个州空间是巨大的-大概可以估计为10 43(香农数(Shannon,1950),(维基百科))。

您提出的想法-强化学习的代理人互相玩耍以学习游戏-已成功应用于步步高-TD-Gammon (Tesauro,1995年)Sutton&Barto的强化学习章节)。它还使用神经网络来估计游戏的价值函数。但是,此问题要简单得多,因为西洋双陆棋中的州数大大小于国际象棋中的州,即:18,528,584,051,601,162,496(西洋双陆棋论坛存档线程)。

但是,如果您在最初的几步动作之后就结束了比赛,并且只打算学习“良好的开局”,那么您可以通过类似的方法来成功。主要问题是在开局后评估游戏,这似乎很困难。仅在众所周知的空缺之后与已建立位置的相似性度量是不够的,因为如果对手做出愚蠢的举动,位置可能离它们很远(因此,这并不是因为学习代理人的错误,所以即使“不正确” ”应该被评估为良好的结果)。

参考文献:


1
实际上,最困难的部分是想出一种经验方法来对空缺结果进行评分。不同的开口会以不同的方式带来好处,因此可能存在许多可接受的开口。
JDong 2014年

3

我敢肯定,与简单的蛮力相比,教科书中任何可能的(或怪异的)AI或ML方法都已经尝试过并且几乎失败了。

我个人的观点是,象棋本身对现代AI不再有兴趣...简单地说,因为它可以解决:仅通过使用现代计算机和蛮力即可解决。因此,我不认为有必要创建一个“智能”系统来更有效地解决它(在我的手机中可以正常工作),而且我相信甚至不需要一些未知的东西。 “智能”方法存在。


1
我不确定为什么这被否决了。关于国际象棋是“已解决”的说法有点不准确,因为没有计算机可以看到任何可能的位置并对其进行完美评估。就是说,iliasfl是国际象棋的代表人物,因为它的国际象棋已经失去了对AI研究的大部分吸引力。一方面,鉴于足够的处理能力和时间,最好的计算机象棋程序现在比最好的人要强大得多。这使程序员甚至越来越难评估算法的工作效率。
elixenide

1
谢谢,我说从某种意义上说解决是蛮力的。当然,AI社区(通常不仅在这里)对这种“解决方案”不满意。但是,我们已经有了一个计算系统,该系统会显示“智能”行为来解决此任务,甚至赢得最佳人选。就个人而言,我相信国际象棋将在几年后辞职。

我不会将当前的计算机国际象棋实现称为“由蛮力解决”-它们仍在搜索大量的游戏状态,但是那里有许多非蛮力组件。当然,它们不是一种可以很好地推广到其他问题的“人性化”解决方案,但是如果我们拥有“人性化”国际象棋AI,那么它将少多个数量级,这不会让我感到惊讶。效率比目前的专业解决方案低,使其简直不如人意。
Peteris 2014年

我认为这个答案及其评论已被Google的AlphaZero明显驳斥:en.wikipedia.org/wiki/AlphaZero即使您接受对Stockfish设置的批评,他们已经绘制了所有比赛,但系统达到了这个水平经过几个小时的培训显然是优越的。
卡马尔(Kamal)

2

我认为值得注意的是,为了确定如何解决AI问题,您必须对其进行定义。它是完全可观察还是部分可观察,以及它是确定性还是随机 /机会。

国际象棋是完全可观察的(例如与五子棋,垄断或扑克不同),它也是确定性的(例如与Checkers和Go等相似)。最后,存在对手,因此,在确定下一个最佳动作时,使用“ 对抗搜索”类型MiniMax等算法。对问题进行分类可以帮助我们确定要应用哪种搜索算法。而且在国际象棋的情况下,对抗搜索将是合适的。

Minimax特别具有

O(bn)

O(bm)

因此,在国际象棋的情况下,b将为35,而m将为100。有一些解决方法或提高其效率的策略,例如alpha-beta截止。


在这种情况下还值得注意的是,已经将多达几张棋子的最终游戏制成表格-进一步优化。
BartoszKP 2014年

这是正常的方法,而不是机器学习方法。该问题使用机器学习标签。
Lyndon White

@Oxinabox虽然过去是正确的,但询问者在标题或正文中没有提到他对机器学习方法感兴趣的地方,只是在最后他分享了他所想到的方法的一个例子。无需将问题局限于机器学习,也无需单一学习算法(NN)。
Iancovici 2014年

事实上,这是件好事
林登·白

确切地说,国际象棋不是完全可观察的,因为给定一个位置,例如,我们不知道国王或车子是否已经移动过,尽管这对于移动的产生很重要(是否仍然可以铸造),但是程序员可以通过更改位置表示以将未移动的国王/车手和移动的国王/车手区分为不同的数字来使其完全可观察,尽管这会增加一些困难。
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.