如何在AnyLogic中实现卡车选取最近订单进行配送?
AnyLogic配送仿真模型按距离分配订单需求与问题
模型基础
- 基于AnyLogic机场示例开发的配送仿真模型,包含4种Agent类型:
Hub、Truck(含参数client)、House、Order(含参数customer)
现有流程
HouseAgent从normalWork状态切换为waiting状态时创建OrderOrder的customer参数指向发起该订单的House- 使用流程建模库的块处理
Order,通过seize块将Truck分配给Order,逻辑代码:
((Truck) unit).client = agent.customer;
需求调整
希望实现卡车每次完成配送后,从订单队列中选取最近的Order(现有seize块仅支持Order抢占最近的Truck,需要反向逻辑)
思路与挑战
- 思路:考虑在Truck前设置队列,根据与卡车的距离对订单排序,但不确定如何基于距离比较Agent
- 挑战:由于
Order是Agent类型,无法逐个访问订单计算卡车与每个订单的距离,难以实现比较逻辑
请问是否有人在AnyLogic中处理过此类Agent比较场景?是否有快速修复或变通方法实现按与卡车的距离排序订单?恳请提供帮助或方向。
附:当前处理模型截图参考
内容的提问来源于stack exchange,提问作者FowlArtemis
相关产品推荐
相关产品推荐

