Optimizarea producției: Căutare și oprire
Să folosim modelul fabricii de ceasuri de perete creat într-un exercițiu anterior și să aplicăm o strategie de optimizare „Căutare și oprire" bazată pe eșantionare Monte Carlo, pentru a identifica procesele care reprezintă blocaje critice.
Procesul de producție este rezumat în tabelul de mai jos, iar informațiile au fost stocate într-o listă de dicționare numită processes, cu câte un dicționar per proces. Cheile acestui dicționar corespund antetelor coloanelor din tabel.

Metoda plot_results() pentru generarea graficelor din acest exercițiu a fost preîncărcată și este prezentată mai jos.
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()
Bucla de eșantionare Monte Carlo va genera o serie de traiectorii posibile ale procesului și se va opri când condiția dorită a fost îndeplinită, după cum se arată în figură.

Acest exercițiu face parte din cursul
Simulare de evenimente discrete în Python
Instrucțiuni pentru exercițiu
- Definește o buclă care să ruleze traiectorii de simulare cât timp
run_ieste egal cu zero sautotal_duration[run_i]este mai mare de 85 de ore (adică condiția de oprire:total_duration[run_i]mai mic sau egal cu 85 de ore). - Rulează motorul Monte Carlo stocat în funcția
run_monte_carlo().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
____