我正在尝试对具有许多状态的机器进行建模,类似于马尔可夫链,但状态之间的转换是随机变量(从一个状态转换到另一个状态的时间)。我试着在python上使用simpy来做这件事,但我真的迷失了方向。如果有人使用simpy并对如何进行有想法,我将不胜感激!先谢谢你,
发布于 2018-11-26 17:28:10
因此,您希望您的机器在状态之间随机更改,然后在该特定状态中停留一段时间(也是随机的,或者每个状态都有特定的超时时间?)?也许像下面这样的代码可以为你工作?您为每个状态分配一个数字(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])我没有测试代码。这只是给你一个想法。
https://stackoverflow.com/questions/53376506
复制相似问题