stringtranslate.com

Programación del tiempo de procesamiento más largo primero

El algoritmo LPT (Longest-processing-time-first) es un algoritmo voraz para la programación de trabajos . La entrada del algoritmo es un conjunto de trabajos , cada uno de los cuales tiene un tiempo de procesamiento específico. También hay un número m que especifica la cantidad de máquinas que pueden procesar los trabajos. El algoritmo LPT funciona de la siguiente manera:

  1. Ordene los trabajos en orden descendente de su tiempo de procesamiento, de modo que el trabajo con el tiempo de procesamiento más largo sea el primero.
  2. Programe cada trabajo de esta secuencia en una máquina en la que la carga actual (=tiempo total de procesamiento de los trabajos programados) sea la más pequeña.

El paso 2 del algoritmo es básicamente el algoritmo de programación de listas (LS). La diferencia es que LS recorre los trabajos en un orden arbitrario, mientras que LPT los ordena por adelantado en orden descendente de tiempo de procesamiento.

LPT fue analizado por primera vez por Ronald Graham en la década de 1960 en el contexto del problema de programación de máquinas idénticas . [1] Posteriormente, se aplicó a muchas otras variantes del problema.

LPT también se puede describir de una manera más abstracta, como un algoritmo para la partición de números de múltiples vías . La entrada es un conjunto S de números y un entero positivo m ; la salida es una partición de S en m subconjuntos. LPT ordena la entrada de mayor a menor y coloca cada entrada a su vez en la parte con la suma más pequeña hasta el momento.

Ejemplos

Si el conjunto de entrada es S = {4, 5, 6, 7, 8} y m = 2, entonces la partición resultante es {8, 5, 4}, {7, 6}. Si m = 3, entonces la partición de 3 vías resultante es {8}, {7, 4}, {6, 5}.

Propiedades

Es posible que LPT no encuentre la partición óptima. Por ejemplo, en el caso anterior, la partición óptima es {8,7}, {6,5,4}, donde ambas sumas son iguales a 15. Sin embargo, su suboptimalidad está limitada tanto en el peor de los casos como en el caso promedio; consulte Garantías de rendimiento a continuación.

El tiempo de ejecución de LPT está dominado por la clasificación, que toma un tiempo O( n log n ), donde n es el número de entradas.

LPT es monótona en el sentido de que, si uno de los números de entrada aumenta, la función objetivo (la suma más grande o la suma más pequeña de un subconjunto en la salida) aumenta débilmente. [2] Esto contrasta con el algoritmo Multifit .

Garantías de rendimiento: máquinas idénticas

Cuando se utiliza para la programación de máquinas idénticas , LPT alcanza las siguientes relaciones de aproximación.

Suma máxima en el peor de los casos

En el peor de los casos, la suma más grande en la partición codiciosa es en la mayoría de los casos la suma más grande óptima (mínima). [3] [a]

Un análisis más detallado produce un factor de veces la suma máxima óptima (mínima). [1] [4] (por ejemplo, cuando m = 2 esta relación es ). [b]

El factor es estricto. Supongamos que hay entradas (donde m es par): . Entonces el algoritmo voraz devuelve:

con un máximo de , pero la partición óptima es:

con un máximo de .

Consideración de entrada

Un análisis aún más detallado tiene en cuenta el número de entradas en la parte de suma máxima.

  1. En cada parte de la partición codiciosa, el j -ésimo número más alto es como máximo . [5]
  2. Supongamos que, en la parte codiciosa P con la suma máxima, hay L entradas. Entonces, la razón de aproximación del algoritmo codicioso es . [4] Es estricto para L ≥ 3 (para L = 3, obtenemos el factor general ). Demostración . [5] Denotemos los números en P por x 1 ,..., x L . Antes de que x L se insertara en P , su suma era la más pequeña. Por lo tanto, la suma promedio por parte es al menos la suma x 1 +...+ x L-1 + x L / m . La suma máxima óptima debe ser al menos la suma promedio. En contraste, la suma codiciosa es x 1 +...+ x L-1 + x L. Entonces la diferencia es como máximo (1-1/ m ) x L , que por (1) es como máximo (1-1/ m )*OPT/ L . Entonces la razón es como máximo (1 + 1/ L - 1/ Lm ).

Suma mínima en el peor de los casos

En el peor de los casos, la suma más pequeña en la partición devuelta es al menos veces la suma más pequeña óptima (máxima). [6]

Prueba

