人工智能超级玛莉:Mario AI Competition
超级玛莉是一款非常经典的任天堂游戏,现在又有了新的玩法:编写Mario AI程序来玩游戏!在IEEE 消费电子协会组织的首届游戏创新会议上,一群人工智能专家和游戏程序员参与这样一个竞赛:Mario AI Competition,组织者希望通过这样一个经典的游戏来比较不同的人工智能技术。本文首先介绍一下游戏环境和规则,然后分析一下2009年的比赛结果和相关技术。 游戏软件是根据Java版本的超级玛莉 Infinite Mario Bros改写而成,能够无限地随机生成关卡,并且能以超过1000X的速度运行,这给希望使用机器学习技术的用户带来很大方便。 游戏的接口很清楚:智能体(控制程序)从游戏软件得到当前的环境信息,并返回要做的动作,其结构如图。 人工智能超级玛莉游戏接口 游戏的任务就是开发一个超级玛莉程序(智能体)去过关,比的是看谁的程序过的关最多、花的时间最小、得的分最多。智能体从游戏中能得到的信息有: Mario的感知范围 Mario能够做的动作和原作游戏一样:上下左右方向、跳跃和加速。游戏的挑战性在于: 在2009年的比赛中,大家主要使用的技术有:搜索、规则系统、遗传算法、遗传编程和人工神经网络。从结果来看A*搜索胜过了其它所有的算法,前三名都是采用的A*算法,这点正好印证了“有效的方法往往是简单的”。而组织者则认为应该进行一些改进以使得机器学习算法更有竞争力。 Mario AI Competition 2009 结果 让我们来看看冠军Robin Baumgarten的设计思路。他首先分析游戏的物理引擎,得到所有物体的运动公式;接着编写自己的物理引擎来预测状态的变化;然后将物理引擎放入到A*算法中来评估每个节点;当然搜索还需要启发信息:需要多久才能到达目标;还要排除掉掉入深渊或者受伤的状态。最终A*算法给出一条“最佳”的运动路径。 Mario 使用 A* 搜索示意图 由于游戏是一个确定的、可预测的环境,所以搜索算法十分有效。来欣赏一段游戏视频吧: 怎么样?够刺激吧,组织者表示2010年将继续组织比赛,并希望推广到更多的学术会议中,有兴趣的可以关注一下比赛的网站:Mario AI Competition。
游戏环境和规则


Mario AI Competition 2009


参考文献