我在人工智能课程中有作业。我需要让一个机器人从A房间移动到B房间,房间之间有障碍物。教授要求我使用STRIPS(斯坦福研究所问题求解器),但我不明白STRIPS是如何工作的。能有人给我一个关于STRIPS是什么以及它如何工作的好解释和例子吗?谢谢。
回答:
[请注意,以下内容基于我将近一年前的模糊记忆]
如今,当教授提到STRIPS时,我认为他们指的是问题编码“语言”,而不是规划器——例如,可以查看维基百科页面:STRIPS。我猜想你的教授可能已经有了一个特定的求解器(很可能还有算法),希望你能编码领域和具体问题,以便在求解器上运行。没有更多关于作业的细节,我无法确定你需要什么。如果你正在寻找一个规划器,据我所知,Fast Downward目前在研究人员中相当流行。网站上有一些使用说明,我记得它还附带了一些领域和这些领域的问题。我强烈建议你查看这些内容,这些是我学习的途径。我还刚刚发现了这个和这个。
STRIPS本质上是一种编码你希望计算机解决的问题性质的信息的方式。通常你会编码一个领域,提供关于整个问题的信息,比如可能涉及的对象,它们可以处于什么状态,以及可以采取什么行动。然后,你还编码一个特定的问题,通常指定问题的起始状态,以及目标状态应该是什么样子。这两个文件被输入到一个求解器中,求解器接收它们,然后找到问题的解决方案。请注意,这并不总是最优解——这取决于你使用的算法,以及你如何告诉求解器应该优化什么(我认为你通常可以在问题中做到这一点,尽管我现在不能确定)。
我建议你查看这些链接,看看你能发现什么。这应该能让你更好地了解你知识中的缺口在哪里,然后你可以专注于具体的细节。如果这是教学课程的作业,那么我期望教授肯定会在讲座中讲过一些这些内容(你有讲座幻灯片可用吗?),或者至少指导大家使用推荐的规划器和阅读材料。如果你仍然有困难,最好的办法是回到办公室时间去见教授。