• No se han encontrado resultados

2 mientras (Condición_terminación) 3 V = Soluciones_Vecinas(S); 4 Evaluar_Soluciones(V); 5 S’ = Seleccion(V); 6 Si (Condición_aceptación) 7 S = S’; 8 fin si 9 fin mientras 10 Devuelve S; FIN

25

El JSSP aparece con profusión en la literatura científica como ejemplo de prueba de muchas técnicas de resolución de problemas. Hay también disponibles numerosos bancos de uso común entre los investigadores, lo que facilita el contraste de resultados experimentales. En (Jain y Meeran, 1998), Jain y Meeran ofrecen una clasificación de las principales técnicas que han sido aplicadas para resolver el JSSP.

1.7.3. Métodos metaheurísticos

Las metaheurísticas son estrategias inteligentes para diseñar o mejorar procedimientos heurísticos muy generales con un alto rendimiento. El término metaheurística fue dado a conocer por primera vez por Fred Glover en 1986 (Glover, 1986), y desde entonces han surgido multitud de propuestas para diseñar buenos procedimientos que den solución a determinados problemas, adoptando la denominación de metaheurística. La base de los procedimientos metaheurísticos la constituyen los métodos constructivos y los de búsqueda local. Algunos de los tipos fundamentales son: las de relajación, las constructivas, las de búsqueda y las evolutivas.

- Las metaheurísticas de relajación se refieren a procedimientos de resolución de problemas que utilizan relajaciones del modelo original, mediante modificaciones que lo hacen más fácil de resolver, cuya solución facilita la solución del problema original. Entre estas se encuentran los métodos de relajación lagrangiana (Beasley, 1993; Guinard, 2002).

- Las metaheurísticas constructivas son procedimientos que consiguen una solución a partir del análisis y selección paulatina de las componentes de una estructura, inicialmente vacía, que representa la solución.

- Las metaheurísticas de búsqueda guían los procedimientos que usan transformaciones o movimientos para recorrer el espacio de soluciones alternativas y explotar las estructuras de entornos asociadas.

- Las metaheurísticas evolutivas están enfocadas a los procedimientos basados en conjuntos de soluciones que evolucionan sobre el espacio de dichos conjuntos.

Algunas metaheurísticas surgen de combinaciones de distintos tipo, tal es el caso de la metaheurística GRASP (Greedy Randomized Adaptive Search

Problemas de planificación de trabajos

26

Procedure) (Resende y González-Velarde, 2003; Resende y Ribeiro, 2003),

que combina una fase constructiva con una fase de búsqueda de mejora.

De forma general, todas las metaheurísticas se pueden considerar como estrategias aplicadas a procesos de búsqueda, donde todas las soluciones intermedias en el proceso de resolución del problema, se interpretan como elementos de un espacio de búsqueda, que se van modificando a medida que se aplican las distintas operaciones diseñadas para llegar a la solución definitiva. Por ello, y porque los procesos de búsqueda heurística constituyen el paradigma central de las metaheurísticas, es frecuente interpretar que el término metaheurística es aplicable esencialmente a los procedimientos de búsqueda sobre un espacio de soluciones alternativas. La evaluación del rendimiento de una metaheurística debe atender tano a la eficiencia como a la eficacia de los procedimientos heurísticos obtenidos. Para medir su eficacia, éstas deben afrontar con éxito problemas de un banco de casos para los que se conozcan las soluciones. Si no se dispone de estos casos, se deben construir recurriendo a procesos de simulación que se aproximen a tales circunstancias. La eficiencia del método se comprueba experimentalmente en el empleo de un tiempo computacional moderado (razonable) para alcanzar éxito en los problemas tratados.

1.7.4. Métodos de aproximación

Los métodos de aproximación no garantizan una solución exacta, pero son capaces de obtener soluciones muy cercanas al óptimo, con unos tiempos de cálculo moderados, y por ello son útiles para problemas grandes. Su importancia radica en que las heurísticas inspiradas en fenómenos naturales y resolución inteligente, resultan muy apropiadas para problemas combinatorios difíciles, proporcionando un adecuado enlace bilateral entre la investigación de operaciones y la inteligencia artificial. Entre los más representativos se encuentran los siguientes:

Reglas de prioridad de despacho (Priority dispatch rules): una de las estrategias más comunes para resolver problemas de scheduling es el uso de reglas de despacho, las cuales permiten definir prioridades entre los trabajos que se encuentran en un taller. Pueden ser sencillas, basadas en un dato del

27

producto, como el tiempo de procesamiento o la fecha de entrega; también se pueden obtener a través de cálculos entre diferentes variables, como en el caso de la holgura. Se trata en general de algoritmos voraces que toman decisiones basadas en algún criterio de optimización local. En la literatura (Rajendran y Zeigler, 2001; Pinedo, 2008) se puede encontrar una amplia variedad de este tipo de estrategias heurísticas para problemas de scheduling, destacándose, entre otras, las siguientes:

