Aan de slagGa gratis aan de slag

Productie-optimalisatie: Search & Stop

Laten we het wandklokfabriekmodel uit een eerdere oefening gebruiken en een "Search & Stop"-optimalisatie opzetten met Monte Carlo-sampling om de kritieke knelpunten in het proces te vinden.

Het productieproces is samengevat in de onderstaande tabel. De informatie is opgeslagen in een lijst met dictionaries genaamd processes, met één dictionary per proces. De keys van deze dictionary komen overeen met de kolomkoppen van de tabel.

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

De methode plot_results() om de grafieken in deze oefening te genereren is alvast geladen en staat hieronder.

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

De Monte Carlo-samplinglus zal een reeks mogelijke procustrajecten opleveren en stoppen zodra aan de gewenste voorwaarde is voldaan, zoals in de figuur te zien is. Monte Carlo trajectories for different process scenario.

Deze oefening maakt deel uit van de cursus

Discrete Event Simulation in Python

Cursus bekijken

Oefeninstructies

  • Zet een lus op die simulatietrajecten uitvoert zolang run_i gelijk is aan nul of total_duration[run_i] hoger is dan 85 uur (d.w.z. stopvoorwaarde: total_duration[run_i] gelijk aan of minder dan 85 uur).
  • Start de Monte Carlo-engine via de functie run_monte_carlo().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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
____
Code bewerken en uitvoeren