La prueba es por contradicción. Consideremos un contraejemplo mínimo , es decir, un contraejemplo con un m mínimo y la menor cantidad de números de entrada. Denotemos la partición voraz por P 1 ,...,P m , y la partición óptima por Q 1 ,...,Q m . Algunas propiedades de un contraejemplo mínimo son:

La prueba de que no existe un contraejemplo mínimo utiliza un esquema de ponderación . A cada entrada x se le asigna un peso w(x) según su tamaño y su paquete voraz P i :

Este esquema de ponderación tiene las siguientes propiedades:

Límite superior de la relación

Un análisis más sofisticado muestra que la relación es como máximo (por ejemplo, cuando m = 2 la relación es 5/6). [7] [8]

Rigidez y ejemplo

La relación anterior es ajustada. [6]

Supongamos que hay 3 m -1 entradas (donde m es par). Las primeras 2 m entradas son: 2 m -1, 2 m -1, 2 m -2, 2 m -2, ..., m , m . Las últimas m -1 entradas son todas m . Entonces, el algoritmo voraz devuelve:

con un mínimo de 3 m -1 . Pero la partición óptima es:

con un mínimo de 4m -2.

LPT restringido

Existe una variante de LPT, llamada LPT restringida o RLPT, [9] en la que las entradas se dividen en subconjuntos de tamaño m llamados rangos (el rango 1 contiene las m entradas más grandes, el rango 2 las m entradas siguientes más grandes , etc.). Las entradas en cada rango deben asignarse a m contenedores diferentes: primero el rango 1, luego el rango 2, etc. La suma mínima en RLPT es como máximo la suma mínima en LPT. La razón de aproximación de RLPT para maximizar la suma mínima es como máximo m .

Suma máxima del caso promedio

En el caso promedio, si los números de entrada se distribuyen uniformemente en [0,1], entonces la suma más grande en una programación LPT satisface las siguientes propiedades:

Objetivos generales

Sea C i (para i entre 1 y m ) la suma del subconjunto i en una partición dada. En lugar de minimizar la función objetivo max( C i ), se puede minimizar la función objetivo max( f ( C i )), donde f es cualquier función fija. De manera similar, se puede minimizar la función objetivo sum( f ( C i )). Alon, Azar, Woeginger y Yadid [13] demuestran que, si f satisface las dos condiciones siguientes:

  1. Una condición de continuidad fuerte llamada Condición F* : para todo ε>0 existe δ>0 tal que, si | y - x |<δ x , entonces |f( y )-f( x )|<ε f ( x ).
  2. Convexidad .

Entonces la regla LPT tiene una relación de aproximación finita para minimizar la suma ( f ( C i )).

Rendimiento con tamaños de elementos divisibles

Un caso especial importante es que los tamaños de los elementos forman una secuencia divisible (también llamada factorizada ). Un caso especial de tamaños de elementos divisibles ocurre en la asignación de memoria en sistemas informáticos, donde los tamaños de los elementos son todos potencias de 2. Si los tamaños de los elementos son divisibles y, además, el tamaño de elemento más grande divide el tamaño del contenedor, entonces LPT siempre encuentra una programación que minimiza el tamaño máximo, [14] : Thm.4  y maximiza el tamaño mínimo. [14] : Thm.5 

Adaptaciones a otros entornos

Además del caso simple de programación de máquinas idénticas, LPT se ha adaptado a configuraciones más generales.

Maquinas uniformes

En la programación de máquinas uniformes , las distintas máquinas pueden tener distintas velocidades. La regla LPT asigna cada trabajo a la máquina en la que su tiempo de finalización será más temprano (es decir, LPT puede asignar un trabajo a una máquina con una carga actual mayor , si esta máquina es tan rápida que terminaría ese trabajo antes que todas las demás máquinas). [15]

Restricciones de cardinalidad

En el problema de partición balanceada , existen restricciones sobre la cantidad de trabajos que se pueden asignar a cada máquina. Una restricción simple es que cada máquina puede procesar c trabajos como máximo. La regla LPT asigna cada trabajo a la máquina con la carga más pequeña de entre aquellas con menos de c trabajos. Esta regla se denomina LPT modificada o MLPT .

Otra restricción es que el número de trabajos en todas las máquinas debe redondearse hacia arriba o hacia abajo. En una adaptación de LPT llamada LPT restringida o RLPT , las entradas se asignan en pares: una a cada máquina (para m = 2 máquinas). [10] La partición resultante está equilibrada por diseño.

Restricciones del kernel: disponibilidad no simultánea

