LoslegenKostenlos loslegen

Baue dein Modell: Flugzeugbestellungen erzeugen

Jetzt, da die SimPy-Umgebung und die Ressourcen erstellt wurden, verknüpfen wir sie mit einem Generator, der Bestellungen für Flugzeugkäufe simuliert. Es gibt 30 Flugzeugbestellungen.

Die Funktion assembly_line() stellt sequentielle Ressourcenanfragen für die verschiedenen Fertigungsabschnitte der Flugzeugkomponenten. Der folgende Code zeigt eine solche Anfrage.

# Öffne die Ressourcenanfrage step_1_fuselage
with step_1_fuselage.request() as slot_request_1:
  request_1_time = env.now
  yield slot_request_1
  print(f"time: {env.now:7.4f} | Aircraft {aircraft_id:02d} 
                               | Enters: step_1_fuselage 
                               | Queued for {env.now-request_1_time} hours")
  yield env.timeout(processing_time[processing_time_step_names[0]])

Diese Übung ist Teil des Kurses

Diskrete-Ereignis-Simulation mit Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine for-Schleife, um alle Bestellanfragen (total_num_orders) mit einer Dummy-Variablen namens request_i zu erstellen.
  • Erzeuge während der for-Schleife für jede Flugzeuganfrage einen neuen Prozess; alle Prozesse basieren auf dem Generator assembly_process_request.
  • Alle 30 Flugzeuge wurden in einer Charge angefragt. Vervollständige daher den Code so, dass keine Wartezeit zwischen den Anfragen entsteht.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

def order_aircraft(env, total_num_orders, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear):
    
    # Generate the orders with a for-loop
    ____ request_i in range(total_num_orders):

        assembly_process_request = assembly_line(env, request_i, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear)

        # Initiate an assembly line process for each request
        env.____(assembly_process_request)

        # Clock-in the time between requests
        yield env.timeout(____)
Code bearbeiten und ausführen