跳棋程序是旨在玩棋盘游戏跳棋(又称国际跳棋)的计算机软件。这些程序使用算法技术来评估局面、搜索最优走法,并与人类玩家或其他计算机竞争。最著名的跳棋程序是Chinook,由乔纳森·谢弗领导的团队在阿尔伯塔大学开发(尽管该项目基于该校,而非多伦多),它在竞技比赛和游戏求解方面均取得了历史性里程碑。
Chinook由阿尔伯塔大学的一个团队于1989年至2007年间开发,成员包括乔纳森·谢弗、罗布·莱克、保罗·卢、马丁·布莱恩特和诺曼·特里洛尔。与现代依赖机器学习的方法不同,Chinook的知识完全由其创建者手工编码,使用传统的人工智能技术,如搜索算法和评估函数。这一区别凸显了人工智能从基于规则的系统向数据驱动方法的演变。
人机世界冠军
1990年,Chinook在美国全国锦标赛中获得亚军,仅次于马里昂·廷斯利,从而获得了参加人类世界锦标赛的资格。最初,美国跳棋联合会和英国国际跳棋协会反对计算机参加人类锦标赛。当廷斯利以抗议为由放弃头衔后,这些组织设立了新的“人机世界锦标赛”头衔,使比赛得以进行。廷斯利以四胜两负33平赢得了首场比赛。
1994年的复赛中,由于廷斯利因胰腺癌退出,Chinook在六盘和棋后被宣布为人机世界冠军。这使Chinook成为首个在人类世界锦标赛中夺冠的计算机程序,但它从未击败过廷斯利,后者明显优于甚至最接近的对手。1995年,Chinook在与唐·拉弗蒂的32盘比赛中以1胜31平的战绩卫冕成功。此后,谢弗决定停止竞技比赛,专注于完全求解跳棋。
算法
Chinook的算法包含四个主要组成部分:包含大师级对局走法的开局库、用于探索可能走法的深度搜索算法、走法评估函数,以及覆盖所有八子或更少棋子的残局数据库。评估函数是一个线性手工构造函数,考虑的特征包括棋子数量、王棋数量、被困王棋、行棋方以及畅通无阻的棋子(指通往升王之路无阻碍的棋子)。所有知识均由创建者编程而非学习获得,这与后来的AI系统(如DeepMind的方法)形成对比。
时间线与跳棋求解
Chinook开发中的关键里程碑包括:1997年,谢弗出版了《一步领先:挑战人类在跳棋中的至高地位》一书(2008年11月更新);2003年5月24日,完成十子数据库(每方五子);2004年8月2日,开局“白医生”(10-14 22-18 12-16)被证明为和棋。更多开局于2006年1月18日(09-13 21-17 05-09)和2006年4月18日(09-13 22-17 13-22)被证明为和棋。
2007年3月10日,谢弗在ACM SIGCSE会议上宣布,最终解预计将在3至5个月内得出。2007年7月19日,《科学》杂志发表了《跳棋已被求解》,证明在完美对弈下,最佳结果是和棋。这使跳棋成为首个被完全求解的主要棋盘游戏,此前仅有更简单的游戏被求解。在竞技巅峰时期,Chinook的等级分为2814 Elo。
遗产
Chinook的成功展示了经典AI技术的威力,包括深度搜索和手工评估,这些技术在深度学习兴起之前占据主导地位。它对跳棋的求解仍是游戏AI领域的一项里程碑式成就,可与国际象棋计算机(如深蓝)相媲美。虽然现代跳棋程序可能使用神经网络,但Chinook的方法影响了后续博弈论和组合博弈求解的研究,其方法至今仍在卡内基梅隆大学和MIT CSAIL等机构的AI课程中被教授。