En el problema de partición del núcleo , hay algunos trabajos predefinidos denominados núcleos, y cada núcleo debe programarse para una máquina única. Un problema equivalente es la programación de cuándo las máquinas están disponibles en diferentes momentos: cada máquina i se vuelve disponible en algún momento t i 0 (el momento t i puede considerarse como la duración del trabajo del núcleo).

Un algoritmo heurístico simple, llamado SLPT, [23] asigna cada núcleo a un subconjunto diferente y luego ejecuta el algoritmo LPT .

Configuración en línea

A menudo, las entradas se ponen en línea y sus tamaños se conocen solo cuando llegan. En este caso, no es posible ordenarlas de antemano. La programación de listas es un algoritmo similar que toma una lista en cualquier orden, no necesariamente ordenada. Su razón de aproximación es .

Una adaptación más sofisticada de LPT a un entorno en línea alcanza una relación de aproximación de 3/2. [27]

Implementaciones

Véase también

Notas

  1. ^ Demostración . Normalice los elementos de entrada de modo que OPT=1. Esto implica que la suma de todos los elementos es como máximo m. Divida los elementos en grandes (más de 2/3), medianos (entre 1/3 y 2/3) y pequeños (menos de 1/3). Sean sus números nL, nM y nS. En cada partición óptima, cada parte contiene como máximo un elemento grande, por lo que nL ≤ m. Además, cada parte óptima no puede contener un elemento grande y uno mediano, o tres elementos medianos; por lo que nM ≤ 2(m-nL). El funcionamiento del algoritmo voraz se puede dividir en tres fases: 1. Asignación de los elementos grandes, cada uno de los cuales se coloca en un contenedor diferente. Como nL ≤ m, cuando se completa esta fase, cada contenedor contiene como máximo un elemento, por lo que la suma máxima es como máximo 1. 2. Asignación de los elementos medianos. Los primeros m-nL se colocan en contenedores vacíos, y los siguientes m-nL (si los hay) se agregan en los mismos contenedores. Dado que nM ≤ 2(m-nL), cuando se completa esta fase, cada contenedor contiene un elemento grande, con una suma de como máximo 1, o como máximo dos elementos medianos, con una suma de como máximo 4/3. 3. Asignación de los elementos pequeños. Cada elemento se agrega al contenedor con la suma más pequeña. La suma más pequeña es como máximo la suma promedio, que es como máximo 1. Por lo tanto, una vez que se agrega un elemento pequeño, la nueva suma se convierte como máximo en 4/3.
  2. ^ Demostración. La demostración anterior se puede refinar de dos maneras. Primero, se puede probar que, una vez que se asignan todos los elementos grandes y medianos, la suma en cada contenedor es como máximo 1. Si hay como máximo m-nL elementos medianos, entonces cada elemento grande y mediano se coloca en un contenedor separado, por lo que la suma es claramente como máximo 1. De lo contrario, denotemos los primeros m-nL elementos medianos como elementos medianos superiores, y los otros (como máximo m-nL) como elementos medianos inferiores. Supongamos primero que el elemento #m es mayor que 1/2. Esto significa que los elementos #1,...,#m son todos mayores que 1/2, por lo que cada uno debe estar en una parte óptima diferente. Cada uno de los elementos medianos inferiores (elementos #m+1,...#nM) debe encajar en una parte óptima con exactamente uno de los elementos #1,...,#m . Llamemos a dos elementos coincidentes si su suma es como máximo 1, de modo que puedan encajar en la misma parte óptima. Según el teorema de Hall, cada subconjunto de k elementos de nivel medio-bajo debe poder coincidir con al menos k de los elementos n.º 1,...,n.º m. En particular, el elemento n.º m+1 debe poder coincidir con el elemento n.º m; los elementos n.º m+1 y n.º m+2 deben poder coincidir con el elemento n.º m-1; y, en general, el elemento n.º m+k debe poder coincidir con el elemento n.º m-k+1. La LPT, de hecho, coloca el elemento n.º m+k en el mismo contenedor que el n.º m-k+1, por lo que la suma de cada contenedor es, como máximo, 1. En segundo lugar, se puede demostrar que, al asignar los insumos pequeños, la suma de cada nuevo contenedor es, como máximo, 4/3-1/(3m). Hay dos casos: 1. Si la suma más pequeña actual es, como máximo, 1-1/(3m), entonces la nueva suma (después de agregar un insumo pequeño) es, como máximo, 1-1/(3m)+1/3 = 4/3-1/(3m). 2. De lo contrario, todas las sumas son mayores que 1-1/(3m), por lo que la suma de los m-1 contenedores más grandes es mayor que m-1-1/3+1/(3m) = m-(4/3-1/(3m)). Como la suma total de todas las entradas es como máximo m, la nueva suma debe ser menor que 4/3-1/(3m).

