Optymalizacja produkcji: podejście „Szukaj i zatrzymaj"
Skorzystaj z modelu fabryki zegarów ściennych utworzonego w poprzednim ćwiczeniu i zastosuj strategię optymalizacji „Szukaj i zatrzymaj" opartą na próbkowaniu Monte Carlo, aby zidentyfikować krytyczne wąskie gardła procesu.
Proces produkcyjny przedstawiono w poniższej tabeli. Dane zostały zapisane na liście słowników o nazwie processes, gdzie każdy słownik odpowiada jednemu procesowi. Klucze słownika odpowiadają nagłówkom kolumn tabeli.

Metoda plot_results() służąca do generowania wykresów w tym ćwiczeniu została wstępnie załadowana i jest przedstawiona poniżej.
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()
Pętla próbkowania Monte Carlo wygeneruje serię możliwych trajektorii procesu i zatrzyma się, gdy zostanie spełniony żądany warunek – tak jak pokazano na rysunku.

To ćwiczenie jest częścią kursu
Symulacja zdarzeń dyskretnych w Pythonie
Instrukcje do ćwiczenia
- Ustaw pętlę, która będzie uruchamiać trajektorie symulacji tak długo, jak
run_ijest równe zero lubtotal_duration[run_i]jest większe niż 85 godzin (tj. warunek zatrzymania:total_duration[run_i]równe lub mniejsze niż 85 godzin). - Uruchom silnik Monte Carlo zapisany w funkcji
run_monte_carlo().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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
____