Kom igångKom igång gratis

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.

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

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. Monte Carlo trajectories for different process scenario.

Den här övningen är en del av kursen

Diskret händelsesimulering i Python

Visa kurs

Övningsinstruktioner

  • Sätt upp en loop som kör simuleringsförlopp så länge run_i är lika med noll eller total_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
____
Redigera och kör kod