我正在模拟一个在AnyLogic的分配系统,在那里产品用不同的车辆在世界各地运输。
起初,这些产品是在许多工厂之一生产的。每个产品都有一个变量v_destination1 (String) taht显示下一个目的地。
代理(产品)在代理类型的“工厂”中,更具体地说是在队列块中。我想写一个代码,要求车辆进入工厂和皮卡产品。困难在于代码必须包含以下条件:
如果队列块中至少有10个具有相同目的地(变量
这些产品代理应该离开队列块并输入一个拾取块。
我有以下的想法,但我不知道如何继续:
1.1使用队列中的所有产品创建集合(c_waitingTruck)
1.2 int count (c_waitingTruck, p -> p.v_destination1 ... ->这里我不知道如何写出正确的条件
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) {
有人能帮我吗?如果有任何建议,我会非常高兴的。
发布于 2020-05-07 08:04:56
不要使用队列,使用名为等待的等待块。在“等待”块的开始输入中,检查该金额是否已满足。
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);
}
}我没有测试这段代码,所以它可能有一个错误,但至少这就是我的想法
https://stackoverflow.com/questions/61652494
复制相似问题