A Constructive Heuristic for Solving the Job- Shop Scheduling Problem

A Constructive Heuristic for Solving the JobShop Scheduling Problem R. Mellado, C. Cubillos and D. Cabrera 1 Abstract— This work proposes the use of ...
3 downloads 1 Views 372KB Size
A Constructive Heuristic for Solving the JobShop Scheduling Problem R. Mellado, C. Cubillos and D. Cabrera 1

Abstract— This work proposes the use of a constructive heuristic called Shifting Bottleneck Procedure for solving the Job-Shop Scheduling problem, with the aim to minimize the makespan, that is, the final delay of production planning. Because the constructive heuristic delivers an initial solution, then a Tabu Search method was used, with the aim to obtain a planification with the lowest possible makespan. The proposal was tested using benchmark data, and the results are promising, because the obtention of initial solutions using a constructive heuristic allows to decrease the processing time, and usually, the final results obtained from Tabu Search method are better. Keywords— Job Shop Scheduling, constructive heuristic,

tabu search.

L

I. INTRODUCCIÓN

A PLANIFICACIÓN de tareas es considerado uno de los problemas más importantes dentro de los sistemas productivos definidos por las industrias [1], esto debido a que cualquier tipo de producción de bienes o servicios están sujetos a la utilización de recursos, los cuales tienen la característica de ser limitados, por ende, se debe buscar la forma de llevar a cabo el proceso productivo utilizando la menor cantidad de recursos posibles. De esta manera, dentro de una gama de configuraciones productivas [2] se categoriza a Job Shop en los sistemas productivos semi repetitivos, donde se extraen elementos de la producción en línea y se combinan con la producción personalizada. Como se define en [3], los problemas de planificación de tareas pueden ser formalizados como “el problema de organizar los distintos recursos a través del tiempo para realizar un número determinado de tareas”. Ahora, dentro de la gran variedad de problemas de planificación de recursos existentes, Job Shop es uno de aquellos que ha generado una gran cantidad de estudios; esto debido en gran parte a que está clasificado como un problema de categoría NP-Hard [4]. Así, distintos autores han propuesto soluciones a esta problemática [20][21], aplicando variadas técnicas y algoritmos buscando alcanzar el objetivo de minimizar el makespan final [24][25]. Las implementaciones observadas van desde el uso de técnicas tradicionales hasta las hibridaciones más modernas, como en [22] donde se hace uso de un algoritmo híbrido entre algoritmos genéticos y búsqueda tabú para mejorar las 1

R. Mellado, Escuela de Comercio, Pontificia Universidad Católica de Valparaíso, Chile, [email protected] C. Cubillos, Escuela de Ingeniería Informática, Pontificia Universidad Católica de Valparaíso, Chile, [email protected] D. Cabrera, Escuela de Ingeniería Comercial, Universidad de Valparaíso, Chile, [email protected]

planificaciones generadas. De esta forma, las novedades del presente trabajo son: la utilización de un algoritmo heurístico constructivo para la generación de soluciones iniciales a partir de una secuencia no definida y la posterior mejora de dicha solución inicial utilizando búsqueda tabú, y la obtención y análisis de resultados sobre set de datos benchmark. A través de este trabajo es que se busca entregar una solución al problema de Job Shop Scheduling haciendo uso de una heurística constructiva denominada Shifting Bottleneck Procedure y asimismo utilizando una meta heurística denominada Búsqueda Tabú, y así a través de esta implementación se espera obtener resultados competitivos en relación a implementaciones similares o que usen otras técnicas encontradas en la literatura. II. DEFINICIÓN DEL PROBLEMA A. Descripción del problema El problema de Job Shop Scheduling consiste en la organización de n tareas descompuestas en m trabajos que deben ser procesado en M máquinas con la finalidad de obtener una planificación del uso en un tiempo finito de las máquinas por parte de los trabajos que logre los objetivos de tener la menor cantidad de tiempos muertos (de no uso) de máquinas y además la planificación señalada se ejecute en el menor tiempo posible, a estos dos objetivos serán denominados como minimización del makespan. Asimismo, se debe tomar en cuenta que cada uno de los m trabajos debe ser procesado en una máquina Mi, considerando que el orden en que cada trabajo mi es procesado en una máquina está dado por el problema en sí. Además, se debe tener presente que los trabajos mi no tienen una prioridad asignada y deben ser siempre procesado una vez sin interrupciones por cada máquina Mi, siempre que ésta esté disponible, y se debe considerar que los trabajos mi pertenecientes a una tarea ni no pueden ser procesados en paralelo; donde además una máquina Mi sólo puede procesar un trabajo a la vez. De esta forma, al cumplir todas las restricciones antes definidas, se buscará contar con una planificación que contemple las n tareas buscando la máxima minimización del makespan final. B. Modelo matemático y representación Generalmente, para la resolución de problemas de tipo Job Shop Scheduling se hace uso de técnicas de programación lineal entera mixta, en donde se define una función objetivo lineal y un conjunto de restricciones que se deben aplicar sobre la función objetivo definido. De esta forma se define el

