有条件的退出队列,收集以过滤目的地
Exit queue with condition, Collection to filter destinations
我正在 AnyLogic 中模拟一个配送系统,其中产品通过不同的车辆运输到世界各地。
一开始,产品是在许多工厂之一生产的。每个产品都有一个变量 v_destination1(字符串),用于显示下一个目的地。
代理(产品)属于代理类型 "plant",更具体地说,在队列块中。
我想编写一个代码,调用车辆进入工厂并提取产品。
困难在于代码必须包含以下条件:
- 如果有至少 10 个产品具有相同的目的地(变量
v_destination1) 在队列块中
这些产品代理应离开队列块并进入取件块。
我有以下想法,但不知道如何继续:
1.1 创建一个包含队列中所有产品的集合 (c_waitingTruck)
1.2 int count (c_waitingTruck, p -> p.v_destination1 ...
--> 这里不知道怎么写才是正确的条件
1.3 if (count >= 10)
检查是否达到最少 10 个产品。
2.1 创建一个包含队列中所有产品的集合 (c_waitingTruck)
2.2 filter (c_waitingTruck, c -> c.v_destination1 ...
--> 与 1.2
相同
2.3 if (filter.size() >= 10) {
有人可以帮助我吗?如果有任何建议,我将非常高兴。
不要使用队列,使用名为 wait 的等待块。
在等待块的on enter中,检查数量是否满足
List <Product> products=findAll(wait,a->a.v_destination1.equals(agent.v_destination1);
if(products.size()>=10){
//call truck, however you do that
// then release your products into the queue that comes before the pickup block
for(Product p : products){
wait.free(p);
}
}
我没有测试这段代码,所以它可能有错误,但至少是这样的想法
我正在 AnyLogic 中模拟一个配送系统,其中产品通过不同的车辆运输到世界各地。
一开始,产品是在许多工厂之一生产的。每个产品都有一个变量 v_destination1(字符串),用于显示下一个目的地。
代理(产品)属于代理类型 "plant",更具体地说,在队列块中。
我想编写一个代码,调用车辆进入工厂并提取产品。
困难在于代码必须包含以下条件:
- 如果有至少 10 个产品具有相同的目的地(变量
v_destination1) 在队列块中
这些产品代理应离开队列块并进入取件块。
我有以下想法,但不知道如何继续:
1.1 创建一个包含队列中所有产品的集合 (c_waitingTruck)
1.2 int count (c_waitingTruck, p -> p.v_destination1 ...
--> 这里不知道怎么写才是正确的条件
1.3 if (count >= 10)
检查是否达到最少 10 个产品。
2.1 创建一个包含队列中所有产品的集合 (c_waitingTruck)
2.2 filter (c_waitingTruck, c -> c.v_destination1 ...
--> 与 1.2
相同
2.3 if (filter.size() >= 10) {
有人可以帮助我吗?如果有任何建议,我将非常高兴。
不要使用队列,使用名为 wait 的等待块。 在等待块的on enter中,检查数量是否满足
List <Product> products=findAll(wait,a->a.v_destination1.equals(agent.v_destination1);
if(products.size()>=10){
//call truck, however you do that
// then release your products into the queue that comes before the pickup block
for(Product p : products){
wait.free(p);
}
}
我没有测试这段代码,所以它可能有错误,但至少是这样的想法