资讯

卡雷尔谜题是什么?控制机器人小车的编程练习与 AI 推理测试

2026-11-052 分钟阅读百科
TL;DR卡雷尔谜题(Karel Puzzle)是在网格世界中用简单指令控制名为卡雷尔的机器人完成任务的编程练习,源于 1981 年的教学语言 Karel,常用于编程入门教学,也被用作测试 AI 程序合成和推理能力的基准。

卡雷尔谜题(Karel Puzzle)是一类通过编写指令控制一个机器人在网格世界中完成任务的问题。它源于斯坦福大学的 Richard Pattis 在 1981 年设计的教学用编程语言 Karel,名字取自捷克作家卡雷尔·恰佩克,正是他在剧本中创造了“机器人”(robot)这个词。卡雷尔谜题被广泛用于编程入门教学,帮助初学者学习编程和逻辑思维;在人工智能研究中,它也常被用来测试模型的程序合成和推理能力。

卡雷尔的世界

卡雷尔生活在一个简单的网格世界里:有横竖的街道,有挡路的墙壁,地上可能放着一些叫作“蜂鸣器”的小物件。卡雷尔只会几个最基本的动作:向前走一格、向左转、捡起一个蜂鸣器、放下一个蜂鸣器。它还能感知一些简单的条件:前面有没有墙,脚下有没有蜂鸣器,自己面朝哪个方向。用这些基本的动作和条件,再加上循环、条件判断、自定义函数这些编程结构,就要让卡雷尔完成各种任务:比如收集所有的蜂鸣器并放到指定的位置,走出一个迷宫,在墙边砌出一排蜂鸣器,把一堆蜂鸣器分成两半。

为什么适合教学

卡雷尔的规则极其简单,几分钟就能学会,但能构造出需要相当技巧才能解决的问题。初学者不用纠结复杂的语法和库函数,可以专注于编程最核心的思想:把大问题拆成小问题、用循环处理重复、用条件应对不同的情况、思考如何让程序在各种不同的世界布局下都能正确运行。它的动作是看得见的:每写一行代码,就能看到机器人怎么动,错误一目了然。斯坦福大学的编程入门课程多年来都用它作为第一课。

在 AI 研究中的用途

卡雷尔是程序合成研究的经典测试环境:给 AI 几组“任务开始时的世界”和“任务完成后的世界”作为例子,让它自动写出能完成这个转换的程序。这考察的是 AI 能否从少量例子中归纳出通用的规则,并用程序准确地表达出来。因为环境简单、可以自动验证程序是否正确,它非常适合用来研究神经网络的推理、规划和泛化能力。近年来,研究者也用卡雷尔类的谜题来测试大语言模型在多步规划和代码生成上的能力。