当前位置: 首页 > 知识库问答 >
问题:

道路交通库-移动到块-而循环?

邬浩涆
2023-03-14

我想在AnyLogic中实现一个连接的自主车队。因此,车辆代理可以更改其路线。我的理解是,使用标准的“MoveTo”块可以通过告诉车辆代理移动到哪条道路来只移动车辆代理一次。

例如:

可以在road4Source中指定的任何道路上创建遵循上述区块的任何车辆,然后移动到moveToRoad2区块中指定的另一条道路,然后在到达endOfRoute区块时将其销毁/删除/丢弃。

然而,由于车辆可以自己选择路线,我只知道车辆的起点和目的地,不确定它将走什么路线。因此,理想情况下,MoveTo块的数量应该是动态的。

考虑到这一点,是否可以重用MoveTo block(将其视为一种while循环),以便车辆保持在MoveTo block中,直到到达目的地(在我的情况下是一条特定的道路)?

类似这样:

因此,在moveToRoad2的Road参数中,我可以放一些类似的东西(可能是错误的,只是为了说明):

car.getRoad() == car.destination ? endOfRoute : car.getRoad()

其中<代码>汽车。getRoad()将返回车辆想要去的道路,如果它等于汽车的目的地,则它将进入Endofrout区块。

编辑1

我现在明白了,如果有两个连接到同一个端口,AnyLogic会抛出错误:

输出端口不能与多个输入端口连接。

那么,有没有其他方法来实现我在这里想要做的事情呢?

共有1个答案

池赞
2023-03-14

然后,您需要生成汽车将要行驶的道路集合。。。此集合是在carSource中生成的。。。或者,您可以在“循环”过程中进行更新。

car代理必须有一个变量,该变量以0开头,并在每次退出CAMOVETO时递增1。。。

所以汽车将走的新路是:

collection.get(car.variable)

在carMoveTo出口时:

car.variable++;

在selectOutput中,true的条件为:

agent.variable==collection.size()

我希望这能有所帮助...然而,如果你有太多的交通,你会在你的模型中看到大问题,因为汽车不一定能识别汽车目的地后的交通。

 类似资料:
  • 我搜索了整个Stack Overflow,发现了很多关于如何将一个或所有成员移动到语音频道的问题,但答案不符合我的需要,当我尝试让他们看看我是否可以更改它们以满足我的需要时,他们不起作用。 在我的不和谐服务器上,如果你加入了一个名为加入创建频道的语音频道,我希望我的机器人制作一个这样命名的语音频道: f'{成员}的频道',然后自动将该人移动到该频道。我可以让机器人通过使用等待克隆(名称,原因)来制

  • 我在。工作。在表单(一个GUI应用程序)中的Netbeans Java项目上,我希望将移动到循环路径中。有什么可以告诉或帮助如何做到这一点吗?

  • 我有一个Django Vue。我正在尝试连接到django频道的js聊天应用程序。 要访问任何聊天室,您只需访问: http://localhost:8080/rooms/"id"/ 我的javascript连接如下所示: 我的consumers.py: 我的routing.py: 我的项目routing.py: 问题是,我无法连接到websocket,我的django服务器说: [失败实例:回溯

  • 使用基于python的遗传算法,我能够获得具有异构车队的车辆路线问题的路线。这些必须使用离散事件模拟在任何逻辑中进行评估。我使用了以下块: 主要是,我调用python通信器并将路线存储在“列表”类型的参数中,然后我将这些路线添加到代理“订单”(人口类型)中,这样每个订单代理都包含一个唯一的路线和车辆。 然而,在抓取后,车辆需要访问嵌入订单代理参数路线内的每个单独站点。目前,我有moveTo块,我用

  • 问题内容: 我遇到了奇怪的行为。我正在使用缓冲通道,并且当使用大缓冲区时,整个程序的执行都会阻塞。在以下代码段中: 我的程序阻塞了〜96000次迭代,并且从未达到“完全”打印,除非我在评估之前将其打印出来。这可能是由于提供的延迟所致,因为也可以通过添加一个small来“解决”该问题。 有人可以解释这种现象的原因吗? 问题答案: 发生这种情况是因为您的goroutine从未执行过。goroutine

  • 所以我使用了来制造一个不和谐的。我正在使用查看成员的是否更改。 如果某个成员位于特定的,我希望客户端使用该成员的用户名作为频道名称创建一个新的语音频道,并将该成员移动到该新的语音频道内。这是我的密码: 这不工作。有人能帮帮我吗?