- FIFO (First In First Out): basada en atender primero al primer trabajo en entrar en el proceso. Se emplea a menudo y, especialmente, con productos perecederos, donde adquiere el nombre FEFO (First Expiration First Out).

- LIFO (Last In First Out): basada en atender primero al último trabajo en entrar en el proceso. No es muy común, pero en ocasiones, cuando el material ocupa grandes superficies y su movimiento por las distintas áreas del taller produce interrupciones adicionales en otras máquinas, suele ser útil esta regla.

- SIRO (Service In Random Order): bajo esta regla no se intenta realizar ninguna optimización.

- STP (Shortest Processing Time): Ordena los trabajos de menor a mayor tiempo de procesamiento, es decir, conforme a la duración. Corresponde a la regla “ejecutar primero la operación más corta” y permite minimizar el índice de eficiencia P -g y el stock medio. Es una de las más utilizadas. Los trabajos se procesan en orden creciente de tiempos de proceso N&.

Nh ≤ Ni ≤ ⋯ ≤ Nk

- LTP (Longest Processing Time): Ordena los trabajos de mayor a menor tiempo de procesamiento, es decir, conforme a la duración. Corresponde a la regla “ejecutar primero la operación más larga”. Los trabajos se procesan en orden decreciente de tiempos de proceso N&.

Problemas de planificación de trabajos

28

- EDD (Earliest Due Date): Ordena los trabajos en función de la fecha de vencimiento, de forma creciente, es decir, el primer trabajo de la lista es el que tiene menor fecha de entrega. Corresponde a la regla “ejecutar primero lo más urgente” y permite minimizar , . Los trabajos se procesan en orden creciente a la fecha de vencimiento 0&.

0h ≤ 0i ≤ ⋯ ≤ 0k

- ECT (Earliest Completion Time): Ordena los trabajos en función de la fecha de terminación, de forma creciente, es decir, el primer trabajo de la lista es el que tiene menor fecha de terminación. Corresponde a la regla “ejecutar primero lo que acaba antes”. Los trabajos se procesan en orden creciente a la fecha de terminación &.

hi ≤ ⋯ ≤ k

- Holgura mínima: Considera el tiempo restante total hasta la finalización del trabajo. De esta forma se programan antes los trabajos con mayores posibilidades de retrasarse.

Heurísticas basadas en cuellos de botella (Bottleneck based heuristics): un ejemplo de esta aproximación es el Shifting Bottleneck Procedure (SBP) (Adams, et al., 1988), el cual tiene como estrategia relajar el problema de

scheduling x , en problemas de 1 máquina y resolver cada subproblema

cada vez de forma iterativa. Cada una de las soluciones se compara con las demás y se ordenan las máquinas según su solución. La máquina no secuenciada que tiene la solución mayor se identifica como la máquina que provoca el cuello de botella. SBP secuencia dicha máquina basándose en las que ya han sido calculadas, ignorando el resto de las máquinas no secuenciadas. La selección de la máquina que constituye el cuello de botella viene motivada por la suposición de que el scheduling en etapas posteriores podría deteriorar el tiempo de realización del scheduling (makespan).

Métodos de búsqueda local (Local Search Methods): este procedimiento está basado (Vaessens, et al., 1994) en la suposición de que es posible encontrar varias soluciones entre la solución inicial y la final tal que cada una

29

de ellas es ligeramente diferente a la inmediata anterior. Un concepto asociado a la búsqueda local es la descripción del conjunto de soluciones parecidas, denominado “vecindario”. Dos soluciones son “vecinas” si una puede ser obtenida a partir de la otra intercambiando el orden entre dos tareas consecutivas en un mismo recurso, perteneciendo ambas al camino crítico (critical path). Este procedimiento puede ofrecer una medida de la bondad de la solución encontrada, pero no garantiza que la solución obtenida sea el óptimo global del problema considerado. Tiene la ventaja de que en poco tiempo puede encontrar soluciones suficientemente buenas para un conjunto amplio de problemas de naturaleza combinatoria.

Clausura y satisfacción de restricciones (CSP): debido a que los problemas de scheduling se caracterizan por un conjunto de restricciones temporales, las técnicas desarrolladas para los problemas de satisfacción de restricciones, y más concretamente, sobre restricciones temporales, pueden aplicarse para resolver problemas de scheduling. En este sentido, se utilizan dos procesos típicos: la clausura, como técnica deductiva de nuevas restricciones derivadas, y técnicas de búsqueda CSP, guiadas por heurísticas.

1.7.5. El Algoritmo G&T

El algoritmo de Giffler y Thompson (Giffler y Thompson, 1960), conocido como algoritmo G&T, se puede considerar como la base de todas las heurísticas basadas en reglas de prioridad. Giffler y Thompson en su propuesta crearon procedimientos para generar planes de trabajo (schedules) activos y sin retardo (en la sección 2.10 se describen los tipos de planes de trabajo). Este es un algoritmo voraz que produce planificaciones activas en pasos, es al mismo tiempo no determinista y se puede particularizar de muchas formas. Su estrategia se muestra en el siguiente algoritmo.