1. Nauka
  2. /
  3. Kursy
  4. /
  5. Symulacja zdarzeń dyskretnych w Pythonie

Connected

ćwiczenie

Buduj model: generowanie zamówień na samoloty

Skoro środowisko SimPy i zasoby zostały już utworzone, czas połączyć je z generatorem symulującym zamówienia na zakup samolotów. Łącznie jest 30 zamówień.

Funkcja assembly_line() składa sekwencyjne żądania zasobów dla poszczególnych sekcji produkcji komponentów samolotu. Poniżej widać przykład jednego takiego żądania.

# Open the resource step_1_fuselage request
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]])

Instrukcje

100 XP
  • Utwórz pętlę for, aby złożyć wszystkie żądania zamówień (total_num_orders), używając zmiennej pomocniczej o nazwie request_i.
  • W trakcie pętli for utwórz nowy proces dla każdego żądania dotyczącego samolotu; wszystkie procesy opierają się na generatorze assembly_process_request.
  • Wszystkie 30 samolotów zostało zamówionych w jednej partii – uzupełnij kod tak, aby odzwierciedlał brak czasu oczekiwania między żądaniami.