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 块(或其他解决方案)访问路由中的每个整数元素。
我会按如下方式实现:这是以前类似项目的示例
为每个停靠点创建一个 Java class,其中至少包含两个字段、纬度经度或其他一些识别位置的方式。 (在下面的示例中称为 Order)
在执行移动的代理中创建 Order
的集合(例如卡车)
在 MoveTo
块中,您让卡车代理移动到列表中的第一个位置,然后在移动完成后从列表中删除该订单。
每次交付结束时都有一个SelectOutput
块来检查是否还有stops/orders。如果有进程继续,如果没有那么你可以停止或做其他事情。
使用基于 python 的遗传算法,我能够为具有异构车队的车辆路径问题获取路径。这些必须使用离散事件模拟在 anylogic 中进行评估。 我使用了以下块:
主要是,我调用 python 通信器并将路由存储在“列表”类型的参数中,然后我将这些路由添加到代理 'Order'(人口类型)这样每个订单代理都包含唯一的路线和车辆。
但是,在占用之后,车辆需要访问订单代理参数路线中嵌入的每个单独站点。目前我有 moveTo 块,我在其中定义了代理 'main.Stops'。但这给了我无法从 int 转换为 agent 的错误。
我的想法是分别通过参数'routeID'和变量'OrderCount'来统计路由和路由中的元素。这些在每次访问后更新并初始化为零。有谁知道我如何确保可以通过 moveTo 块(或其他解决方案)访问路由中的每个整数元素。
我会按如下方式实现:这是以前类似项目的示例
为每个停靠点创建一个 Java class,其中至少包含两个字段、纬度经度或其他一些识别位置的方式。 (在下面的示例中称为 Order)
在执行移动的代理中创建
Order
的集合(例如卡车)在
MoveTo
块中,您让卡车代理移动到列表中的第一个位置,然后在移动完成后从列表中删除该订单。每次交付结束时都有一个
SelectOutput
块来检查是否还有stops/orders。如果有进程继续,如果没有那么你可以停止或做其他事情。