modelo matemático del problema como [5]: (1) Sabiendo que: • 0

t , i, k ∈ Ny l, s ∈ M

(2)

• tm

t -t

(3)

• tm

t -t -R w-1

(4)

• tm

t -t -R w

(5)

• R





tm - min tm

(6)

Con: • til: tiempo de inicio de la operación. • N: conjunto de los n trabajos a procesar. • M: conjunto de las m máquinas. • T: operación correspondiente al trabajo Ni a procesar por la máquina mk en un tiempo mtil. • w: corresponde a la variable de decisión entera. • R: Valor aleatorio mayor a la suma total del procesamiento menos el tiempo más pequeño. Además, el problema de Job Shop Scheduling puede ser representado a través de un grafo disyuntivo G= (V,C U D) [6].

Figura 1. Grafo disyuntivo 3 máquinas 2 trabajos [6]

Para ello se define a V como el conjunto de las operaciones de los trabajos considerando a los nodos inicio y final correspondientes a la planificación. Asimismo, C se define como el conjunto de arcos conjuntivos que hacen representación de la secuencia y/o precedencia que siguen las operaciones; D es el conjunto de arcos disyuntivos relacionando a las operaciones que deben ser procesadas por una misma máquina [27]. En la Fig. 1 se muestra el grafo disyuntivo resultante para una planificación Job Shop de 3 máquinas con 3 trabajos. III. TRABAJOS RELACIONADOS Durante el tiempo, se han implementado múltiples algoritmos relacionados a la optimización para dar solución al problema de Job Shop Scheduling. Por ejemplo, en [11] se hace uso de Branch & Bound en donde la búsqueda de la

solución parte en el nodo denominado raíz y se producen las iteraciones respectivas hasta llegar a un nodo hoja, donde cada nivel logrado en dicho árbol representa una secuencia y una posible solución. De esta forma, haciendo uso pilas y colas, además de árboles, la implementación de este trabajo logra resultados competitivos en referencia a otros autores que dan solución al problema. En tanto, en [12] se hace uso de Simulated Annealing para Job Shop, buscando minimizar el makespan. En otro sentido, en [13] se presenta una variante de Job Shop denominada Job Shop Flexible, aplicando algoritmos genéticos para encontrar una planificación que minimice el makespan. En otro sentido, en [29] se presenta el uso de Neighborhood Struct híbrido para dar respuesta a la problemática de Job Shop. También se pueden encontrar soluciones al problema de Job Shop flexible, tal como se hace en [28], en donde utilizando algoritmos TABC mejoran los tiempos dentro de la planificación de la producción. Por último, también se pueden mencionar extensiones al problema de Job Shop, como en [30], en donde se propone un modelo para generar la simulación de planificación tipo Job Shop centrado en los tipos de operadores utilizados. IV. SHIFTING BOTTLENECK PROCEDURE Shifting Bottleneck Procedure (SBP) es una heurística propia de los problemas de asignación de trabajos, se define a SBP como un algoritmo incompleto de tipo constructivo [7] usado para la generación de soluciones iniciales a partir de un conjunto de datos, las cuales son mejoradas posteriormente a través de alguna técnica de optimización como en este caso es Búsqueda Tabú. Este algoritmo tiene la característica de no hacer uso de soluciones finales si no que a través de soluciones parciales busca crear la solución inicial antes indicada. A. Heurística constructiva La heurística constructiva definida como Shifting Bottleneck Procedure tiene la característica de generar la solución inicial de una serie de datos como M máquinas existentes, los m trabajos, y los t tiempos en que cada trabajo ocupa una máquina, además se hace implícito el orden de los m trabajos pertenecientes a una misma tarea n. Así, obteniéndose los datos anteriormente mencionados, se organizan para obtener los makespan iniciales de cada máquina (makespan local), de esta forma iterar las M veces y realizar la selección sobre cual máquina se trabajará en la iteración Mi. De esta forma, cuando se finalizan las M iteraciones, es cuando se obtiene la solución inicial entregada por la heurística constructiva, generando así una planificación que se denominará planificación o solución inicial, la cual será utilizada por una meta heurística para obtener una solución final. Se debe hacer notar que la solución entregada por la heurística constructiva en la mayoría de las veces se encuentra muy lejos del óptimo, es por ello que para acercarse lo más posible a la solución óptima se hace uso de una meta

heurística. La meta heurística usada en este trabajo es Búsqueda Tabú. B. Algoritmo de SBP Para lograr este objetivo de generar una solución inicial, lo que realiza Shifting Bottleneck Procedure para encontrar aquella solución es recorrer todas las máquinas buscando posibles atochamientos; donde para este contexto se definirá como máquina generadora de atochamientos a aquella que cumpla con: (7) Considerando que: • g corresponde al total de las máquinas. • tjm corresponde al trabajo j en la máquina m. • u corresponde al tiempo muerto de la máquina. De esta forma, es como SBP se encarga de ir seleccionando de forma iterativa a las máquinas que son consideradas atochamientos, donde se visitarán todas las máquinas, ya que en algún momento determinado en el tiempo todas son atochamientos en diferentes instantes. V. OPERADORES

