Mulai sekarangMulai gratis

Optimasi Manufaktur: Search & Stop

Mari gunakan model pabrik jam dinding yang dibuat pada latihan sebelumnya dan terapkan pendekatan optimasi "Search & Stop" berbasis pengambilan sampel Monte Carlo untuk mengidentifikasi proses bottleneck yang kritis.

Proses manufaktur diringkas pada tabel di bawah, dan informasinya telah disimpan dalam sebuah list berisi dictionary bernama processes, dengan satu dictionary untuk setiap proses. Kunci pada dictionary ini sesuai dengan header kolom tabel.

Table with process names and their duration statistics, namely mean and standard deviation.

Metode plot_results() untuk menghasilkan plot pada latihan ini telah dimuat sebelumnya dan ditunjukkan di bawah ini.

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() 

Loop pengambilan sampel Monte Carlo akan menghasilkan serangkaian kemungkinan trajektori proses dan berhenti ketika kondisi yang diinginkan terpenuhi, seperti ditunjukkan pada gambar. Monte Carlo trajectories for different process scenario.

Latihan ini merupakan bagian dari kursus

Simulasi Peristiwa Diskret dengan Python

Lihat Kursus

Instruksi latihan

  • Tetapkan sebuah loop untuk menjalankan trajektori simulasi saat run_i sama dengan nol atau total_duration[run_i] lebih tinggi dari 85 jam (yaitu, kondisi berhenti: total_duration[run_i] sama dengan atau kurang dari 85 jam).
  • Jalankan mesin Monte Carlo yang disimpan dalam fungsi run_monte_carlo().

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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
____
Edit dan Jalankan Kode