0

我正在尝试对具有许多状态的机器进行建模,类似于马尔可夫链,但状态之间的转换是随机变量(从一个状态转移到另一个状态的时间)。我正在尝试使用 simpy 在 python 上执行此操作,但老实说我迷路了。如果有人使用 simpy 并知道如何进行,我将不胜感激!先感谢您,

4

1 回答 1

0

所以你想让你的机器在状态之间随机变化,然后在那个特定状态下停留一段时间(也是随机的,或者每个状态都有特定的超时时间?)?也许像下面的代码对你有用?您为每个状态(state_dic)分配一个数字,并为每个状态分配一个超时时间(state_time_dic,这也可以是一个随机数),然后在函数中您会看到变量 i 是随机生成的。您可以根据需要经常进行该循环。

    state_dic= {1: "state 1", 2: "state 2", 3: "state 3"}
    state_time_dic = {"state 1": 5, "state 2": 10, "state 3": 8}

    def mulit_state_system(resource):
        i = random.randint(1,4)
        if i in state_dic.keys:
        state = state_dic[i]
        with resource.request as req:
            yield req
            yield timeout(state_time_dic[state])

我没有测试代码。这只是给你一个想法。

于 2018-11-26T09:28:10.217 回答