ÎncepețiÎncepe gratuit

Producție vestimentară: procese multiple și modularitate

Ai fost rugat să creezi un model de simulare a evenimentelor discrete pentru a optimiza o fabrică de confecții situată în Milano, capitala mondială a modei.

Ești entuziasmat și vrei să construiești un model util și scalabil, știind că industria vestimentară este complexă și implică multe procese și resurse cu care încă te familiarizezi.

Ai făcut cercetări și ai identificat lista de procese prezentată în tabelul de mai jos. Ai fost diligent și ai creat o funcție separată pentru fiecare proces, astfel încât modelul să fie modular și să poată crește în mod controlat.

Acum ai primit feedback de la managerul tău: trebuie să incluzi un nou proces în model, și anume „Curățare localizată și spălare", care ar trebui să fie plasat între pașii 8 și 9 (vezi rândul evidențiat cu roșu în tabel). Pachetele random și simpy au fost deja importate.

Tabel cu denumirile proceselor, funcțiile corespunzătoare și informații despre procesele deja incluse în model.

Acest exercițiu face parte din cursul

Simulare de evenimente discrete în Python

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul