Productie-optimalisatie: Search & Stop
Laten we het wandklokfabriekmodel uit een eerdere oefening gebruiken en een "Search & Stop"-optimalisatie opzetten met Monte Carlo-sampling om de kritieke knelpunten in het proces te vinden.
Het productieproces is samengevat in de onderstaande tabel. De informatie is opgeslagen in een lijst met dictionaries genaamd processes, met één dictionary per proces. De keys van deze dictionary komen overeen met de kolomkoppen van de tabel.

De methode plot_results() om de grafieken in deze oefening te genereren is alvast geladen en staat hieronder.
def plot_results():
df_disc = pd.DataFrame({cNam[0]: process_line_space, cNam[1]: time_record})
fig = sns.lineplot(data=df_disc, x=cNam[0], y=cNam[1], marker='o')
plt.grid()
fig.set(xlim=(0, len(processes)))
fig.set(ylim=(0, 180))
fig.set(xticks=process_line_space)
plt.plot()
De Monte Carlo-samplinglus zal een reeks mogelijke procustrajecten opleveren en stoppen zodra aan de gewenste voorwaarde is voldaan, zoals in de figuur te zien is.

Deze oefening maakt deel uit van de cursus
Discrete Event Simulation in Python
Oefeninstructies
- Zet een lus op die simulatietrajecten uitvoert zolang
run_igelijk is aan nul oftotal_duration[run_i]hoger is dan 85 uur (d.w.z. stopvoorwaarde:total_duration[run_i]gelijk aan of minder dan 85 uur). - Start de Monte Carlo-engine via de functie
run_monte_carlo().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
def run_monte_carlo():
run_i = 0
# While-loop with the stop condition
____
run_i += 1
env = simpy.Environment()
env.process(manufractoring_process(env))
env.run()
plot_results()
plt.show()
# Call the run_monte_carlo function
____