ComenzarEmpieza gratis

Producción de prendas: multiprocesos y modularidad

Te han pedido crear un modelo de eventos discretos para ayudar a optimizar una fábrica de producción de prendas situada en Milán, la capital de la moda.

Estás muy entusiasmado y quieres asegurarte de construir un modelo útil y escalable, porque sabes que la industria de la confección es compleja y combina muchos procesos y recursos, con los que aún te estás familiarizando.

Has investigado y elaborado la lista de procesos que ves en la tabla de abajo. Fuiste meticuloso y creaste una función separada para cada proceso para que tu modelo sea modular y pueda crecer de forma controlada.

Ahora has recibido comentarios de tu responsable, quien te ha pedido incluir un proceso nuevo en el modelo para contemplar "Spot cleaning and laundry", que debe ir entre los pasos 8 y 9 (consulta la fila de la tabla resaltada en rojo). Los paquetes random y simpy ya se han importado.

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

Este ejercicio forma parte del curso

Simulación de eventos discretos en Python

Ver curso

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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)
Editar y ejecutar código