Anylogic 最后一英里交付。通过 'moveTo' 和 'select' 块多次停靠

Anylogic last mile delivery. Multiple stops via to 'moveTo' and 'select' block

使用基于 python 的遗传算法,我能够为具有异构车队的车辆路径问题获取路径。这些必须使用离散事件模拟在 anylogic 中进行评估。 我使用了以下块:

主要是,我调用 python 通信器并将路由存储在“列表”类型的参数中,然后我将这些路由添加到代理 'Order'(人口类型)这样每个订单代理都包含唯一的路线和车辆。

但是,在占用之后,车辆需要访问订单代理参数路线中嵌入的每个单独站点。目前我有 moveTo 块,我在其中定义了代理 'main.Stops'。但这给了我无法从 int 转换为 agent 的错误。

我的想法是分别通过参数'routeID'和变量'OrderCount'来统计路由和路由中的元素。这些在每次访问后更新并初始化为零。有谁知道我如何确保可以通过 moveTo 块(或其他解决方案)访问路由中的每个整数元素。

我会按如下方式实现:这是以前类似项目的示例

  1. 为每个停靠点创建一个 Java class,其中至少包含两个字段、纬度经度或其他一些识别位置的方式。 (在下面的示例中称为 Order)

  2. 在执行移动的代理中创建 Order 的集合(例如卡车)

  3. MoveTo 块中,您让卡车代理移动到列表中的第一个位置,然后在移动完成后从列表中删除该订单。

  4. 每次交付结束时都有一个SelectOutput块来检查是否还有stops/orders。如果有进程继续,如果没有那么你可以停止或做其他事情。