【问题标题】:simpy how to run a simulation multiple timessimpy 如何多次运行模拟
【发布时间】:2017-07-12 15:03:04
【问题描述】:

我有一个基本的简单问题。我已经创建了一个基本模拟,现在想多次运行它以获得可能值的分布。有没有比多次运行脚本更有效的方法?有没有办法将环境重置为初始状态并以这种方式重新运行,而不必为每次运行加载所有外部类和其他设置?

我应该将整个模拟放在一个 for 循环中并以这种方式收集数据,还是推荐的方法是从 python 外部多次运行脚本并附加到一些数据缓存?

【问题讨论】:

    标签: python simpy


    【解决方案1】:

    将所有模拟设置(环境创建、资源、进程……)放入一个函数中,并将其映射到进程池(请参阅https://docs.python.org/3/library/multiprocessing.html)。

    【讨论】:

      【解决方案2】:

      以下是如何使用嵌套 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”实验。但请注意,随着您添加因子并增加每个因子中的点数,您最终创建的模拟数量会迅速增加。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-20
        • 1970-01-01
        相关资源
        最近更新 更多