广告

人工智能的下一次飞跃

国际象棋程序在跳棋中不可战胜。

Google NewsGoogle News Preferred Source
97年来,跳棋大师们认为在这种情况下白棋总是会赢。计算机程序Chinook在不到一秒的时间内证明了他们都错了。

新闻简报

注册我们的电子邮件新闻简报,获取最新的科学新闻

注册

请注意,在公园、小学或Cracker Barrel的大地毯上玩跳棋的人们:你们可以收起棋子回家了。经过五千年的游戏,跳棋已经被攻克了。

广告

阿尔伯塔大学的研究人员在Jonathan Schaeffer的带领下,创建了一个名为Chinook的无敌跳棋程序。“现在没有一个活着的人能够再次战胜这个完整的程序了,” Schaeffer说——尽管他确实为人类有机会在极不可能的情况下通过完美的游戏来获得平局留下了可能性。Chinook不仅是无敌的,它已经运行了每一个可能的移动和每一个可能的棋盘配置,所以它永远不会被惊喜到。

现在就放弃吧,渺小的人类。

Schaeffer于1989年在自己的电脑上开始了这项计划。它迅速发展成一项庞大的工程;一度有超过200台计算机参与了这项研究。与SETI@home项目类似,该项目使用庞大的计算机网络在天空中搜索外星生命,这些机器在不被使用的时候——晚上、周末和暑假——也在处理这个问题。“我们是计算机科学系,所以我们有很多计算机,”Schaeffer说。“大多数计算机只是放在这里闲置着。”

比预期的要花费一些时间,但Schaeffer最终解决了这个被证明出人意料复杂的问题。Chinook的成功标志着机器在全面统治所有技巧性游戏的长征中又向前迈进了一步。这一趋势或许可以追溯到下井字棋的鸡。经过一点训练和先手——而且说实话,一个没有手的井字棋玩家至少应该得到这些——一只普通的鸡也能变得不可战胜。

从那时起,科学家们创造了在包括双陆棋、拼字游戏和当然还有国际象棋在内的各种游戏中表现出色的程序;IBM的“深蓝”于1997年击败了一位人类国际象棋特级大师。Schaeffer的研究小组也在扑克和红心纸牌等游戏中不断推进前沿。

教计算机下棋,然后让它们与人类对弈,这不仅仅是一种消遣。像Chinook这样的程序使得进行更复杂的计算成为可能,使科学家能够解决更“严肃”的问题,例如分析蛋白质结构或弄清楚基因如何工作。教计算机下棋也向研究人员展示了如何更有效地模拟人类思维。“我是一名人工智能研究员,”Schaeffer说。“我感兴趣的是让计算机以类似人类的方式行事。我总是选择用游戏来工作,因为游戏的规则很简单,而且很有趣。”

Chinook的一个意想不到的好处是,它帮助了跳棋玩家,他们开始将他们的谜题和争论带给Schaeffer来解决。其中一个案例是,Chinook解决了一个近两个世纪的争端。

1800年,一篇跳棋期刊文章提出了一个特定的跳棋局面,并认为,除非出现失误,白棋将赢得比赛。其他显然有很多闲暇时间的跳棋玩家不同意,引发了一场激烈的辩论:在这种局面下,如果双方都完美地进行游戏,白棋是会赢还是平局?一个世纪以来,大量的文章探讨了这个问题,通常深入到假设游戏的数百步来证明他们的观点。1900年,一篇论文终于说服了学术界,白棋确实会赢。这种情况被称为“百年之局”。1997年,跳棋特级大师Don Lafferty请Schaeffer确认这一假设。Schaeffer说,在“一瞬间”,Chinook发现白棋会平局,而不是赢。Lafferty看了证明,立刻发出了呻吟:普遍接受的证明在第三步有一个错误,而数十位跳棋专家都没有注意到。这个局面后来被重新命名为“197年之局”。

