我记得当我上大学的时候,我们遇到了一些问题,有一个聪明的智能体,它在方格的网格上,它必须清理方块。它因清洁而被加分。搬家也被扣分。它不得不时不时地补充燃料,最后它得到了一个最终的分数,基于网格上有多少方块是脏的或干净的。
我正在尝试研究这个问题,因为当我在大学里看到它时,它非常有趣,但我在维基百科或任何网络上都找不到任何东西。你知道这个问题有什么特别的名称吗?或者这只是我的老师在课堂上想出的点子。
我在找AI清洁剂和类似的东西,但我什么也没找到。我不知道,我在想也许它还有别的名字。
如果你知道我可以在哪里找到关于这个问题的更多信息,我将不胜感激。谢谢。
发布于 2010-09-26 03:22:41
也许“污名化”的方法与你的问题密切相关。有一个起点here,你可以通过在google scholar上搜索“死蚂蚁”和“机器人”来找到一些东西。
基本上:不是建立精确的策略模型,而是采用概率方法。蚂蚁(很可能)按照一个简单的规则堆积它们的身体,比如“如果那里有一堆死蚂蚁,我就把这个身体带到这里来;否则,我会做一个新的蚂蚁堆”。你可以从简化你的“清洁”情况开始,然后看看你会去哪里。
另外,我认为(另一个?)使用精心选择的适应度函数组合,可以使用遗传算法对合适的方法进行建模,例如:
’the end number of‘clean’tiles
当然,如果机器人因饥饿而“死亡”,它会自动从基因库中删除自己,a-la darwin奖:)
你可以从一个非常非常简单的基因型开始建模,它将被“计算”成一种行为。考虑使用简单的遗传算法,如Inman Harvey的this one,然后为每个基因分配策略的一部分,或一个完整的行为。例如:如果基因A变成1,那么机器人将尝试随机漫游;如果基因B也变成1,那么它将优先进行自我充电,除非在距离X处有脏瓷砖。或者使用浮动和模型概率。您的里程可能会有所不同,但我可以保证它会很有趣:)
发布于 2010-09-26 03:44:27
这个问题让人联想到Shakey,尽管它涉及到清理(就像Roomba --一种可以通过编程来执行这些任务的设备)。
如果“问题空间”(或房间)足够小,您可以使用简单的基于A*的搜索来解决最优解,但很可能不是这样,因为这不会留下非常有趣的问题。
这里建议的使用遗传算法的机器学习方法是一种有趣的方法。给定问题域,您将只有一个“规则”( move-to操作,因为clean可以通过隐式清理您移动到的任何脏的方块来消除),因此您的学习者本质上是在学习如何在环境中移动。问题是要建立一个能够适应任何给定建筑平面图的学习者,而不仅仅是精通于清洁一个非常特定的空间。
不管你有什么方法,如果问题集足够大,我也会考虑做进一步的元推理步骤,并使用划分方法将地板划分为单独的区域,然后一次一个地征服它们。
你能使用技术来创建数据来使用“离线”吗?在这种情况下,我甚至会考虑创建一个最佳路线的“数据库”,以清理某些楼层空间(1x1到5x5),其中包括所有可能的起始和结束广场。这类似于游戏a用来在游戏达到一定深度时有效地“解决”游戏的“结束游戏数据库”(c.f。Chinook)。
发布于 2010-09-26 03:10:06
这个问题让我想起了this。类似的问题在Complexity一书中作为遗传算法的一个例子被简要提到。这些版本虽然简化了,但它们没有考虑燃料消耗。
https://stackoverflow.com/questions/3795112
复制相似问题