2D区域搜索与摧毁算法

我正在尝试为一个AI机器人编写一个算法,用于在二维矩形网格中搜索并摧毁一个静止的物体。机器人的移动次数有限,无法到达空间的每个角落。机器人只能感知到它直接相邻的方块(北/南/东/西)中的墙壁和物体,但不能感知对角线方向的。空间的大小是恒定且已知的,但机器人和物体的起始位置是未知的。我希望以最有效的方式搜索房间,以增加在多次测试中找到物体的可能性。

到目前为止,我认为如果机器人沿着直线移动直到碰到最近的墙壁,然后后退一步并向左转,继续移动直到碰到另一面墙。从那里,机器人应该能够再次后退一步并向左转。然后沿着墙壁移动,并以之字形的方式返回房间的剩余部分。(如果这个移动描述需要澄清,请告诉我。)

有没有更有效的方法来移动并找到这个物体?


回答:

你说机器人的移动次数有限,无法到达空间的每个角落。在这种情况下,我建议使用“G”形模式。

我认为之字形最终会覆盖每个方块,但它也更有可能重新扫描你开始的几个方块。由于你的移动次数有限,每多扫描一个方块都很重要。我所说的“G”形模式是指机器人从“G”的中间开始,碰到墙壁后,沿着房间的墙壁移动。我认为这将最大限度地减少重新扫描已扫描过的方块的几率。在完成“G”形扫描后,如果还有额外的移动次数,你可以对剩余的内矩形空间进行之字形扫描,你已经完全了解它的尺寸大小。

此外,在程序中记录房间的长宽,当机器人碰到第三面墙时,这样它就知道在碰到第四面墙之前提前转向,节省几步后退的移动次数。

最后,你应该记录你在房间中的起始位置以及初始扫描路径(你可以在第一次“G”形扫描完成后计算出来)。有了这些信息,你可以判断你的初始路径是在房间的哪一侧,或者更靠近另一侧。如果它更靠近你开始“G”形扫描的那一侧,也许可以进行另一个“C”形扫描,覆盖房间的另一侧,然后再开始之字形扫描,以最大限度地减少在移动结束前重新扫描初始路径的几率。“C”形和之字形所需的移动次数应该相同。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注