Figura 2. Representación de organización de máquinas y trabajos

B. Movimientos Los movimientos son definidos como aquellos intercambios que se producen entre los trabajos pertenecientes a una misma máquina. Para ello se define dos tipos de movimientos MI(a,b) que corresponde a los movimientos realizados donde se intercambia un trabajo ma delante de un trabajo mb, este movimiento es definido como movimiento a la izquierda. Asimismo, se define a MD(a,b) aquel movimiento que lleva el trabajo ma tras el trabajo mb, este movimiento es denominado movimiento a la derecha. En la Fig. 3 se representa gráficamente los movimientos que antes se mencionaron. Además, para efectuar los movimientos antes mencionados se debe antes verificar que sean movimientos factibles, esto quiere decir que no quiebren la secuencialidad definida de los trabajos en las distintas máquinas.

Los operadores refieren a los movimientos, o subalgoritmos que hace uso SBP para generar el conjunto de soluciones candidatas a construir la solución inicial, y luego Búsqueda Tabú (TS – Tabu Search) para encontrar una solución que mejores el makespan obtenido en esta solución inicial. Se debe considerar que para aplicar cualquier operador siempre se referenciará a una secuencia. A. Secuencias La secuencia es aquella sub-programación de trabajos que son asignados por máquina; por ejemplo, en la Tabla 1 se puede apreciar un resumen de los datos iniciales para construir una planificación.

J0 J1 J2

TABLA I DATOS INICIALES PARA UNA PLANIFICACIÓN id Trabajo Máquina M1(3) M2(3) M3(3) M1(2) M3(3) M2(4) M2(3) M1(2) M3(1)

Así, en la Tabla 1 se aprecia que por ejemplo al trabajo con id J0 usa las máquinas M1, M2 y M3 en ese estricto orden definido, además la máquina M1 la usa 3 unidades de tiempo, la máquina M2 es usada una unidad de tiempo de 3 unidades y la máquina M3 es usada 3 unidades de tiempo. Luego, en la Fig. 2 se muestra la representación gráfica para la organización de los datos mostrados en la Tabla I.

Figura 3. Ejemplificación de movimientos a la izquierda y a la derecha.

C. Búsquedas locales y árboles de vecindario Los arboles de vecindario (NT – Neighborhood Trees) se definen como [8] un conjunto de soluciones derivadas de una secuencia inicial. El conjunto de soluciones, son el producto de la iteración a partir de un número determinado de intercambios posibles (factibles), y la simulación de ellos, además de la ramificación correspondiente dependiendo de la factibilidad de nuevos intercambios. De esta forma, NT entrega un conjunto de soluciones factibles donde todas son distintas entre sí. La selección correspondiente de las soluciones propuestas por NT es efectuada por el algoritmo de Búsqueda Local Guiada (GLS – Guided Local Search) [8], donde al obtener las soluciones factibles entregadas por NT, selecciona la mejor secuencia dependiendo de la comparación entre el makespan original y el de la nueva secuencia. De esta selección, SBP se encarga de realizar su aplicación en la planificación y controlar las iteraciones. D. Factibilidad de una secuencia Como se definió anteriormente, una secuencia corresponde a aquellos trabajos (pertenecientes a distintas tareas) que se deben operar en una misma máquina, asimismo cada

secuencia consta de un makespan C, que corresponde a la sumatoria del tiempo que ocupa la máquina m más el total de tiempos muertos de los trabajos de la máquina m. Así, cuando NT simula todos los posibles movimientos relacionándolos directamente con su makespan, presenta esa gama de resultados a GLS, que se encarga de verificar factibilidad y hacer la selección correspondiente. Además, se debe considerar que las secuencias deben mantener siempre la precedencia entre los trabajos pertenecientes a una tarea, por ejemplo, si se tiene m2,m3,m1 pertenecientes a la tarea n1, además m5,m4,m6 pertenecientes a la tarea n2, ambos en el orden antes expuesto, siempre se deberá mantener ese orden, es decir, si en la máquina 1 se tiene a m2 y m5 y se quiere poner a m2 delante de m5, este no debe nunca romper la secuencia definida anteriormente en n1 y n2. Así, cumpliendo con estas reglas es que se realiza la selección del mejor movimiento para ser aplicado a la secuencia seleccionada. De esta forma, en la Tabla II se presenta el algoritmo de lo anteriormente expuesto. Luego de aplicar lo que se expuso antes, se procede a generar la solución inicial que será entregada a la meta heurística para buscar una solución lo más cercano al óptimo en lo posible. TABLA II ALGORITMO DE SELECCIÓN DE SOLUCIONES

Inicio {n es numero de secuencias o máquinas} /*iteración de SBP*/ mientras i

Suggest Documents