Articulo de referencia

Programación de una sola máquina

La planificación de una sola máquina o planificación de un solo recurso es un problema de optimización en ciencias de la computación e investigación de operaciones . Se nos dan ...

La planificación de una sola máquina o planificación de un solo recurso es un problema de optimización en ciencias de la computación e investigación de operaciones . Se nos dan n trabajos J 1 , J 2 , ..., J n de tiempos de procesamiento variables, que deben planificarse en una sola máquina, de manera que se optimice un objetivo determinado, como el rendimiento .

La planificación de tareas en una sola máquina es un caso especial de la planificación de tareas en máquinas idénticas , que a su vez es un caso especial de la planificación óptima de tareas . Muchos problemas, que en general son NP-difíciles, pueden resolverse en tiempo polinomial en el caso de una sola máquina. [ 1 ] : 10–20

En la notación estándar de tres campos para problemas de programación óptima de trabajos , la variante de una sola máquina se denota por 1 en el primer campo. Por ejemplo, " 1||doj{\displaystyle \sum C_{j}}" es un problema de programación de una sola máquina sin restricciones, donde el objetivo es minimizar la suma de los tiempos de finalización.

El problema de minimización del tiempo de finalización 1||domáximo{\displaystyle C_{\max }}, que es un objetivo común con múltiples máquinas, es trivial con una sola máquina, ya que el tiempo de finalización es siempre idéntico. Por lo tanto, se han estudiado otros objetivos. [ 2 ]

Minimizar la suma de los tiempos de finalización

El problema 1||doj{\displaystyle \sum C_{j}}Su objetivo es minimizar la suma de los tiempos de finalización. Se puede resolver de forma óptima mediante la regla del Tiempo de Procesamiento Más Corto Primero ( SPT ): los trabajos se programan en orden ascendente según su tiempo de procesamiento.pagj{\displaystyle p_{j}}.

El problema 1||wjdoj{\displaystyle \sum w_{j}C_{j}}Su objetivo es minimizar la suma ponderada de los tiempos de finalización. Se puede resolver de forma óptima mediante la regla de Tiempo de Procesamiento Más Corto Ponderado Primero ( WSPT ): los trabajos se programan en orden ascendente de la proporción. pagj/wj{\displaystyle p_{j}/w_{j}}. [ 2 ] : lección 1, parte 2

El problema 1|cadenas|wjdoj{\displaystyle \sum w_{j}C_{j}}Es una generalización del problema anterior para trabajos con dependencias en forma de cadenas. También puede resolverse de forma óptima mediante una generalización adecuada de WSPT. [ 2 ] : lección 1, parte 3

El problema 1|prec|wjdoj{\displaystyle \sum w_{j}C_{j}}es la versión con restricciones de precedencia del problema original. Se sabe que este problema es fuertemente NP-difícil. Un orden parcial(norte,){\displaystyle (N,\rightarrow )}se define para modelar la restricción de precedencia dondenorte{\displaystyle N}es el conjunto de todos los trabajos. Este problema es polinomialmente resoluble para clases simples de conjuntos parcialmente ordenados. [ 3 ] Hay varios algoritmos de aproximación con un factor de aproximación de 2. [ 4 ]

Minimizar el coste de la impuntualidad

El problema 1||Lmáximo{\displaystyle L_{\max }}Su objetivo es minimizar el retraso máximo . Para cada trabajo j , hay una fecha de vencimiento .dj{\displaystyle d_{j}}. Si se completa después de su fecha límite, sufre retraso definido como Lj:=dojdj{\displaystyle L_{j}:=C_{j}-d_{j}}. 1||Lmáximo{\displaystyle L_{\max }}Se puede resolver de forma óptima mediante la regla de fecha de vencimiento más temprana ( EDD ): los trabajos se programan en orden ascendente según su fecha de vencimiento.dj{\displaystyle d_{j}}. [ 2 ] : lección 2, parte 2

El problema 1|prec|hmáximo{\displaystyle h_{\max }}generaliza el 1||Lmáximo{\displaystyle L_{\max }}De dos maneras: primero, permite restricciones de precedencia arbitrarias en las tareas; segundo, permite que cada tarea tenga una función de costo arbitraria h j , que es una función de su tiempo de finalización (el retraso es un caso especial de una función de costo). El costo máximo se puede minimizar mediante un algoritmo voraz conocido como algoritmo de Lawler . [ 2 ] : lección 2, parte 1

