python - 多个机器人同时进行路径规划

标签 python algorithm graph-algorithm search-tree

enter image description here plotted path

图像 1 完美地反射(reflect)了问题并显示了机器人能够实现的运动自由度。

正方形->原点, 圆圈->目的地。

这是两个将同时工作的机器人。 如何引导这些机器人而不使彼此陷入僵局 如果他们中的任何一个应该先移动,那么如何选择哪个。

(上面的情况只是一个例子,我知道在这种情况下我们可以随机阻止他们中的任何一个并逃脱惩罚,但我正在寻找一个通用的解决方案。最近邻方法是被禁止的。) 注意:除上下两排外,机器人不能移动。

我有一个包含所有 X 标记点的字典,以及下面的 id 和坐标中的路线,

# X generated points  
{1: [0, 0], 2: [0, 30], 3: [0, 60], 4: [0, 90], 5: [30, 0], 6: [30, 30], 7: [30, 60], 8: [30, 90], 9: [60, 0], 10: [60, 30], 11: [60, 60], 12: [60, 90], 13: [90, 0], 14: [90, 30], 15: [90, 60], 16: [90, 90]}

# Routes:
red=[11,12,8,4]
blue=[7,8,12,6]

最佳答案

如果您的迷宫/网格有很多从源到目标的选项,则以下“贪婪”算法将起作用:

  • 使用 shorthest path algorithm为第一个机器人绘制路径。
  • 从迷宫中删除找到的路径的所有顶点
  • 对下一个机器人重复此操作

这一次可以解析一个机器人的路线。通过从迷宫中删除先前机器人的路径,可以防止其他机器人使用相同的路径。

两个机器人有可能尝试占据同一个节点,但这不会使它们陷入僵局,因为它们的进入和退出路径是唯一的。两个机器人中的一个只需等待一个回合,直到另一个机器人消失。对于 i,让 robots[i] 的优先级高于 robots[j]

关于python - 多个机器人同时进行路径规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383407/

相关文章:

python - 如果我使用 Dicts 名称创建变量,如何在 dict 中查找值?

python - Numpy 中的向量化赋值

c++ - 更大的运算符 ">"是否满足严格的弱排序?

c++ - 如何选择整数线性规划求解器?

algorithm - 查找树中的公共(public)子树

python - Django Rest Framework ManyToMany 字段排序

java - 数组与字符串的大 O 内存

ruby - 如何迭代集合的散列

javascript - 星算法在javascript中的实现

python - 在Python中解析时间戳