Referencias

  1. ^ ab Graham, RL (marzo de 1969). "Límites en anomalías de tiempo de multiprocesamiento". Revista SIAM de Matemáticas Aplicadas . 17 (2): 416–429. CiteSeerX  10.1.1.90.8131 . doi :10.1137/0117039. JSTOR  2099572. NAID  30006801878 ProQuest  917998761.
  2. ^ Segal-Halevi, Erel (17 de octubre de 2021), Sobre la monotonía de los algoritmos de partición de números, arXiv : 2110.08886 , consultado el 22 de febrero de 2024
  3. ^ Xiao, Xin (1 de abril de 2017). "Una prueba directa del límite 4/3 de la regla de programación LPT". Actas de la 5.ª Conferencia internacional de 2017 sobre las fronteras de la ciencia de la fabricación y la tecnología de medición (FMSMT 2017) . Atlantis Press. págs. 486–489. doi : 10.2991/fmsmt-17.2017.102 . ISBN. 978-94-6252-331-9.
  4. ^ ab Coffman, EG; Sethi, Ravi (29 de marzo de 1976). "Un límite generalizado en la secuenciación LPT". Actas de la conferencia ACM SIGMETRICS de 1976 sobre medición y evaluación de modelos de rendimiento informático - SIGMETRICS '76 . Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 306–310. doi :10.1145/800200.806205. ISBN 978-1-4503-7497-2.S2CID16980306  .​
  5. ^ ab Chen, Bo (1993-10-01). "Una nota sobre la programación LPT". Operations Research Letters . 14 (3): 139–142. doi :10.1016/0167-6377(93)90024-B. ISSN  0167-6377.
  6. ^ ab Deuermeyer, Bryan L.; Friesen, Donald K.; Langston, Michael A. (junio de 1982). "Programación para maximizar el tiempo mínimo de finalización del procesador en un sistema multiprocesador". Revista SIAM sobre métodos algebraicos y discretos . 3 (2): 190–196. doi :10.1137/0603019.
  7. ^ Csirik, János; Kellerer, Hans; Woeginger, Gerhard (junio de 1992). "El límite LPT exacto para maximizar el tiempo mínimo de finalización". Operations Research Letters . 11 (5): 281–287. doi :10.1016/0167-6377(92)90004-M.
  8. ^ Wu, Bang Ye (diciembre de 2005). "Análisis del algoritmo LPT para los problemas de partición de relación mínima y máxima". Theoretical Computer Science . 349 (3): 407–419. doi : 10.1016/j.tcs.2005.08.032 .
  9. ^ Walter, Rico (1 de enero de 2013). "Comparación de los tiempos mínimos de finalización de dos heurísticas de planificación más largas". Revista centroeuropea de investigación de operaciones . 21 (1): 125–139. doi :10.1007/s10100-011-0217-4. ISSN  1613-9178. S2CID  254144745.
  10. ^ abc Coffman, EG; Frederickson, GN; Lueker, GS (1 de mayo de 1984). "Una nota sobre los Makespans esperados para secuencias de tareas independientes de primer orden en dos procesadores". Matemáticas de la investigación de operaciones . 9 (2): 260–266. doi :10.1287/moor.9.2.260. ISSN  0364-765X.
  11. ^ Frenk, JBG; Kan, AHGRinnooy (junio de 1986). "La tasa de convergencia a la optimalidad de la regla LPT". Matemáticas Aplicadas Discretas . 14 (2): 187–197. doi :10.1016/0166-218X(86)90060-0. hdl : 1765/11698 .
  12. ^ Frenk, JBG; Rinnooy Kan, AHG (1987-05-01). "La optimalidad asintótica de la regla LPT". Matemáticas de la investigación de operaciones . 12 (2): 241–254. doi :10.1287/moor.12.2.241. ISSN  0364-765X. S2CID  31770203.
  13. ^ Alon, Noga; Azar, Yossi; Woeginger, Gerhard J.; Yadid, Tal (1998). "Esquemas de aproximación para la planificación en máquinas paralelas". Journal of Scheduling . 1 (1): 55–66. doi :10.1002/(SICI)1099-1425(199806)1:1<55::AID-JOS2>3.0.CO;2-J. ISSN  1099-1425.
  14. ^ ab Coffman, E. G; Garey, M. R; Johnson, D. S (1987-12-01). "Empaquetado de contenedores con tamaños de elementos divisibles". Journal of Complexity . 3 (4): 406–428. doi :10.1016/0885-064X(87)90009-4. ISSN  0885-064X.
  15. ^ ab Gonzalez, Teofilo; Ibarra, Oscar H.; Sahni, Sartaj (1977-03-01). "Límites para programaciones LPT en procesadores uniformes". Revista SIAM de Computación . 6 (1): 155–166. doi :10.1137/0206013. ISSN  0097-5397.
  16. ^ Mireault, Paul; Orlin, James B.; Vohra, Rakesh V. (1 de febrero de 1997). "Un análisis paramétrico del peor caso de la heurística LPT para dos máquinas uniformes". Investigación de operaciones . 45 (1): 116–125. doi :10.1287/opre.45.1.116. ISSN  0030-364X.
  17. ^ Koulamas, Christos; Kyparisis, George J. (1 de julio de 2009). "Un algoritmo LPT modificado para el problema de minimización de makespan de dos máquinas paralelas uniformes". Revista Europea de Investigación Operativa . 196 (1): 61–68. doi :10.1016/j.ejor.2008.02.008. ISSN  0377-2217.
  18. ^ Kellerer, Hans; Woeginger, Gerhard (7 de septiembre de 1993). "Un límite ajustado para la partición 3-dimensional". Matemáticas Aplicadas Discretas . 45 (3): 249–259. doi : 10.1016/0166-218X(93)90013-E . ISSN  0166-218X.
  19. ^ Babel, Luitpold; Kellerer, Hans; Kotov, Vladimir (1998-02-01). "El problema de la partición m". Métodos matemáticos de investigación de operaciones . 47 (1): 59–82. doi :10.1007/BF01193837. ISSN  1432-5217. S2CID  5594197.
  20. ^ Dell'Amico, Mauro; Martello, Silvano (2001). "Límites para el problema P∥Cmax con restricciones de cardinalidad". Journal of Scheduling . 4 (3): 123–138. doi :10.1002/jos.68. ISSN  1099-1425.
  21. ^ Chen, Shi Ping; He, Yong; Lin, Guohui (1 de marzo de 2002). "Problemas de 3 particiones para maximizar la carga mínima". Revista de optimización combinatoria . 6 (1): 67–80. doi :10.1023/A:1013370208101. ISSN  1573-2886. S2CID  9053629.
  22. ^ Tsai, Li-Hui (1992-02-01). "Análisis asintótico de un algoritmo para la programación de procesadores paralelos balanceados". Revista SIAM de Computación . 21 (1): 59–64. doi :10.1137/0221007. ISSN  0097-5397.
  23. ^ Chen, S. -P.; He, Y.; Yao, E. -Y. (1996-09-01). "Tres particiones que contienen núcleos: complejidad y heurística". Computing . 57 (3): 255–271. doi :10.1007/BF02247409. ISSN  1436-5057. S2CID  21935917.
  24. ^ Lee, Chung-Yee (7 de enero de 1991). "Programación de máquinas paralelas con tiempo disponible de máquina no simultáneo". Matemáticas Aplicadas Discretas . 30 (1): 53–61. doi : 10.1016/0166-218X(91)90013-M . ISSN  0166-218X.
  25. ^ Lin, Guo-Hui; Yao, En-Yu; He, Yong (1998-03-01). "Programación de máquinas paralelas para maximizar la carga mínima con tiempos disponibles de máquinas no simultáneos". Operations Research Letters . 22 (2): 75–81. doi :10.1016/S0167-6377(97)00053-9. ISSN  0167-6377.
  26. ^ Shen, Lixin; Wang, Dan; Wang, Xiao-Yuan (1 de abril de 2013). "Programación de máquinas paralelas con tiempo disponible de máquina no simultáneo". Modelado matemático aplicado . 37 (7): 5227–5232. doi :10.1016/j.apm.2012.09.053. ISSN  0307-904X.
  27. ^ Chen, Bo; Vestjens, Arjen PA (1 de noviembre de 1997). "Programación en máquinas idénticas: ¿Qué tan buena es la LPT en un entorno en línea?" (PDF) . Operations Research Letters . 21 (4): 165–169. doi :10.1016/S0167-6377(97)00040-0.