El problema 1|rj{\displaystyle r_{j}}|Lmáximo{\displaystyle L_{\max }}generaliza 1||Lmáximo{\displaystyle L_{\max }}Al permitir que cada trabajo tenga un tiempo de liberación diferente , momento en el que estará disponible para su procesamiento. La presencia de tiempos de liberación implica que, en algunos casos, puede ser óptimo dejar la máquina inactiva para esperar un trabajo importante que aún no se haya liberado. Minimizar el retraso máximo en este contexto es un problema NP-difícil. Sin embargo, en la práctica, se puede resolver utilizando un algoritmo de ramificación y acotación . [ 2 ] : lección 2, parte 3

Maximizar el beneficio de la anticipación

En entornos con plazos de entrega, es posible que, si el trabajo se completa antes de la fecha límite, se obtenga una ganancia p j . De lo contrario, no hay ganancia. El objetivo es maximizar la ganancia. La planificación de tareas en una sola máquina con plazos de entrega es NP-difícil; Sahni [ 5 ] presenta tanto algoritmos exactos de tiempo exponencial como un algoritmo de aproximación de tiempo polinomial.

Maximizar el rendimiento

El problema 1||Uj{\displaystyle \sum U_{j}}Su objetivo es minimizar el número de trabajos atrasados, independientemente de la cantidad de retraso. Puede resolverse de forma óptima mediante el algoritmo de Hodgson-Moore. [ 6 ] [ 2 ] : lección 3, parte 1 También puede interpretarse como maximizar el número de trabajos que se completan a tiempo; este número se denomina rendimiento .

El problema 1||wjUj{\displaystyle \sum w_{j}U_{j}}tiene como objetivo minimizar el peso de los trabajos atrasados. Es NP-difícil, ya que el caso especial en el que todos los trabajos tienen la misma fecha límite (denotado por 1|dj=d{\displaystyle d_{j}=d}|wjUj{\displaystyle \sum w_{j}U_{j}}) es equivalente al problema de la mochila . [ 2 ] : lección 3, parte 2

El problema 1|rj{\displaystyle r_{j}}|Uj{\displaystyle \sum U_{j}} generaliza 1||Uj{\displaystyle \sum U_{j}}Al permitir que diferentes trabajos tengan diferentes tiempos de lanzamiento . El problema es NP-difícil. Sin embargo, cuando todas las duraciones de los trabajos son iguales, el problema se puede resolver en tiempo polinomial. Tiene varias variantes:

  • La variante de optimización ponderada, 1|rj,pagj=pag{\displaystyle r_{j},p_{j}=p}|wjUj{\displaystyle \sum w_{j}U_{j}}, se puede resolver a tiempoO(norte7){\displaystyle O(n^{7})}. [ 7 ]
  • La variante de optimización no ponderada, que maximiza el número de trabajos que terminan a tiempo, se denota con 1|rj,pagj=pag{\displaystyle r_{j},p_{j}=p}|Uj{\displaystyle \sum U_{j}}, se puede resolver a tiempoO(norte5){\displaystyle O(n^{5})}utilizando programación dinámica , cuando todos los tiempos de lanzamiento y fechas límite son enteros. [ 8 ] [ 9 ]
  • La variante de decisión —decidir si es posible que todos los trabajos dados se completen a tiempo— puede resolverse mediante varios algoritmos, [ 10 ] el más rápido de ellos se ejecuta en tiempoO(norteregistronorte){\displaystyle O(n\log n)}. [ 11 ]

Los trabajos pueden tener intervalos de ejecución . Para cada trabajo j , existe un tiempo de procesamiento t j y un tiempo de inicio s j , por lo que debe ejecutarse en el intervalo [ s j , s j +t j ]. Dado que algunos intervalos se superponen, no todos los trabajos pueden completarse. El objetivo es maximizar el número de trabajos completados, es decir, el rendimiento . En general, cada trabajo puede tener varios intervalos posibles, y cada intervalo puede estar asociado a una ganancia diferente. El objetivo es elegir como máximo un intervalo para cada trabajo, de manera que se maximice la ganancia total. Para más detalles, consulte la página sobre planificación de intervalos .

En términos más generales, los trabajos pueden tener ventanas de tiempo , con horas de inicio y fechas límite, que pueden ser mayores que la duración del trabajo. Cada trabajo puede programarse en cualquier momento dentro de su ventana de tiempo. Bar-Noy, Bar-Yehuda, Freund, Naor y Schieber [ 12 ] presentan una aproximación (1- ε )/2.

Trabajos de duración no constante

