Tillverkningsoptimering: Sök och stoppa
Vi ska använda den väggursklocksfabriksmodell som skapades i en tidigare övning och tillämpa en "Sök och stoppa"-optimeringsmetod baserad på Monte Carlo-sampling för att identifiera de kritiska flaskhalsprocesserna.
Tillverkningsprocessen sammanfattas i tabellen nedan, och informationen har lagrats i en lista med ordlistor med namnet processes, med en ordlista per process. Nycklarna i ordlistan motsvarar tabellens kolumnrubriker.

Metoden plot_results() för att generera diagrammen i den här övningen är förinläst och visas nedan.
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()
Monte Carlo-samplingsloopen genererar en serie möjliga processförlopp och stannar när det önskade villkoret har uppfyllts, vilket visas i figuren.

Den här övningen är en del av kursen
Diskret händelsesimulering i Python
Övningsinstruktioner
- Sätt upp en loop som kör simuleringsförlopp så länge
run_iär lika med noll ellertotal_duration[run_i]är större än 85 timmar (dvs. stoppvillkor:total_duration[run_i]är mindre än eller lika med 85 timmar). - Kör Monte Carlo-motorn som är lagrad i funktionen
run_monte_carlo().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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
____