我在 Python 中使用 Simpy 离散事件模拟来模拟工厂。该类resource
允许我模拟一次可以由有限且固定数量的进程使用的资源(例如,具有有限数量的燃料泵的加油站)。粗略地说:进程必须请求这些资源才能成为用户,并且一旦完成就必须释放它们(例如,车辆到达加油站,使用燃油泵,如果有的话,完成后离开) .
资源具有有限且固定数量的可以由进程请求的槽。如果所有插槽都被占用,请求者将被放入队列中。如果一个进程释放了一个槽,则下一个进程从队列中弹出并获得一个槽。
就我而言,我有一个必须使用某些共享机器的进程列表。每个进程都与允许使用的机器的固定子集相关联。如果这个子集对于每个进程都是相同的,那么使用内置方法很容易实现这个问题,但是我在这个问题的变化中遇到了麻烦。
我试图将每台可用机器作为一个resource
容量为一个的个体(而不是一个resource
容量等于可用机器总数的单个),并使用该any_of
方法将每个进程分配给其相应的允许子集的第一台可用机器机器。不幸的是,它不起作用。
有没有一种简单或自然的方法来实现这一点?提前致谢!