Los trabajadores y las máquinas suelen cansarse tras trabajar durante un tiempo determinado, lo que ralentiza su procesamiento de tareas futuras. Por otro lado, pueden aprender a trabajar mejor, lo que les permite procesar tareas más rápidamente. En ambos casos, la duración (tiempo de procesamiento) de una tarea no es constante, sino que depende de las tareas procesadas previamente. En este contexto, incluso minimizar el tiempo máximo de finalización se convierte en una tarea compleja. Existen dos métodos comunes para modelar el cambio en la duración de las tareas.

  1. La duración del trabajo puede depender de la hora de inicio del trabajo. [ 13 ] Cuando la duración es una función débilmente creciente de la hora de inicio, se denomina efecto de deterioro ; cuando es débilmente decreciente, se denomina efecto de aprendizaje .
  2. La duración de un trabajo puede depender de la suma de los tiempos de procesamiento normales de los trabajos procesados ​​previamente. Cuando la duración es una función débilmente creciente de esta suma, a menudo se habla de efecto de envejecimiento . [ 14 ]

Duración basada en la hora de inicio

Cheng y Ding estudiaron la minimización del tiempo de finalización y la minimización del retraso máximo cuando la duración real del trabajo j programado en el tiempo s j está dada por

pagj^(sj)=pagjbsj{\displaystyle {\widehat {p_{j}}}(s_{j})=p_{j}-b\cdot s_{j}}, donde p j es la longitud normal de j .

Demostraron los siguientes resultados:

  • Cuando los trabajos pueden tener plazos arbitrarios, los problemas son fuertemente NP-difíciles por reducción de la 3-partición ; [ 15 ]
  • Cuando los trabajos pueden tener uno de dos plazos, los problemas son NP-completos , por reducción de partición . [ 16 ]
  • Cuando los trabajos pueden tener tiempos de lanzamiento arbitrarios, los problemas son fuertemente NP-difíciles , por reducción del problema con plazos arbitrarios. [ 17 ]
  • Cuando los trabajos pueden tener uno de dos tiempos de lanzamiento, ya sea 0 o R, los problemas son NP-completos. [ 17 ]

Kubiak y van-de-Velde [ 18 ] estudiaron la minimización del tiempo de finalización cuando la fatiga comienza solo después de una fecha de vencimiento común d . Es decir, la duración real del trabajo j programado en el tiempo s j viene dada por

pagj^(sj)=máximo(pagj,pagj+bj(sjd)){\displaystyle {\widehat {p_{j}}}(s_{j})=\max(p_{j},p_{j}+b_{j}\cdot (s_{j}-d))}.

Entonces, si el trabajo comienza antes de d , su duración no cambia; si comienza después de d , su duración crece a una tasa que depende del trabajo. Demuestran que el problema es NP-difícil y proporcionan un algoritmo pseudopolinomial que se ejecuta en tiempoO(nortedjpagj){\displaystyle O(nd\sum _{j}p_{j})}y presentan un algoritmo de ramificación y acotación que resuelve instancias con hasta 100 trabajos en un tiempo razonable. También estudian el deterioro acotado, donde p j deja de crecer si el trabajo comienza después de una fecha de deterioro máximo común D > d. Para este caso, presentan dos algoritmos de tiempo pseudopolinomial .

Cheng, Ding y Lin [ 13 ] revisaron varios estudios sobre un efecto de deterioro, donde la duración del trabajo j programado en el tiempo s j es lineal o lineal por partes, y la tasa de cambio puede ser positiva o negativa.

longitud basada en la suma de los tiempos de procesamiento

El efecto del envejecimiento tiene dos tipos:

  • En el modelo de envejecimiento basado en la posición , el tiempo de procesamiento de un trabajo depende del número de trabajos procesados ​​antes que él, es decir, de su posición en la secuencia. [ 19 ]
  • En el modelo de envejecimiento basado en la suma del tiempo de procesamiento , el tiempo de procesamiento de un trabajo es una función débilmente creciente de la suma de los tiempos de procesamiento normales (=no afectados por el envejecimiento) de los trabajos procesados ​​antes que él. [ 20 ]

Wang, Wang, Wang y Wang [ 21 ] estudiaron un modelo de envejecimiento basado en la suma del tiempo de procesamiento, donde el tiempo de procesamiento del trabajo j programado en la posición v viene dado por

pagj^(π,v)=pagj(1+l=1v1pagπ(l))α{\displaystyle {\widehat {p_{j}}}(\pi ,v)=p_{j}\cdot \left(1+\sum _{l=1}^{v-1}p_{\pi (l)}\right)^{\alpha }}

