【发布时间】:2023-03-20 14:43:01
【问题描述】:
我正在尝试使用简单的 AI 解决地图求解问题。
我们有 3 个函数可以使用:
-
move:根据冒险者(代理)的方向(上、下、左、右)向前移动 1 个格子。
-
rotate:将冒险者旋转并顺时针改变方向 90 度。
-
scan:根据方向返回最近的物体给冒险者。它还会扫描到地图的边缘,只有在没有找到对象时才会返回空。
扫描结果有4种。
-
公主:这是冒险者要达到的目标。
-
尖峰:冒险者必须避开尖峰,否则游戏结束。
-
塔:这告诉冒险家公主沿着塔的轴线(公主和塔之间不能有钉子)
-
空:扫描轴内没有物体。
用户不知道地图的内容,会从0知识开始,应该找到到达公主的最有效方式。
鉴于尖峰、公主和塔的位置是随机生成的,我可以使用什么方法来解决这个问题?
这是一个示例地图:
红色 - 冒险家,粉色 - 公主,黑色 - 斯派克
【问题讨论】:
-
扫描是否也返回距离?
-
我不明白塔是什么意思。
-
@Surt no,它只会返回找到的最近的对象。
-
@trincot 塔就像一个物体,通知代理公主在塔的轴线内。例如,如果塔位于 (1,0),那么公主必须在 (2,0) 到 (n,0) 之间(n 取决于地图的大小)
-
例如,您可以使用修改后的深度优先搜索。通过扫描获取所有代理的邻居,旋转 4 次。如果其中一个邻居是:Prince - 达到目标。塔 - 添加到堆栈并忽略其他。其他明智的做法是让所有邻居都接受堆栈中的尖峰。
标签: algorithm artificial-intelligence depth-first-search breadth-first-search maze