CommencezCommencez gratuitement

Optimisation de fabrication : recherche et arrêt

Utilisons le modèle d'usine d'horloges murales créé dans un exercice précédent et appliquons une approche d'optimisation « Search & Stop » fondée sur un échantillonnage Monte-Carlo pour repérer les goulots d'étranglement critiques.

Le procédé de fabrication est résumé dans le tableau ci-dessous, et l'information a été stockée dans une liste de dictionnaires nommée processes, avec un dictionnaire par processus. Les clés de chaque dictionnaire correspondent aux en-têtes de colonnes du tableau.

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

La méthode plot_results() pour générer les graphiques de cet exercice a été préchargée et est présentée ci-dessous.

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

La boucle d'échantillonnage Monte-Carlo produira une série de trajectoires possibles du processus et s'arrêtera une fois la condition souhaitée atteinte, comme illustré dans la figure. Monte Carlo trajectories for different process scenario.

Cette activité fait partie du cours

Simulation d'événements discrets en Python

Voir le cours

Instructions de l’exercice

  • Configurez une boucle qui exécute des trajectoires de simulation tant que run_i est égal à zéro ou que total_duration[run_i] est supérieure à 85 heures (c.-à-d. condition d'arrêt : total_duration[run_i] égale ou inférieure à 85 heures).
  • Lancez le moteur Monte Carlo stocké dans la fonction run_monte_carlo().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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
____
Modifier et exécuter le code