dóndeπ(l){\displaystyle \pi (l)}¿El trabajo está programado en el puesto?l{\displaystyle l}y α es la "característica de envejecimiento" de la máquina. En este modelo, el tiempo máximo de procesamiento de la permutaciónπ{\displaystyle \pi }es:

l=1nortepagπ(l)^(π,l){\displaystyle \sum _{l=1}^{n}{\widehat {p_{\pi (l)}}}(\pi ,l)}

Rudek [ 22 ] generalizó el modelo de dos maneras: permitiendo que la fatiga sea diferente del tiempo de procesamiento y permitiendo una característica de envejecimiento dependiente del trabajo:

pagj^(π,v)=pagj(1+l=1v1F(pagπ(l)))αj{\displaystyle {\widehat {p_{j}}}(\pi ,v)=p_{j}\cdot \left(1+\sum _{l=1}^{v-1}f(p_{\pi (l)})\right)^{\alpha _{j}}}

Aquí, f es una función creciente que describe la dependencia de la fatiga con respecto al tiempo de procesamiento; y α j es la característica de envejecimiento del trabajo j . Para este modelo, demostró los siguientes resultados:

  • Minimizar el tiempo máximo de finalización y minimizar el retraso máximo son problemas que se pueden resolver en tiempo polinomial.
  • Minimizar el tiempo máximo de finalización y minimizar el retraso máximo son problemas NP-difíciles si algunos trabajos tienen plazos de entrega.

Véase también

Se han aplicado numerosas técnicas de solución para resolver problemas de programación de máquinas individuales. Algunas de ellas se enumeran a continuación.

