设计一个机器人来寻找对象在一个领域的位置
这是我的AI项目的一部分。我必须在LXW方格中实现一个占据正方形的bot。如果字段中的正方形为空,则它的值为0,如果它被某个对象占用,则其值为1.连续的值为1的正方形称为对象。设计一个机器人来寻找对象在一个领域的位置
我必须弄清楚所有对象的身份和位置在该领域
我有以下信息:
感():该函数返回我的邻居的占用状态8个平方
举动(x):允许我沿x方向移动到相邻的方格
getId(x):给我在x方向上的对象id和wrt,如果没有对象,返回-1
但是,无论何时我称之为sense或getID函数离子,物体可以以小概率移动到不同的位置
我正在考虑使用BFS来遍历网格。或者,保留一个已经遍历的位置列表并随机移动会更好吗? 我可以用来解决这个问题的一些AI技术是什么?一些规划技术如何?
我喜欢问题描述!确定性方法可能无效,因为涉及到一些随机性。此外,您可能需要重新访问某些位置,因为物体移动可能会打开新的路径。
因此,加强随机移动是一个好的开始。例如,您可以为每个访问过的单元分配时间戳,并使其更有可能访问未访问/较旧的单元。这与仅使用单一蚂蚁的蚁群优化http://en.wikipedia.org/wiki/Ant_colony_optimization中的信息素类似。
另一种方法可能是选择随机目标细胞(很远),并试图到达那里。你可能会遇到一些物体。在这些对象周围使用幼稚的路径查找,如果这不起作用,就选择另一个目标。
更新:
一个抽象的,但强大的方式来创造一个有点聪明的AI是首先考虑刚性事实/属性/注解,你可以分配到你的模型(如访问的位置,时间戳,先验知识等)。然后创建AI可以使用的一组简单操作。您可能还想在其上创建更复杂的操作。
之后,这一切都归结为由AI控制的代理人以非确定性方式给出当前事实时选择适当的操作。即:为这些可能的操作指定分数,并执行轮盘选择http://en.wikipedia.org/wiki/Fitness_proportionate_selection或类似的操作来确定下一个操作。
如果你盲目地碰到一个物体会发生什么? “距离不同”有多远? – LumpN 2011-04-15 10:42:59