2

我记得当我上大学的时候,我们遇到了一个问题,在方格上有个智能代理,它必须清理方格。它因清洁而获得积分。搬家也被扣分了。它必须时不时地加油,最后它会根据网格上有多少方块是脏的或干净的来获得最终分数。

我正在尝试研究这个问题,因为当我在大学看到它时它非常有趣,但是我在维基百科或在线任何地方都找不到任何东西。您是否知道该问题的具体名称?或者,也许这只是我的老师在课堂上想出的东西。

我正在寻找 AI 清洁剂和类似的东西,但我什么也没找到。我不知道,我在想也许它还有别的名字。

如果您知道在哪里可以找到有关此问题的更多信息,我将不胜感激。谢谢。

4

3 回答 3

2

这个问题让人想起Shakey,尽管涉及到清洁(就像Roomba - 一种也可以通过编程来执行这些任务的设备)。

如果“问题空间”(或房间)足够小,您可以使用简单的基于 A* 的搜索来求解最佳解决方案,但可能不会,因为这不会留下非常有趣的问题。

这里建议使用遗传算法的机器学习方法是一种有趣的方法。给定问题域,您将只有一个“规则”(一个move-to动作,因为clean可以通过隐式清理您移动到的任何脏方格来消除),因此您的学习者基本上将学习如何在环境中移动。问题在于建立一个能够适应任何给定平面图的学习者,而不仅仅是精通清洁一个非常特定的空间。

无论您采用哪种方法,如果问题集足够大,我也会考虑进行进一步的元推理步骤,并使用分区方法将地板分成不同的区域,然后一次解决一个。

您可以使用技术来创建数据以使用“离线”吗?在这种情况下,我什至会考虑创建一个包含所有可能的开始和结束方格的最佳路线的“数据库”来清理某些地板空间(1x1 到 5x5)。这类似于游戏 AI 用于在游戏达到一定深度后有效“解决”游戏的“残局数据库”(参见Chinook)。

于 2010-09-25T19:44:26.847 回答
2

也许“stigmergy”方法与您的问题密切相关。这里有一个起点,你可以在谷歌学者上搜索“dead ants”和“robots”找到一些东西。

基本上:不是为精确的策略建模,而是采用概率方法。蚂蚁(可能)按照一个简单的规则堆积起来收集他们的尸体,例如“如果那里有一堆死蚂蚁,我把这具尸体带到这里;否则,我会做一堆新的”。你可以从简化你的“清洁”情况开始,然后看看你要去哪里。

此外,我认为(另一种?)合适的方法可以使用遗传算法建模,使用精心选择的适应度函数组合,例如:

  • “干净”瓷砖的结束编号
  • 机器人的步数

当然,如果机器人因饥饿而“死”,它会自动将自己从基因库中移除,a-la darwin 奖:)

您可以从建模一个非常非常简单的基因型开始,该基因型将被“计算”成一种行为。考虑使用一个简单的遗传算法,例如Inman Harvey 的这个遗传算法,然后为每个基因分配策略的一部分或完整的行为。例如:如果基因 A 变为 1,那么机器人将尝试随机游走;如果基因 B 也转为 1,那么它将优先自充电,除非距离 X 有脏瓷砖。或者使用浮点数和模型概率。您的里程可能会有所不同,但我可以保证它会很有趣:)

于 2010-09-25T19:22:41.000 回答
0

这个问题让我想起了这个在《复杂性》一书中简要提到了一个类似的问题,作为遗传算法的一个例子。这些版本虽然经过简化,但并未考虑油耗。

于 2010-09-25T19:10:06.117 回答