Klädproduktion: Multiprocesser och modularitet
Du har fått i uppdrag att skapa en diskret händelsemodell för att optimera en klädproduktionsfabrik i den italienska modestaden Milano.
Du är verkligt engagerad och vill se till att du bygger en användbar och skalbar modell, eftersom du vet att klädindustrin är komplex med många processer och resurser som du fortfarande håller på att bekanta dig med.
Du har gjort din research och tagit fram en lista över processer som visas i tabellen nedan. Du har varit noggrann och skapat en separat funktion för varje process för att göra modellen modulär och låta den växa på ett kontrollerat sätt.
Nu har du fått återkoppling från din chef, som ber dig lägga till en ny process i modellen för "Fläckborttagning och tvätt". Den ska placeras mellan steg 8 och 9 (se den röd markerade raden i tabellen). Paketen random och simpy har redan importerats.

Den här övningen är en del av kursen
Diskret händelsesimulering i Python
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create a function for the new process
def ____(gen_type=None, gauss_mean=None, gauss_std=None, unif_start=None, unif_end=None):
if gen_type == "gauss":
duration = random.gauss(gauss_mean, gauss_std)
elif gen_type == "uniform":
duration = random.uniform(unif_start, unif_end)
return duration
def all_processes(env, prod_line):
with prod_line.request() as request:
yield request
t1 = fabric_relaxing(gen_type="gauss", gauss_mean=2*60, gauss_std=15)
t2 = spread_form_layout(gen_type="gauss", gauss_mean=6, gauss_std=1)
t3 = laying_paper_pattern(gen_type="uniform", unif_start=3, unif_end=0.5)
t4 = marking(gen_type="gauss", gauss_mean=6, gauss_std=1)
t5 = cutting(gen_type="gauss", gauss_mean=5, gauss_std=0.5)
t6 = embroidery_screen_and_printing(gen_type="uniform", unif_start=10, unif_end=2)
t7 = sewing(gen_type="gauss", gauss_mean=15, gauss_std=3)
t8 = checking(gen_type="gauss", gauss_mean=2, gauss_std=0.5)
# Add the new process
tnew = ____
# Account for the new process duration in the entire process duration
total_duration = sum([t1, t2, t3, t4, t5, t6, t7, t8, ____, t9, t10])
yield env.timeout(total_duration)