Este proyecto implementa un modelo de scheduling para una planta de embotellado de detergente, gestionando la secuencia de producción a través de varias estaciones de trabajo (lavado, llenado, sellado, etiquetado y empaquetado).
El proyecto está dividido en las siguientes clases y archivos:
Estacion
: Representa una estación de trabajo en la planta.Demanda
: Representa una demanda de producción.Planificador
: Gestiona la programación de la producción en las estaciones.main.py
: Contiene la ejecución principal del programa.
Esta clase representa una estación de trabajo en la planta y contiene los métodos para procesar y desprocesar botellas.
id
: Identificador único de la estación.nombre
: Nombre de la estación.capacidad
: Capacidad de procesamiento de la estación.tiempo_procesamiento
: Tiempo de procesamiento por botella (en segundos).ocupacion
: Número de botellas procesadas actualmente.
procesar_botellas(cantidad, fecha_inicio)
: Procesa una cantidad específica de botellas, comenzando enfecha_inicio
. Devuelve si fue posible procesar todas las botellas, la cantidad procesada y la fecha de finalización del procesamiento.desprocesar_botellas(cantidad)
: Desprocesa una cantidad específica de botellas.
Esta clase representa una demanda de producción.
producto
: Producto a ser producido.cantidad
: Cantidad de producto a ser producido.fecha_inicio
: Fecha y hora de inicio de la producción.
Esta clase gestiona la programación de la producción a través de las estaciones disponibles.
agregar_estacion(estacion)
: Agrega una estación a la lista de estaciones del planificador.programar_manual(demanda, estacion_id)
: Programa manualmente una demanda en una estación específica.desprogramar_manual(demanda, estacion_id)
: Desprograma manualmente una demanda en una estación específica.programar_automatico(lista_demandas)
: Programa automáticamente una lista de demandas en las estaciones disponibles y devuelve una secuencia de producción.
El archivo main.py
contiene la ejecución principal del programa. Realiza lo siguiente:
- Crea las estaciones de trabajo.
- Inicializa el planificador y agrega las estaciones.
- Crea una demanda de producción.
- Programa manualmente y desprograma la demanda.
- Programa automáticamente una lista de demandas y muestra la secuencia de producción.