我试图模拟从商店获取东西取决于其他东西的情况。
让我们说我有一个生产商将物品放入有限容量的商店S1。这些项目被转移到另一个商店S2,当且仅当(1)S1 中有一个项目并且在S2中有空间时。
P - > S1-> S2
问题在于我需要从S1中移除一个项目以适应S2中的空间。
在代码中:
from simpy import *
env = Environment()
S1 = Store(env, capacity=1)
S2 = Store(env, capacity=1)
def producer():
i = 0
while True:
yield S1.put(i)
print("Producer put item: %s"%i)
i += 1
def s1_to_s2():
while True:
item = yield S1.get()
yield S2.put(item)
env.process(producer())
env.process(s1_to_s2())
env.run(until=20)
产生
Producer put item: 0
Producer put item: 1
Producer put item: 2
我对此进行建模的方式使得它看起来在S1和S2之间有1个额外的存储空间,这是我不想要的。由于我有2个存储单元,每个存储单元的容量为1,因此生产者应该只能插入2个单元。
答案 0 :(得分:0)
我担心SimPy开箱即用是不可能的。但是,您可以将Store和相关事件子类化为模型间存储依赖关系。