Utveckla en diskret händelsemodell
Du har fått i uppgift att utveckla en diskret händelsemodell för en jordbruksverksamhet för att hjälpa till med resursallokering, ökad produktivitet och att identifiera och eliminera flaskhalsar.
Du diskuterar fortfarande de olika processerna med dina kollegor och i hur stor detalj de ska representeras i modellen. Ni har därför kommit överens om att informationen sammanställs i en ordlista (dictionary) med namnet process_dict med följande struktur. Tanken är att denna ordlista uppdateras allt eftersom mer information om processerna blir tillgänglig.
process_dict = {
"Process name 1": <duration>,
"Process name 2": <duration>,
...
}
Låt oss bygga en generisk diskret händelsemodell med namnet discrete_model_farm() som kan schemalägga valfritt antal diskreta händelser definierade i ordlistan.
Modellens indataargument är (i ordning):
process_dict: Ordlista med information om processernasimulation_time: Simuleringsperiod
Tid i modellen mäts i dagar.
Den här övningen är en del av kursen
Diskret händelsesimulering i Python
Övningsinstruktioner
- Initiera modellens tillståndsvariabler,
time(spårar tid) ochsupply_chain(spårar antal cykler), och sätt dem till noll. - Definiera avslutningsvillkoret så att modellen körs medan
timeär mindre änsimulation_time. - Lägg till processens varaktighet till tillståndsvariabeln
time.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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")