ฉันต้อง 2 โหนดต่างๆ 0 และ 1 ในทั้งหมดมี 12 คนทรัพยากรซึ่งจะเซิร์ฟเวอร์อยู่ในโหนดต่างๆ 0 และ 1 ได้ มีวิธีใน Simpy ต้องตารางเวลาที่ 12 ทรัพยากรข้ามโหนดต่างๆ 0 และ 1 ดังนั้นโดยเฉลี่ยทั้งหมดกำลังประมวลผลเวลาของรายการผ่านของโหนด 0 นตามรอยโหนด 1 ถูกย่อหาย name. จากครั้งทรัพยากรจะได้ย้ายออกมาจากคนโหนดไปยังอีกให้รับใช้ใครอีกแล้ว ติดคือรหัสที่ฉันต้องไปพร้อมกับรูปแบบดิสทริบิวชันของ 5 ทรัพยากรในโหนด 0 และ 7 ทรัพยากรอยู่ในจุดเชื่อมต่อ 1 เลย ยังไงเพื่อทำให้มันปรับอัตโนมัติกับเวลา?
import numpy as np
import simpy
def interarrival():
return(np.random.exponential(20))
def servicetime():
return(np.random.exponential(60))
def servicing(env, servers_1):
i = 0
while(True):
i = i+1
yield env.timeout(interarrival())
print("Customer "+str(i)+ " arrived in the process at "+str(env.now))
state = 0
env.process(items(env, i, servers_array, state))
def items(env, customer_id, servers_array, state):
with servers_array[state].request() as request:
yield request
t_arrival = env.now
print("Customer "+str(customer_id)+ " arrived in "+str(state)+ " at "+str(t_arrival))
yield env.timeout(servicetime())
t_depart = env.now
print("Customer "+str(customer_id)+ " departed from "+str(state)+ " at "+str(t_depart))
if (state == 1):
print("Customer exits")
else:
state = 1
env.process(items(env, customer_id, servers_array, state))
env = simpy.Environment()
servers_array = []
servers_array.append(simpy.Resource(env, capacity = 5))
servers_array.append(simpy.Resource(env, capacity = 7))
env.process(servicing(env, servers_array))
env.run(until=2880)