'true' returns 同一代理上的任何逻辑选择块

anylogic selectblock on 'true' returns same agent

我正在模拟 last-mile 交付,我想迭代评估停靠点之间的二氧化碳排放量。第一个路线评估的数字相加,即它正确地 counts/removes 每个停靠点嵌入在路线中。问题是,当第一条路线完成时,模型应该考虑在 'toConsumer' 中嵌入类型为 'Order' 的新代理中的下一条路线,但事实并非如此。据我所见,满足 select 块中的条件后,订单代理不会更新。但是,我不确定为什么要这样做。当条件满足时,代理会继续前往水槽。有人知道我如何确保代理更新吗?

anylogic 模型如下所示:

在源代码块中,我通过以下优化结果创建代理:

int r = 0;
agent.routeVeh = (int) parVehicle.get(r);
agent.route = (List) parRoute.get(r);
agent.routeDep = (int) parDepot.get(r); 
r++;

在 select 块中我有:

消费者块:

如果您在 Main 代理中执行此操作,则需要在 Order 代理中定义 routeCountconsumerCount(或者如果您在其中定义了 Vehicle 代理)。因为它们是为每个订单定义的。然后在 routeFinished 中,您需要将变量更新为 agent.consumerCount++;