stringtranslate.com

Algoritmo de Lawler

El algoritmo de Lawler es un algoritmo eficiente para resolver una variedad de problemas de programación restringida, en particular la programación de una sola máquina . [1] Puede manejar restricciones de precedencia entre trabajos, lo que requiere que ciertos trabajos se completen antes de que se puedan iniciar otros. Puede programar trabajos en un solo procesador de una manera que minimice la tardanza máxima , la tardanza o cualquier función de ellos.

Definiciones

Existen n puestos de trabajo. Cada puesto de trabajo se denota por y tiene las siguientes características:

La función objetivo es . [2] Algunos casos especiales son:

Algoritmo

El algoritmo construye el cronograma de principio a fin. Para cada paso de programación, solo analiza las tareas de las que no dependen otras tareas y coloca la que tiene la fecha de vencimiento más tardía al final de la cola de programación. Luego, repite este proceso hasta que se programen todos los trabajos.

El algoritmo funciona planificando el trabajo con el menor impacto lo más tarde posible. A partir de ahí, se inicia el tiempo de procesamiento del trabajo .

conjunto de trabajos ya programados (al inicio: S = ) conjunto de trabajos cuyos sucesores han sido programados (al inicio: todos los trabajos sin sucesores) hora en la que se completará el próximo trabajo (al inicio: ) mientras que seleccione de modo que programe de modo que se complete a las hora agregar a , eliminar de y actualizar . fin mientras 

Ejemplo 1

Suponiendo que hay tres trabajos: t1, t2 y t3, con las siguientes restricciones de precedencia:

Y los siguientes plazos (fecha de vencimiento en un mes)

Ahora construimos el conjunto de trabajos requerido:

Repita los siguientes pasos hasta que J esté vacío:

Haz la siguiente ronda:

Haz la siguiente ronda:

J ahora está vacío. Fin.

Por lo tanto, el programa final es t1 -> t2 -> t3, ya que S = {t1, t2, t3}

Ejemplo 2

Un ejemplo más complejo, con pasos simplificados: Los trabajos y las restricciones de precedencia se muestran a continuación: un nodo padre --> nodo hijo en el árbol.

 j1 (2) / \ dos y tres (2) (4) / \ | J4 J5 J6(3) (5) (6) 

Las fechas de vencimiento de los trabajos se muestran debajo de cada nodo del árbol entre paréntesis.

Ahora mira el conjunto de trabajos sin sucesores, busca el que tenga la fecha de vencimiento más reciente y colócalo al frente de S:

Referencias

  1. ^ Steven Nahmias. Análisis de producción y operaciones. 2008. ISBN  978-0-07-126370-2
  2. ^ Joseph YT. Leung. Manual de programación: algoritmos, modelos y análisis de rendimiento. 2004. ISBN 978-1-58488-397-5 

Lectura adicional