1. Nauka
  2. /
  3. Kursy
  4. /
  5. Symulacja zdarzeń dyskretnych w Pythonie

Connected

ćwiczenie

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.

Tabela z nazwami procesów oraz ich statystykami czasu trwania: wartością średnią i odchyleniem standardowym.

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. Trajektorie Monte Carlo dla różnych scenariuszy procesów.

Instrukcje

100 XP
  • Ustaw pętlę, która będzie uruchamiać trajektorie symulacji tak długo, jak run_i jest równe zero lub total_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().