现在国际象棋和跳棋已经过时了,Schaeffer团队中的其他科学家,包括Martin Muller和Akihiro Kishimoto,正将目光投向许多人认为是人工智能的终极考验:传统的东亚棋盘游戏围棋。尽管研究人员很乐观,并且发表了一些标志着渐进式进展的论文,但像美国围棋协会主席Roy Laird这样的围棋爱好者仍然怀疑计算机何时能在围棋上匹敌人类。

广告

“围棋确实是唯一一个尚未被计算机大致攻克的游戏,”Laird说。“它太难了。我喜欢称围棋为人类智慧的最后避难所。”

人工智能在游戏世界的胜利

广告

1770 Wolfgang von Kempelen创造了第一个下棋机器。

1948 Alan Turing写下了第一个国际象棋程序,使用了铅笔和纸。由于没有实际的计算机,他只能通过扮演计算机本身来测试。

1952 Christopher Strachey在伦敦写下了第一个跳棋程序。

1952 Maurice Wilkes和剑桥大学的一队科学家为EDSAC编写了玩井字棋的程序。

广告

1956 IBM的Arthur Samuel写下了第一个能够“学习”的跳棋程序。

1962 麻省理工学院的科学家Alan Kotok创建了一个能够击败国际象棋业余选手的程序。

1963 Arthur Samuel的跳棋程序在一场比赛中击败了来自康涅狄格州的跳棋大师Robert Nealey。

1966 由Richard Greenblatt开发的麻省理工学院的MacHack VI,成为第一台参加人类导向的国际象棋比赛的计算机。

广告

1970 Albert Zorist在威斯康星大学麦迪逊分校写下了第一个玩围棋的程序。

1977 由Larry Atkin和David Slate编写的西北大学的CHESS 4.6,成为第一台击败A级人类选手的计算机。

广告

1978 麻省理工学院的一队学生用玩具积木建造了一台玩井字棋的计算机。

1979 卡内基梅隆大学的Hans Berlinger创造的BKG9.8,击败了双陆棋世界冠军Luigi Villa(尽管双陆棋爱好者坚称它只是运气好)。

1984 职业扑克玩家Mike Caro编写了一个名为Orac的扑克程序。根据他的扑克伙伴的说法,它赢的比赛比输的比赛多,但这一点从未被记录在案。

1988 由卡内基梅隆大学的Murray Campbell、Carl Ebeling和Gordon Goetsch创造的HiTech,赢得了宾夕法尼亚州国际象棋锦标赛,并成为第一台被评为特级大师的计算机。

1989 约纳森·谢弗(Jonathan Schaeffer)在阿尔伯塔大学创造了Chinook。

1992 Chinook未能击败跳棋冠军Marion Tinsley。

广告
广告

1994 Chinook赢得世界冠军。这是第一个在任何游戏中为人类赢得世界冠军的计算机程序。

1997 深蓝击败国际象棋世界冠军加里·卡斯帕罗夫。

1997 由阿尔伯塔大学的Michael Buro编程的Logistello,击败了欧赛罗世界冠军Takeshi Murakami。

1998 由Brian Sheppard编程的Maven,在拼字游戏中击败了世界冠军Joel Sherman和亚军Matt Graham组成的两人团队。

1999 của Duke的科学家Michael Littman创造了Proverb,该程序可以准确地解出90%的《纽约时报》填字游戏(工作日95%,周末85%)。

2002 阿姆斯特丹自由大学的John Romein和Henri Balof攻克了awari。

广告

2003 哥伦比亚大学的Milan Stojanovic和新墨西哥大学的Darko Stefanovic宣布他们创造了MAYA,一个玩井字棋的DNA计算机。

2006 MAYA在井字棋中变得不可战胜。

广告

2007 由伊利诺伊大学的Eyal Amir和Mark Richards发明的Quackle,成为第一台赢得拼字游戏比赛的计算机。

保持好奇

加入我们的列表

订阅我们的每周科学更新

查看我们的 隐私政策

订阅杂志

订阅可享封面价高达六折优惠 《发现》杂志。

订阅
广告

1篇免费文章