Referencias

  1. Eugene L. Lawler, Jan Karel Lenstra, Alexander HG Rinnooy Kan, David B. Shmoys (1993-01-01). «Capítulo 9 Secuenciación y programación: algoritmos y complejidad» . Handbooks in Operations Research and Management Science . 4 : 445–522 . doi : 10.1016/S0927-0507(05)80189-6 . ISBN 9780444874726ISSN 0927-0507 {{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  2. 1 2 3 4 5 6 7 8 Grinshpoun, Tal (2020). "Asignaturas en la planificación" . www.youtube.com . Recuperado el 12 de septiembre de 2021 .
  3. Lawler, Eugene (1978). "Secuenciación de trabajos para minimizar el tiempo total de finalización ponderado sujeto a restricciones de precedencia" . Annals of Discrete Mathematics . 2 : 75–90 . doi : 10.1007/s00170-008-1760-6 . ISBN 9780720410433ISSN 0167-5060 
  4. Schulz, Andreas; Correa, José (2005). "Programación de una sola máquina con restricciones de precedencia" (PDF) . Matemáticas de la Investigación Operativa . 30 : 1005–1021 . doi : 10.1287/moor.1050.0158 . eISSN 1526-5471 . ISSN 0364-765X .  
  5. Sahni, Sartaj K. (1976-01-01). "Algoritmos para la programación de tareas independientes" . Journal of the ACM . 23 (1): 116– 127. doi : 10.1145/321921.321934 . ISSN 0004-5411 . S2CID 10956951 .  
  6. Lawler, EL (1994-07-01). "Problemas de programación tipo mochila, el algoritmo de Moore-Hodgson y la propiedad de la 'torre de conjuntos'" . Mathematical and Computer Modelling . 20 (2): 91– 106. doi : 10.1016/0895-7177(94)90209-7 . ISSN 0895-7177 . 
  7. Baptiste, P. (1999). "Algoritmos de tiempo polinomial para minimizar el número ponderado de trabajos tardíos en una sola máquina con tiempos de procesamiento iguales" . Journal of Scheduling . 2 (6): 245– 252. doi : 10.1002/(SICI)1099-1425(199911/12)2:6 < 245::AID-JOS28 > 3.0.CO ; 2-5 .
  8. Chrobak, Marek; Durr, Christoph; Jawor, Wojciech; Kowalik, Łukasz; Kurowski, Maciej (1 de febrero de 2006). "Una nota sobre la programación de trabajos de igual duración para maximizar el rendimiento" . Diario de programación . 9 (1): 71– 73. arXiv : cs/0410046 . doi : 10.1007/s10951-006-5595-4 . ISSN 1099-1425 . S2CID 7359990 .  
  9. Chrobak, Marek; Durr, Christoph; Jawor, Wojciech; Kowalik, Lukasz; Kurowski, Maciej (12 de mayo de 2021). "Una nota sobre la programación de trabajos de igual duración para maximizar el rendimiento". arXiv : cs/0410046 .
  10. Simons, Barbara (16 de octubre de 1978). "Un algoritmo rápido para la planificación de un solo procesador" . 19.º Simposio Anual sobre Fundamentos de la Informática (SFCS 1978) . IEEE Computer Society. págs. 246–252 . doi : 10.1109/SFCS.1978.4 . S2CID 10284575 .  
  11. Garey, MR; Johnson, DS; Simons, BB; Tarjan, RE (1981-05-01). "Programación de tareas de tiempo unitario con tiempos de liberación y plazos arbitrarios" . SIAM Journal on Computing . 10 (2): 256– 269. doi : 10.1137/0210018 . ISSN 0097-5397 . 
  12. Bar-Noy, Amotz; Bar-Yehuda, Reuven; Freund, Ari; (Seffi) Naor, Joseph; Schieber, Baruch (2001-09-01). "Un enfoque unificado para aproximar la asignación y programación de recursos" . Journal of the ACM . 48 (5): 1069– 1090. doi : 10.1145/502102.502107 . ISSN 0004-5411 . S2CID 12329294 .  
  13. 1 2 Cheng, TC E; Ding, Q; Lin, BM T (2004-01-01). "Una breve revisión de la programación con tiempos de procesamiento dependientes del tiempo" . European Journal of Operational Research . 152 (1): 1– 13. doi : 10.1016/S0377-2217(02)00909-8 . ISSN 0377-2217 . 
  14. Chang, Pei-Chann; Chen, Shih-Hsin; Mani, V. (2009-01-01). "Una nota sobre la asignación de fechas de vencimiento y la programación de máquinas individuales con un efecto de aprendizaje/envejecimiento" . International Journal of Production Economics . 117 (1): 142– 149. doi : 10.1016/j.ijpe.2008.10.004 . ISSN 0925-5273 . 
  15. Cheng, TCE; Ding, Q. (1999-07-01). "El problema del tiempo de finalización de la máquina dependiente del tiempo es fuertemente NP-completo" . Computers & Operations Research . 26 (8): 749– 754. doi : 10.1016/S0305-0548(98)00093-8 . ISSN 0305-0548 . 
  16. Cheng, TCE; Ding, Q. (1998-06-01). "La complejidad de la programación de una sola máquina con dos plazos distintos y tasas decrecientes idénticas de los tiempos de procesamiento" . Computers & Mathematics with Applications . 35 (12): 95– 100. doi : 10.1016/S0898-1221(98)00099-6 . ISSN 0898-1221 . 
  17. 1 2 Cheng, TCE; Ding, Q. (1998-01-29). "La complejidad de programar tareas dependientes del tiempo de inicio con tiempos de liberación" . Information Processing Letters . 65 (2): 75– 79. doi : 10.1016/S0020-0190(97)00195-6 . ISSN 0020-0190 . 
  18. Kubiak, Wieslaw; van de Velde, Steef (agosto de 1998). "Programación de trabajos deteriorados para minimizar la duración del trabajo" . Logística de Investigación Naval . 45 (5): 511– 523. doi : 10.1002/(SICI)1520-6750(199808)45:5 < 511::AID-NAV5 > 3.0.CO ; 2-6 . ISSN 0894-069X . 
  19. Gawiejnowicz, Stanisław (1996-03-25). "Una nota sobre la planificación en un solo procesador con velocidad dependiente del número de trabajos ejecutados" . Information Processing Letters . 57 (6): 297– 300. doi : 10.1016/0020-0190(96)00021-X . ISSN 0020-0190 . 
  20. Gordon, VS; Potts, CN; Strusevich, VA; Whitehead, JD (2008-10-01). "Modelos de programación de una sola máquina con deterioro y aprendizaje: manejo de restricciones de precedencia mediante generación de prioridad" . Journal of Scheduling . 11 (5): 357– 370. doi : 10.1007/s10951-008-0064-x . ISSN 1099-1425 . S2CID 31422825 .  
  21. Wang, Ji-Bo; Wang, Li-Yan; Wang, Dan; Wang, Xiao-Yuan (2009-08-01). "Programación de una sola máquina con deterioro dependiente del tiempo" . The International Journal of Advanced Manufacturing Technology . 43 (7): 805– 809. doi : 10.1007/s00170-008-1760-6 . ISSN 1433-3015 . S2CID 110043439 .  
  22. Rudek, Radosław (1 de marzo de 2012). "Algunos problemas de programación de máquinas individuales con el efecto de envejecimiento basado en la suma extendida del tiempo de procesamiento" . The International Journal of Advanced Manufacturing Technology . 59 (1): 299–309 . doi : 10.1007/s00170-011-3481-5 . ISSN 1433-3015 .