Dada empleos , cada trabajo requiere tiempo para completarse.
Cada trabajo debe ser preprocesado y procesado posteriormente por una sola máquina M que puede manejar solo 1 trabajo a la vez y ambas fases requieren 1 unidad de tiempo. Después de ser preprocesado, el trabajo se envía a una máquina con potencia ilimitada (que puede manejar en paralelo un número ilimitado de trabajos) y estará listo a tiempo , luego se debe enviar ( inmediatamente ) a la máquina M de nuevo para el procesamiento posterior.
El problema de decisión asociado es:
Entrada: los tiempos de procesamiento de trabajos, un entero
Pregunta: ¿podemos procesar todos los trabajos a tiempo utilizando el modelo de "cuello de botella" anterior?
¿Tiene este problema un nombre?
¿Cuál es su complejidad? (¿está en o es -completo?)
- el tiempo de procesamiento previo / posterior es constante (1 unidad de tiempo)
- Tan pronto como se complete el trabajo, debe ser procesado inmediatamente (el modelo UMFT permite retrasos)
No encontré la prueba de Kern y Nawijn en línea, por lo que todavía no sé si las restricciones anteriores cambian la dificultad del problema.
Finalmente, puede pensar todo el proceso como un robot de cocción único con un gran horno; el robot puede preparar diferentes tipos de alimentos de uno en uno (todos requieren el mismo tiempo de preparación), ponerlos en el horno y, tan pronto como se cocinen, debe sacarlos del horno y agregar algunos ingredientes fríos ... el " problema del robot cocinero " :-)
Respuestas:
La pregunta es NP-hard en "Minimizar Makespan en un taller de flujo de dos máquinas con retrasos y operaciones de unidad de tiempo es NP-Hard" por W. Yu, H. Hoogeveen y JK Lenstra (2004). Esto se demuestra en la sección 9 del documento:
fuente
Esto se parece al llamado modelo de programación maestro-esclavo introducido por Sahni . En particular, su problema se enmarca en los sistemas Single-Master Master-Slave. Puedes distinguir varios casos:
1) Si no agrega ninguna restricción adicional en el orden de ejecución del trabajo (como en su caso), el problema se llama problema de tiempo mínimo de finalización sin restricciones (UMFT) y se ha demostrado que es NP-hard;
Los problemas relacionados adicionales son:
3) Postproceso de orden inverso: para cualquier permutación de preprocesamiento dada, , es posible construir un programa de orden inverso, denominado programa de orden inverso canónico (CROS). Dada una permutación de preprocesamiento , el CROS correspondiente es único. Es fácil establecer que cada horario mínimo de orden inverso de tiempo de finalización (ROMFT) es un CROS.σ σ
4) restricción de no esperar en el proceso:
a) [MFTNW] Minimice el tiempo de finalización sujeto a la restricción de no esperar en el proceso; b) [OP-MFTNW] Esta es la versión de MFTNW para preservar el orden. Es decir, minimizar el tiempo de finalización sujeto a las restricciones de no esperar en el proceso y preservar el orden; c) [RO-MFTNW] Minimice el tiempo de finalización sujeto a las restricciones sin orden de espera y de orden inverso.
Los problemas y son NP-duros, mientras que admite una solución de tiempo polinomial.a b c
Detalles adicionales en el Manual de programación , capítulo 17.
fuente