Fertigungsoptimierung: Search & Stop
Verwenden wir das Wanduhr-Fabrikmodell aus einer früheren Übung und setzen einen „Search & Stop“-Optimierungsansatz auf Basis von Monte-Carlo-Sampling ein, um die kritischen Engpassprozesse zu identifizieren.
Der Fertigungsprozess ist in der folgenden Tabelle zusammengefasst. Die Informationen wurden in einer Liste von Dictionaries namens processes gespeichert, mit einem Dictionary pro Prozess. Die Schlüssel dieser Dictionaries entsprechen den Spaltenüberschriften der Tabelle.

Die Methode plot_results() zum Erzeugen der Diagramme in dieser Übung wurde vorab geladen und ist unten dargestellt.
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()
Die Monte-Carlo-Sampling-Schleife erzeugt eine Reihe möglicher Prozesstrajektorien und stoppt, sobald die gewünschte Bedingung erfüllt ist, wie in der Abbildung gezeigt.

Diese Übung ist Teil des Kurses
Diskrete-Ereignis-Simulation mit Python
Anleitung zur Übung
- Richte eine Schleife ein, die Simulationstrajektorien ausführt, solange
run_igleich 0 ist odertotal_duration[run_i]größer als 85 Stunden ist (d. h. Stoppbedingung:total_duration[run_i]ist kleiner oder gleich 85 Stunden). - Starte die Monte-Carlo-Engine, die in der Funktion
run_monte_carlo()enthalten ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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
____