在python中创建一个协调的集中式多代理系统

时间:2019-05-07 12:00:18

标签: python

我实际上是在一个项目中,我必须协调停车场中的众多自动驾驶汽车。 我可以找到每辆车的路径,但我真的不知道如何使所有车辆同时互动而不会发生碰撞。

我的策略是这样的:

  1. 找到车辆进入公园的路径。
  2. 检查车辆的路径与其他路径之间是否存在公共的航路点。
  3. 如果有共同点,请调用函数以更改车辆的路径或其他车辆的路径。

可用于两辆车。但是如何做到这一点呢?我认为时间应该占有一席之地,但是我不知道该怎么做。

很抱歉拼写错误。这是我的第一篇文章,我只是开始使用python进行编码。如有必要,我可以共享我的代码(这真的很长,要理解它需要时间)。

谢谢!

freePos = ['1504']
path = get_path(source,freePos)
print(" My car's path:", path)
car2Position = ['1534']
for spot in car2Position:
    s = get_path(spot, dest)
    print(" car 2's path :", s)

    common = commonWaypoints(path, s)
    if common:
        p, n = changePath(path, s) # a function that changes a path 
        if n ==1: # tells if we changed the first or the second path
            path = p
        elif n ==2 :
            s = p # I have to send this path to the other car 
    print (path)  # I print The path Of my car ( actual one)  

1 个答案:

答案 0 :(得分:0)

只要行车道上有接触点即可,只要不在同一时间即可。一种方法是计算时间轴上的所有路径-看看路径在哪个时间交叉-实现等待行为。另一种可能更简单的方法是,将每个代理的当前位置(t)和位置(t + 1)广播到中央频道。如果(t + 1)位置会干扰任何  其他车辆的t + 1位置,则应采用逻辑来处理(例如,先右)。