Línea de ensamblaje de coches: añadiendo eventos no deterministas con SimPy
Este ejercicio se centra en procesos no deterministas usando SimPy.
Vas a modificar la versión en SimPy de tu modelo de línea de ensamblaje de coches, añadiendo los mismos eventos deterministas mediante métodos de SimPy.
Recuerda que "Soldadura y pintura" tardan una media de 15 horas en completarse, pero esa duración varía en cinco horas (arriba o abajo). A su vez, "Ensamblaje de piezas y pruebas" tardaba una media de 24 horas en finalizar, pero esa duración varía en seis horas (arriba o abajo).
La librería SimPy ya se ha importado por ti.
Este ejercicio forma parte del curso
Simulación de eventos discretos en Python
Instrucciones del ejercicio
- Registra la duración del proceso "Soldadura y pintura", teniendo en cuenta la nueva información sobre su variabilidad usando el método
random.randint(). - Registra la duración del proceso "Ensamblaje de piezas y pruebas", teniendo en cuenta la nueva información sobre su variabilidad usando el método
random.randint().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
def car_production_line(env):
car_number = 0
while True:
car_number += 1
# Adding process 1: Clock-in time requirement for Welding and Painting
yield env.____(random.____(10, 20))
print(f"Time = {env.now:7.4f} | Car {car_number:02d} | Welding and Painting")
# Adding process 2: Return/yield time after completing the process and print the current time
yield env.____(random.____(18, 30))
print(f"Time = {env.now:7.4f} | Car {car_number:02d} | Assembly of parts and Testing")
print(f"Time = {env.now:7.4f} | Car {car_number:02d} | Car ready for shipping!")
env = simpy.Environment()
env.process(car_production_line(env))
env.run(until=SIMULATION_TIME)