simpy 如何 运行 多次模拟
simpy how to run a simulation multiple times
我有一个简单的基本问题。我已经创建了一个基本模拟,现在想 运行 多次以获得可能值的分布。有没有比多次 运行 脚本更有效的方法?有没有办法将环境重置为初始状态并重新运行那样,而不必为每个 运行?[=11= 加载所有外部 类 和其他设置]
我应该将整个模拟放在一个 for 循环中并以这种方式收集数据,还是推荐的方法从 python 外部多次 运行 脚本并附加到某些数据缓存?
将所有模拟设置(环境创建、资源、流程等)放入一个函数中,并将其映射到一个流程池(参见 https://docs.python.org/3/library/multiprocessing.html)。
下面是一个如何使用嵌套 for 循环 运行 多次模拟的示例:
for variable_a in a_variables:
for variable_b in b_variables:
for variable_c in c_variables:
for variable_d in d_variables:
print 'Starting sim %d' % x
# setup environment
random.seed(random.random())
env = simpy.Environment()
# resource
resource = simpy.Resource(env, capacity = 2)
env.process(source(env))
env.run(until=SIM_TIME)
这是 运行宁实验的好方法,您需要扫描多个变量。这称为“full factorial”实验。请注意,随着您添加因素并增加每个因素内的点数,您最终创建的模拟数量会迅速增加。
我有一个简单的基本问题。我已经创建了一个基本模拟,现在想 运行 多次以获得可能值的分布。有没有比多次 运行 脚本更有效的方法?有没有办法将环境重置为初始状态并重新运行那样,而不必为每个 运行?[=11= 加载所有外部 类 和其他设置]
我应该将整个模拟放在一个 for 循环中并以这种方式收集数据,还是推荐的方法从 python 外部多次 运行 脚本并附加到某些数据缓存?
将所有模拟设置(环境创建、资源、流程等)放入一个函数中,并将其映射到一个流程池(参见 https://docs.python.org/3/library/multiprocessing.html)。
下面是一个如何使用嵌套 for 循环 运行 多次模拟的示例:
for variable_a in a_variables:
for variable_b in b_variables:
for variable_c in c_variables:
for variable_d in d_variables:
print 'Starting sim %d' % x
# setup environment
random.seed(random.random())
env = simpy.Environment()
# resource
resource = simpy.Resource(env, capacity = 2)
env.process(source(env))
env.run(until=SIM_TIME)
这是 运行宁实验的好方法,您需要扫描多个变量。这称为“full factorial”实验。请注意,随着您添加因素并增加每个因素内的点数,您最终创建的模拟数量会迅速增加。