Zacznij terazZacznij za darmo

Tworzenie modelu zdarzeniowego

Zostałeś poproszony o opracowanie modelu symulacji dyskretnej dla operacji rolniczej, który pomoże w alokacji zasobów, zwiększeniu produktywności oraz identyfikacji i eliminacji wąskich gardeł.

Wciąż omawiasz z kolegami poszczególne procesy i stopień szczegółowości ich odwzorowania w modelu. Ustaliliście, że informacje zostaną zebrane w słowniku o nazwie process_dict o następującej strukturze. Słownik będzie aktualizowany w miarę napływu nowych danych o procesach.

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

Zbudujmy ogólny model symulacji dyskretnej o nazwie discrete_model_farm(), który będzie obsługiwał dowolną liczbę zdarzeń dyskretnych zdefiniowanych w słowniku.

Argumenty wejściowe modelu (w kolejności):

  1. process_dict: słownik z informacjami o procesach
  2. simulation_time: okres symulacji

Czas w modelu będzie mierzony w dniach.

To ćwiczenie jest częścią kursu

Symulacja zdarzeń dyskretnych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjuj zmienne stanu modelu: time (śledzi czas) oraz supply_chain (śledzi liczbę cykli) i nadaj im wartość zero.
  • Zdefiniuj warunek zakończenia tak, aby model działał, dopóki time jest mniejsze od simulation_time.
  • Dodaj czas trwania procesu do zmiennej stanu time.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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")  
Edytuj i uruchom kod