Kom igångKom igång gratis

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.

Tabell med processnamn, respektive funktioner och information om huruvida processen har inkluderats i modellen.

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

Diskret händelsesimulering i Python

Visa kurs

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)
Redigera och kör kod