Simpy Store - Dependent Events

时间:2017-03-23 21:46:29

标签: python simpy

我试图模拟从商店获取东西取决于其他东西的情况。

让我们说我有一个生产商将物品放入有限容量的商店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个单元。

1 个答案:

答案 0 :(得分:0)

我担心SimPy开箱即用是不可能的。但是,您可以将Store和相关事件子类化为模型间存储依赖关系。