LoslegenKostenlos loslegen

Ein diskretes Ereignismodell entwickeln

Du sollst ein diskretes Ereignismodell für einen landwirtschaftlichen Betrieb entwickeln, um Ressourcen zuzuweisen, die Produktivität zu steigern und Engpässe zu identifizieren und zu beseitigen.

Du besprichst noch mit deinen Kolleginnen und Kollegen die verschiedenen Prozesse und in welcher Detailtiefe sie im Modell abgebildet werden sollen. Daher habt ihr vereinbart, die Informationen in einem Dictionary namens process_dict mit der folgenden Struktur zu sammeln. Die Idee ist, dass dieses Dictionary aktualisiert wird, sobald mehr Informationen über die Prozesse vorliegen.

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

Lass uns ein generisches diskretes Ereignismodell namens discrete_model_farm() erstellen, das beliebig viele im Dictionary definierte diskrete Ereignisse einplanen kann.

Die Eingabeargumente des Modells sind (in dieser Reihenfolge):

  1. process_dict: Dictionary mit Informationen über die Prozesse
  2. simulation_time: Simulationszeitraum

Die Zeit im Modell wird in Tagen gemessen.

Diese Übung ist Teil des Kurses

Diskrete-Ereignis-Simulation mit Python

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere die Zustandsvariablen des Modells, time (verfolgt die Zeit) und supply_chain (verfolgt die Anzahl der Zyklen), und setze beide auf null.
  • Definiere die Endbedingung so, dass das Modell läuft, solange time kleiner ist als simulation_time.
  • Addiere die Dauer des Prozesses zur Zustandsvariable time.

Interaktive Übung

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

def discrete_model_farm(process_dict, simulation_time):
  # Initiate variables
  time = ____
  supply_chain = ____

  # Define ending condition
  while ____ < ____:

    supply_chain += 1
    process_names = list(process_dict.keys())

    for p in range(len(process_names)):
		  
      event_duration = process_dict[process_names[p]]
          
      # Add the process duration
      ____ += event_duration
      print(f"{process_names[p]}  (completed): time = {time}")
          
    print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")  
Code bearbeiten und ausführen