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):
process_dict: Dicționar cu informații despre procesesimulation_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
Instrucțiuni pentru exercițiu
- Inițializează variabilele de stare ale modelului,
time(urmărește timpul) șisupply_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
timeeste mai mic decâtsimulation_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")