ÎncepețiÎncepe gratuit

Dezvoltarea unui model cu evenimente discrete

Ți s-a cerut să dezvolți un model cu evenimente discrete pentru o operațiune agricolă, cu scopul de a aloca resursele eficient, de a crește productivitatea și de a identifica și elimina blocajele.

Încă discuți cu colegii despre procesele implicate și nivelul de detaliu la care ar trebui reprezentate în model. Prin urmare, ați convenit că informațiile vor fi compilate într-un dicționar numit process_dict, cu următoarea structură. Ideea este că acest dicționar va fi actualizat pe măsură ce devin disponibile mai multe informații despre procese.

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

Să construim un model generic cu evenimente discrete, numit discrete_model_farm(), care poate programa oricâte evenimente discrete definite în dicționar.

Argumentele de intrare ale modelului sunt (în ordine):

  1. process_dict: Dicționar cu informații despre procese
  2. simulation_time: Perioada de simulare

Timpul în model va fi măsurat în zile.

Acest exercițiu face parte din cursul

Simulare de evenimente discrete în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează variabilele de stare ale modelului, time (urmărește timpul) și supply_chain (urmărește numărul de cicluri), și setează-le la zero.
  • Definește condiția de oprire astfel încât modelul să ruleze cât timp time este mai mic decât simulation_time.
  • Adaugă durata procesului la variabila de stare time.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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")  
Editează și rulează codul