该问题可以使用AnyLogic中的Process Modeling Library解决。下面给出代码示例:
ResourcePool resource1 = new ResourcePool(this, "Resource 1");
resource1.setCapacity(3);
ResourcePool resource2 = new ResourcePool(this, "Resource 2");
resource2.setCapacity(2);
ResourcePool resource3 = new ResourcePool(this, "Resource 3");
resource3.setCapacity(1);
Enter enter = new Enter(this);
enter.to(resource1).to(resource2).to(resource3);
resource1.setDynamicCapacity(() -> resource1.getCapacity() - resource1.getSeized());
resource2.setDynamicCapacity(() -> resource2.getCapacity() - resource2.getSeized());
resource3.setDynamicCapacity(() -> resource3.getCapacity() - resource3.getSeized());
Distribution dist1 = new Distribution(this, "Distribution 1");
Distribution dist2 = new Distribution(this, "Distribution 2");
dist1.add(0.3, () -> (resource1.getDynamicCapacity() < 1 || resource2.getDynamicCapacity() < 1));
dist1.add(0.7, () -> (resource1.getDynamicCapacity() >= 1 && resource2.getDynamicCapacity() >= 1));
dist2.add(0.5, () -> (resource3.getDynamicCapacity() < 1));
dist2.add(0.5, () -> (resource3.getDynamicCapacity