2017-07-12 2 views
1

Ich habe eine einfache Frage. Ich habe eine Basissimulation erstellt und möchte sie nun mehrmals ausführen, um eine Verteilung der möglichen Werte zu erhalten. Gibt es einen effizienteren Weg dies zu tun, als das Skript mehrmals auszuführen? Gibt es eine Möglichkeit, die Umgebung in den Ausgangszustand zurückzusetzen und diesen Vorgang erneut auszuführen, ohne alle externen Klassen und andere Setups für jeden einzelnen Lauf laden zu müssen?simpy wie man eine simulation mehrfach durchführt

Soll ich die gesamte Simulation in eine for-Schleife stellen und Daten auf diese Weise sammeln, oder ist es der empfohlene Ansatz, das Skript mehrmals außerhalb von Python auszuführen und an einen Datencache anzuhängen?

Antwort

0

Hier ist ein Beispiel dafür, wie eine Simulation mehrere Male mit verschachtelten laufen für Schleifen:

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) 

Dies ist eine gute Möglichkeit, Experimente laufen, wo Sie müssen über ein mehrere Variablen fegen. Dies wird als "full factorial" -Experiment bezeichnet. Beachten Sie jedoch, dass die Anzahl der Simulationen, die Sie am Ende erstellen, schnell zunimmt, wenn Sie Faktoren hinzufügen und die Anzahl der Punkte innerhalb jedes Faktors erhöhen.

Verwandte Themen