stringtranslate.com

Programación de flujo de trabajo

Ordenanza de taller de flujo

La programación de flow-shop es un problema de optimización en informática e investigación de operaciones . Es una variante de la programación óptima del trabajo . En un problema general de programación de trabajos, se nos dan n trabajos J 1J 2 , ...,  J n de tiempos de procesamiento variables, que deben programarse en m máquinas con potencia de procesamiento variable, mientras se intenta minimizar el intervalo de tiempo – la duración total del programa (es decir, cuando todos los trabajos hayan terminado de procesarse). En la variante específica conocida como programación de taller de flujo , cada trabajo contiene exactamente m operaciones. La i -ésima operación del trabajo debe ejecutarse en la i -ésima máquina. Ninguna máquina puede realizar más de una operación simultáneamente. Para cada operación de cada trabajo, se especifica el tiempo de ejecución.

La programación de taller de flujo es un caso especial de programación de taller de trabajo donde existe un orden estricto de todas las operaciones que se realizarán en todos los trabajos. La programación de taller de flujo puede aplicarse tanto a las instalaciones de producción como a los diseños informáticos . Un tipo especial de problema de programación de flujo de taller es el problema de programación de flujo de permutación en el que el orden de procesamiento de los trabajos en los recursos es el mismo para cada paso posterior de procesamiento.

En la notación estándar de tres campos para problemas de programación óptima de trabajos , la variante de taller de flujo se denota con F en el primer campo. Por ejemplo, el problema indicado por " F3| | " es un problema de taller de flujo de 3 máquinas con tiempos de procesamiento unitarios, donde el objetivo es minimizar el tiempo máximo de finalización.

Definicion formal

Hay m máquinas y n trabajos. Cada trabajo contiene exactamente m operaciones. La i -ésima operación del trabajo debe ejecutarse en la i -ésima máquina. Ninguna máquina puede realizar más de una operación simultáneamente. Para cada operación de cada trabajo, se especifica el tiempo de ejecución.

Las operaciones dentro de un trabajo deben realizarse en el orden especificado. La primera operación se ejecuta en la primera máquina, luego (cuando finaliza la primera operación) la segunda operación en la segunda máquina, y así sucesivamente hasta la enésima operación. Sin embargo, los trabajos se pueden ejecutar en cualquier orden. La definición del problema implica que esta orden de trabajo es exactamente la misma para cada máquina. El problema es determinar cuál es la disposición óptima, es decir, aquella con el menor tiempo posible de ejecución total del trabajo.

Mediciones de rendimiento de secuenciación (γ)

El problema de secuenciación se puede plantear como determinar una secuencia S tal que se optimicen uno o varios objetivos de secuenciación.

  1. (Promedio) Tiempo de flujo,
  2. Makespan, C máx.
  3. Tardanzas (promedio),
  4. ....

Una discusión detallada sobre la medición del desempeño se puede encontrar en Malakooti (2013). [1]

Complejidad de la programación del flow-shop

Tal como lo presentan Garey et al. (1976), [2] la mayoría de las extensiones de los problemas de programación de talleres de flujo son NP-difíciles y pocas de ellas pueden resolverse de manera óptima en O(nlogn); por ejemplo, F2|prmu|C max se puede resolver de manera óptima utilizando la regla de Johnson . [3]

Taillard proporciona importantes problemas de referencia para programar talleres de flujo, talleres abiertos y talleres de trabajo. [4]

Métodos de solución

Los métodos propuestos para resolver problemas de programación de taller de flujo se pueden clasificar como algoritmo exacto , como rama y límite, y algoritmo heurístico , como algoritmo genético .

Minimizando el makepan, C máx.

F2|prmu|C max y F3|prmu|C max se pueden resolver de manera óptima utilizando la regla de Johnson [3] pero para el caso general no existe ningún algoritmo que garantice la optimización de la solución.

El taller de flujo contiene n trabajos disponibles simultáneamente en el tiempo cero y para ser procesados ​​por dos máquinas dispuestas en serie con almacenamiento ilimitado entre ellas. El tiempo de procesamiento de todos los trabajos se conoce con certeza. Se requiere programar n trabajos en las máquinas para minimizar el espacio de trabajo. A continuación se detalla la regla de Johnson para programar trabajos en un taller de flujo de dos máquinas.

En un cronograma óptimo, el trabajo i precede al trabajo j si min{p 1i ,p 2j } < min{p 1j ,p 2i } . Donde p 1i es el tiempo de procesamiento del trabajo i en la máquina 1 y p 2i es el tiempo de procesamiento del trabajo i en la máquina 2. De manera similar, p 1j y p 2j son tiempos de procesamiento del trabajo j en la máquina 1 y la máquina 2 respectivamente.

Para el algoritmo de Johnson:

Sea p 1j el tiempo de procesamiento del trabajo j en la máquina 1
y p 2j el tiempo de procesamiento del trabajo j en la máquina 2

Algoritmo de Johnson:

  1. Conjunto de formularios1 que contiene todos los trabajos con p 1j < p 2j
  2. Del conjunto2 que contiene todos los trabajos con p 1j > p 2j , los trabajos con p 1j = p 2j se pueden colocar en cualquier conjunto.
  3. Forme la secuencia de la siguiente manera:
    (i) El trabajo en el conjunto1 va primero en la secuencia y van en orden creciente de p 1j (SPT)
    (ii) Los trabajos en el conjunto2 siguen en orden decreciente de p 2j (LPT). Los lazos se rompen arbitrariamente.

Este tipo de programa se conoce como programa SPT(1)-LPT(2).

Malakooti (2013) proporciona una discusión detallada de los métodos de solución disponibles . [1]

Ver también

Referencias

  1. ^ ab Malakooti, ​​B (2013). Operaciones y Sistemas de Producción con Múltiples Objetivos. John Wiley e hijos. ISBN  978-1-118-58537-5 .
  2. ^ Garey, señor; Johnson, DS; Sethi, Ravi (1976). "La complejidad de la programación de flowshop y jobshop". Matemáticas de la Investigación de Operaciones . 1 (2): 117–129. doi :10.1287/moor.1.2.117.
  3. ^ ab Johnson, SM (1954). "Programas de producción óptimos de dos y tres etapas con tiempos de preparación incluidos". Logística de investigación naval trimestral . 1 (1): 61–68. doi : 10.1002/nav.3800010110.
  4. ^ Taillard, E. (enero de 1993). "Puntos de referencia para problemas básicos de programación". Revista europea de investigación operativa . 64 (2): 278–285. doi :10.1016/0377-2217(93)90182-M.