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”实验。请注意,随着您添加因素并增加每个因素内的点数,您最终创建的模拟数量会迅速增加。