Aan de slagGa gratis aan de slag

Kledingproductie: meerdere processen en modulariteit

Je bent gevraagd een discrete-eventmodel te bouwen om een kledingfabriek in Milaan, de modehoofdstad, te helpen optimaliseren.

Je bent super enthousiast en wilt zeker weten dat je een nuttig en schaalbaar model bouwt, omdat je weet dat de kledingindustrie complex is en veel processen en resources omvat, waar je nog mee vertrouwd raakt.

Je hebt je onderzoek gedaan en de lijst met processen opgesteld die je in de onderstaande tabel ziet. Je was grondig en hebt voor elk proces een aparte functie gemaakt om je model modulair te maken en het gecontroleerd te laten groeien.

Nu heb je feedback gekregen van je manager: je moet een nieuw proces opnemen in het model voor "Spot cleaning and laundry", dat tussen stap 8 en 9 moet komen (zie de in het rood gemarkeerde rij in de tabel). De pakketten random en simpy zijn geïmporteerd.

Table with process names, respective functions, and information about whether the process has been incorporated in the model.

Deze oefening maakt deel uit van de cursus

Discrete Event Simulation in Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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