Aplicación de un algoritmo ACO al problema de minimización de

Montecarlo es un algoritmo probabilístico3 desarrollado a mediados de los años 40 por von. Neumann, Ulam y Metropolis mientras trabajaban en el Proyecto Manhattan4. Su nombre es a ...... John Wiley and Sons. Basu, A., Elnagar, A., ...
2MB Größe 56 Downloads 153 vistas
UNIVERSIDAD DE CONCEPCIÓN Facultad de Ingeniería Departamento de Ingeniería Industrial

Profesor Patrocinante Sr. Eduardo Salazar H.

APLICACIÓN DE UN ALGORITMO ACO AL PROBLEMA DE MINIMIZACIÓN DE MAKESPAN EN MÁQUINAS PARALELAS IDÉNTICAS CON TIEMPOS DE SETUP DEPENDIENTES DE LA SECUENCIA Pablo Arriagada Pizarro

Informe de Memoria de Título para optar al título de Ingeniero Civil Industrial

Abril, 2012

ii

Sumario El objetivo general de esta memoria de título es el desarrollo de una metaheurística basada en Ant Colony System que busque minimizar el makespan en el problema de máquinas paralelas idénticas con tiempo de preparación dependiente de la secuencia de trabajos. Este problema consiste básicamente en la configuración de procesan

trabajos, uno a la vez, con un tiempo de proceso

máquinas que simultáneamente y que al pasar de un trabajo a otro,

existe un tiempo de preparación de máquinas que depende exclusivamente de estos trabajos saliente y del entrante. El objetivo primario de la programación es minimizar el tiempo de finalización del último trabajo que se procesa, lo que a fin de cuentas se consigue balanceando los tiempos de finalización de las

máquinas. El problema es fuertemente NP-completo, de acuerdo a

la clasificación de Garey y Johnson (1979). Se describe el problema de programación de la producción, planteando sus características teóricas y sus aplicaciones prácticas, que cubre incluso más allá del ámbito productivo industrial, desde la configuración de rutas en vehículos de reparto a la exploración planetaria y satelital, entre muchos otros. Como el problema propiamente tal no tiene una resolución heurística simple, se presentan adaptaciones de problemas similares que intentan aproximarse a la (desconocida) solución óptima: dos nacidas a partir de la heurística Longest Processing Time (LPT), otra de acuerdo a la simulación Montecarlo y una más a partir de una secuenciación de la heurística del mejor vecino. Para contrastar los resultados que entregan estas heurísticas, se presenta una heurística de programación de trabajos que utiliza en su operación Ant Colony System (ACS), que forma parte de un grupo de metaheurísticas dentro de Ant Colony Optimization (ACO), heurísticas multipropósito que se originan e inspiran en el comportamiento de ciertas especies de hormigas que van creando el camino más conveniente para su colonia depositando feromonas que estimulan a los insectos, en una especial forma de comunicación denominada estigmergia, que es el intercambio de información modificando un lugar específico o su entorno inmediato y al que se accede sólo estando en ese lugar. La heurística de programación de la producción secuencia los trabajos inicialmente por medio de ACS, de manera que se utilice el menor tiempo de setup posible. Luego, la secuencia inicial es dividida para que los trabajos sean asignados en las máquinas que conforman el sistema. Esta asignación se divide internamente en dos variantes: una que asigna hasta el último trabajo que no sobrepase un límite determinado por el makespan inicial (asignación “antes”) y otra donde en cada máquina se asigna hasta el primer trabajo que sobrepase ese límite (asignación “después”). Los trabajos no secuenciados por alguna de las dos variantes se localizan en la máquina donde puedan terminar antes. Por último, la heurística propuesta intenta reducir la utilización de la máquina más utilizada, la que termina definiendo el makespan total. Entre los dos resultados obtenidos (producidos por las variantes antes y después),

iii

la heurística genera el makespan inferior. Este método heurístico es un híbrido entre configuraciones constructivas y procedimientos metaheurísticos adaptados completamente para este tipo de problemas. Los resultados fueron probados en 6 escenarios diferentes, con 20 instancias en cada uno y muestran que la heurística basada en Ant Colony System con revisión en su etapa final es consistentemente mejor que todos los otros métodos constructivos presentados, generando un makespan inferior en todos los experimentos y que en promedio supera entre un 5,5 y un 11% a la segunda mejor heurística (Mejor Vecino). Las diferencias son mayores cuando se está ante un escenario donde los tiempos de setup de los trabajos son comparables a los tiempos de proceso, con lo que la heurística propuesta maneja mejor la mayor variabilidad de las soluciones. Si bien comparativamente los tiempos que lleva ACS en ejecutarse son significativamente mayores que los de heurísticas constructivas (medio minuto vs. una fracción de segundo, en el peor caso), no son extremadamente grandes ni perjudican la toma de decisiones en ambientes de trabajo reales; es más, para problemas de esta clase de complejidad los tiempos de ejecución computacional de esta magnitud son especialmente bajos.

iv

Índice 1.

2.

3.

4.

Antecedentes Generales .......................................................................................................... 1 1.1.

Introducción ....................................................................................................................................... 1

1.2.

Revisión Bibliográfica ........................................................................................................................ 2

Programación de la Producción .............................................................................................. 5 2.1.

Aspectos Generales .......................................................................................................................... 5

2.2.

Ambientes de Máquinas .................................................................................................................... 6

2.3.

Restricciones ..................................................................................................................................... 7

2.4.

Medidas de Desempeño.................................................................................................................... 9

2.5.

Configuraciones Productivas ........................................................................................................... 11

2.5.1.

Por Proyectos ......................................................................................................................... 11

2.5.2.

Por Lotes ................................................................................................................................ 11

2.5.3.

Configuración Continua .......................................................................................................... 12

Minimización del Makespan en Máquinas Paralelas Idénticas ........................................... 13 3.1.

El Problema

3.2.

El Problema

3.3.

Formulación Matemática ................................................................................................................. 14

3.4.

Aplicaciones en el Mundo Real ....................................................................................................... 16

|

|

.............................................................................................................. 14

Heurísticas para el Problema de Máquinas Paralelas ......................................................... 20 4.1.

5.

................................................................................................................... 13

Heurísticas ...................................................................................................................................... 20

4.1.1.

Longest Processing Time (LPT) ............................................................................................. 20

4.1.2.

Adaptación a LPT ................................................................................................................... 23

4.1.3.

Montecarlo .............................................................................................................................. 24

4.1.4.

Mejor Vecino ........................................................................................................................... 25

Ant Colony Optimization ........................................................................................................ 30 5.1.

Origen en la Biología ....................................................................................................................... 30

5.2.

La Metaheurística ACO ................................................................................................................... 32

5.3.

Variantes de ACO ........................................................................................................................... 35

5.3.1.

Ant System (AS) ..................................................................................................................... 35

5.3.2.

Elitist Ant System (EAS) ......................................................................................................... 37

v

6.

7.

5.3.3.

Rank-Based Ant System (ASrank) ............................................................................................ 37

5.3.4.

MAX-MIN Ant System (MMAS) ............................................................................................... 38

5.3.5.

Ant Colony System (ACS) ...................................................................................................... 38

Método Propuesto ................................................................................................................... 41 |

Relación de

6.2.

Extensión de ACS con Revisión Final ............................................................................................. 42

con TSP ................................................................................................. 41

Evaluación y Análisis de Resultados .................................................................................... 48 7.1.

Información Preliminar..................................................................................................................... 48

7.2.

Escenarios de Evaluación ............................................................................................................... 49

7.3.

Definición de Parámetros ................................................................................................................ 51

7.3.1.

Montecarlo .............................................................................................................................. 51

7.3.2.

Extensión de ACS con Revisión Final .................................................................................... 52

7.4.

Resultados ...................................................................................................................................... 59

7.4.1.

Nivel de Setup Alto ................................................................................................................. 59

7.4.2.

Nivel de Setup Bajo ................................................................................................................ 62

7.5.

Análisis de Resultados .................................................................................................................... 65

7.5.1.

Influencia del Proceso de Revisión Final Mediante ACS ........................................................ 66

7.5.2.

Diferencias entre la Asignación “Antes” y “Después” .............................................................. 67

7.5.3.

Consistencia de Métodos Heurísticos..................................................................................... 69

7.6.

8.

|

6.1.

Validación Estadística ..................................................................................................................... 70

7.6.1.

Análisis de Varianza ............................................................................................................... 70

7.6.2.

Supuestos de ANOVA ............................................................................................................ 72

Conclusiones ........................................................................................................................... 75

Referencias ...................................................................................................................................... 78 Anexos .............................................................................................................................................. 85 A1.

Parámetros del Problema Ejemplo .................................................................................................. 86

A2.

Definición de Parámetros ACS ........................................................................................................ 87

A3.

Diferencias de Métodos Heurísticos ................................................................................................ 94

A4.

Diferencias Generadas por el Proceso de Revisión de ACS ......................................................... 100

A5.

Análisis de Varianza ...................................................................................................................... 102

A6.

Verificación de supuestos de ANOVA ........................................................................................... 108

1 Aplicación de un algoritmo ACO al problema

|

|

1. Antecedentes Generales 1.1. Introducción Debido al ritmo que llevan nuestras actividades, rápidamente se ha vuelto indispensable la organización y programación de las actividades que se realizarán, ya sea para poder compatibilizar distintas tareas durante una jornada laboral o para planificar las vacaciones, siempre se busca un objetivo común: aprovechar el tiempo, saber distribuirlo de la mejor manera. Tiempos de salida en el transporte público, la atención en un consultorio, los horarios de profesores en una institución educacional o la entrega de pizza a domicilio son sólo una pequeña muestra de la importancia de la programación de los trabajos. En las industrias, por lo tanto, esta situación no difiere de toda actividad que se quiere ejecutar y más cuando hay involucrada maquinaria que por lo general implica un desembolso de dinero importante. A cualquier empresa le gustaría utilizar sus equipos menos y poder producir más, y existe una multitud de casos donde se puede lograr, eliminando tiempos muertos perfectamente evitables si se redistribuyera la configuración de actividades. Tal es el caso de los tiempos de preparación de tareas, que por muchas décadas se tenían asumidos como parte inmodificable de los sistemas y poco a poco se ha entendido su relevancia, llegando a ocupar fácilmente desde el 20% de la capacidad de producción disponible (Allahverdi y Soroush, 2008). El interés de reducir estos tiempos se ha visto ayudado también por el explosivo aumento en la capacidad computacional para resolver problemas de optimización en lapsos que eran impensados diez años antes. Uno de los modelos más utilizados en la representación de la programación de actividades es la carta Gantt, llamadas así por su creador, Henry Laurence Gantt (1861-1919), ingeniero industrial y discípulo de Frederick W. Taylor, padre de la administración científica del trabajo. Básicamente, una carta Gantt representa la asignación de trabajos contra el tiempo, con recursos específicos en el eje vertical y una escala de tiempo en el eje horizontal. En varias páginas de esta investigación se utilizan para ejemplificar la asignación de trabajos. Como en cualquier actividad que involucra personas, el objetivo de aumentar la producción en tiempos cada vez menores debe siempre ir acompañado de beneficios que permitan mejorar las condiciones laborales (y por lo tanto, de vida) de cada trabajador involucrado, partiendo por asegurar su seguridad y la ergonomía de su estación de trabajo, hasta recibir la retribución justa que conlleva ser parte fundamental de la cadena productiva en una empresa.

2 Aplicación de un algoritmo ACO al problema

|

|

1.2. Revisión Bibliográfica Un problema ampliamente difundido en artículos científicos en programación de la producción es , consistente en un número

de máquinas paralelas idénticas, sin tiempos de

preparación entre trabajos y sujetos a minimización de makespan. El primer trabajo en este tema es realizado por McNauhgton (1959), donde el tiempo disponible para cada máquina estaba previamente definido y el algoritmo arbitrariamente toma un trabajo y lo procesa en la máquina disponible que tenga el menor número correlativo, hasta que todos los trabajos se asignen. Hace una contribución relevante a la programación, incorporando al secuenciamiento medidas de desempeño como el makespan, la tardanza total ponderada y el tiempo de flujo ponderado. Instancias pequeñas del problema pueden ser resueltas en un tiempo computacional razonable mediante algoritmos exactos, como branch-and-bound (van de Velde, 1993) y el método de planos de corte (Mokotoff, 2004), pero este problema, por ser NP-hard, toma tiempos computacionales exponenciales de resolución en instancias mayores, con lo que se recurre a heurísticas, como la bien conocida regla Longest Processing Time (LPT) de Graham (1969), que en una primera etapa ordena los trabajos en una lista de mayor a menor tiempo de procesamiento para después asignar. Más tarde, Coffman, Garey y Johnson (1978) proponen el algoritmo MULTIFIT que abarca la relación entre los problemas de bin packing y los de tiempo de finalización máxima, de manera que la heurística funciona con límites de tiempo que van cambiando de acuerdo a nuevas soluciones encontradas. Yue (1990), calculando cotas superiores de heurísticas, mostró que las heurísticas MULTIFIT no garantizan un mejor rendimiento que LPT en cualquier problema. Gupta y Ruiz-Torres (2001) propusieron un algoritmo LISFIT que combina el método de bin packing utilizado en la heurística MULTIFIT

con listas múltiples de trabajos. Los resultados

computacionales mostraron que la heurística superaba a los algoritmos LPT y MULTIFIT, comparando sus límites en el peor caso. Min y Cheng (1999) propusieron un algoritmo genético basado en el lenguaje de máquinas, diseñado especialmente para instancias grandes de programación. Indicaron que la calidad de la solución entregada es superior a procedimientos heurísticos basados en recocido simulado (Simulated Annealing, SA). Lee, Wu y Chen (2006) proponen un algoritmo SA para el problema y compararon sus resultados con el algoritmo LISFIT, superándolo en todas las pruebas (en tiempo y calidad de la solución) y mostrando mejor rendimiento aún en problemas calificados como difíciles por los mismos Gupta y Ruiz-Torres. Sevkli y Uysal (2009) utilizan por primera vez búsqueda en vecindad variable para el problema, mostrando mejores resultados que LPT y algoritmos genéticos. Una heurística y un método exacto para el problema se encuentran recopilados en Dell'Amico et al. (2008). La primera está basada en una búsqueda scatter, computacionalmente efectiva y capaz de llegar al óptimo en un alto porcentaje de instancias. El segundo, basado en búsqueda binaria y branch-and-price, llega al óptimo en las instancias restantes.

3 Aplicación de un algoritmo ACO al problema

|

|

A pesar de su relevancia, pasan quince años desde los primeros trabajos de programación de máquinas paralelas hasta que se consideran los tiempos de preparación en el análisis: Marsh y Montgomery (1973) propusieron aproximaciones heurísticas para el problema de minimización del costo total de setup en máquinas idénticas y no idénticas. Para este último caso, los tiempos de setup dependen tanto de la secuencia de trabajos como la máquina donde se procesa. Deane y White (1975) extendieron los resultados de Marsh y Montgomery para incluir balance de cargas de trabajo, desarrollando un algoritmo branch-and-bound para minimizar el costo de preparación. Geoffrion y Graves (1976) desarrollaron una formulación de asignación cuadrática para minimizar la suma de los costos de setup, producción y faltas por atrasos. La primera heurística en resolver el problema fue publicada en 1978 (Frederickson, Hecht y Kim), mediante dos algoritmos de aproximación que se derivan de la equivalencia entre el problema

|

|

y el del Vendedor Viajero (TSP), y hace uso de procedimientos heurísticos basados

en resoluciones para el TSP y el

-TSP (TSP múltiple). Dearing y Henderson (1984) publicaron un

modelo de programación lineal para la asignación de telares en la industria textil para la minimización de costo total de setup, considerando también restricciones de capacidad en el uso de los telares. Sus resultados los lograron mediante el redondeo de las soluciones obtenidas por la relajación lineal del modelo. Sumichrast y Baker (1987) proponen un método heurístico basado en la solución de una serie de subproblemas binarios que mejora los resultados de Dearing y Henderson, con resultados más cercanos al óptimo y menos carga computacional. Ambos trabajos consideran que un trabajo puede ser dividido en varias máquinas. Otros autores, como Flynn (1987), Hahn, Bragg y Shin (1989) y Boborowski y Kim (1994, 1997), investigaron el impacto de la variación de los tiempos de setup en la decisión de secuenciamiento y concluyen que su consideración influye significativamente en la programación de la producción, por lo tanto no recomiendan abordar el problema dejando los tiempos de preparación como parte del tiempo de proceso. Guinet (1993) muestra que el problema puede reducirse a uno de ruteo de vehículos y sugiere primero hacer una heurística de dos pasos. Además formula el problema linealmente con variables binarias y propuso una nueva heurística que consiste en resolver el problema dual del problema de asignación obtenido. Una recopilación de trabajos sobre programación de máquinas paralelas en base a tiempos de finalización, due dates, y tiempos de flujo como medidas de desempeño, se presentan en Cheng y Sin (1990). Lam y Xing (1997) revisaron nuevos desarrollos, asociados a los problemas de producción just-in-time, trabajos con preferencia y máquinas con capacidad. Algunas variaciones del problema, como en Kurz y Askin (2001) presentan una programación entera mixta para

|

|

y aplican cuatro heurísticas

basadas en trabajos anteriores (Coffman et al., 1978; Johnson y Papadimitriou, 1985; Reinelt, 1994; Papadimitriou y Steiglitz, 1998), además de hacer una revisión más acabada de heurísticas utilizadas.

4 Aplicación de un algoritmo ACO al problema

|

|

El uso de metaheurísticas para este problema comienza cuando França et al. (1996) abarcan el problema con una heurística de tres fases: la primera genera una solución inicial, que se mejora en una segunda etapa mediante una búsqueda tabú. La tercera etapa consiste en mejorar la secuencia de trabajos en la máquina más ocupada, la que determina el makespan. Este trabajo mejora varias heurísticas previas, incluyendo el “trabajo-padre” de Frederickson et al. Gendreau, Laporte y Morais (2001) idearon límites inferiores y una heurística de dividir-y-unir fácil de implementar que resulta ser más rápida que la heurística de França et al., y de calidad similar. Mendes et al. (2002) compararon tres metaheurísticas: dos basadas en búsqueda tabú (adaptada de 1996) y una memética, que combina un algoritmo genético con búsqueda local. Los resultados mostraron que mientras la memética es superior cuando los tiempos de setup eran pequeños en comparación a los tiempos de proceso, lo contrario sucede con tiempos de setup grandes y muchas máquinas. Para la minimización del tiempo de finalización ponderado con tiempos de liberación de trabajos distintos a cero, Nessah, Yalaoui y Chu (2005) tratan de minimizar la suma de tiempos de finalización presentando una condición necesaria y suficiente para obtener óptimos locales, además de un límite inferior. La heurística que generan se basa en la condición que exponen. Tahar et al. (2006) presentaron una heurística basada en programación lineal (con división de trabajos), cuyo rendimiento fue testeado en problemas con un límite inferior, entregando buenas soluciones en tiempos de ejecución cortos, mientras que Rocha et al. (2007) propusieron un algoritmo de búsqueda en vecindad variable y mostraron que su algoritmo supera a un algoritmo greedy de procedimiento de búsqueda adaptativa aleatoria, con muy buenas soluciones en instancias de 60 o más trabajos. Behnamian, Zandieh y Ghomi (2009) plantean una metaheurística híbrida para el problema, donde la solución inicial es generada por un método basado en Ant Colony Optimization (ACO), recocido simulado para su evolución y una búsqueda en vecindad variable (VNS) con búsqueda local para mejorarla. Esta combinación proporciona mejores resultados que los métodos de búsqueda variable y aleatoria anteriores. En cuanto a recopilaciones sobre el tema, Allahverdi, Jatinder, Gupta, y Tariq Aldowaisan (1999), publican un estado del arte de la programación de la producción con tiempos de setup. Allahverdi, Ng, Cheng y Kovalyov (2008) es una continuación del estudio anterior, comprende los trabajos publicados entre ambas revisiones. La publicación de Yang y Liao (1999) es otra revisión de secuenciamiento de trabajos con setup, mientras que Zhu y Wilhelm (2006) se concentran en seleccionar las investigaciones de programación con tiempos de preparación dependientes de la secuencia.

5 Aplicación de un algoritmo ACO al problema

|

|

2. Programación de la Producción 2.1. Aspectos Generales La programación de la producción es un proceso de toma de decisiones constantemente utilizado por las industrias productivas y de servicios. En términos simples consiste en la asignación de recursos a tareas que toman cierto tiempo en realizarse y cuya meta es optimizar uno (o más) objetivos. Estos recursos pueden traducirse generalmente como máquinas, pero también pueden ser equipos de personas, computadores y otros dispositivos con los que puede resolverse análogamente un problema de programación. En todos los problemas de programación de la producción considerados, el número de trabajos y el número de máquinas son finitos. El número de trabajos se denota por por

. Usualmente, el subíndice

y el número de máquinas

se refiere a un trabajo, mientras que el subíndice

indica una

máquina. Si un trabajo requiere de un número determinado de pasos u operaciones, el par indica la operación del trabajo en la máquina . 

Tiempo de proceso

Representa el tiempo de procesamiento del trabajo

. Este subíndice se omite si el tiempo de proceso del trabajo donde se utiliza o si el trabajo 

Tiempo de liberación

Due date

no depende de la máquina

sólo se procesa en una máquina definida.

Indica el tiempo en que el trabajo

equivalente al tiempo más temprano en que el trabajo 

en la máquina

llega al sistema, lo que es

puede comenzar su proceso.

Representa el envío comprometido o el tiempo acordado con el cliente cuando

el trabajo esté realizado. La finalización de un trabajo después de su due date está permitido, pero se incurre en una falta. De no estar permitido, es un deadline, ̅ .



Peso

También llamada ponderación, es básicamente un factor de prioridad que denota la

importancia de un trabajo

en relación a los otros trabajos en el sistema. Por ejemplo, el peso

puede representar el costo real de mantener un trabajo en el sistema. Un problema de programación de la producción se describe por la notación por Graham et al. en 1979.

, introducida

describe el ambiente de las máquinas y contiene sólo una entrada.

detalla las características del proceso con sus restricciones y puede no tener ninguna, una, o múltiples entradas.

describe el objetivo a minimizar y por lo general contiene una sola entrada. A

continuación se describen estos campos, a partir de Pinedo (2008) y Baker (2009).

6 Aplicación de un algoritmo ACO al problema

|

|

2.2. Ambientes de Máquinas Los ambientes de máquinas posibles descritos en 

Taller de una máquina

son:

es el caso más simple de todos y un caso especial de todos los

otros escenarios más complejos. Una máquina se encarga de procesar todos los trabajos. 

Máquinas idénticas en paralelo la vez. El trabajo

es cuando existen

máquinas idénticas trabajando a

requiere una única operación y puede ser procesado en cualquiera de las

. Si sucede este

máquinas o en cualquiera que pertenezca a un subgrupo determinado último caso, la entrada



debe aparecer en el campo .

Máquinas en paralelo con diferentes velocidades

es cuando cada máquina influye en

los tiempos de proceso. La velocidad de cada máquina trabajo

utiliza en la máquina

es igual a



se denota por

. El tiempo

que el

(asumiendo que el trabajo se ejecuta

completamente en la máquina). A este ambiente también se le llama máquinas uniformes. Si es igual para todas las máquinas, estamos ante un sistema de máquinas paralelas idénticas. 

Máquinas no relacionadas en paralelo configuración previa, donde la velocidad del trabajo trabajo. El tiempo

que el trabajo

es una generalización adicional de la depende de la máquina y del propio

utiliza en la máquina

es igual a



(asumiendo

nuevamente que el trabajo se ejecuta completamente en la máquina). 

Flow shop cada una de las

es cuando existen

máquinas en serie, cada trabajo debe ser procesado en

máquinas y todos deben seguir la misma ruta de máquinas. Una vez que un

trabajo termina en una máquina pasa a una cola de espera (queue) y espera ser procesado en la máquina siguiente, usualmente bajo la priorización FIFO, que debe indicarse en el campo (en el caso de FIFO, la entrada es 

Flexible flow shop

).

es una generalización del flow shop y de la configuración de

máquinas paralelas, donde en vez de

máquinas en serie hay

etapas en serie de máquinas

paralelas idénticas. En la literatura, es también llamado hybrid flow shop (flow shop híbrido) o multi-processor flow shop (flow shop con procesadores múltiples).

7 Aplicación de un algoritmo ACO al problema



Job shop

|

|

es el caso cuando cada trabajo tiene su ruta predeterminada en las

máquinas. Se hace una distinción entre job shops donde cada trabajo visita cada máquina a lo más una vez y en los cuales los trabajos pueden visitar cada máquina más de una vez. Para el último caso, el campo 

Flexible job shop de

contiene la entrada

, indicando recirculación.

es una generalización del job shop y las máquinas paralelas. En vez

máquinas en serie, hay

centros de trabajo con un cierto número de máquinas paralelas

idénticas. Cada trabajo sigue su propia ruta en el taller y cada trabajo se procesa en cada centro de trabajo en una sola máquina y cualquier máquina dentro del centro puede hacerlo. También puede considerarse recirculación. 

Open shop de las

es donde hay

máquinas y cada trabajo debe ser procesado en cada una

máquinas. Sin embargo, algunos de estos tiempos de proceso pueden ser cero. No

hay restricciones en cuanto a la ruta de cada trabajo, el programador determina la ruta para cada trabajo y diferentes trabajos pueden tener diferentes rutas.

2.3. Restricciones Las restricciones del proceso especificadas en el campo Las entradas posibles para 

Tiempos de liberación

pueden ser una, más de una o ninguna.

son: Cuando aparece este símbolo, el trabajo

proceso antes su tiempo de liberación

no puede iniciar su

. Si no aparece, el trabajo puede iniciar su proceso en

cualquier momento. 

Interrupciones

Implican que no es necesario mantener un trabajo en proceso hasta

su finalización. El programador puede interrumpir el proceso de un trabajo en cualquier punto y poner un nuevo trabajo en su reemplazo. Cuando el trabajo interrumpido se reanuda en la misma máquina o en otra, completa el tiempo que le restaba. 

Restricciones de precedencia

Es cuando se requiere que uno o más trabajos deben

completarse antes de que otro trabajo pueda ejecutarse.

8 Aplicación de un algoritmo ACO al problema



|

|

Tiempos de setup dependientes de la secuencia determinado por la secuencia de trabajos cuando es el primero en la secuencia y

y

.

Representa el tiempo de preparación denota el tiempo de setup del trabajo

el tiempo de limpieza necesario después de

procesar el trabajo

(Ambos pueden ser cero). Si además este tiempo depende de la máquina,

se indica como

. Si no hay ninguna indicación del setup en el campo

, se asume que

estos tiempos son cero o son independientes de la secuencia, con lo que se incluyen en el tiempo de proceso. 

Familias de trabajos

Cuando hay grupos de trabajos que pueden procesarse sin

existir tiempos de setup entre ellos. El tiempo de preparación entre una familia



o incluso no depender de ninguna familia

Proceso batch cantidad

Fallas

.

Cuando una máquina puede procesar simultáneamente una

de trabajos. Cuando

programación. Si 

se

, pero también estos tiempos pueden depender sólo de la familia que se

representa por procesará

y

el problema se reduce a un problema convencional de

, no hay límite de trabajos simultáneos en una máquina. Se refiere a que una o más máquinas pueden no estar disponibles en

intervalos de tiempo determinados, por fallas y/o mantenciones. 

Restricciones de elección de máquinas

Define qué máquinas son capaces de procesar

el trabajo . 

Permutación

En un flow shop, implica que el orden en que entran los trabajos en la

primera máquina se mantiene en todo el sistema. 

Bloqueo

Se da en flow shops cuando se llega al tope del buffer entre máquinas, o

cuando no hay buffer. La máquina es bloqueada hasta que la siguiente pueda ser utilizada. 

No-wait

Es cuando en un flow shop un trabajo no puede esperar que lo procese una

máquina, por lo que debe retrasarse su proceso en la que lo antecede. 

Recirculación

Cuando un trabajo puede visitar una máquina o un centro de trabajo

más de una vez. En job shops o flexible job shops.

9 Aplicación de un algoritmo ACO al problema

|

|

2.4. Medidas de Desempeño El campo

, que se refiere al objetivo a minimizar (medidas de desempeño del sistema), es

siempre una función de los tiempos de finalización de los trabajos, que dependen de la programación, evidentemente. El tiempo de finalización del trabajo trabajo

se va del sistema es

en la máquina

, que es igual a

se denota por

y el tiempo en que el

en sistemas donde un trabajo se procesa una

única vez. El objetivo también puede ser función de los due dates. El atraso de un trabajo

que es positivo cuando el trabajo

se define como:

finaliza tarde y negativo cuando se completa temprano,

comparando con el due date. La tardanza de un trabajo

{

se define como:

}

La diferencia entre el atraso y la tardanza está en el hecho que la tardanza nunca es negativa. Un trabajo tardío se define

{ El objetivo también puede ser en relación a los tiempos de liberación, así se define el tiempo de flujo:

que es el tiempo que el trabajo pasa en el sistema. Cuando los tiempos de liberación son cero,

.

Así, a partir de estas medidas de desempeño individuales en cada trabajo, se generan medidas de desempeño del sistema que son las que corresponden al campo .



Makespan

Es equivalente al tiempo de finalización del último trabajo en salir del

sistema. Un mínimo makespan por lo general implica una buena utilización de las máquinas.

10 Aplicación de un algoritmo ACO al problema



Atraso máximo



Tardanza máxima



Flujo máximo

|

|

Mide el mayor desfase de los trabajos en relación a los due dates.

Recoge la misma idea que el atraso máximo.

Indica el tiempo del trabajo que más permanece en el sistema.

También están las medidas de desempeño que surgen de la suma de las medidas de desempeño individuales, tales como: 

Suma de tiempos de finalización: ∑



Atraso total:



Tardanza total:



Tiempo total de flujo:



Número de trabajos tardíos:

∑ ∑ ∑ ∑

En problemas que incluyan peso, estas expresiones se modifican para poder considerar la prioridad de los trabajos: 

Tiempo total de finalización ponderado: ∑



Tardanza ponderada:



Tiempo de flujo ponderado:



Número ponderado de trabajos tardíos: ∑

∑ ∑

Todas estas funciones objetivo se llaman medidas de desempeño regulares. Se definen así todas las medidas de desempeño que su valor aumenta si algún valor de prontitud no es regular:

{

}

aumenta. Por ejemplo, la

11 Aplicación de un algoritmo ACO al problema

|

|

2.5. Configuraciones Productivas Además de la configuración de máquinas, una industria debe considerar el uso que le dará a estas para la posterior producción de bienes, lo que dependerá tanto de la cantidad y variedad de los productos, como

del tipo de demanda que deben cubrir. Los distintos tipos de proceso son

recogidos por Domínguez Machuca et al. (1995) a partir de la clasificación de Hayes y Wheelwright (1984) que es la que se usa habitualmente en los departamentos de operaciones. Los tipos de procesos están ordenados de modo que aumenta el volumen de producción, la automatización y homogeneización de los procesos, la repetividad de las operaciones, la inversión en capital y la estandarización del producto. A continuación se detallan estos tipos de procesos.

2.5.1. Por Proyectos Es la configuración que se utiliza para cuando se generan productos o servicios “únicos” y de cierta complejidad (aviones, barcos y obras públicas en general) que se obtienen a partir de inputs de gran tamaño, generalmente. Esto, junto a la especificidad de inputs y outputs, hace que comúnmente los primeros se trasladen al lugar donde se está creando el producto o servicio. Estas mismas características hacen que se requiera un nivel de coordinación de personas muy grande.

2.5.2. Por Lotes Lo que caracteriza a este tipo de proceso es que utiliza las mismas instalaciones para obtener múltiples productos, de manera que una vez que se obtiene un tipo de ellos, se ajustan las instalaciones y se procesa un lote de un producto distinto al anterior, repitiéndose la secuencia. Hay tres tipos de configuración por lotes, que dependen del tamaño, homogeneidad y variedad de los productos y cómo es el proceso en sí. Estos son: Configuración Job Shop: Producen lotes pequeños de una gran variedad de productos prácticamente no estandarizados, más bien, están cerca de ser hechos “a medida”, con lo que se usan equipos versátiles. Los costos variables son altos, debido a la poca automatización, pero por esto mismo, el costo fijo de inversión es bajo. Es importante notar que esta no es la misma definición que la dada en ambientes de máquinas. La configuración puede desagregarse en: 

Configuración a medida o de talleres: En este caso, en el proceso hay un número bajo de operaciones poco especializadas, las que ejecuta uno o varios trabajadores. El lote suele ser de pocas unidades de un producto, que normalmente está diseñado a partir de los requerimientos del cliente, por lo que la variedad está sólo limitada por su imaginación y las posibilidades de la empresa. Un ejemplo es una mueblería a medida, donde cada operario debe dominar cada una de las tareas que están involucradas en el proceso.

12 Aplicación de un algoritmo ACO al problema



|

|

Configuración en batch: Aquí el proceso requiere más operaciones, las que son más especializadas, con lo que es más improbable que un operario las domine todas a un nivel alto, por lo que generalmente está sólo en un centro de trabajo. Los centros de trabajo tienen maquinaria más sofisticada y enfocada a operaciones específicas del proceso, con lo que la inversión es mayor, aunque sigue existiendo una automatización básica, lo que abre espacio a una buena flexibilidad. El lote (más grande que en el caso anterior) llega al centro de trabajo para sufrir una operación, y no es hasta que todo el lote se procesa que se traslada a otro centro de trabajo para su proceso, o en su defecto a un almacén de espera mientras el centro se utiliza. El producto tiene varias versiones que el cliente puede elegir, con lo que hay cierto grado de estandarización, aunque con una baja repetitividad de las operaciones. Un ejemplo de esta configuración es una fábrica normal de muebles, donde el cliente puede elegir características como la tapicería de las sillas, el barnizado o el tamaño de un armario.

Configuración en línea: Es básicamente cuando se fabrican grandes lotes de pocos productos diferentes, pero que son técnicamente homogéneos y usando las mismas instalaciones. Los distintos productos requieren una secuencia similar de operaciones, aunque más de alguno puede saltar alguna de estas. Por su naturaleza, las máquinas se disponen en línea, una después de la otra, las que luego de terminar la producción de un lote se ajustan para producir un lote distinto, y así sucesivamente. En este caso, las máquinas son mucho más especializadas, lo que conlleva una alta inversión y también una mayor automatización y homogeneidad que con un Job Shop, lo mismo pasa con la especialización de los operarios, que genera menores costos variables de producción, pero perdiendo flexibilidad. Los costos de inversión en esta configuración son mucho mayores que los de un Job Shop y aparecen también altos costos de preparación que, eso sí, producen productos de alta calidad. Un ejemplo de este proceso es la línea de montaje de un automóvil, donde, aunque varíen algunas características (motor, puertas, equipamiento), siempre es el mismo modelo.

2.5.3. Configuración Continua La producción pasa a ser continua cuando se eliminan los tiempos ociosos y de espera, de forma que siempre se estén ejecutando las mismas operaciones, en las mismas máquinas, para tener siempre el mismo producto, en una disposición en cadena o lineal. Tanto la automatización como la especialización y homogeneidad son altísimas, pero aunque las operaciones sean distintas, todas deben considerarse simultáneamente para que el sistema funcione. En estos procesos la producción no para en ningún momento, salvo cuando hay detenciones programadas. Un caso de producción continua es el de la celulosa, donde las detenciones programadas no ocurren con frecuencia.

13 Aplicación de un algoritmo ACO al problema

|

|

3. Minimización del Makespan en Máquinas Paralelas Idénticas Por lo general, la programación de trabajos requiere dos tipos de decisiones: 1. Decisiones de secuenciamiento 2. Decisiones de asignación de recursos. Cuando existe sólo un recurso, la decisión de asignación de recursos depende completamente de la secuencia. En cambio, la importancia de ambas decisiones se hace notar en configuraciones con más de una máquina, ya sean máquinas paralelas, flow shops o job shops, donde se amplía el número de posibilidades de operación que tienen los trabajos y a su vez complejiza la programación de la producción. La minimización del makespan es un objetivo de especial interés en un ambiente de máquinas paralelas, debido a que hacer que el proceso entero termine antes implica necesariamente balancear la carga de trabajo en cada máquina, repartiendo las tareas en forma equilibrada.

3.1. El Problema En el modelo estático de máquinas paralelas, la secuencia de trabajos en una máquina particular es irrelevante al tener las tareas ya asignadas, ya que no cambiará el tiempo de finalización de esa máquina. Aun así, el problema de minimización de makespan es un problema complejo, al intentar elegir qué trabajos operan en qué máquina, para obtener el máximo equilibrio en el uso de máquinas. Una cota inferior para

, se define así:

{∑

}

Si bien este valor no es el makespan mínimo para el problema, la cota inferior da una buena idea de lo que se aspira en minimizar el makespan y algunas restricciones que se encuentran en el problema

. El primer argumento indica la búsqueda del equilibrio en todas las máquinas,

intentando que terminen su proceso en tiempos lo más cercanos posibles, mientras que el segundo argumento muestra lo que puede suceder con algún tiempo de proceso

considerablemente

mayor al resto de los otros trabajos: si es mayor al promedio de tiempos de finalización de las máquinas, obligadamente ese tiempo será el mínimo makespan del sistema. Al no permitirse ni detenciones ni ningún tipo de trabajos parciales, buscar el equilibrio en la utilización de las máquinas se vuelve mucho más complejo, de hecho, el problema

es

14 Aplicación de un algoritmo ACO al problema 1

|

| 2

NP-completo y

es fuertemente NP-completo (Garey y Johnson, 1979). Sólo se puede

resolver en tiempo polinomial si todos los trabajos tienen la misma duración.

3.2. El Problema

|

|

En este problema, a diferencia del modelo anterior, sí cobran relevancia ambas decisiones de la programación de la producción, debido a que en una misma máquina dos secuencias con los mismos trabajos entregan resultados diferentes en cuanto al makespan; de hecho, en cada máquina, la cantidad de combinaciones de las distintas secuencias posibles entregará el mismo número de posibles tiempos de finalización. Algunos makespan parciales podrán repetirse, pero serán originados por distintos tiempos de preparación. Esto hace que se esté ante un problema más complejo que

, porque además de considerar en qué máquina asignar los trabajos,

la secuencia debe ser tal que genere los menores tiempos de preparación, en orden de producir el menor makespan. Entonces, como

|

|

es un problema fuertemente NP-completo,

también lo es (Rocha et al., 2007). El problema tratado tiene esta complejidad

también porque el modelo con una máquina equivale al problema del vendedor viajero, TSP, que es NP-completo (França et al., 1996)

3.3. Formulación Matemática El problema

|

|

puede ser expresado matemáticamente, con los siguientes parámetros

considerados (Gutiérrez y Mejía, 2006):

: Tiempo de proceso del trabajo . : Tiempo de preparación determinado por la secuencia de trabajos y : Tiempo de preparación para el trabajo cuando es el primero que se programa en la máquina. Y las variables de decisión:

{

{

1 2

Problema NP que puede resolverse, pero no en tiempo polinomial por algún algoritmo eficiente. Problema NP-completo que sigue siéndolo aunque sus parámetros se acoten polinomialmente.

15 Aplicación de un algoritmo ACO al problema

(

)

(

)

|

|









(1) Establece el tiempo de finalización de un trabajo, asegurando que el tiempo de finalización es al menos igual a la suma del tiempo de finalización del trabajo precedente, el tiempo de setup y su tiempo de proceso. (2) Es la aplicación del punto (1) para los trabajos asignados en la primera posición en cada máquina. (3) Si un trabajo es asignado a una máquina, entonces tiene definido sólo un predecesor. (4) Si un trabajo es asignado a una máquina, entonces tiene definido sólo un sucesor. (5) A lo más un trabajo es asignado en la primera posición de la secuencia de cada máquina. (6) Un trabajo es asignado sólo a una máquina. (7) Establece el makespan. (8) Establece no negatividad para los valores de tiempos de finalización. (9) Establece no negatividad para las variables de decisión.

16 Aplicación de un algoritmo ACO al problema

|

|

3.4. Aplicaciones en el Mundo Real El problema estudiado además de tener una relevancia teórica (al ser una generalización del problema de una máquina y un caso especial de flow shop), tiene importancia en la industria productiva: una gran variedad de rubros necesitan considerar tiempos de preparación al pasar de una tarea a otra. Algunas áreas, documentadas por Allahverdi y Soroush (2008) son: 

Industria textil: Las operaciones de tejer y secar están sujetas a los tiempos de preparación, que dependen de los trabajos: los distintos tipos de telas hacen que tenga que cambiarse la cadena urdidora de la máquina.



Industria del plástico: El setup varía según el tipo y color del plástico a producir. Cuando el color de un ítem previamente procesado en la máquina no es el mismo que el que se procesa después, una cantidad de plástico se desperdicia. La secuencia de trabajos determina cuánto plástico se pierde.



Industria química: El tiempo necesario para limpiar un reactor antes de procesar un nuevo producto depende de qué fue lo último que se produjo en el reactor.



Imprentas: Se requiere un tiempo de setup para preparar la máquina (para limpiarla, por ejemplo), lo que depende del color de la tarea actual y la inmediatamente posterior.



Informática: En el desarrollo y ejecución de algunos software, una tarea necesita un tiempo de preparación para cargar un compilador diferente si el anterior no era el adecuado.



Producción de botellas: El setup depende de los tamaños y formas del envase.



Industria aeroespacial: En las líneas de producción de aspas para motores de aviones, un setup alto se requiere para pasar de una familia de aspas a otra.

Situaciones similares se dan en la industria del papel y la industria del vidrio. Además de todas las aplicaciones en procesos productivos que necesitan tiempos de preparación, el problema

|

|

es análogo al problema de múltiples vendedores viajeros,

-TSP

(como se detallará más adelante) y a una relajación del problema de ruteo de vehículos, VRP; de modo que el radio de aplicación real de se extiende más allá de la secuenciación en máquinas paralelas. Algunos ejemplos, recopilados por Bektas (2006), son:

17 Aplicación de un algoritmo ACO al problema



|

|

Prensa: Gorenstein (1970) trabaja un caso de la impresión de revistas. En este caso, existen cinco pares de cilindros entre los cuales los rollos de papel y ambos lados de una página se imprimen simultáneamente. Existen tres tipos de plantillas, de 4, 6 y 8 páginas, que se usan para imprimir las ediciones. El problema de secuenciación consiste en decidir qué plantilla se usará en qué corrida y la duración de cada corrida. El costo de cambiar estas plantillas es el que depende de la secuencia. En un contexto parecido, el problema puede ser usado para desarrollar programación de la producción para publicidad ya impresa en los diarios, como explican Carter y Ragsdale (2002). En este caso, los anunciantes deben insertar anuncios específicos dentro o con el diario, para distribuirlos a diferentes regiones geográficas. Para el contexto de la programación en máquinas, las regiones son los trabajos y las máquinas son las líneas de producción.



“Programación” de personal: Svestka y Huckfeldt (1973) crean una aplicación para la recolección de depósitos entre las distintas sucursales de un banco. Los depósitos necesitan llegar a la oficina central por un grupo de mensajeros, trabajo análogo al que hacen los llamados juniors. El objetivo es determinar las rutas de los mensajeros a un mínimo costo. Lenstra y Rinnooy Kan (1975) describen dos aplicaciones similares, la primera consiste en encontrar las rutas del personal técnico, que tiene que visitar cabinas telefónicas, lo que es similar a lo hace ahora el servicio técnico de las empresas de televisión, telefonía e internet. La segunda aplicación involucra diseñar las rutas de vehículos para visitar 200 casillas de correo, para que el número usado de vehículos sea el mínimo. Otra aplicación para la programación de equipos de personas está dada por Zhang, Gruver y Smith (1999), que investiga el problema de programar equipos de fotógrafos de un estudio a un grupo grande de escuelas primarias y secundarias.



Problemas de ruteo: El problema de programar buses es investigado por Angel et al. (1972) como una variación del

-TSP con algunas restricciones. El objetivo es obtener buses llenos

de tal forma que el número de rutas se minimice, la distancia total que recorre toda la flota se mantenga al mínimo, ningún bus esté sobrecargado y el tiempo requerido para viajar en cualquier ruta no exceda el máximo definido. De manera general, el problema es equivalente a asignar rutas de vehículos con capacidad, minimizando la ruta más larga. 

Programación de entrevistas: Gilbert y Hofstra (1992) describen una variación multiperiodo del problema, para programar entrevistas entre representantes y vendedores en la industria del turismo. Cada representante representa a un vendedor que debe visitar un grupo específico de puestos de vendedores, en un set de

ciudades.

18 Aplicación de un algoritmo ACO al problema



|

|

Planificación de misiones: La planificación de misiones generalmente surge en el contexto de robots móviles autónomos, donde una variedad de aplicaciones incluye construcción, reconocimiento militar, automatización de bodegas, automatización de correos y exploración planetaria. Consiste en determinar el camino óptimo para cada robot para que complete los objetivos de la misión en el menor tiempo posible. El planificador utiliza una variación del TSP donde hay

robots,

-

objetivos que deben ser visitados por los robots, y una ciudad

base a la cual todos los robots deben volver. Dos aplicaciones de este problema han sido publicadas por Brummit y Stentz (1996, 1998), la segunda para ambientes no estructurados. La planificación de robots autónomos es modelada por Zhong et al. (2002) en el campo de robótica cooperativa. Similarmente, los problemas de ruteo surgidos en la planificación de aplicaciones de vehículos aéreos no tripulados son investigados por Ryan et al. (1998) pueden ser modelados como un



-TSP con ventanas de tiempo.

Laminación en caliente: En la industria del hierro y acero, las órdenes de trabajo deben programarse en el taller de laminado de modo que el costo (setup) total de transición en la secuencia se minimice. Una aplicación reciente que modela este problema se encuentra en un complejo de hierro y acero en China, por Tang et al. (2000).



Vigilancia satelital: Una aplicación reciente y muy interesante es investigada por Saleh y Chelouah (2004). Un sistema global de navegación satelital (GNSS) es un sistema de satélites basado en el espacio que provee cobertura a todos los lugares del mundo y que es trascendental en aplicaciones de alerta temprana y manejo de desastres, monitoreo del medioambiente y agricultura, etc. El objetivo es determinar las posiciones geográficas de puntos desconocidos en y sobre la Tierra usando satélites. Estos puntos, en los cuales se sitúan receptores, son coordinados por una serie de sesiones de observación. Cuando hay receptores o períodos de trabajo múltiples, el problema de encontrar el mejor orden de sesiones.

Los casos prácticos mencionados pueden ser directamente modelados desde

|

|

(o un

-TSP), con algunas extensiones menores de ser necesarias. Sin embargo, el problema es importante también debido a que es un subproblema de otros que son más generales. Por ejemplo, el balancear las cargas de trabajo entre los vendedores, discutido por Okonjo-Adigwe (1988), que agregó límites inferior y superior a los tiempos de viaje y el peso de cada vendedor. Otro ejemplo es el del problema del guardia nocturno, investigado por Calvo y Cordone (2003), que consiste en asignar tareas a un grupo de guardias que realizan servicios de inspección de rutina en un número definido de lugares. Se agregan las restricciones de capacidad y espacios de tiempo.

19 Aplicación de un algoritmo ACO al problema

|

|

También surge como subproblema en la programación de grúas en la planificación de operación de barcos. Kim y Park (2004) investigan el problema, utilizando

-TSP para encontrar límites

inferiores en un algoritmo branch-and-bound. Una aplicación interesante está en el problema de coordinar el movimiento de múltiples objetos, como lo plantean Basu, Elnagar y Al-Hajj (2000). El problema surge en el ensamblaje de circuitos electrónicos, administración de memoria de sistemas distribuidos y la coordinación de robots móviles en un espacio estructurado, como una bodega. Se define en una red rectangular que se divide en cuadrados, que pueden contener un objeto o estar en blanco. Entonces el movimiento óptimo de objetos en una red con múltiples espacios en blanco puede encontrarse usando un modelo

-TSP.

Por último, es importante considerar que el problema de máquinas paralelas idénticas puede utilizarse para optimizar partes de otros problemas de programación de la producción, como son flow shops flexibles y job shop flexibles, que incluyen en cada etapa un set de máquinas paralelas idénticas (ver Figura 3.1, los círculos son las máquinas de cada etapa), con lo que igual pueden optimizarse estos procesos sin recurrir a métodos de mayor escala cuando no se necesitan.

Figura 3.1 Flexible Flow Shop

20 Aplicación de un algoritmo ACO al problema

|

|

4. Heurísticas para el Problema de Máquinas Paralelas 4.1. Heurísticas Las heurísticas son criterios, métodos o principios para decidir cuál de una variedad de cursos de acción alternativos promete ser el más efectivo en orden de lograr un objetivo. Representan el compromiso entre dos requerimientos: la necesidad de hacer estos criterios simples y, al mismo tiempo, el deseo de ver que discriminen correctamente entre elecciones buenas y malas. Los algoritmos son la heurística plasmada, definida paso a paso, que cumplen una misión similar a la de una receta de cocina: seguir instrucciones para lograr el objetivo propuesto, o al menos acercársele. Acercarse, porque en algunos casos resulta muy complejo llegar a la solución óptima de un problema de optimización combinatoria, muchos de estos problemas requieren la evaluación de un inmenso número de posibilidades para determinar una solución exacta, lo que lleva a necesitar tiempos extremadamente largos, incluso décadas. Las heurísticas juegan un rol efectivo en estos problemas, indicando una forma de reducir el número de evaluaciones y obtener soluciones dentro de restricciones de tiempo razonables. El problema de máquinas paralelas idénticas con tiempos de setup dependientes de la secuencia, al ser fuertemente NP-completo, es un problema que requiere heurísticas de aproximación para tener soluciones que se acercan a la ideal. Además de los tiempos exponenciales que requiere un algoritmo exacto, no se ha desarrollado ninguno para el problema, lo que refuerza más aún la idea de profundizar la investigación en heurísticas efectivas de resolución. Aunque no hay ninguna heurística definida explícitamente para el modelo, hay un número grande de heurísticas diseñadas: se han adaptado algunas del problema

(considerando la

existencia de tiempos de preparación) o por otro lado, se ha adaptado el problema a estas heurísticas (integrando los tiempos de preparación a los tiempos de proceso). En este trabajo se consideran ambas aproximaciones, además de algoritmos usados en TSP y otros problemas de optimización.

4.1.1. Longest Processing Time (LPT) Desarrollada por Graham (1969), esta regla asigna en descendentemente por sus tiempos de proceso, a las

los

primeros trabajos, ordenados

máquinas. Luego, los trabajos restantes

se programan en la máquina que esté libre antes que las otras. La heurística intenta programar los trabajos que requieren menos tiempos de proceso al final de la secuencia, donde puedan usarse para balancear la carga en las máquinas.

21 Aplicación de un algoritmo ACO al problema

|

|

Una modificación de la heurística, que considera los tiempos de setup, se encuentra en Cortés (2009): 1. Generar la secuencia de acuerdo a la regla LPT . 2. Asignar los

primeros trabajos a las

primeras máquinas.

3. Siguiendo la secuencia generada, fijar el trabajo siguiente en la máquina que termine antes de procesarlo considerando los tiempos de setup. La diferencia con la heurística LPT original es sutil: ambas buscan fijar los trabajos en la máquina que lo haga finalizar antes, pero mientras para

|

finaliza antes, para

|

sólo hay que considerar la máquina que

hay que considerar eso, pero originado por el tiempo de setup

entre los trabajos: si es grande, puede evitar que un trabajo

sea asignado en una iteración.

A modo de ejemplo, a continuación se muestra la resolución de un problema con 15 trabajos y 3 máquinas. Los tiempos de proceso se distribuyen uniformemente en preparación en

y los tiempos de

(Anexo 1).

Al ordenar los 15 trabajos de acuerdo a LPT, se obtiene la secuencia dada por la Tabla 4.1: 15

2

13

12

10

6

11

3

5

9

8

14

7

4

1

99

88

82

81

70

64

54

39

35

35

30

23

20

17

11

Tabla 4.1 Secuencia de trabajos de acuerdo a LPT

El segundo paso consiste en asignar los primeras

primeros trabajos (en este caso, 15, 2 y 13) a las

máquinas, como lo muestra la Figura 4.1.

M3

13

M2

2

M1

15 0

20

40

60

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 4.1 Paso 2 de algoritmo LPT

La zona achurada corresponde a los tiempos de setup, y específicamente en la figura anterior, a los tiempos de setup iniciales de cada máquina, dependientes del primer trabajo.

22 Aplicación de un algoritmo ACO al problema

|

|

La asignación posterior sigue el orden de la secuencia LPT, en la máquina que permita que el trabajo finalice antes. Para el trabajo que corresponde inmediatamente a los tres primeros (el 6), la decisión se toma de la forma mostrada en la Figura 4.2

M3

13

M2

12

2

M1

12 15

0

20

40

60

12 80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 4.2 Paso 3 de algoritmo LPT

, pero como se da

En este caso, el menor tiempo de finalización del trabajo 12 se da en

tanto en la máquina 2 como en la 3, se elige la máquina 2 simplemente por un criterio de desempate (menor número de máquina). Finalmente, al seguir este criterio de asignación, la programación de trabajos por medio de la extensión de LPT está distribuida como muestra la Figura 4.3.

M3

13

M2

2

M1

15 0

20

40

60

10

3

14

12

11

8

6

5

9

4 1 7

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.3 Resultado de programación con extensión de LPT

La aplicación de esta heurística para este problema en específico entrega el makespan determinado por la primera máquina y da como resultado:

23 Aplicación de un algoritmo ACO al problema

|

|

4.1.2. Adaptación a LPT La extensión de LPT explicada anteriormente sigue sin considerar la importancia de los tiempos de setup en el ordenamiento inicial, los trabajos sólo se ordenan de acuerdo a su duración. Es por eso que en esta heurística, presentada en Medina (2010), los tiempos de proceso se modifican y se componen del tiempo de proceso y además del tiempo de preparación, de la forma señalada a continuación:

̅

̅ es el valor promedio de todos los tiempos de setup que podría tener el trabajo . ̅



Para este ejemplo, al ordenar estos nuevos tiempos de proceso de acuerdo a LPT, se tiene: 15

2

13

12

10

6

11

3

5

9

8

14

7

4

1

113,2 106,3 94,9 93,7 88,1 83,5 67,9 57,7 52,9 48,7 46,9 38,5 37,5 34,1 28,3 Tabla 4.2 Secuencia de trabajos de acuerdo a la adaptación a LPT

De la misma manera que la extensión de LPT se asignan los trabajos. A partir de ese algoritmo, la programación de trabajos resulta ser como lo muestra la Figura 4.4

M3

13

M2

2

M1

15 0

20

40

60

10

3

14

12

11

8

6

5

9

4 1 7

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.4 Resultado de programación con adaptación a LPT

Casualmente es la misma secuencia y asignación entregada por la extensión de LPT, con el tiempo de finalización:

24 Aplicación de un algoritmo ACO al problema

|

|

4.1.3. Montecarlo 3

Montecarlo es un algoritmo probabilístico desarrollado a mediados de los años 40 por von 4

Neumann, Ulam y Metropolis mientras trabajaban en el Proyecto Manhattan . Su nombre es a partir del Casino de Montecarlo, por su relación con el azar y por ser donde el tío de Ulam gastaba su dinero. Su esencia es usar distribuciones de números aleatorios que representen un proceso en específico para calcular muestras que se aproximen a un comportamiento real. Se utiliza sobre todo cuando no se tiene un algoritmo determinístico para el problema en cuestión. Salazar (2010) define el algoritmo de Montecarlo para el secuenciamiento de la siguiente manera: 1. Determinar de forma aleatoria

secuencias, denotadas por

2. Evaluar cada secuencia respecto a la medida de desempeño considerada. 3. Denotar por

el valor resultante de para la secuencia

, con valor

4. La mejor secuencia

Para este caso el

.

de medida de desempeño es tal que

a minimizar es el makespan,

, y la asignación es la misma de LPT.

Para ejemplificar el funcionamiento de esta aplicación de Montecarlo, se usa el mismo problema 5

presentado con los algoritmos LPT. En el software SPS_PS_Setup (v2012), creado a partir de rutinas adaptadas de SPS_Optimizer (Salazar, 2010), se generan aleatoriamente secuencias que se asignan de la misma manera que las heurísticas modificadas de LPT. Como es una generación aleatoria, los resultados dependen de cada ejecución; en este caso, los resultados están dados por la programación de máquinas de la Figura 4.5

M3

3

1

M2

8

10

15

M1

6 0

20

40

11 12

60

2 9 7

13 4

14

5

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.5 Resultado de una corrida de la heurística de Montecarlo, N=100

El makespan para esta configuración lo determina la máquina 3, y es:

3

Algoritmo que utiliza la aleatoriedad como parte de su lógica. Proyecto dirigido por EE.UU que tuvo como fin el desarrollo de la primera bomba atómica. 5 Desarrollado por el profesor Eduardo Salazar H. ([email protected]) 4

25 Aplicación de un algoritmo ACO al problema

|

|

4.1.4. Mejor Vecino La heurística del mejor vecino se origina en la resolución del problema del vendedor viajero como una solución inicial a ser mejorada por otros métodos de optimización. Es una heurística conocida como greedy, golosa, por elegir la opción más conveniente en cada iteración. Para el problema de programación de la producción de una máquina, consiste en generar

secuencias de acuerdo a

SST (shortest setup time, ordenar los trabajos por tiempos de setup, ascendentemente), cada una de estas secuencias comenzando por cada uno de los

trabajos. La secuencia elegida es la que

minimice la función objetivo. El algoritmo de la heurística del mejor vecino para el secuenciamiento de trabajos en una máquina se define a continuación. 1. Asignar cada trabajo como primer trabajo de la secuencia. 2. Realizar secuenciamiento SST (prioriza el trabajo que genera menor tiempo de preparación) con los trabajos restantes. 3. Calcular la suma de los tiempos de preparación. 4. Seleccionar la secuencia con menor suma de tiempos de preparación. Para el problema que concierne a este trabajo, la heurística del mejor vecino puede utilizarse como punto de partida para la posterior asignación en cada una de las

máquinas. Cortés (2009)

propone un algoritmo doble de resolución, que internamente tiene dos variantes de asignación: antes y después de un límite

definido tanto por el makespan inicial como por el número de

máquinas. El algoritmo se describe de la siguiente manera:

MVA 1. Realizar la secuencia como la heurística del mejor vecino. 2. Obtener el makespan

de la secuencia, como si se trabajara con una sola máquina.

3. Dividir el makespan obtenido por

(número de máquinas). Hacer este valor igual a .

4. Asignar la mayor cantidad de trabajos a la primera máquina (manteniendo la secuencia), hasta que el makespan parcial de la máquina no sea mayor a . Repetir el mismo procedimiento para cada máquina. 5. Si existen trabajos que no han sido programados, elegir el primer trabajo restante y asignarlo en la máquina en donde genere menor makespan parcial. Repetir el mismo procedimiento para cada trabajo restante.

MVD 1. Realizar la secuencia como la heurística del mejor vecino. 2. Obtener el makespan de la secuencia como si se trabajara con una sola máquina.

26 Aplicación de un algoritmo ACO al problema

|

3. Dividir el makespan obtenido por

| (número de máquinas). Hacer este valor igual a .

4. Asignar la mayor cantidad de trabajos a la primera máquina (manteniendo la secuencia), siendo el último trabajo asignado a la máquina el primer trabajo que sobrepase el valor

.

Repetir el procedimiento para cada máquina. 5. Si existen trabajos que no han sido programados, elegir el primer trabajo restante y asignarlo en la máquina en donde genere menor makespan parcial. Repetir el mismo procedimiento para cada trabajo restante.

Usando el mismo ejemplo de prueba, se elige la secuencia que utiliza menor tiempo de setup entre las

18 6 12 22 24 15 15 27 5 21 12 11 27 15 13

generadas por la heurística del mejor vecino (Figura 4.6).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

2 1 1 2 4 3 2 3 1 1 2 1 1 3 1

5 13 12 10 13 15 8 9 10 12 1 11 1 1 11

4 1 1 1 1 1 3 1 1 1 2 2 2 2 2

13 1 11 12 1 11 9 10 12 11 5 1 5 5 1

6 2 2 1 2 2 1 1 1 2 4 2 7 4 2

12 5 1 11 8 1 10 12 11 1 13 5 12 13 5

1 7 2 2 3 2 1 1 2 2 6 4 1 6 4

11 12 5 1 9 5 12 11 1 5 12 13 11 12 13

9 1 4 2 1 4 1 2 2 4 3 8 9 1 6

14 11 13 5 10 13 11 1 5 13 15 6 14 11 12

4 9 8 4 1 6 2 2 4 8 7 3 4 14 9

9 14 6 13 12 12 1 5 13 6 9 15 9 7 4

1 4 3 8 1 9 2 4 8 3 1 7 1 2 2

10 9 15 6 11 4 5 13 6 15 10 9 10 8 10

1 1 7 3 9 2 4 8 3 7 9 1 1 3 9

15 10 9 15 14 10 13 6 15 9 6 10 15 9 6

20 1 1 7 5 16 8 3 14 3 16 16 20 1 16

7 15 10 9 15 2 6 15 14 7 2 2 7 10 2

2 20 16 3 20 1 3 14 8 2 1 1 2 1 1

8 7 2 7 7 14 15 14 4 8 14 14 8 15 14

Figura 4.6 Heurística del mejor vecino

La secuencia generada tiene un makespan

dado por:



Al dividir este resultado por

, se obtiene:



8 2 1 2 3 4 14 8 4 7 8 8 8 22 4

3 8 14 8 4 9 14 4 2 14 4 4 3 6 9

19 8 8 7 4 3 8 4 6 8 6 6 19 16 3

4 3 4 14 2 7 4 2 3 4 8 8 4 2 7

4 19 6 21 6 2 4 6 14 4 8 8 4 6 2

2 4 8 2 3 8 2 3 7 2 3 3 2 3 8

26 26 28 6 20 8 6 14 2 6 14 14 26 19 8

6 6 7 3 6 3 3 7 8 3 7 7 6 4 3

Σ 125 108 100 91 104 78 74 98 75 79 99 92 132 115 82

27 Aplicación de un algoritmo ACO al problema

|

|

Al aplicar la heurística con asignación antes, puede verse que la asignación de trabajos en la máquina 1 hasta la tarea 12 entrega un makespan parcial de 258 y al agregar el trabajo siguiente de la secuencia (11) el makespan pasa a ser 313, con lo que debe dejarse el trabajo 11 asignado en la siguiente máquina, para cumplir que para cada división de la secuencua el makespan sea menor a

(274), según indica el algoritmo. (Figura 4.7)

M3 M2 M1

7 0

20

8 40

9 60

10

12

11

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 4.7 Asignación “antes”

Luego, después de asignar el trabajo 11 y todos los restantes posibles antes del valor

, la

configuración queda como muestra la Figura 4.8.

M3

15

M2

11

M1

7 0

20

14 1

8 40

5 9

60

4

2

13 10

6 12

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.8 Asignación completa del paso 4 del algortimo “antes”

En este caso, sólo queda por asignar el trabajo 3, con lo que se aplica lo especificado en el paso 5 del algoritmo: asignarlo donde la máquina pueda finalizar su proceso antes. Como lo muestra la Figura 4.9, es por esto que termina asignándose a la máquina 1.

M3

15

M2

11

M1

7 0

20

1 8

40

14 5 9

60

4

2

13 10

3 6

12

3 3

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 4.9 Paso 5 del algoritmo

28 Aplicación de un algoritmo ACO al problema

|

|

Por lo tanto, de acuerdo a la heurística del mejor vecino con asignación “antes”, la configuración final de trabajos queda presentada en la Figura 4.10.

M3

15

M2

11

M1

7 0

20

14 1

8 40

5 9

60

4

2

13 10

6 12

3

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.10 Asignación final del algoritmo del mejor vecino con asignación “antes”

Con un makespan

A partir de los datos ya obtenidos al principio de la heurística anterior, la asignación “después” de en la primera máquina es la que se muestra en la Figura 4.11

M3 M2 M1

7 0

20

8 40

9 60

10

12

11

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 4.11 Asignación “después”

A diferencia de la asignación antes de , en este caso el makespan parcial al terminar el trabajo 12 permite programar una nueva tarea que sobrepase este límite

. Como ahora el

makespan es 313, ya no se pueden asignar nuevos trabajos y se pasa a la siguiente máquina. Una vez asignados los trabajos por este método, la distribución de trabajos está en la Figura 4.12

29 Aplicación de un algoritmo ACO al problema

M3

14

M2

1

M1

7 0

20

4

|

2

5

3

13

8 40

|

9 60

6

15

10

12

11

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 4.12 Asignación final del algoritmo del mejor vecino con asignación “después”

Esta heurística, al ir asignando trabajos más allá del límite , llega a la última máquina con una especie de buffer que prevendrá que se tengan que reasignar trabajos, lo que tiene pros y contras, dependiendo del caso: a favor, que se evite perder la secuencia generada inicialmente sin enfrentar un escenario más incierto de programación, pero en contra que pueda entregar resultados muy desbalanceados. El makespan después de la ejecución de este algoritmo es Y por lo tanto, la extensión de la heurística del mejor vecino en este ejemplo arroja el makespan:

{

}

Con la programación determinada por la heurística del mejor vecino, con asignación antes de (Figura 4.10). La diferencia entre las asignaciones antes y después de

para este ejemplo está dada sobre todo

por la división de la secuencia inicial: su asignación en las

máquinas genera un escenario

excesivamente desbalanceado (y por lo tanto, peor) para el caso donde se asigna después, en comparación a la variante antes de

. Esto no necesariamente significa que ese sea siempre el

comportamiento de la heurística, para poder llegar a alguna conclusión de ese tipo es lógico que deben hacerse más pruebas. En el caso del ejemplo, es claro que la configuración desbalanceada está originada por los tiempos de proceso de varios de los trabajos asignados a las máquinas 1 y 2, considerablemente más altos que los de la máquina 3, pero desbalanceos de esta forma pueden ser originados por tiempos de setup grandes en otros casos.

30 Aplicación de un algoritmo ACO al problema

|

|

5. Ant Colony Optimization La inteligencia de enjambre es un enfoque relativamente nuevo para la resolución de problemas que se inspira en el comportamiento social de insectos y otros animales. En particular, las hormigas han inspirado variados métodos y técnicas, una de las más estudiadas es la técnica de optimización conocida como Ant Colony Optimization (ACO). ACO se inspira en el comportamiento de ciertas especies de hormigas cuando buscan su alimento. Estas hormigas depositan feromonas en el suelo para marcar los caminos que deberían seguir los otros miembros de la colonia. Ant Colony Optimization explota un mecanismo similar para resolver problemas de optimización. Desde los años noventa, cuando el primer algoritmo de ACO fue publicado, la técnica atrajo la atención de más investigadores y está disponible un número relativamente grande de aplicaciones exitosas. Por otro lado, un volumen importante de resultados teóricos se ha masificado, lo que entrega una muy útil guía para investigadores en aplicaciones adicionales de ACO.

5.1. Origen en la Biología En los años cuarenta y cincuenta, el entomólogo Pierre-Paul Grassé observó que algunas especies de termitas (Bellicositermes natalensis y Cubitermes) reaccionan a lo que llamó estímulos significantes. Observó que los efectos de estas reacciones pueden actuar como nuevos estímulos significantes tanto para el insecto que lo produjo como para los otros insectos en la colonia. Grassé usó el término estigmergia para describir esta particular forma de comunicación donde los “trabajadores son estimulados por el desempeño logrado”. Las dos características principales que distinguen a la estigmergia de otras formas de comunicación son las siguientes: 

Es una forma de comunicación indirecta y sin símbolos en la que media el ambiente: los insectos intercambian información modificando su entorno.



La información es local: Sólo pueden acceder a ella los insectos que visitan el lugar donde se liberó (o su entorno inmediato).

Variados ejemplos de estigmergia pueden encontrarse en colonias de hormigas: en muchas especies, las hormigas caminan desde y hacia una fuente de comida depositada en el suelo depositando feromonas. Otras hormigas perciben la presencia de feromona y tienden a seguir caminos donde su concentración es mayor. A través de este mecanismo las hormigas son capaces de transportar comida al hormiguero en una forma extraordinariamente efectiva.

31 Aplicación de un algoritmo ACO al problema

|

|

Deneubourg et al. (1990) estudiaron extensivamente esta depositación de feromonas y el consiguiente comportamiento de las hormigas. En un experimento conocido como “del puente doble”, el hormiguero de una colonia de hormigas argentinas (Linepithema humile) fue conectado a una fuente de alimento por dos puentes de igual longitud (Figura 5.1a). En esa configuración, las hormigas comenzaron a explorar los alrededores del hormiguero y eventualmente llegaron a la comida. A lo largo de su camino entre el hormiguero y su fuente de alimentos, las hormigas anrgentinas depositan feromona. Inicialmente, cada hormiga elige al azar uno de los dos puentes, sin embargo, debido a fluctuaciones aleatorias, después de un tiempo uno de los dos puentes presenta una concentración mayor de feromonas y por lo tanto atrae más hormigas. Este puente se vuelve más atractivo, con el resultado que después de un tiempo toda la colonia converge a usar el mismo puente. Los investigadores realizaron el experimento en reiteradas oportunidades y verificaron que cada puente es utilizado el 50% de las veces (Figura 5.2a). Este comportamiento se basa en la autocatálisis, que es el aprovechamiento de retroalimentación positiva; de esta manera, las hormigas buscan el camino más corto entre la fuente de alimentos y el hormiguero. Goss et al. (1989) consideraron una variante del experimento del puente doble en el cual un puente es significativamente más largo que el otro (Figura 5.1b). En este caso, las fluctuaciones aleatorias en la elección inicial de un puente están muy reducidas y un segundo mecanismo juega un rol importante: las hormigas que eligen al azar el puente corto son las primeras en llegar al hormiguero, con lo que este puente recibe antes feromonas que el más largo (Figura 5.2b).

Figura 5.1 Esquema del experimento del puente doble (Dorigo y Stützle, 2004)

32 Aplicación de un algoritmo ACO al problema

|

|

Figura 5.2 Resultados del experimento del puente doble (Dorigo y Stützle, 2004)

Goss et al. (1989) desarrollaron un modelo del comportamiento de estas hormigas, asumiendo que en un momento del tiempo hay una probabilidad

hormigas que utilizaron el primer camino y

de cruzar el primer puente y una

el segundo, hay

de cruzar el segundo, dadas por:

Este modelo fue la principal fuente de inspiración para el desarrollo de la optimización de colonia de hormigas: en ACO, un número predeterminado de hormigas artificiales construye soluciones de un problema de optimización e intercambia información sobre la calidad de estas soluciones por medio de un sistema de comunicación que recuerda al que utilizan hormigas reales.

5.2. La Metaheurística ACO ACO se ha formalizado como una metaheurística para problemas de optimización combinatoria por Marco Dorigo y otros colaboradores. Una metaheurística es un set de conceptos algorítmicos que pueden ser usados para definir métodos heurísticos aplicables a un amplio grupo de problemas diferentes. Es decir, una metaheurística es una estructura algorítmica de propósito general que puede aplicarse a diferentes problemas de optimización con pocas modificaciones. ACO no es la única metaheurística existente, de hecho hay una gran cantidad de procedimientos metaheurísticos creados los últimos 50 años, entre los que se cuentan búsqueda tabú, computación evolutiva, recocido simulado o búsqueda iterativa local, por nombrar unos pocos.

33 Aplicación de un algoritmo ACO al problema

|

|

Para aplicar ACO a un problema de optimización se necesita un modelo adecuado:

que consiste en: 

Un espacio de búsqueda

definido sobre un set finito de variables de decisión discretas

; 

Un set de restricciones



Una función objetivo

La variable genérica

;y a ser minimizada (o maximizada:

).

. Una solución factible

toma valores en

asignación completa de valores a variables que satisfacen todas las restricciones en solución

es una

. Una

es llamada un óptimo global si y sólo si

Este modelo es usado para definir el modelo de feromonas de ACO. Un valor de feromona está asociado con cada componente de la solución posible, esto es, con cada posible asignación de un valor a una variable. Formalmente, el valor de feromona solución

, que consiste en la asignación

posibles se denota por

está asociado con el componente de la

. El set de todos los componentes de solución

.

En ACO, una hormiga artificial construye una solución recorriendo el grafo de construcción, un grafo completo

, donde

es un set de vértices y

obtenerse desde el set de componentes de solución

un set de aristas. Este grafo puede de dos formas: representando los

componentes como vértices o aristas. Para ir creando esta solución, las hormigas artificiales se mueven de vértice en vértice (sin repetirse) recorriendo las aristas del grafo y adicionalmente dejando una cierta cantidad de feromona en los componentes: en los vértices o en las aristas, según se haya definido. La cantidad de feromona que se deposita,

, puede depender de la

calidad de la solución encontrada y esta información es usada por las hormigas subsecuentes como una guía hacia regiones prometedoras del espacio de búsqueda. La metaheurística ACO se describe en la Figura 5.3. Después de su inicialización, itera sobre tres fases: en cada iteración, un número de soluciones se construyen por las hormigas; estas soluciones son mejoradas mediante una búsqueda local (opcional) y finalmente la feromona se actualiza.

34 Aplicación de un algoritmo ACO al problema

|

|

Definir parámetros, inicializar rastros de feromona Mientras ¬(condición) Hacer ConstruirSolucionesdeHormigas AplicarBúsquedaLocal (opcional) ActualizarFeromonas Fin Mientras Figura 5.3 Descripción de la metaheurística ACO (Dorigo y Stützle, 2004)



ConstruirSolucionesdeHormigas: Un set de

hormigas artificiales construye soluciones

desde elementos de un set finito de componentes de soluciones disponibles

{

}

. Una construcción de solución comienza desde una solución parcial vacía

. En cada paso, la solución parcial

solución factible desde el set pueden agregarse a la solución parcial

es extendida agregando un componente de

, que es definido como el set de componentes que sin violar ninguna de las restricciones en

. El

proceso de construir soluciones puede considerarse como un paseo por el grafo de construcción

.

La elección de un componente de solucion de

es guiada por un mecanismo estocástico,

que está influenciado por la feromona asociada a cada uno de los elementos de

. Esta

elección varía en los distintos algoritmos ACO, pero todos ellos fueron inspirados en el modelo de comportamiento dado en la ecuación de Goss et al. 

AplicarBúsquedaLocal: Una vez que las soluciones se construyeron y antes de actualizar las feromonas, es común mejorar las soluciones obtenidas por las hormigas mediante una búsqueda local. Esta fase, que depende específicamente del problema, es opcional, aunque está incorporada en los algoritmos ACO modernos.



ActualizarFeromonas: Su objetivo es aumentar los valores de feromona que están asociados con soluciones buenas o prometedoras y disminuir las asociadas a soluciones malas. Usualmente esto se logra: 

Disminuyendo todos los valores de feromonas a través de evaporación.



Aumentando los niveles de feromonas asociados con un grupo elegido de buenas soluciones.

35 Aplicación de un algoritmo ACO al problema

|

|

5.3. Variantes de ACO Para una major comprensión de cada heurística, estas son explicadas por medio el problema del vendedor viajero, TSP, porque aunque si bien ACO puede aplicarse a una gran variedad de problemas de optimización, con TSP la relación con las rutas que recorren las hormigas es mucho más directa. De hecho, las primeras implementaciones de Ant Colony Optimization fueron para este problema. En TSP, un set de ciudades es dado, la distancia entre ellas es conocida y el objetivo es encontrar la ruta más corta que permita visitar todas las ciudades una sola vez. Formalmente, el objetivo es 6

encontrar un camino hamiltoniano de largo mínimo en un grafo completo.

5.3.1. Ant System (AS) Desarrollado por Dorigo, Maniezzo y Colorni (1991), es el primer algoritmo ACO propuesto en la literatura. Su característica principal es que en cada iteración los valores de feromona se actualizan por todas las

hormigas que construyeron una solución. Las feromonas

, asociadas a la arista

que une los vértices y se actualizan así:



es la tasa de evaporación de feromona, feromona que deposita la hormiga

el número de hormigas y

la cantidad de

, que se define en forma diferente dependiendo de la versión

de Ant System que se usa. Originalmente, el trabajo de Dorigo et al. (1991) considera tres diferentes versiones de AS: antdensity, ant-quantity y ant-cycle. En ant-density la actualización de feromona es inmediatamente después de que la hormiga se desplaza de un vértice a otro y su valor está dado por una cantidad fija

, de la siguiente manera:

{ En ant-quantity la actualización de feromona también es inmediatamente después de que una hormiga recorra un arco, pero a diferencia de ant-density, la actualización considera la distancia que hay entre un vértice y otro: el valor asignado al arco, como se presenta a continuación.

6

Es un grafo no dirigido que visita cada vértice sólo una vez.

36 Aplicación de un algoritmo ACO al problema

|

|

{

De esa manera, se asigna menos feromona a los arcos más extensos. Ant-cycle se diferencia de las otras dos versiones en que la actualización de feromona se hace sólo después que todas las hormigas construyan sus rutas en una función que depende de la calidad de la ruta completa generada. La cantidad de feromona depositada en este caso está definida de la siguiente forma:

{

Donde

es una constante y

es el largo del recorrido hecho por la hormiga

. Como se puede

ver, entre más corta la ruta dada por la hormiga, más feromonas se depositarán, lo que va de acuerdo con el objetivo de minimización. Cuando una hormiga

ha construido una solución parcial

y está en el vértice , elige llegar al

vértice por un procedimiento aleatorio, con una probabilidad

{∑

Donde

es el conjunto de componentes factibles: aristas

no visitada por la hormiga información heurística

Donde

.

y

donde es una ciudad (vértice)

controlan la importancia relativa de las feromonas versus la

, dada por

es la distancia entre dos vértices.

Aunque originalmente AS se componía de tres variaciones, en estos días se considera que al referirse a Ant System se está refiriendo en realidad a ant-cycle, debido a que las otras dos definiciones fueron abandonadas por su desempeño inferior.

37 Aplicación de un algoritmo ACO al problema

|

|

5.3.2. Elitist Ant System (EAS) Es la primera mejora de AS, que se introdujo por Dorigo (1992). Modifica las feromonas entregando más a los arcos pertenecientes a la mejor ruta desde el inicio del algoritmo, Esto se logra agregando una cantidad ⁄ ,y

, donde

(best so far tour).

es un parámetro que define el peso dado a

es su largo. La actualización de feromona entonces, es así:



{

5.3.3. Rank-Based Ant System (ASrank) Esta es otra mejora sobre AS, planteada por Bullnheimer et al. (1999). En este caso, cada hormiga deposita feromona que va descendiendo de acuerdo a su ranking; también se le da más feromonas a los arcos de la mejor ruta, como en EAS. Antes de actualizar las feromonas, las hormigas son ordenadas de acuerdo al largo de su ruta, en orden ascendente; luego cada hormiga deposita feromonas ponderada por su ranking

. En cada iteración sólo las

hormigas mejor

rankeadas y la que ha producido el mejor recorrido (en la iteración o desde el inicio) son las que depositan feromonas. La hormiga con mejor ruta desde el inicio tiene la actualización mayor, con peso



y la -ésima hormiga de la iteración contribuye a la actualización de feromonas con el valor multiplicado por un peso dado por

. Entonces, se actualiza así:



Los resultados de Bullnheimer et al. muestran que su algoritmo tiene mejores resultados que AS y EAS.

38 Aplicación de un algoritmo ACO al problema

|

|

5.3.4. MAX-MIN Ant System (MMAS) Realizado por Stützle y Hoos (1996, 2000) es una mejora de Ant System. Sus elementos característicos son que sólo la mejor hormiga actualiza los rastros de feromona y que su valor está limitado. La actualización de feromonas opera de la forma:

[ y

Donde

]

son los límites superior e inferior de feromona, respectivamente. El operador

se define como:

{

Y el valor de

es

{

es el largo de ruta de la mejor hormiga, que puede ser tanto la mejor de la iteración o la mejor desde el inicio del algoritmo, o combinadas, dependiendo de la programación. Todas las heurísticas descritas son modificaciones mayores o menores de Ant System. A continuación se describe una heurística, que aunque inspirada fuertemente en AS, introduce nuevas funcionalidades ausentes en la heurística original.

5.3.5. Ant Colony System (ACS) ACS es desarrollado por Dorigo y Gambardella (1997) y se diferencia de Ant System en tres puntos: 

Aprovecha la experiencia de búsqueda acumulada por las hormigas mucho más que AS, a través del uso de una regla de acción más agresiva.



La evaporación y el depósito de feromona toma lugar sólo en los arcos del mejor tour desde el inicio del algoritmo.



Cada vez que una hormiga utiliza el arco

para desplazarse de la ciudad (vértice) a la

, remueve algo de feromonas del arco para aumentar la exploración de caminos alternativos.

39 Aplicación de un algoritmo ACO al problema

Cuando una hormiga

|

|

se desplaza de

a , lo hace de acuerdo a la regla proporcional

pseudoaleatoria, dada por

{

{

Donde

}

es una variable aleatoria distribuida uniformemente en

parámetro, y

es un

es una variable aleatoria seleccionada de acuerdo a la distribución de

probabilidades dada por la ecuación de Ant System, con

:

{∑

Lo que que quiere decir que, con una probabilidad

, la hormiga hace el mejor movimiento

posible, de acuerdo a los rastros de feromona aprendidos y la información heurística (aprovecha el conocimiento aprendido), mientras que con probabilidad influenciada de los arcos. La definición de

realiza una exploración

permite controlar el grado de exploración y la decisión

de concentrarse en la búsqueda alrededor de la mejor solución obtenida hasta el momento, o la de la exploración de otras rutas. En Ant Colony System sólo una hormiga (la de la mejor ruta hasta el momento) puede depositar feromonas en cada iteración. Esta es la llamada actualización global y se define como:

La actualización de feromonas a sólo una hormiga tiene especial relevancia: reduce la complejidad computacional de cada iteración de resolviendo. El factor

a

, siendo

el tamaño de la instancia que se está

sigue representando evaporación, con la diferencia que ahora se evaporan

tanto la feromona existente

como la feromona depositada

.

Además de esta actualización de feromona global, en ACS las hormigas también tienen un método de actualización local, que aplican inmediatamente después de cruzar un arco

:

40 Aplicación de un algoritmo ACO al problema

|

|

es el valor inicial de feromona. El efecto de esta regla de optimización local es que cada vez que

, su rastro de feromona

una hormiga utiliza un arco

se reduce, con lo que la arista se

vuelve menos atractiva para las siguientes hormigas, lo que genera un aumento de la exploración 7

de arcos que no han sido visitados y se evita el estancamiento . ACS está basado en Ant-Q, un algoritmo anterior que propusieron Dorigo y Gambardella (1995),

; Ant-Q lo definía como

que se diferencia de ACS en la definición de

8

partir de una definición similar en el algoritmo Q-learning . Si se deja

, a como un valor pequeño

resulta un algoritmo más simple, lo que sumado a que los resultados de los algoritmos no diferían demasiado, Ant-Q fue dejado de lado. MMAS y ACS comparten el hecho que ocupan límites de feromonas: uno explícitamente y el otro

, porque en ambas

implícitamente: en ACS los rastros de feromona nunca serán menores que ecuaciones de feromonas se agrega un valor mayor o igual a

, y este es el valor inicial. Por una



razón similar, los rastros de feromona nunca pueden ser mayores que



implícitamente:

. Por lo tanto,

(Dorigo y Stützle, 2004).

A partir de un significativo número de instancias, en la literatura se recomienda configurar los parámetros de ACO en TSP como se muestra en la Tabla 5.1. Algoritmo AS EAS ASrank MMAS ACS

1 1 1 1 -

2a5 2a5 2a5 2a5 2a5

0,5 0,5 0,1 0,02 0,1

⁄ ⁄ ⁄ ⁄ ⁄

10

Tabla 5.1 Configuración de parámetros para algoritmos ACO (Dorigo y Stützle, 2004)

representa el número de vértices a recorrer y la feromona inicial puede inicializarse con cualquier solución inicial, no estrictamente la del mejor vecino. Además, algunos parámetros adicionales se requieren en las extensiones de AS. EAS: ASrank: El número de hormigas que depositan feromonas MMAS:



y





.



.

es el número

promedio de opciones en cada iteración. ACS: 7

y

Que las hormigas converjan a generar el mismo camino, que puede ser una mala solución. Técnica de aprendizaje por refuerzo que indica qué acción debe ejecutarse dependiendo del estado en que se encuentre el agente. El aprendizaje por refuerzo es un esquema de prueba y error donde un agente computacional aprende a realizar una acción al recibir realimentación evaluativa del medio. 8

41 Aplicación de un algoritmo ACO al problema

|

|

6. Método Propuesto |

6.1. Relación de

|

con TSP

Varios problemas de la programación de la producción comparten similitudes con algunas instancias del problema del vendedor viajero, siendo el caso más directo el de | 

|

:

La secuencia de ciudades a recorrer es análoga a la secuencia de trabajos a programar en una máquina.



Las rutas están determinadas por la distancia entre las ciudades, de la misma forma que la secuencia de trabajos depende de los tiempos de setup.



El objetivo a minimizar en TSP es la distancia recorrida por todas las ciudades, lo mismo que minimizar los tiempos de preparación, ante tiempos de proceso invariables.

Por lo general, en problemas de programación de la producción se trabaja con tienpos de setup

, con lo que la asociación es con el problema aTSP, problema

que no son simétricos del vendedor viajero asimétrico

.

Para el caso con máquinas paralelas idénticas, la analogía se transforma en

-TSP con un

objetivo minmax, que es el problema de múltiples vendedores viajeros ( ), con el objetivo de minimizar el largo de la ruta más extensa, con lo que se equilibran las distancias a recorrer entre los vendedores. Lo mismo que sucede con

|

|

: el objetivo es minimizar el tiempo de

finalización del proceso, lo que se define por la máquina que ocupa más tiempo en el sistema. Entre las múltiples heurísticas de resolución de TSP y sus variantes, han tomado mucha fuerza en los últimos quince años el uso de metaheurísticas, por sus nuevos enfoques al enfrentarse a problemas de optimización, su efectividad y adaptabilidad. Las metaheurísticas ACO han mostrado resultados prometedores en algunos casos y que superan métodos previos, en muchos otros. Por ejemplo, para TSP, dos de las heurísticas más desarrolladas y efectivas de ACO son MAX-MIN Ant System y Ant Colony System, que según los estudios de Dorigo (2004) exhiben comportamientos distintos: MMAS inicialmente entrega soluciones pobres y aunque demora, finalmente entrega las mejores soluciones; en cambio, ACS es el algoritmo ACO más agresivo y entrega las mejores soluciones en un lapso corto y muy cercanas a las que entrega MMAS en tiempos largos, como lo muestra la Figura 6.1. Por tener un mejor balance entre ambas opciones, se opta por usar ACS en la heurística para

|

|

42 Aplicación de un algoritmo ACO al problema

|

|

Figura 6.1 Desviación del valor óptimo vs. tiempo computacional de ACO en 2 problemas TSP (Dorigo y Stützle, 2004)

Heurísticas ACO se han utilizado en la resolución de diversos problemas de programación de la producción y otros, por su relación con el problema TSP. Salazar y Ruiz (2009) presentan un modelo que utiliza ACS para el problema de recolección de residuos domiciliarios por contenedores, que reduce las rutas que deben tomar los camiones recolectores. Behnamian et al. (2009) utilizan MMAS para generar una solución inicial en ejecutan ACS en una adaptación del problema

|

| |

|

, Salazar y Pavón (2011) , que es el problema de flow

shop de permutación con tiempos de preparación dependientes de la secuencia y minimización de makespan, mientras que Salazar y Sánchez (2012) evalúan tres variantes distintas de MMAS en el problema de programación de una máquina con tiempos de setup dependientes de la secuencia,

|

|

.

El algoritmo diseñado para la programación de la producción reemplaza la heurística del mejor vecino presente en Cortés (2009) por ACS y agrega una fase de optimización local en la etapa final de ambas variantes internas (antes/después), que funciona por medio de ACS también.

6.2. Extensión de ACS con Revisión Final El algoritmo, al igual que en la extensión del método del mejor vecino, considera dos variantes internas para la asignación de los trabajos luego de ser secuenciados por ACS: una asignación antes del límite

y otra después. Los trabajos pendientes son localizados en la máquina que

pueda terminar su proceso antes. La última fase de optimización local de las máquinas reordena mediante ACS la máquina más ocupada, que es la que está determinando el makespan del sistema: si se disminuye su valor y una nueva máquina es la más ocupada, se realiza el mismo proceso a este recurso. Este proceso de revisión final nace para amortiguar el efecto que tienen los tiempos de setup iniciales y los generados por la localización de trabajos pendientes.

43 Aplicación de un algoritmo ACO al problema

|

|

ACSA 1. Secuenciar los trabajos de acuerdo a la heurística Ant Colony System. 2. Obtener el makespan

de la secuencia, considerando una configuración de una máquina.

3. Obtener , dividiendo el makespan obtenido por el número de máquinas

.

4. Manteniendo la secuencia inicial, asignar la mayor cantidad de trabajos a la primera máquina, hasta que el tiempo de finalización parcial de la máquina no sobrepase el valor . Repetir para cada máquina. 5. Si todos los trabajos están programados, continuar al paso 6. Si no es así, asignarlos donde se genere un menor makespan parcial. 6. Calcular el makespan. 7. Seleccionar la máquina cuya secuencia genere el tiempo de finalización más grande. 8. Re-secuenciar los trabajos de la máquina seleccionada de acuerdo a la heurística Ant Colony System 9. Si el makespan no se reduce, finalizar. Si el makespan disminuye y la máquina resecuenciada sigue siendo la más ocupada, actualizar y finalizar. Si la máquina ya no es la más ocupada, volver al paso 7.

ACSD 1. Secuenciar los trabajos de acuerdo a la heurística Ant Colony System. 2. Obtener el makespan

de la secuencia, considerando una configuración de una máquina.

3. Obtener , dividiendo el makespan obtenido por el número de máquinas

.

4. Manteniendo la secuencia inicial, asignar la mayor cantidad de trabajos a la primera máquina, de modo que el último trabajo en la máquina será a su vez el primero que sobrepase . Repetir para cada máquina. 5. Si todos los trabajos están programados, continuar al paso 6. Si no es así, asignarlos donde se genere un menor makespan parcial. 6. Calcular el makespan. 7. Seleccionar la máquina cuya secuencia genere el tiempo de finalización más grande. 8. Re-secuenciar los trabajos de la máquina seleccionada de acuerdo a la heurística Ant Colony System 9. Si el makespan no se reduce, finalizar. Si el makespan disminuye y la máquina resecuenciada sigue siendo la más ocupada, actualizar y finalizar. Si la máquina ya no es la más ocupada, volver al paso 7. El makespan generado por el procedimiento heurístico es el menor entre las dos variantes:

44 Aplicación de un algoritmo ACO al problema

|

|

Aplicando el algoritmo para el problema-ejemplo de

y

y usando los parámetros

recomendados por la literatura en ACS para resolver TSP (Dorigo y Stützle, 2004), se obtiene la siguiente secuencia por medio del software SPS_PS_Setup: 2 14 4 10 12 11 1

5 13 6 15 9

7

8

3

88 23 17 70 81 54 11 35 82 64 99 35 20 30 39 Tabla 6.1 Secuencia inicial generada por ACS

Con

Que es completamente distinta a la secuencia inicial de LPT, lógicamente, y también diferente a la generada por la heurística del mejor vecino, sin dejar de considerar eso sí la existencia de “subrutas” que coinciden en ambas secuencias. El makespan

que produce la secuencia total es:



Con lo que el parámetro



resulta ser:

̅ La asignación de trabajos antes de este límite

M3

13

M2

12

M1

2 0

20

40

6 11 14

60

se presenta en la Figura 6.2.

1 4

5 10

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 6.2 Asignación de ACS, antes de L

45 Aplicación de un algoritmo ACO al problema

|

|

En este caso faltan 5 trabajos por asignar, se aplica el mismo procedimiento de los otros algoritmos, programando donde la máquina termine de funcionar antes. De esta manera, la configuración queda tal como muestra la Figura 6.3.

M3

13

M2

12

M1

2 0

20

40

6 11 14

60

15 1

4

5

9

3

10

7

8

80 100 120 140 160 180 200 220 240 260 280 300 320 340

Figura 6.3 Programación de heurística ACSA, hasta paso 5

.

El makespan lo define la máquina 2, y es

En este punto, la heurística revisa si esta máquina 2 puede finalizar su operación antes, reordenando su secuencia con este objetivo, mediante ACS. Resulta que hay una secuencia de estos trabajos que termina antes, como lo muestra la Figura 6.4:

M3

13

M2

3

12

M1

2 0

20

6

40

11 14

60

15

4

1 10

5

9 7

8

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 6.4 Revisión de ACSA en máquina 2

El makespan parcial de la máquina 2 pasa a ser 282 y como la máquina 1 es ahora la más ocupada, el makespan del sistema es

.

Como es una nueva máquina la más ocupada, el algoritmo nuevamente revisa si ACS puede determinar un reordenamiento que entregue un makespan menor, situación que se da nuevamente (Figura 6.5).

46 Aplicación de un algoritmo ACO al problema

M3

|

|

13

M2

6

3

12

M1

11

2 0

20

40

14 60

15

4

1

7

5

9

8

10

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 6.5 Revisión de ACSA en máquina 1

El nuevo makespan parcial de la máquina 1 es 279, pero como M3 es ahora la máquina más

.

ocupada, el makespan del sistema cambia a

Una vez más, al cambiar la máquina que determina el makespan del sistema, se revisa si algún reordenamiento puede seguir reduciéndolo. Esta vez no es posible, con lo que la secuencia final de ACSA es la misma obtenida en la iteración anterior y, por lo tanto, el makespan es

. , los trabajos quedan asignados de esta

Ahora, en cuanto a la asignación después del límite manera, a partir de la secuencia ACS inicial (Figura 6.6)

M3

15

M2

11

M1

1 2

0

20

40

9 5

8

13 14

60

7

4

3 6

10

12

80 100 120 140 160 180 200 220 240 260 280 300 320 340 Figura 6.6 Asignación de ACS, después de L

En este ejemplo todos los trabajos ya han sido asignados a partir de la secuencia inicial que produjo ACS, por lo que también es la programación hasta el paso 5 del algoritmo ACSD. El makespan lo define la máquina 1, y es

.

Posteriormente, se revisa la posibilidad de que el makespan de la máquina 1 pueda disminuir; este no es el caso, por lo que la asignación que entrega ACSD es la mostrada en la Figura 6.5 y su makespan es

.

47 Aplicación de un algoritmo ACO al problema

|

|

Finalmente, el makespan que entrega la heurística ACS con revisión es el menor entre las variantes ACSA y ACSD:

{

}

Makespan cuya programación corresponde a la que generó la sección ACSA de la heurística, representado en la Figura 6.5. Los resultados que entregaron las cinco heurísticas para el problema ejemplo se presentan en la Tabla 6.2. Heurística

LPT 336

xLPT 336

MC-100 311

MV 309

ACS(S) 297

ACS(C) 283

Tabla 6.2 Makespan del problema ejemplo en distintas heurísticas

Al menos para este problema ejemplo se puede observar que la secuenciación inicial mediante ACS reduce el makespan del problema de máquinas paralelas, en comparación con su método “hermano” (extensión del mejor vecino) y que la optimización llevada a cabo por ACS en la etapa de revisión del algoritmo propuesto lo reduce y en una mayor proporción, incluso. Esta última etapa resulta ser muy exitosa debido al balanceo de cargas entre las máquinas; de hecho, la diferencia entre la primera máquina en terminar y la última no supera los 5 segundos. Por otro lado, Montecarlo muestra el potencial de generar makespan similares a los de la extensión del mejor vecino. Por último, las heurísticas basadas en Longest Processing Time exhiben un desempeño inferior al de los otros procedimientos y que no se diferencia al menos en este ejemplo. Evidentemente, esta es sólo una comparación ilustrativa. Una comparación mucho más acabada de cada uno de los métodos heurísticos se presenta en el Capítulo 7, con instancias para problemas de complejidad superior.

48 Aplicación de un algoritmo ACO al problema

|

|

7. Evaluación y Análisis de Resultados 7.1. Información Preliminar Para la evaluación de la efectividad del método heurístico propuesto y las demás heurísticas expuestas, es necesario definir los parámetros involucrados en la programación del problema

|

|

, de manera que presenten variabilidad y prueben las heurísticas en distintos

escenarios. Estos parámetros básicos son: 

Número de trabajos, .



Número de máquinas,



Tiempos de proceso de los trabajos,



Tiempos de setup dependientes de la secuencia de trabajos,

. .

Ya que el problema en sí no es cubierto extensamente, en la literatura asociada es común generar problemas artificiales. La cantidad de trabajos y máquinas en estos trabajos aunque no es la misma, tiende a coincidir: Kurz et al. (2001) usan utilizan

y

y

, Behnamian et al. (2009)

, respectivamente, França et al. (1996)

y

; mientras que Gendreau et al. (2001) experimentan con un número más amplio de valores,

y

. En Mendes et al. (2002), al igual que França et al. eligen una

proporcionalidad entre trabajos y máquinas:

y

al. (2007) mantienen fijo el número de máquinas en 6 y

. Por último, Rocha et

varía entre 10 y 100.

En cuanto a los tiempos del sistema existe más divergencia: Kurz y Behnamian con sus colaboradores establecen los tiempos de acuerdo a aplicaciones del mundo real, el primer trabajo plantea dos escenarios, donde los tiempos de setup son en promedio iguales a los de proceso y otro donde los tiempos de proceso multiplican por 10 los de setup. El segundo trabajo considera que los tiempos de setup son aproximadamente entre el 20 y 40% de los tiempos que demoran las tareas en ejecutarse, con lo que plantea que

, además de

. Los otros autores estudiados asignan los tiempos aleatoriamente sin ninguna referencia real, pero manteniendo lógicas similares a los autores anteriores: França et al. equilibran ambos

tiempos,

en

valores

más

bajos,

comparando

con

las

otras

referencias:

. Gendreau et al. diferencian los promedios de tiempos de setup y proceso, con

, mientras que Mendes et al. dejan los mismos escenarios

de Kurz et al: uno donde los tiempos de setup y proceso son en promedio iguales, y otro donde son el 10% de los tiempos de trabajo. Rocha et al. están más cerca de la consideración de Behnamian y sus colaboradores, considerando los setup aproximadamente un 40% de los tiempos de proceso.

49 Aplicación de un algoritmo ACO al problema

|

|

7.2. Escenarios de Evaluación Es en base a esta información, y con el objetivo de acercar el planteamiento teórico a las aplicaciones prácticas, que las heurísticas se estudiaron de acuerdo a tres escenarios en lo que a y

respecta:

Lo que hace que progresivamente aumente la complejidad del problema, manteniendo una relación de aproximadamente 10 trabajos en cada máquina, mismo criterio utilizado en Cortés (2009) y Medina (2010). En cuanto a los tiempos involucrados en

|

|

, para ver la influencia de los tiempos de

preparación en la resolución, se ha resuelto plantear dos escenarios:

Un nivel alto y otro bajo, para contrastar con los tiempos de proceso, distribuidos uniformemente:

Los tiempos de setup que están asociados al primer trabajo a procesarse en una máquina son considerados y están definidos tal como los otros tiempos de setup, en un nivel alto y bajo:

A continuación se definen todos los escenarios: Setup Alto

U[1,100]

U[1,100]

Bajo

U[1,30]

U[1,100]

3 5 10 3 5 10

30 50 100 30 50 100

Tabla 7.1 Escenarios considerados para la comparación de las heurísticas

En la notación de los resultados expuestos LPT representa la heurística extensión de LPT para trabajos con setup, xLPT su adaptación, con tiempo de setup promedio considerado; MC es la heurística Montecarlo, MV la del Mejor Vecino y ACS es la heurística Ant Colony System con Revisión.

50 Aplicación de un algoritmo ACO al problema

|

|

Cada vez que se compare porcentualmente los resultados de una heurística

con otra , es por

medio de la razón:

De esta manera, combinadas todas las posibilidades descritas, las heurísticas se resolvieron en 6 escenarios distintos, en las que se ejecutaron 20 repeticiones para poder apreciar de mejor manera el comportamiento de las opciones de resolución. Para el caso de la heurística basada en Montecarlo, se definió el

a utilizar mediante una prueba preliminar en el problema de

máquinas, entre

, eligiendo la que entregue la mejor

solución en un tiempo razonable. Los resultados de las heurísticas LPT, Montecarlo y del Mejor Vecino se registran mediante la ejecución de una sola repetición por instancia, a diferencia de la heurística ACS con Revisión, donde se consideran 10 repeticiones. Esto es porque la heurística ACS es un procedimiento pseudoaleatorio que considera una sola solución inicial, sujeta por tanto a variaciones entre una ejecución y otra. En el otro procedimiento aleatorio (Montecarlo) no se hace lo mismo, sólo por el hecho que

define internamente un número de repeticiones donde se elige la mejor.

Las 120 distintas consideradas se generan en el software Microsoft Excel mediante la función ALEATORIO() y luego se ejecutan en SPS_PS_Setup, diseñado para resolver cada instancia del problema y cuya interfaz se muestra en la Figura 7.1. El software se ejecuta en un computador con procesador Intel Core i5-460M de 2.53 GHz y 4 GB de memoria RAM con el Sistema Operativo Windows 7 Home Premium. Sistema de Programacion de Maquinas Paralelas con Setup Prof. Eduardo Salazar H. DII-Universidad de Concepcion / Chile Ingrese Archivo…: ejemplo.txt Heuristicas Maquinas Paralelas 1 LPT_Setup 2 LPT_xSetup 3 MV_A 4 MV_D 5 Montecarlo 6 ACS_PS Ingrese Heuristica: _ Figura 7.1 Interfaz de software SPS_PS_Setup

51 Aplicación de un algoritmo ACO al problema

|

|

7.3. Definición de Parámetros 7.3.1. Montecarlo Para definir el ,

usado en la heurística Montecarlo, se ejecutaron 20 instancias en el problema con y tiempos de setup en nivel alto, uno de los problemas de mayor complejidad

entre los 6 expuestos anteriormente, debido a su tamaño. Los valores de

analizados fueron 10,

100, 1.000, 10.000, 100.000 y 1.000.000. Como la primera ejecución de

demoró

más de 10 minutos, se decidió excluir del análisis. Los makespan generados son los que se exponen en la Tabla 7.2 Instancia

MC10

MC100

MC1000

MC10000

MC100000 MC1000000

1

758

742

711

706

695

689

2

819

791

776

760

747

733

3

796

749

739

718

711

699

4

751

715

711

704

693

682

5

770

746

718

702

690

692

6

741

716

706

696

681

669

7

726

705

696

674

670

657

8

833

793

795

775

767

758

9

818

784

770

750

744

732

10

782

752

736

739

722

701

11

728

717

690

700

687

659

12

720

704

675

664

661

648

13

774

747

745

739

721

707

14

795

746

737

720

718

715

15

726

739

710

706

692

684

16

761

741

721

706

705

684

17

758

708

709

687

684

680

18

756

743

724

714

703

685

19

757

735

726

717

700

699

20

761

735

710

714

699

691

Tabla 7.2 Makespan para MC100A

En promedio, y como es de esperar, los tiempos de finalización van mejorando a medida que el valor de

aumenta, disminución expresada de esta forma.











Si bien parece que una disminución del makespan de 1 o 2% puede ser baja, se traduce en alrededor de 10 segundos, lo que en el largo plazo ayuda a disponer antes de los productos y máquinas, además de tener un menor uso de estas últimas.

52

|

Aplicación de un algoritmo ACO al problema

|

En cuanto al tiempo de ejecución de las heurísticas, varía en promedio desde una fracción de segundo a más de un minuto, como puede verse en la Tabla 7.3: M10

M100

M1000

M10000

M100000

M1000000

0,00

0,01

0,07

0,71

7,08

70,78

Tabla 7.3 Tiempos de ejecución promedio para MC100A

Los tiempos de ejecución pasan de ser en promedio menores a 0,01 segundos para los casos de a irse multiplicando por 10 a medida que

se multiplica por 10 también, hasta llegar a

ser un poco más de un minuto en el caso de

. Si bien es un valor considerablemente

mayor a los que toma la ejecución de las otras cinco instancias, sigue siendo un tiempo que no es grande y permite analizar un millón de alternativas sin la necesidad de ir haciendo repeticiones. El tiempo es la misma razón por la que no se considera Montecarlo con un

, ya no es

práctico mejorar resultados en un 1% esperando 10 minutos más. De esta manera, se considera

y los makespan registrados quedan para la

comparación con las otras heurísticas en este escenario.

7.3.2. Extensión de ACS con Revisión Final Dorigo y Stützle, en el libro básico de la metaheurística (Ant Colony Optimization, 2004), recomiendan que para asegurar un buen desempeño en la aplicación de Ant Colony System para TSP los parámetros involucrados deben definirse de la manera presentada a continuación:

Parámetros determinados a partir de la experiencia en la resolución de ese problema de optimización. Para el caso de

|

|

, se compararon las secuencias iniciales de

trabajos

generadas por ACS, para ver la influencia directa de las primeras tres variables expuestas. Los valores de cada parámetro se definieron por medio de combinaciones alrededor de estos números recomendados. Específicamente, las combinaciones son a partir de los siguientes números:

53

|

Aplicación de un algoritmo ACO al problema

|

Para comenzar la comparación, se ejecutan las 27 combinaciones de parámetros en 10 instancias diferentes del problema más complejo entre los escenarios de evaluación planteados, en el que está definido definir el

y tiempos de setup en un nivel alto, que es el mismo problema usado para

en Montecarlo. Los resultados de esta comparación se encuentran en el Anexo 2 y se

resumen en la Figura 7.2.

5900 5700 5500 5300 5100 2.5.85 2.10.90 2.15.95 3.5.85 3.10.90 3.15.95 5.5.85 5.10.90 5.15.95 2.5.90 2.5.95 2.10.85 2.10.95 2.15.85 2.15.90 3.5.90 3.5.95 3.10.85 3.10.95 3.15.85 3.15.90 5.5.90 5.5.95 5.10.85 5.10.95 5.15.85 5.15.90

4900

1

2

3

4

5

6

7

8

9

10

Figura 7.2 Comparación de combinaciones de parámetros para ACS

Al ser complicado verificar sólo con este gráfico si alguna combinación es mejor que otra, es pertinente hacer un análisis más detallado. Un ranking de los promedios de makespan que generan las distintas configuraciones se muestra parcialmente en la Tabla 7.4 y completamente en el Anexo 2. Parámetros

Promedio

Desv. Est.

2.15.90

5359,9

286,4

2.10.85

5369,4

282,4

2.10.95

5369,8

288,5

2.5.85

5370,5

289,4

2.15.85

5374,4

289,2

3.5.85

5378,8

288,0

2.10.90

5379,3

280,9

3.15.85

5379,3

281,7

2.5.90

5379,7

279,0

3.10.85

5380,2

277,5

Tabla 7.4 Ranking de los primeras 10 combinaciones de parámetros, según makespan

Por otro lado, es necesario verificar cuan robusta es la generación de makespan de una combinación de parámetros, debido a que el promedio oculta esa información. Una forma de

54

|

Aplicación de un algoritmo ACO al problema

|

observarlo es registrar cuantas veces una combinación es la mejor o está entre las mejores (o las peores). La Tabla 7.5 muestra las cinco mejores, según su lugar promedio en cada una de las 10 instancias del problema y refleja en qué porcentaje una combinación se ubica entre las tres primeras. Instancia

2.15.90 2.5.85 2.10.85 2.10.95 2.15.85

1

2

1

7

3

4

2

2

8

4

1

5

3

1

9

4

2

7

4

3

3

1

5

9

5

3

4

7

4

1

6

1

2

4

5

3

7

3

6

12

4

12

8

2

3

5

8

12

9

2

9

1

10

11

10

3

8

8

13

4

% en “podio”

100%

40%

20%

30%

20%

Tabla 7.5 Posiciones de las mejores cinco combinaciones

La

heurística

ACS

que

combina

y

es

la

que

muestra

consistentemente el mejor comportamiento entre las 27 alternativas: es dos veces el valor mínimo, cuatro veces el segundo valor y cuatro veces el tercero; no sale de esas posiciones. En cambio, todas las otras opciones tienen un comportamiento más errático, llegando a ser la primera en una instancia y la 13° en otra, además que no llegan a estar entre los tres mejores resultados ni el 50% de las instancias, lo que nunca es deseable. En la otra vereda, las cinco combinaciones que muestran el comportamiento más pobre son las que muestra la Tabla 7.6: Instancia

3.5.95 5.15.95 5.10.95 5.5.95 5.5.90

1

15

24

20

27

22

2

15

19

27

26

25

3

21

20

24

24

27

4

27

25

22

26

22

5

27

24

9

25

26

6

26

19

24

18

20

7

23

26

27

21

24

8

13

26

27

19

19

9

22

18

27

22

26

10

23

20

14

21

27

% en “podio”

30%

30%

40%

40%

50%

Tabla 7.6 Posiciones de las peores cinco combinaciones

55 Aplicación de un algoritmo ACO al problema

|

|

Si se agrupan las combinaciones de acuerdo a los distintos niveles que tienen los parámetros, se aprecia claramente que el valor de

influye directamente en el desempeño de la heurística para

minimizar el makespan de la secuencia de trabajos inicial: mientras más bajo es

, se llega a

mejores soluciones de makespan; de hecho, las cinco mejores combinaciones del set de 27 son con

y siete de las ocho peores son con

. No es difícil explicar el porqué:

es el 9

parámetro que determina la importancia relativa que se le da a la información heurística , con lo que si es mayor, en cada iteración el algoritmo tenderá a comportarse más cercano a un algoritmo

.

greedy en cada iteración, siempre y cuando

Por otro lado, para este problema los valores de

y

no ejercen una influencia tal que

determinen por sí mismos el desempeño de la heurística, sí combinados con

: se encuentran

configuraciones buenas (pero no las mejores) en niveles bajos, medios y altos de valores de

y

con

.

Para determinar finalmente qué parámetros se utilizaron en la experimentación de la heurística ACS con Revisión, se eligió el set de cinco mejores combinaciones para testearlos en cinco problemas distintos a los que se utilizaron en la prueba preliminar, repitiendo cinco veces. De esta manera, pudo verificarse con mayor seguridad el desempeño de una y otra opción, así como cuándo la búsqueda de la solución se estabiliza dentro de los 5000 ciclos de prueba, importante para eliminar tiempo de ejecución computacional innecesario. Para ejemplificar el comportamiento, se muestran los resultados de una instancia del problema (Tabla 7.7). 1

2

3

4

5

Promedio Desv. Est.

2.15.90 4881 4869 4882 4893 4889

4882,8

9,18

2.5.85

4883 4915 4885 4911 4888

4896,4

15,32

2.10.85 4880 4888 4891 4896 4872

4885,4

9,48

2.10.95 4887 4907 4886 4925 4910

4903,0

16,54

2.15.85 4900 4893 4905 4882 4890

4894,0

8,92

Tabla 7.7 Makespan obtenidos con las cinco combinaciones de parámetros

Las cinco combinaciones seleccionadas no se comportan establemente, entregando distintos resultados, esto es porque ACS es un procedimiento pseudoaleatorio dirigido, con lo que la mejor solución en ese espacio factible tan grande puede ser desplazada por una solución que sigue siendo buena, debido a las bondades de la exploración de las hormigas. De hecho, las soluciones 9

Para ACO, información proporcionada al principio de la ejecución de la heurística. En el caso de TSP, son las distancias entre las ciudades y en el de | | , los tiempos de setup. Se opone a la información de feromona, que va cambiando a medida que se desarrolla la heurística ACO.

56 Aplicación de un algoritmo ACO al problema

|

|

por lo general están separadas entre 10 y 20 segundos. Pese al comportamiento descrito, puede observarse una tendencia: la heurística ACS que combina

y

nuevamente es la que en promedio genera menores makespan, seguida muy de cerca por la de parámetros

, aunque la última tiene una desviación ligeramente

y

mayor. La Figura 7.3 permite verificar gráficamente estas características en una de las instancias. 4940 4920 4900 4880 4860 4840 2.15.90

2.5.85

2.10.85 1

2

3

4

2.10.95

2.15.85

5

Figura 7.3 Makespan obtenidos con las cinco combinaciones de parámetros

Estas observaciones no sólo se rescatan de la instancia ejemplificada, sino que con pocas diferencias se presentan en las otras cuatro: en todas ellas la heurística con parámetros y

es la que en promedio entrega el menor makespan, además que en 4 de las

5 instancias es el mejor valor entre todos y donde no lo es, es el segundo mejor. La información de las cinco instancias se presenta en el Anexo 2. Es por todas estas razones que se resuelve trabajar la heurística ACS para el problema

|

|

con los parámetros:

Ahora, para fijar el número de iteraciones que tendrá como máximo la heurística para buscar una solución, se utilizan las mismas instancias y repeticiones resueltas por esta combinación de parámetros, pero ahora considerando cada iteración donde el makespan de la secuencia inicial fue mejorando. La información de dos instancias se resume en la Figura 7.4.

57

|

Aplicación de un algoritmo ACO al problema

|

5690 5640 5590 5540 0

500

1000

1500

2000

2500

2

3

2000

2500

2

3

1

3000 4

3500

4000

4500

5000

4000

4500

5000

5

5600 5550 5500 5450 5400 0

500

1000

1500 1

3000 4

3500 5

Figura 7.4 Comportamiento de ACS en 5000 ciclos para dos instancias distintas

En estos casos, una repetición es la mejor cerca del ciclo 5000, tres repeticiones encuentran su mejor solución alrededor del ciclo 4000, dos cerca de 3000, dos alrededor de 2000 y otras dos cerca del ciclo 1000, lo que muestra que es bien variable la convergencia de una solución, porque tiene un factor aleatorio considerable. Es por esto que es mejor observar cuántas veces se llega a mejorar la solución en cierto ciclo y cuánto se mejora. Ciclo

Dism. Makespan Frecuencia Frecuencia relativa

0-10

4172,84

25

100%

11-500

79,2

25

100%

501-1000

9,75

24

96%

1001-1500

7,41

22

88%

1501-2000

5,05

21

84%

2001-2500

3,16

19

76%

2501-3000

5

18

72%

3001-3500

4,07

15

60%

3501-4000

1,92

12

48%

4001-4500

5,6

10

40%

4501-5000

5,67

6

24%

Tabla 7.8 Ciclos de mejora de solución y disminución de makespan

58 Aplicación de un algoritmo ACO al problema

|

|

Es claro que la mejora más importante se da en los primeros 2000 ciclos, y por sobre todo los primeros 10, donde disminuye de forma radical una solución generada aleatoriamente. Este comportamiento es característico de ACS y fue una de las razones de su elección sobre otras heurísticas ACO. La cantidad de repeticiones donde la heurística llega a mejorar va disminuyendo a medida que los ciclos aumentan, llegando a ser un 24% entre los ciclos 4500 y 5000, prácticamente la mitad que en el ciclo inmediatamente anterior. Esta situación “real” se refleja en la Tabla 7.9, donde se asigna un valor 0 en todos los intervalos donde ya no se mejore la solución obtenida (entre el mejor encontrado y el último evaluado, 5000). Ciclo

Disminución Makespan

0-10

4172,84

11-500

79,2

501-1000

9,36

1001-1500

6,52

1501-2000

4,24

2001-2500

2,4

2501-3000

3,6

3001-3500

2,44

3501-4000

0,92

4001-4500

2,24

4501-5000

1,36

Tabla 7.9 Disminución “real” de makespan en cada tramo de ciclos

Como en más de la mitad de las instancias el makespan disminuye hasta el ciclo 3500, se eligió ese número como el tope de iteraciones para la generación de la secuencia inicial por medio de ACS. Si bien puede seguir mejorándose ese makespan, se incurre un tiempo innecesario de resolución para mejorar tiempos que se redistribuirán en las

máquinas y serán de magnitudes

muy similares a los que se reducen en la etapa de optimización del algoritmo, la última etapa de ACS con Revisión. De esta manera, al utilizar 3500 ciclos de límite en vez de 5000 para minimizar los tiempos de setup en una secuencia de trabajos, se reduce considerablemente el tiempo de ejecución computacional, un 30% aproximadamente para el caso en que se hicieron las pruebas (

,

y tiempos de setup en nivel alto): de un poco más de 50 segundos a alrededor de 35 segundos. Con estos parámetros definidos, la heurística ACS con Revisión se ejecutará 10 veces para una misma instancia, de modo que la que genere menor makespan se comparará a cada una de las otras cinco heurísticas.

59 Aplicación de un algoritmo ACO al problema

|

|

7.4. Resultados 7.4.1. Nivel de Setup Alto Primero se compara la heurística propuesta sin optimización final con los otros cuatro procedimientos. n=30

n=50

n=100

LPT xLPT MC MV ACS(S)

LPT xLPT MC MV ACS(S)

LPT xLPT MC MV ACS(S)

1

921

964

737 661

647

814

890

706 643

603

794

772

689 642

637

2

948

905

754 720

647

774

728

669 630

573

800

788

733 695

622

3

923

902

725 686

636

871

869

738 681

661

754

757

699 648

633

4

887

880

682 662

602

778

795

664 588

571

747

709

682 633

624

5

958

975

703 663

627

949

847

714 637

629

725

767

692 642

620

6

982

1032 810 767

701

815

859

684 620

586

733

743

669 601

592

7

845

893

692 579

591

827

847

699 652

621

718

699

657 609

578

8

841

899

609 548

530

901

864

729 645

658

805

846

758 682

653

9

850

950

672 676

566

809

796

713 611

637

801

775

732 659

641

10

970

919

686 602

610

854

800

734 655

615

752

773

701 663

632

11

820

869

724 672

653

855

837

710 597

626

745

730

659 618

576

12

987

1013 760 664

609

868

901

755 660

659

678

726

648 567

595

13

814

874

600 564

535

850

836

728 645

630

768

788

707 647

655

14

827

862

720 629

638

826

819

701 608

614

745

744

715 654

601

15

772

872

609 526

531

790

823

655 566

563

757

733

684 615

579

16 1014

914

777 749

699

678

659

609 543

525

763

746

684 605

606

17

858

905

672 603

585

806

862

702 632

629

730

749

680 606

615

18

792

825

672 644

580

873

811

708 641

629

746

767

685 628

586

19 1065

992

716 697

689

867

869

762 686

646

732

755

699 636

597

20

845

637 561 538 781 806 660 597 587 786 773 691 645 Tabla 7.10 Resultados de makespan para el nivel de setup alto

597

886

El menor makespan de cada instancia está subrayado y con negrita y muestra que el efecto que tiene el cambio de Mejor Vecino a ACS en la secuenciación inicial es disminuir el makespan en el 85% de las instancias para

y en el 80% del resto de los casos (

y

). Los

tiempos que demoró la ejecución computacional se muestran a continuación. LPT xLPT

MC

MV

ACS

n=30 0,00 0,00 15,43 0,00 4,96 n=50 0,00 0,00 26,07 0,00 10,83 n=100 0,00 0,00 70,78 0,02 37,19 Tabla 7.11 Tiempo promedio de ejecución para nivel alto de setup

Tiempos que varían entre una fracción de segundo para LPT y Mejor Vecino en todos los casos y tiempos menores a un minuto en heurísticas aleatorias, salvo Montecarlo para

.

60

|

Aplicación de un algoritmo ACO al problema

|

El desempeño de los procedimientos heurísticos para el problema con

y

puede

diferenciarse con mayor claridad en la Figura 7.5.

1080 980 880 780 680 580 480 0

1

2

3

4

5

6

7

LPT

8

9

xLPT

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.5 Resultados para el problema con

MC ,

ACS(S) y nivel de setup alto

Se observa que los makespan generados se agrupan en 2: un grupo de tiempos de finalización altos (LPT y xLPT) y otro distanciado del primero, donde está Mejor Vecino, Montecarlo y ACS, siendo esta última la que tiene en promedio menores valores. Esto es establecido numéricamente al calcular las diferencias promedio entre las heurísticas: a la mejor heurística, ACS, sigue la heurística del Mejor Vecino, teniendo tiempos de finalización 5,38% más altos, luego sigue Montecarlo con 14,41% y mucho más lejos las dos variaciones de LPT, con 47,37% para LPT y 50,48% en la adaptación de LPT con tiempos de setup promedio, que en términos prácticos representan diferencias de 33, 87, 287 y 304 segundos, respectivamente, en tiempos alrededor de 600 segundos. Estas diferencias se detallan en el Anexo 3. 1000 900 800 700 600 500 0

1

2

3

4

5 LPT

6

7

8 xLPT

9

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.6 Resultados para el problema con

MC ,

ACS(S) y nivel de setup alto

61 Aplicación de un algoritmo ACO al problema

A diferencia del escenario con

|

|

, para

la heurística del Mejor Vecino se diferencia en

un mayor grado de Montecarlo, debido a que el problema se vuelve más complejo, y por lo tanto el espacio de soluciones factibles es más grande, con lo que es más improbable encontrar buenas soluciones buscando con un procedimiento aleatorio. De todas maneras, la mejor heurística sigue siendo ACS con Revisión y en promedio, el makespan generado por el procedimiento del Mejor Vecino es un 2,31% mayor, lo sigue Montecarlo con un 14,56% y luego LPT y xLPT con valores muy similares: 35,27% y 34,77% sobre ACS, respectivamente. En promedio, estos porcentajes sobre ACS implican una diferencia de 14 segundos en relación a Mejor Vecino, 89 con Montecarlo y alrededor de 215 segundos (casi cuatro minutos) en comparación a las heurísticas LPT, que reflejan un porcentaje alto del tiempo total en el sistema (610 segundos de promedio, para ACS).

840 790 740 690 640 590 540 0

1

2

3

4

5

6 LPT

7

8 xLPT

9

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.6 Resultados para el problema con

En el caso con

MC

ACS(S)

,

y nivel de setup alto

sigue presentándose la distancia entre Montecarlo y la heurística del Mejor

Vecino con ACS a medida que el tamaño del problema crece. Un problema crecientemente más complejo sigue sin afectar mayormente a la heurística ACS, aunque el desempeño de las otras se acerca: ACS es seguido una vez más por la heurística MV, con makespan 3,77% mayores, Montecarlo con 13,34% y LPT junto a xLPT con diferencias de 23,29% y 23,76%, que implican tiempos de 23, 81, 142 y 145 segundos en tiempos de sistema que son en promedio desde 610 segundos. La evolución de todas estas diferencias para los casos estudiados se representa en la Tabla 7.12. LPT

xLPT

MC

MV

n=30 50,48% 47,37% 14,41% 5,38% n=50 35,27% 34,77% 14,56% 2,31% n=100 23,29% 23,76% 13,34% 3,77% Tabla 7.12 Diferencias de makespan en nivel de setup alto

62 Aplicación de un algoritmo ACO al problema

|

|

7.4.2. Nivel de Setup Bajo Los makespan generados por todas las instancias en un nivel de setup bajo comparado con los tiempos de proceso se presentan en la Tabla 7.13. n=30

n=50

LPT xLPT MC MV ACS(S)

n=100

LPT xLPT MC MV ACS(S)

LPT xLPT MC MV ACS(S)

1

673

639

623 612

581

734

732

695 682

641

601

601

593 583

547

2

669

654

610 614

576

613

617

590 565

553

626

638

622 594

585

3

640

615

597 587

546

680

672

653 626

611

642

643

641 628

603

4

563

548

489 465

454

665

664

628 612

576

623

634

617 582

580

5

607

592

538 528

496

653

645

620 626

569

563

571

557 545

542

6

625

608

557 530

518

664

669

632 605

588

614

605

608 601

568

7

571

596

522 520

484

622

646

596 591

570

652

659

657 645

613

8

550

578

497 492

467

590

585

565 537

531

568

575

570 566

529

9

616

645

572 568

524

660

666

628 607

587

609

606

591 593

573

10 645

644

578 572

549

600

589

550 559

536

565

554

557 532

516

11 654

656

607 575

564

599

591

567 565

528

624

632

630 620

605

12 523

519

482 479

440

664

666

637 629

590

646

632

622 616

586

13 712

724

655 650

626

643

650

606 602

581

551

559

558 543

521

14 678

662

607 589

593

651

656

614 576

570

620

623

607 603

568

15 686

712

644 618

595

627

634

598 568

556

585

589

577 555

530

16 627

640

575 541

545

630

631

609 568

555

602

603

595 590

559

17 692

701

636 619

601

633

635

607 612

574

667

662

664 653

629

18 628

632

581 564

545

678

672

674 662

646

591

590

589 567

566

19 567

589

510 503

480

555

542

529 523

522

541

550

546 549

517

20 731

729

685 666

657

623

624

598 598

570

604

598

600 592

569

Tabla 7.13 Resultados de makespan para el nivel de setup bajo

El desempeño de ACS es indiscutiblemente superior una vez más: en las 120 instancias el tiempo de finalización que entrega es el menor entre los cinco procedimientos heurísticos, salvo en 2 ocasiones (

). Los tiempos de ejecución computacional que se presentan en la Tabla 7.14

son prácticamente iguales a los que se dan en un escenario con nivel alto de setup, por lo que se puede inferir que la complejidad computacional entre ambas configuraciones es la misma. LPT xLPT

MC

MV

ACS

n=30 0,00 0,00 15,45 0,00 4,78 n=50 0,00 0,00 26,06 0,00 10,69 n=100 0,00 0,00 70,54 0,01 36,92 Tabla 7.14 Tiempo promedio de ejecución para nivel bajo de setup

63 Aplicación de un algoritmo ACO al problema

|

|

750 700 650 600 550 500 450 400 0

1

2

3

4

5

6

7

LPT

8

9

xLPT

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.7 Resultados para el problema con

MC ,

ACS(S) y nivel de setup bajo

En el caso menos complejo del escenario de setup bajo, los makespan de Montecarlo y Mejor Vecino exhiben un comportamiento muy similar, mucho más que lo que sucede con tiempos de setup alto. ACS se comporta mejor que ambas heurísticas, aunque a menor distancia que en los casos anteriores. Las dos variantes de LPT continúan con un desempeño equivalente, pero alejado de los otros tres procedimientos. Los tiempos de finalización de la Extensión del Mejor Vecino para |

|

son en promedio un 4,29% mayores que los de ACS, seguidos de cerca por los que

genera Montecarlo, con 6,79% y más alejados LPT con xLPT (17,00% y 17,29%, respectivamente). En promedio, ACS entrega makespan de 542 segundos y las diferencias con los otros procedimientos (23, 36, 91 y 92 segundos) reflejan que la optimización es considerable. 735 685 635 585 535 485 0

1

2

3

4

5

6 LPT

7

8 xLPT

9

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.8 Resultados para el problema con

MC ,

ACS(S) y nivel de setup bajo

Cuando el problema es asignar 50 trabajos en 5 máquinas, la heurística ACS se separa un poco más de la heurística del Mejor Vecino, comparando con el caso de

. Esta última tiene tiempos

de finalización 3,98% más altos. Montecarlo lo sigue bien de cerca: los makespan que entrega son

64 Aplicación de un algoritmo ACO al problema

|

|

6,45% más altos que ACS. Para confirmar el comportamiento similar de las dos variantes de LPT, ambas tienen makespan 11,62% mayores que el procedimiento propuesto en este trabajo. En promedio, ACS tiene un makespan de 577, con lo que diferencias de 23, 37 y 67 segundos son una mejora significativa para las operaciones.

650 600 550 500 0

1

2

3

4

5

6 LPT

7

8 xLPT

9

10 11 12 13 14 15 16 17 18 19 20 21 MV

Figura 7.9 Resultados para el problema con

MC

ACS(S)

,

y nivel de setup bajo

El caso más complejo en el escenario de setup bajo muestra una similitud mucho mayor entre las heurísticas constructivas LPT, Mejor Vecino y Montecarlo. De hecho, los resultados de MV son un 4,01% mayores a los de ACS, los de Montecarlo son un 6,17% mayores, los de LPT 6,99% y los de xLPT 7,27%, que se ven reflejados en diferencias de 23, 35, 39 y 41 segundos, respectivamente, en un escenario donde ACS entrega un makespan de 565 segundos. En resumen, las diferencias relativas entre ACS y las otras heurísticas ejecutadas se presentan en la Tabla 7.15. LPT

xLPT

MC

MV

n=30 17,00% 17,29% 6,79% 4,29% n=50 11,62% 11,62% 6,45% 3,98% n=100 7,27% 6,99% 6,17% 4,01% Tabla 7.15 Diferencias de makespan en nivel de setup alto

65 Aplicación de un algoritmo ACO al problema

|

|

7.5. Análisis de Resultados Si bien el desempeño de las heurísticas está ordenado de la misma manera tanto en un nivel alto como en un nivel bajo de setup, las diferencias observadas son un tanto distintas en uno y otro caso, como lo señala la Tabla 7.16.

Nivel de Setup Alto LPT

xLPT

MC

Nivel de Setup Bajo MV

n=30 50,48% 47,37% 14,41% 5,38% n=50 35,27% 34,77% 14,56% 2,31% n=100 23,29% 23,76% 13,34% 3,77%

LPT

xLPT

MC

MV

17,00% 17,29% 6,79% 4,29% 11,62% 11,62% 6,45% 3,98% 7,27%

6,99%

6,17% 4,01%

Tabla 7.16 Diferencias de makespan en relación a ACS

Una de las características que distinguen a ambos escenarios y que puede explicar las diferencias es que un proceso con tiempos de setup altos hace mucho más importante la decisión de ordenar trabajos: en un secuenciamiento que no es tan bueno claramente un tiempo de setup grande afectará la configuración del sistema mucho más que tiempos pequeños de preparación, por esto mismo en el primer caso se está frente a una variabilidad mucho mayor en los tiempos de finalización, que se hace notar en heurísticas que no manejan de la mejor manera la minimización de tiempos entre trabajos (LPT, xLPT y en menor medida Montecarlo). Los procedimientos del Mejor Vecino y ACS siguen un camino distinto a los otros tres algoritmos, porque precisamente buscan minimizar los setup en la etapa inicial, con resultados distintos generados por la diferencia que hay entre los dos procedimientos: la secuenciación inicial en ACS busca una solución que se aproxima a la mejor que se pueda encontrar en el espacio de soluciones, mientras que en muchos casos la Extensión del Mejor Vecino no lo logra por su naturaleza greedy: en las últimas asignaciones de trabajos ya no van quedando necesariamente tiempos de setup bajos, sólo los de trabajos que no se han elegido. En la heurística propuesta también se plantea un proceso de optimización en la última etapa cuyo objetivo es reducir la variabilidad que se da en cada una de las

máquinas y que es creada por

los tiempos involucrados en el proceso, aprovechando las ventajas que ya son evidentes en Ant Colony System. Su desempeño es analizado a continuación para poder definir el grado de relevancia que tiene su implementación.

66 Aplicación de un algoritmo ACO al problema

|

|

7.5.1. Influencia del Proceso de Revisión Final Mediante ACS En la Tabla 7.17 se presenta una comparación entre la heurística planteada con y sin el procedimiento de optimización final mediante ACS para todos los escenarios de análisis ya descritos. Nivel de Setup Alto

Nivel de Setup Bajo

n=30

n=50

n=100

n=30

n=50

n=100

ACS(S) ACS(C)

ACS(S) ACS(C)

ACS(S) ACS(C)

ACS(S) ACS(C)

ACS(S) ACS(C)

ACS(S) ACS(C)

1

647

597

603

589

637

594

581

569

641

641

547

547

2

647

647

573

549

622

622

576

575

553

535

585

585

3

636

594

661

623

633

592

546

543

611

601

603

596

4

602

564

571

527

624

577

454

444

576

573

580

569

5

627

596

629

602

620

583

496

496

569

569

542

530

6

701

701

586

557

592

576

518

518

588

586

568

565

7

591

556

621

570

578

566

484

484

570

553

613

612

8

530

530

658

621

653

644

467

460

531

518

529

528

9

566

553

637

585

641

612

524

524

587

578

573

552

10

610

569

615

612

632

601

549

536

536

515

516

516

11

653

593

626

515

576

555

564

561

528

528

605

591

12

609

594

659

619

595

540

440

438

590

577

586

586

13

535

480

630

617

655

612

626

608

581

562

521

508

14

638

589

614

558

601

585

593

567

570

564

568

565

15

531

497

563

535

579

576

595

593

556

556

530

528

16

699

657

525

498

606

595

545

530

555

547

559

551

17

585

563

629

574

615

585

601

592

574

554

629

618

18

580

569

629

595

586

584

545

545

646

619

566

545

19

689

603

646

639

597

597

480

469

522

485

517

513

20

538

538

587

560

597

584

657

637

570

554

569

549

Tabla 7.17 Comparación entre ACS con revisión y ACS sin revisión

Para el escenario de setup alto, el procedimiento de revisión mejora la solución inicial en la mayoría de las instancias ejecutadas: en el 80% para

, el 90% para

y el 100% para

. Cuando los tiempos de setup son bajos comparados a los de proceso, la situación es ligeramente distinta: la revisión mejora la solución inicial en el 75% de las instancias para en el 80% de las instancias para

y

y

. Esto se explica porque la revisión por medio de

ACS intenta amortiguar la variabilidad que se produce al dividir la solución inicial en

partes,

donde aparecen los tiempos de setup que anteceden el primer trabajo de las máquinas y que no estaban considerados en la secuencia inicial. Además, amortigua posibles tiempos de setup grandes generados por los trabajos que no se asignaban antes/después de . Esa amortiguación será mayor mientras más variabilidad haya, lo que se da cuando hay nivel de setup alto.

67

|

Aplicación de un algoritmo ACO al problema

|

La influencia de la etapa final de revisión entonces puede inferirse a partir de la información ya expuesta, pero se plasma en la comparación entre la diferencia porcentual que tiene ACS sin revisión sobre ACS con revisión en la Tabla 7.18.

Heurística

Nivel de Setup Alto

Nivel de Setup Bajo

n=30

n=30

n=50 n=100

ACS sin revisión 5,45% 6,36% 3,93%

n=50 n=100

1,39% 2,19% 1,37%

Tabla 7.18 Diferencia porcentual entre ACS con revisión y ACS sin revisión

Si bien parecen diferencias menores, la inclusión del proceso de revisión produce disminuciones de makespan que no son despreciables: el 6,36% de diferencia que se da en el caso de

,

y nivel de setup alto, representa 36 segundos en procesos que de otra manera demorarían 613 segundos en promedio. El detalle de las diferencias que involucra la presencia de revisión se encuentra en el Anexo 4.

7.5.2. Diferencias entre la Asignación “Antes” y “Después” Tanto la heurística del Mejor Vecino como ACS con Revisión internamente se dividen en dos: en una heurística donde los trabajos se asignan hasta el límite calculado

y otra donde la asignación

es hasta el primer trabajo que sobrepase ese valor. La idea de esta programación es elegir la configuración que balancea mejor las máquinas, ante variabilidades de cada uno de los dos métodos. Sin embargo, es necesario saber en qué proporción se van eligiendo las soluciones para entender su funcionamiento y también para tomar decisiones de diseño de algoritmo, en casos como cuando sólo una alternativa entregue siempre los makespan menores. La Tabla 7.19 acumula las instancias de la Extensión de la heurística del Mejor Vecino donde el tiempo de finalización menor es generado por la variante antes y/o después. Mejor Vecino Nivel de setup alto

Nivel de setup bajo

n=30 n=50 n=100 Total n=30 n=50 n=100 Total Total

Antes 10 6 5 21 13 12 12 37 58

Después 10 14 15 39 6 8 7 21 60

Empate 0 0 0 0 1 0 1 2 2

Tabla 7.19 Distribución de mejores soluciones en Mejor Vecino

Para esta heurística, en los casos de setup alto la asignación después de

va aumentando su

efectividad a medida que el tamaño del problema crece y cuando el setup es bajo hay una

68 Aplicación de un algoritmo ACO al problema

|

|

estabilidad independiente de la complejidad, pero que favorece a la asignación antes de . En el caso de la heurística ACS propuesta existen algunas diferencias frente a MV, como se muestra en la Tabla 7.20. ACS sin revisión Nivel de setup alto

Nivel de setup bajo

n=30 n=50 n=100 Total n=30 n=50 n=100 Total Total

Antes 6 3 2 11 8 11 9 28 39

Después 12 17 18 47 12 9 11 32 79

Empate 2 0 0 2 0 0 0 0 2

Tabla 7.20 Distribución de mejores soluciones en ACS sin Revisión

La asignación después de

es claramente la que entrega mejores resultados en el escenario de

setup alto, llega a ser la mejor más del 80% de las instancias, lo que no se replica cuando los tiempos de preparación son bajos en relación a los tiempos de proceso; en este caso se aprecia que entre ambas se reparten los menores makespan. La Tabla 7.21 muestra cómo es la distribución de makespan mínimos después de la revisión en la máquina más ocupada. ACS con revisión Nivel de setup alto

Nivel de setup bajo

n=30 n=50 n=100 Total n=30 n=50 n=100 Total Total

Antes 3 4 1 8 8 11 10 29 37

Después 15 16 19 50 12 9 10 31 81

Empate 2 0 0 2 0 0 0 0 2

Tabla 7.21 Distribución de mejores soluciones en ACS con Revisión

Son varios los valores que cambian, pero en general se mantiene sin grandes cambios la tendencia: si la variante antes (después) es la mejor antes de hacer cualquier revisión, es probable que lo siga siendo luego de ser optimizada. De esta manera, en el diseño del algoritmo no puede dejarse de lado ninguna de las dos opciones consideradas, debido a que una u otra puede producir la mejor solución, sobre todo a partir de factores aleatorios como el tiempo de proceso de un trabajo: si es muy grande en comparación a los otros en el sistema, existe la posibilidad alta que termine desbalanceando una máquina y favoreciendo la otra alternativa que pudo manejar mejor ese problema.

69 Aplicación de un algoritmo ACO al problema

|

|

7.5.3. Consistencia de Métodos Heurísticos Si sólo se analizan valores y diferencias promedio de makespan, es posible perder una parte importante de información del comportamiento de las heurísticas en cada instancia. Por ejemplo, un procedimiento aunque tenga una mejor diferencia promedio frente a otro, puede que en varias oportunidades sea sobrepasado, debido a inconsistencias en su funcionamiento entre instancias (aleatoriedad, por ejemplo). La Tabla 7.22 indica en qué porcentaje de las 20 instancias una heurística se ubica en primer, segundo, tercer, cuarto o quinto lugar en el escenario de tiempos de setup en nivel alto. La Tabla 7.23 refleja lo mismo, pero para un nivel bajo de setup. m=3, n=30

m=5, n=50

m=10, n=100

LPT

xLPT

MV

MC

ACS

LPT

xLPT

MV

MC

ACS

LPT

xLPT

MV

MC

ACS



0%

0%

20%

0%

80%

0%

0%

20%

0%

80%

0%

0%

20%

0%

80%



0%

0%

75%

5%

20%

0%

0%

80%

0%

20%

0%

0%

80%

0%

20%



0%

0%

5%

95%

0%

0%

0%

0%

100%

0%

0%

0%

0%

100%

0%



65%

35%

0%

0%

0%

45%

55%

0%

0%

0%

50%

50%

0%

0%

0%



35%

65%

0%

0%

0%

55%

45%

0%

0%

0%

50%

50%

0%

0%

0%

Tabla 7.22 Porcentajes de posiciones de las heurísticas (Nivel alto) m=3, n=30

m=5, n=50

m=10, n=100

LPT

xLPT

MV

MC

ACS

LPT

xLPT

MV

MC

ACS

LPT

xLPT

MV

MC

ACS



0%

0%

10%

0%

90%

0%

0%

0%

0%

100%

0%

0%

0%

0%

100%



0%

0%

85%

5%

10%

0%

0%

85%

20%

0%

5%

0%

90%

5%

0%



0%

0%

5%

95%

0%

0%

5%

15%

75%

0%

20%

20%

5%

55%

0%



50%

50%

0%

0%

0%

55%

40%

0%

5%

0%

40%

20%

5%

40%

0%



50%

50%

0%

0%

0%

45%

55%

0%

0%

0%

35%

60%

0%

0%

0%

Tabla 7.23 Porcentajes de posiciones de las heurísticas (Nivel bajo)

ACS genera los mejores resultados la gran mayoría de las instancias ejecutadas (90%, en promedio). La Extensión de la heurística del Mejor Vecino en promedio es la que sigue a ACS en desempeño, pero en algunas ocasiones (que siguen siendo minoría) es superada por Montecarlo, que aprovecha la menor variabilidad que provocan tiempos de setup bajos. Montecarlo es en general la heurística que presenta el tercer mejor desempeño, aunque en una menor proporción en el problema de

,

y nivel bajo de setup, donde LPT y xLPT aprovechan la menor

variabilidad de las soluciones y que el problema sea más complejo, con lo que Montecarlo tiene menos probabilidades de obtener soluciones buenas. Las dos variantes de Longest Processing Time se disputan el cuarto lugar: su rendimiento es prácticamente igual y en los 120 problemas LPT tiene 61 veces mejor solución que xLPT (59). Es importante acotar que la etapa de revisión hace que la heurística propuesta sea la mejor en el 100% de los casos.

70 Aplicación de un algoritmo ACO al problema

|

|

7.6. Validación Estadística 7.6.1. Análisis de Varianza Además de comparar el comportamiento promedio de las heurísticas, es necesario verificar si los resultados tienen una diferencia estadísticamente significativa, de manera de asegurar que una heurística es consistentemente mejor que otra y que sus resultados no fueron producto de mero azar. El análisis de varianza, también conocido como ANOVA, se utiliza para contrastar la hipótesis de igualdad de medias poblacionales, eligiendo entre las dos hipótesis:

Donde

representa la media de la población de la cual se ha tomado una muestra. El rechazar la

hipótesis nula

indica simplemente que no se puede asegurar que las distintas muestras

tengan la misma media. El análisis de la varianza descompone la variabilidad de los datos observados en dos componentes: una componente entre grupos, que en este caso cuantifica las diferencias entre el makespan generado por las distintas heurísticas, y una componente dentro de grupos, que cuantifica las diferencias dentro de cada heurística. Si se estima la variabilidad entre grupos y es significativamente mayor que la variabilidad dentro de grupos, es evidente que las medias de los grupos no son similares. Fuente Suma de Cuadrados Entre grupos 1,8402E6 Intra grupos 379705, Total (Corr.) 2,21991E6

Gl Cuadrado Medio Razón-F Valor-P 4 460050, 115,10 0,0000 95 3996,9 99

Tabla 7.24 Ejemplo de tabla ANOVA

Tanto la razón-F como el valor-P pueden entregar los resultados del análisis de varianza, pero suele utilizarse este último, por ser más directo. Cuando un valor-P es menor a 0,05 (con 5% de 10

nivel de significancia ), la hipótesis nula se rechaza. En el caso del ejemplo se están comparando los cinco métodos heurísticos en tiempos de setup de nivel alto, con

. Como 0,0000 < 0,05,

existe una diferencia significativa entre las medias. Si el valor-P es pequeño, las muestras deben ser examinadas para determinar qué medias son significativamente diferentes unas de otras. Un método para hacer esta comparación son las pruebas de múltiples rangos por medio de los intervalos HSD de Tukey (Honestly Significant Difference), que compara todos los pares de muestras mediante la diferencia de sus medias e 10

Error de tipo I, probabilidad de rechazar

cuando en realidad es verdadera.

71 Aplicación de un algoritmo ACO al problema

|

|

identifica cuando una de ellas es mayor al error estándar esperado. La tabla especifica claramente cuáles muestras tienen una media significativamente diferente. Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media Grupos Homogéneos 579,5 X 643,65 X 697,85 X 898,0 X 914,5 X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -16,5 55,5938 LPT - MV * 254,35 55,5938 LPT - MC * 200,15 55,5938 LPT - ACS * 318,5 55,5938 xLPT - MV * 270,85 55,5938 xLPT - MC * 216,65 55,5938 xLPT - ACS * 335,0 55,5938 MV - MC -54,2 55,5938 MV - ACS * 64,15 55,5938 MC - ACS * 118,35 55,5938 * indica una diferencia significativa. Tabla 7.25 Test de Rangos Múltiples

La sección inferior muestra cada par de medias. La columna Diferencia muestra la media simple del primer grupo menos la del segundo. La columna +/- Límites muestra un intervalo de confianza para la diferencia. Cualquier par de medias para el que el valor absoluto de la diferencia exceda el límite presenta diferencia estadísticamente significativa al nivel de confianza seleccionado y es representado por un * en la columna Sig. Cuando existen valores atípicos, deben utilizarse procedimientos no paramétricos como una alternativa a los análisis estándar de la varianza seleccionando test como el de Kruskal-Wallis, que compara las medianas de las muestras en vez de las medias:

LPT xLPT MV MC ACS

Tamaño de Muestra Rango Promedio 20 78,725 20 82,125 20 31,025 20 44,575 20 16,05 Estadístico = 80,7532 Valor-P = 0 Tabla 7.26 Prueba de Kruskal-Wallis

72 Aplicación de un algoritmo ACO al problema

|

|

Nuevamente es el valor-P el que debe observarse: si es menor que 0,05, la hipótesis nula se rechaza, y si es mayor se acepta que las medianas son todas iguales. Los resultados de ANOVA muestran que existe una diferencia estadísticamente significativa entre las medias de los makespan generados por las heurísticas, con un valor-P que fue siempre menor del orden de 0,0000. La prueba de Kruskal-Wallis también entrega valores-P muy cercanos a cero, lo que lleva a concluir que las medianas de los tiempos de finalización no son iguales. Por último, el test de rangos múltiples evalúa las diferencias estadísticas entre cada par de heurísticas y arroja las siguientes conclusiones: 

No hay diferencia estadística significativa entre los makespan generados por LPT y xLPT.



No existe diferencia estadística significativa entre Montecarlo y la Extensión del Mejor Vecino en ninguna de las instancias de tiempos de setup en nivel bajo. Tampoco en el caso de

,

y tiempos de setup en nivel alto, cuando en promedio MV tiene mejor desempeño que Montecarlo. 

Los resultados de makespan que genera ACS con Revisión tienen una diferencia estadísticamente significativa con todos los otros procedimientos heurísticos, salvo en el caso de

,

y tiempos de setup en nivel bajo, donde no la hay con Montecarlo y el Mejor

Vecino, aunque de todas maneras siempre tenga los menores valores, que es lo que realmente importa. El detalle de estos resultados y las pruebas de hipótesis asociadas se encuentran en el Anexo 5.

7.6.2. Supuestos de ANOVA Para que los resultados de la validación estadística representen realmente el comportamiento de la muestra, según Dean y Voss (2009) y Kutner (2004) deben cumplirse obligatoriamente tres condiciones básicas en relación a los residuos 

Independencia.



Normalidad.



Homocedasticidad.

11

de cada muestra:

Si se realiza un análisis bajo estos supuestos cuando las variables de error son dependientes, los verdaderos niveles de significancia en las pruebas de hipótesis pueden ser mucho más altos que los planteados y los verdaderos niveles de confianza mucho menores. La forma más simple de observar la independencia de los residuos es graficando los residuos estandarizados en el orden en que las observaciones correspondientes se recolectaron y en una disposición que permita ver la

11

Diferencia entre una observación y la media de la muestra.

73 Aplicación de un algoritmo ACO al problema

|

|

diferencia con el valor 0, ya sea en forma diagonal u horizontal. Si se cumple el supuesto de independencia, los residuos deberían estar dispersos alrededor de cero sin ningún patrón distinguible. De todas maneras, para no estar sujeto al arbitrio de lo que se aprecia en un gráfico, se busca probar las siguientes hipótesis para descartar correlación

12

en las instancias generadas:

La prueba más común para la independencia es la prueba chi-cuadrada, que compara las frecuencias esperadas y observadas calculando:

∑∑

Donde

representa el número de filas y

el número de columnas del conjunto de datos. Asociada

a la prueba hay un valor-P que si es menor a 0,05 (cuando el nivel de confianza es del 5%) permite rechazar la hipótesis nula. Este valor-P se calcula comparando la estadística de prueba a una chicuadrada con

grados de libertad.

Tal como con la independencia de los residuos, la normalidad puede verificarse mediante un gráfico, que contrasta los residuos estandarizados contra los percentiles de la distribución estándar, de manera que si los puntos muestran una tendencia diagonal, se está ante normalidad. Pero como es preferible contar con un resultado concreto, pueden utilizarse las pruebas de bondad de ajuste, que en el caso que concierne a esta verificación, las hipótesis son:

Otraa prueba chi-cuadrada (que funciona de manera similar a la prueba de independencia) divide el rango de la muestra en

intervalos y hace la comparación entre

y

, de la forma



es el número de datos observados en el intervalo intervalo. El valor

y

el número esperado de datos en el

es comparado con una distribución chi-cuadrada con

, con

dependiendo de la distribución comparada. Si el valor-P que resulta de esta prueba es mayor a 0,05, se rechaza la hipótesis nula.

12

Grado de dependencia entre muestras.

74 Aplicación de un algoritmo ACO al problema

|

|

Por último, la homocedasticidad se puede verificar mediante el planteamiento de estas dos hipótesis:

Prueba Valor-P Levene's 1,81737 0,131841 Tabla 7.27 Verificación de varianza

La prueba de Levene entrega, aparte de su estadístico, un valor-P que si es menor que 0,05 indica una diferencia estadísticamente significativa entre las varianzas de las muestras. Un valor mayor a 0,05 no permite rechazar

. Además se indica cuáles son las varianzas comparadas, como se

muestra en la Tabla 7.26. Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 80,8768 80,8768 80,8768 80,8768 56,3116 56,3116 56,3116 66,4936 66,4936 56,7332

Sigma2 56,3116 66,4936 56,7332 51,3066 66,4936 56,7332 51,3066 56,7332 51,3066 51,3066

F-Ratio 2,06277 1,47941 2,03223 2,48485 0,717194 0,985192 1,20462 1,37368 1,67963 1,22272

P-Valor 0,1233 0,4010 0,1310 0,0541 0,4756 0,9744 0,6890 0,4956 0,2673 0,6656

Tabla 7.28 Comparación de desviaciones de residuos.

Los supuestos estadísticos de ANOVA se cumplen en cada una de las heurísticas aplicadas en los 6 escenarios diferentes, información disponible en el Anexo 6.

75 Aplicación de un algoritmo ACO al problema

|

|

8. Conclusiones El problema

|

|

a pesar de no ser abordado extensamente en la literatura (como

) tiene una multitud de aplicaciones en áreas de la industria tan diversas como la producción de plásticos, imprentas, producción de vidrio e industrias textiles, además es análogo a problemas que tampoco se exploran con frecuencia, como el más larga entre

-TSP donde se minimiza la ruta

viajeros, aplicado por ejemplo a ruteo de buses, programación de repartidores,

servicio técnico e incluso aplicaciones satelitales y de exploración militar y planetaria. El problema tiene una alta complejidad, con lo que es posible ir mejorando las soluciones con nuevos métodos y mejorar los procesos de muchas áreas de la vida productiva. La heurística consistente en una extensión del método del Mejor Vecino entrega mejores resultados que las heurísticas basadas en LPT y el algoritmo aleatorio de Montecarlo, pero tiene las limitaciones que se dedica a mejorar el procedimiento ACS propuesto: la secuencia inicial que genera al ser mediante un algoritmo greedy no permite una exploración acabada de posibles soluciones. En este caso sólo se revisan

opciones, correspondientes a los

trabajos que

comienzan una secuencia y a medida que avanzan las asignaciones de la secuencia ya no se elige necesariamente un tiempo de setup bajo entre trabajos, sino que sólo las opciones que no se han elegido antes. Luego, en la etapa final del algoritmo, las asignaciones antes/después de

y de los

trabajos no asignados no logran corregir variabilidades que nacen tanto del tiempo inicial de setup en cada máquina como de la partición en

secuencias, que con alta probabilidad no será lo

idealmente balanceado. Las modificaciones incluidas en la heurística ACS con Revisión demuestran numéricamente que tanto la optimización inicial por ACS como la revisión final en la máquina más ocupada disminuyen los tiempos de makespan: la exploración inicial permite encontrar una solución que está entre las mejores en el espacio de soluciones factibles y la etapa de revisión permite optimizar sub-secuencias que para la solución inicial de

trabajos no eran la

mejor opción, sin dejar de considerar la variabilidad ya mencionada. El procedimiento ACS sin revisión es mejor que el Mejor Vecino alrededor del 90% de los casos y con revisión en el 100%, con tiempos de finalización promedio que son mejorados un 6,4% en promedio. El desempeño de la heurística basada en ACS es en promedio superior al de los cuatro métodos ya mencionados y su diferencia se amplía cuando los tiempos de setup son comparables a los tiempos de proceso, debido a la mayor influencia que tienen en el secuenciamiento tiempos de preparación grandes. Esto es porque la variabilidad de las soluciones es más grande y una solución que no es lo suficientemente buena puede desbalancear la carga de una o más máquinas o por otro lado puede generar un sistema balanceado pero con tiempos de finalización que pueden seguir siendo optimizados.

76 Aplicación de un algoritmo ACO al problema

|

|

La asignación de trabajos antes y después del parámetro

que utilizan tanto ACS como la

extensión del Mejor Vecino no pueden calificarse como uno mejor que el otro: hay casos donde la asignación “después” entrega muchas más soluciones para la heurística que la variante después (niveles de setup alto), mientras que en otros casos el comportamiento es repartido (niveles bajos de setup), lo que es definido sobre todo por factores aleatorios, como un trabajo con tiempo de proceso muy alto que desbalancee la configuración de una asignación y favoreciendo otra. Ningún rediseño que considere este tipo de asignaciones debería dejar de lado una u otra variante. Algunas de las razones que originan las diferencias de desempeño entre las heurísticas estudiadas tienen que ver con que algunas son adaptaciones imperfectas de procedimientos aplicados exitosamente en otros algoritmos. Es el caso de LPT, que tiene buenos resultados en el problema

, pero que no maneja de la mejor forma la presencia de tiempos de preparación entre trabajos: empieza ordenando los trabajos según su tiempo de proceso y luego limita la decisión de minimizar el setup a

opciones en cada iteración, lo que de por sí limita cualquier búsqueda de

solución. La adaptación consistente en considerar un promedio de los tiempos de setup posibles para cada trabajo es inefectiva por esta limitación de la decisión y porque ese promedio introducido no permite aprovechar combinaciones de trabajos que minimicen una secuencia. Aun así, estas dos variantes de Longest Processing Time logran acercarse a los métodos con mejor desempeño en el problema más grande analizado y con los tiempos de setup más bajos, ya que en ese caso trabajan con una variabilidad de tiempos menor a la del caso de un nivel de setup alto y alcanzan a ejecutar mejor su estrategia de asignar los trabajos con menores tiempos de proceso al final para balancear el sistema. El trabajo mostró también la relevancia que puede tener un método heurístico pseudoaleatorio que va usando la información disponible (y modificándola en el camino) versus un procedimiento que ocupa sólo la aleatoriedad, sin dirigirla, como Montecarlo, que sólo genera y genera soluciones en forma aleatoria y elige la mejor. Esta diferencia se plasma en el hecho que ACS con Revisión chequea entre 3500 soluciones posibles exploradas por 10 hormigas para entregar una solución que llega a ser más de un 20% mejor que un algoritmo que revisó 1.000.000 de alternativas y que terminó necesitando más del doble de tiempo en su ejecución computacional. La definición de los parámetros necesarios en un procedimiento metaheurístico demuestra ser tan importante como la misma elección del método, es el caso de la determinación de los parámetros y

y sobre todo con el factor : para el caso tratado en este trabajo, si se escoge un valor alto

dentro de lo que es recomendado en la literatura, las soluciones encontradas no son las mejores y se llega en pocas iteraciones al estancamiento de la búsqueda. Es necesario entonces hacer las pruebas suficientes para afinar el funcionamiento y tener la mejor puesta a punto del sistema. Si bien uno de los parámetros escogidos es ligeramente distinto al que recomienda la literatura para

77 Aplicación de un algoritmo ACO al problema

|

|

TSP, su comportamiento en las pruebas fue el más consistente, lo que puede explicarse por dos motivos: la naturaleza del problema que se está tratando (sin dejar de lado su complejidad), y por otro lado que los autores de la metaheurística los testearon en márgenes más amplios, para poder abordar buena parte de los niveles posibles que se pueden combinar. Los resultados que genera la heurística ACS con Revisión son un indicativo fuerte del potencial que tiene la aplicación de metaheurísticas en la resolución de distintos problemas de optimización, potencial que se ha visto facilitado por todos los avances exponenciales que ha tenido la tecnología las últimas décadas. Lo más interesante de todo es que a pesar de todas las ventajas que entrega el progreso extensivo de la tecnología, la ciencia (y por tanto el hombre) se vuelve hacia la naturaleza que siempre ha estado, para inspirarse y aprovechar los recursos que ha creado. Casos como algoritmos evolutivos, algoritmos genéticos, algoritmos de abejas o el mismo Ant Colony Optimization lo comprueban. A partir de esta propuesta de heurística híbrida entre métodos constructivos y metaheurísticas pueden desarrollarse trabajos futuros que aprovechen aún más las ventajas de la optimización proporcionada por Ant Colony System, integrando funciones de intercambio de tareas entre las máquinas, de inserción de un trabajo en otra máquina, o la remoción de un proceso crítico para después asignarlo en otro recurso, por ejemplificar algunas. Funciones como esas permiten explorar más a fondo aún el espacio de soluciones del problema

|

|

y posiblemente

llegar a encontrar mejores soluciones a las que no tiene acceso ACS con Revisión. Además, la extensión de un procedimiento heurístico como este no necesariamente puede ser sólo con nuevas funciones o la misma metaheurística ACO, puede considerar aplicaciones generalmente utilizadas en problemas de optimización combinatorial complejos, como procedimientos de búsqueda local, que exploran soluciones de forma iterativa en las vecindades de las soluciones y que pueden lograr una convergencia más rápida del procedimiento. Otro tipo de metaheurísticas, como búsqueda tabú pueden ayudar a este mismo objetivo, ignorando en algunas iteraciones soluciones que no son lo suficientemente buenas, o puede aprovecharse el uso de algoritmos genéticos en algunas funciones, como la de intercambio, por la directa relación que puede tener con su idea de cromosomas y el uso de crossovers. La idea general es no limitarse a un procedimiento y buscar como objetivo optimizar las soluciones, para que el impacto real que pueda tener sea el máximo posible.

78 Aplicación de un algoritmo ACO al problema

|

|

Referencias Allahverdi, A., Gupta, J. N., & Aldowaisan, T. (1999). A review of scheduling research involving setup considerations. Omega, 27(2), 219-239. Allahverdi, A., Ng, C. T., Cheng, T. C., & Kovalyov, M. Y. (2008). A survey of scheduling problems with setup times or costs. European Journal of Operational Research, 187(3), 985-1032. Allahverdi, A., & Soroush, H. M. (2008). The significance of reducing setup times/setup costs. European Journal of Operational Research, 187(3), 978-984. Angel, R. D., Caudle, W. L., Noonan, R., & Whinston, A. (1972). Computer-Assisted School Bus Scheduling. Management Science, 18(6), B279-B288. Baker, K. R., & Trietsch, D. (2009). Principles of sequencing and scheduling. John Wiley and Sons. Basu, A., Elnagar, A., & Al-Hajj, R. (2000). Efficient coordinated motion. Mathematical and Computer Modelling, 31(2–3), 39 - 53. Bektas, T. (2006). The multiple traveling salesman problem: an overview of formulations and solution procedures. Omega, 34(3), 209-219. Behnamian, J., Zandieh, M., Fatemi Ghomi S.M.T. (2009), Parallel-machine scheduling problems with sequence-dependent setup times using an ACO, SA and VNS hybrid algorithm. Expert Systems with Applications: An International Journal, v.36 n.6, p.9637-9644. Brummit, B., & Stentz, A. (Tony). (1996). Dynamic Mission Planning for Multiple Mobile Robots. Proceedings of the IEEE International Conference on Robotics and Automation. Brummit, B., & Stentz, A. (Tony). (1998). GRAMMPS: A Generalized Mission Planner for Multiple Mobile Robots. Proceedings of the IEEE International Conference on Robotics and Automation. Bullnheimer, B., Hartl, R. F., & Strauß, C. (1997). A new rank based version of the Ant System. A computational study. Adaptive Information Systems and Modelling in Economics and Management Science Calvo, W. R., & Cordone, R. (2003). A heuristic approach to the overnight security service problem. Computers & Operations Research, 30(9), 1269-1287. Carter, A. E., & Ragsdale, C. T. (2002). Scheduling pre-printed newspaper advertising inserts using genetic algorithms. Omega, 30(6), 415-421.

79 Aplicación de un algoritmo ACO al problema

|

|

Cortés, P. (2009). Análisis de heurísticas para el problema de máquinas paralelas idénticas, con setup y minimización del makespan. Memoria de título. Departamento de Ingeniería Industrial, Universidad de Concepción. Cheng, T. C. E., & Sin, C. C. S. (1990), A state of the art review of parallel machine scheduling research. European Journal of Operational Research, 47, 271–292 Coffman EG, Garey MR, Johnson DS. (1978), An application of bin-packing to multi-processor scheduling. SIAM Journal of Computing Vol. 7, pp.1-17. Dean, A. M., & Voss, D. (1999). Design and Analysis of Experiments. Springer. Deane RH, White ER. (1975), Balancing workloads and minimizing setup costs in the parallel processing shop. Operations Research Q; 26:45-53. Dearing, P. M., Henderson, R. A. (1984), Assigning looms in a textile weaving operation with changeover limitations. Production and Inventory Management 25, 23-31. Dell'Amico, M., lori, M., Martello, S., and Monaci, M. (2008), Heuristic and Exact Algorithms for the Identical Parallel Machine Scheduling Problem. INFORMS Journal on Computing, Vol. 20, No.3, pp.333-344. Deneubourg, J.-L., Aron, S., Goss, S., & Pasteels, J. M. (1990). The self-organizing exploratory pattern of the argentine ant. Journal of Insect Behavior, 3(2), 159-168. Domínguez Machuca, J., Álvarez, M.J., García, S., Domínguez Machuca, M. A., Ruíz, A. (1995). Dirección de Operaciones: Aspectos Estratégicos en la Producción y los Servicios. McGraw-Hill, Primera Edición Dorigo, M., Birattari, M., & Stutzle, T. (2006). Ant Colony Optimization: Artificial Ants as a Computational Intelligence Technique. IEEE Computational Intelligence Magazine, 1(4), 28-39. Dorigo, M., & Gambardella, L. M. (1997). Ant colony system: a cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation, 1(1), 53-66. Dorigo, M., Maniezzo, V., Colorni, A. (1991). Positive Feedback as a Search Strategy. Technical Report 91-016, Dipartimento di Elettronica Politecnico di Milano. Dorigo, M., Maniezzo, V., & Colorni, A. (1996). Ant system: optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, 26(1), 29-41. Dorigo, M, & Stützle, T. (2004). Ant Colony Optimization. Bradford Books, MIT Press. Primera Edición.

80 Aplicación de un algoritmo ACO al problema

|

|

Flynn, B. B. (1987). The effects of setup time on output capacity in cellular manufacturing. International Journal of Production Research, 25, 1761–1772. França, P.M., Gendreau, M., Laporte, G., Muller, F.M. (1996). A tabu search heuristic for the multiprocessor scheduling problem with sequence dependent setup times. International Journal of Production Economics, 43(2/3), 79–89. Frederickson, G., Hecht, M. S., & Kim, C. E. (1978). Approximation algorithm for some routing problems. SIAM Journal on Computing, 7, 178–193. Gambardella, L. M., Dorigo, M. (1995). Ant-Q: A Reinforcement Learning approach to the traveling salesman problem. Proceedings of ML-95, Twelfth International Conference on Machine Learning, Morgan Kaufmann, 1995, 252–260 Gambardella, L. M., & Dorigo, M. (1996). Solving symmetric and asymmetric TSPs by ant colonies. Proceedings of IEEE International Conference on Evolutionary Computation, 1996 (pp. 622-627). Garey, M. R., & Johnson, D. S. (1979). Computers and Intractability: A Guide to the Theory of NPCompleteness. A Series of Books in the Mathematical Sciences. Freeman. Gendreau, M., Laporte, G., Morais, E.M. (2001). A divide and merge heuristic for the multiprocessor scheduling problem with sequence dependent setup times. European Journal of Operational Research, 133(1), 183–189. Gilbert, K. C., & Hofstra, R. B. (1992). A New Multiperiod Multiple Traveling Salesman Problem with Heuristic and Application to a Scheduling Problem. Decision Sciences, 23(1), 250. Geoffrion AM, Graves GW. (1976). Scheduling parallel production lines with changeover costs: Practical application of a quadratic assignment/LP approach. Operations Research; 24:595-610. Gorenstein, S. (1970). Printing Press Scheduling for Multi-Edition Periodicals. Management Science, 16(6), B373-B383. Goss, S., Aron, S., Deneubourg, J., & Pasteels, J. (1989). Self-organized shortcuts in the Argentine ant. Naturwissenschaften, 76(12), 579-581. Graham, R. L. (1969). Bounds on multiprocessor timing anomalies. SIAM Journal of Applied Mathematics, Vol.17, pp.416-429. Guinet, A. (1993). Scheduling sequence-dependent jobs on identical parallel machines to minimize completion criteria. International Journal of Production Research, 31, 1579–1594.

81 Aplicación de un algoritmo ACO al problema

|

|

Gupta J.N.D., Ruiz-Torres AJ. (2001). A LISTFIT heuristic for minimizing makespan on identical parallel machines. Prod Plan Control, Vol 12, pp.28-36. Gutiérrez, E. & Mejía, G. (2006). Evaluación de algoritmos genéticos para el problema de máquinas en paralelo con tiempos de alistamiento dependientes de la secuencia y restricciones en las fechas de entrega. Grupo de Investigación en Producción y Logística (PYLO), Universidad de los Andes, Colombia. Hahn, C. K., Bragg, D. J., & Shin, D. W. (1989). Impact of the setup variable on capacity and inventory decisions. Academic Management Review, 13, 91–103. Johnson, D.S. and Papadimitriou, C.H. (1985). Computational complexity, in The Traveling Salesman Problem. Lawler, E.L., Lenstra, J.K., Rinnooy, A.H.G. and Shmoys D.B., (eds.), Wiley, Chichester, UK, pp. 37–85. Kim, K. H., & Park, Y.-M. (2004). A crane scheduling method for port container terminals. European Journal of Operational Research, 156(3), 752 - 768. Kurz, M., Askin, R. (2001). Heuristic scheduling of parallel machines with sequence dependent setup times. International Journal of Production Research 39, 3747–3769. Kutner, M. H., Nachtsheim, C. J., Neter, J., & Li, W. (2004). Applied Linear Statistical Models (5th ed.). McGraw-Hill/Irwin. Lam, K., & Xing, W. (1997), New trends in parallel machine scheduling. International Journal Operations Management, 17, 326–338. Lee W.C., Wu C.C., Chen P. (2006). A simulated annealing approach to makespan minimization on identical parallel machines. International Journal Advanced Manufacturing Technology, Vol.31, pp.328-334. Lenstra, J. K., & Kan, A. H. G. R. (1975). Some Simple Applications of the Travelling Salesman Problem. Operational Research Quarterly (1970-1977), 26(4), 717-733. Marsh JD, Montgomery DC. (1973). Optimal procedures for scheduling jobs with sequencedependent changeover times on parallel processors. AIIE Technical Papers, p. 279-286. McNaughton, R. (1959). Scheduling with deadlines and loss functions. Management Science 6, 112.

82 Aplicación de un algoritmo ACO al problema

|

|

Medina, J.C. (2010). Estudio comparativo de heurísticas constructivas y un algoritmo genético para el problema de máquinas paralelas idénticas con setup y minimización de makespan. Tesis de postgrado. Departamento de Ingeniería Industrial, Universidad de Concepción. Mendes, A.S., Müller, F.M., França, P.M., Moscato, P. (2002). Comparing meta-heuristic approaches for parallel machine scheduling problems. Production Planning y Control, 13(2), 143– 154. Min, L., Cheng, W. (1999). A genetic algorithm for minimizing the makespan in the case of scheduling identical parallel machines. Artificial Intelligence in Engineering Vol.I3, pp.399-403. Mokotoff, E. (2004). An exact algorithm for the identical parallel machine scheduling problem. European Journal of Operational Research, Vol.152, pp.758-769. Nessah, F., Yalaoui, F., & Chu, C. (2005). New heuristics for identical parallel machine scheduling with sequence-dependent setup times and dates. Proceedings of the international conference on industrial engineering and systems management (pp. 32–41). Marrakech, Morocco, May 16–19. Okonjo-Adigwe C. (1988). An effective method of balancing the workload amongst salesmen. Omega, 16(2), 159-163. Papadimitriou, C.H. and Steiglitz, K. (1998). Combinatorial Optimization: Algorithms and Complexity. Mineola, New York, NY. Pinedo, M. (2008). Scheduling: Theory, Algorithms, and Systems. Springer, Tercera Edición. Reinelt, G. (1994). The Traveling Salesman: Combinatorial Solutions for TSP Applications. Springer-Verlag, Berlin. Rocha, M., Gómez Ravetti, M., Mateus, G. R., Pardalos, P. M. (2007). Solving parallel machines scheduling problems with sequence-dependent setup times using variable neighborhood search. IMA Journal of Management Mathematics, 18, 101–115. Ryan, J. L., Bailey, T. G., Moore, J. T., & Carlton, W. B. (1998). Reactive Tabu Search in unmanned aerial reconnaissance simulations. Simulation Conference Proceedings, 1998. Winter (Vol. 1, pp. 873-879 vol.1). Salazar, E., & Ruiz, N. (2009). Modelo ACO para la recolección de residuos por contenedores. Ingeniare. Revista chilena de ingeniería, 17(2), 236-243. doi:10.4067/S0718-33052009000200012 Salazar, E. (2010). Planificación y Programación de la Producción. Apuntes de clases. Departamento de Ingeniería Industrial, Universidad de Concepción.

83 Aplicación de un algoritmo ACO al problema

|

|

Salazar, E. (2010). Programación de Sistemas de Producción con SPS_Optimizer. Revista ICHIO, 1(2), 33-46. Salazar, E., & Pavón, N. (2011). Aplicación de un algoritmo ACO al problema de taller de flujo de permutación con tiempos de preparación dependientes de la secuencia y minimización de makespan. Ingeniare. Revista chilena de ingeniería, 19(2), 253-264. Salazar, E., Sánchez, O. (Aceptada para publicación) Estrategia MMAS para minimización del makespan en la programación de una máquina con setup. Revista Ingeniería Industrial, Universidad del Biobío. Saleh, H. A., & Chelouah, R. (2004). The design of the global navigation satellite system surveying networks using genetic algorithms. Engineering Applications of Artificial Intelligence, 17(1), 111122. Sevkli, M., Uysal, H. (2009). A Modified Variable Neighborhood Search for Minimizing the Makespan on Identical Parallel Machines. International Conference on Computers y Industrial Engineering, 2009. CIE 2009. Stützle, T., & Hoos, H. H. (2000). MAX–MIN Ant System. Future Generation Computer Systems, 16(8), 889-914. Sumichrast, R., Baker, J. R. (1987). Scheduling parallel processors: an integer linear programming based heuristic for minimizing setup time. International Journal of Production Research 25, (5), 761 - 771. Svestka, J. A., & Huckfeldt, V. E. (1973). Computational Experience with an M-Salesman Traveling Salesman Algorithm. Management Science, 19(7), 790-799. Tahar, D. N., Yalaoui, F., Chu, C., Amodeo, L. (2006). A linear programming approach for identical parallel machine scheduling with job splitting and sequence-dependent setup times. International Journal of Production Economics, 99, 63–73. Tang, L., Liu, J., Rong, A., & Yang, Z. (2000). A multiple traveling salesman problem model for hot rolling scheduling in Shanghai Baoshan Iron & Steel Complex. European Journal of Operational Research, 124(2), 267-282. Van de Velde, S. L. (1993), Duality-based algorithms for scheduling unrelated parallel machines. ORSA Journal on Computing, Vol. 5, pp.192-205. Yang, W.-H. (1999). Survey of scheduling research involving setup times. International Journal of Systems Science, 30(2), 143-155.

84 Aplicación de un algoritmo ACO al problema

|

|

Yue, M. (1990). On the exact upper bound for the MULTIFIT processor algorithm. Annals of Operations Research, Vol. 24, pp.233-259. Zhang, T., Gruver, W. A., & Smith, M. H. (1999). Team scheduling by genetic search. Intelligent Processing and Manufacturing of Materials, 1999. Proceedings of the Second International Conference on (Vol. 2, pp. 839-844 vol.2). Zhong, Y., Liang, J., Gu, G., Zhang, R., & Yang, H. (2002). An implementation of evolutionary computation for path planning of cooperative mobile robots. Proceedings of the 4th World Congress on Intelligent Control and Automation, 2002 (Vol. 3, pp. 1798- 1802 vol.3). Zhu, X., & Wilhelm, W. E. (2006). Scheduling and lot sizing with sequence-dependent setup: A literature review. IIE Transactions, 38(11), 987-1007.

ANEXOS

86 Aplicación de un algoritmo ACO al problema

|

|

A1. Parámetros del Problema Ejemplo

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 11 88 39 17 35 64 20 30 35 70 54 81 82 23 99

18

6

12 22 24 15 15 27

5

21

-

7

16 16

25

26

29

-

6

16 12 26 14 10 11

26

-

19 29 20 14 26 18

27

19 21 26

4

21

-

2

28 17

18 26

9

5

1

16

21

7

28

27

7

4

27

8

7

4

14

28

8

13

22

3

26 25

23 29 20 28

-

2

3

12

3

16

24

7

20

-

3

7

28

18

9

7

25

21

-

1

24

20

5

22

13

-

17

1

5

24

1

25

-

10

24

9

29

27

1

-

11

26

3

24 28 18 18 23

2

3

19 16 17 18 14

9

22 30 22

17 17 24 19 23 14 18 14 26 25 19 12 29

21 29

16

1

29

18

16 22 16 18

18

1

24

9

3

14

26

3

1

4 21

9

22 24 27

9

8 26

16 27 29

-

26 20 12

13

23 30 18

-

2

15

2

7

8

27

9

6

16 24 26

11

6

27 26 26 15

7

2

12

13

10

6

-

28

14

8

4

21

9

18

13

-

5

12 28 26 23 16 22 20 24

7

13

1

23

21

14

-

8

8

23 22 17

22 28 20

87 Aplicación de un algoritmo ACO al problema

|

|

A2. Definición de Parámetros ACS Prueba Preliminar Las configuraciones se describen como:

2.5.85 2.10.90 2.15.95 3.5.85 3.10.90 3.15.95 5.5.85 5.10.90 5.15.95 1

5255

5292

5273

5271

5267

5278

5299

5297

5299

2

5623

5627

5644

5632

5622

5635

5651

5661

5649

3

5414

5417

5418

5413

5420

5460

5432

5447

5436

4

5135

5148

5169

5154

5168

5165

5156

5165

5176

5

5248

5273

5249

5263

5265

5269

5244

5287

5300

6

5010

5051

5045

5027

5040

5084

5048

5100

5067

7

5006

4993

5024

4993

5029

5030

5005

5015

5054

8

5861

5872

5894

5867

5876

5887

5897

5896

5917

9 5666 10 5487

5631

5671

5657

5648

5674

5681

5699

5685

5489

5491

5511

5486

5501

5503

5509

5506

2.5.90 2.5.95 2.10.85 2.10.95 2.15.85 2.15.90 3.5.90 3.5.95 3.10.85 1

5262

5274

5267

5257

5259

5256

5275

5281

5286

2

5632

5623

5617

5602

5620

5610

5621

5633

5630

3

5422

5412

5407

5402

5413

5395

5404

5439

5411

4

5155

5134

5133

5142

5150

5135

5147

5187

5157

5

5261

5259

5252

5248

5239

5246

5272

5309

5282

6

5045

5075

5016

5017

5014

4997

5050

5097

5039

7

5023

5048

5020

5000

5020

4996

5014

5040

5015

8

5866

5888

5866

5869

5879

5860

5906

5883

5849

9

5643

5671

5629

5668

5671

5630

5665

5691

5672

10 5488

5465

5487

5493

5479

5474

5480

5511

5461

3.10.95 3.15.85 3.15.90 5.5.90 5.5.95 5.10.85 5.10.95 5.15.85 5.15.90 1

5285

5271

5266

5295

5321

5286

5288

5300

5281

2

5652

5616

5631

5669

5671

5650

5675

5640

5660

3

5425

5425

5420

5475

5465

5472

5465

5419

5432

4

5174

5153

5156

5175

5184

5175

5175

5147

5151

5

5271

5259

5265

5306

5304

5279

5257

5254

5294

6

5049

5042

5036

5072

5064

5059

5088

5090

5079

7

5018

5008

5028

5046

5038

5038

5062

5030

5036

8

5869

5864

5884

5895

5895

5906

5924

5888

5895

9

5685

5659

5685

5703

5691

5679

5724

5686

5702

10

5512

5496

5483

5521

5508

5517

5496

5499

5497

88 Aplicación de un algoritmo ACO al problema

|

|

Promedios de Makespan 2.15.90 2.10.85 2.10.95 2.5.85 2.15.85 3.5.85 2.10.90 3.15.85 2.5.90 5359,9 5369,4 5369,8 5370,5 5374,4 5378,8 5379,3 5379,3 5379,7

3.10.85 3.10.90 3.5.90 2.5.95 3.15.90 2.15.95 5.5.85 3.10.95 5.15.85 5380,2 5382,1 5383,4 5384,9 5385,4

5387,8 5391,6

5394

5395,3

3.15.95 5.15.90 5.10.85 3.5.95 5.10.90 5.15.95 5.5.95 5.10.95 5.5.90 5398,3 5402,7 5406,1 5407,1 5407,6

5408,9 5414,1 5415,4 5415,7

Posiciones de las 27 Heurísticas en las 10 Instancias 2.5.85 2.10.90 2.15.95 3.5.85 3.10.90 3.15.95 5.5.85 5.10.90 5.15.95 1

1

21

11

9

7

14

24

23

24

2

8

10

18

13

7

16

21

24

19

3

9

10

11

7

13

23

18

22

20

4

3

8

20

12

19

17

14

17

25

5

4

19

6

13

14

16

2

22

24

6

2

16

11

6

9

23

13

27

19

7

6

1

15

1

17

18

5

9

26

8

3

10

18

7

11

15

23

22

26

9

9

3

11

6

5

15

17

24

18

10

8

11

12

23

7

18

19

22

20

2.5.90 2.5.95 2.10.85 2.10.95 2.15.85 2.15.90 3.5.90 3.5.95 3.10.85 1

5

12

7

3

4

2

13

15

18

2

13

8

4

1

5

2

6

15

11

3

15

6

4

2

7

1

3

21

5

4

13

2

1

5

9

3

6

27

16

5

12

10

7

4

1

3

18

27

21

6

11

21

4

5

3

1

15

26

8

7

14

25

12

4

12

3

8

23

9

8

5

16

5

8

12

2

24

13

1

9

4

11

1

10

11

2

8

22

14

10

10

2

8

13

4

3

5

23

1

89 Aplicación de un algoritmo ACO al problema

|

|

3.10.95 3.15.85 3.15.90 5.5.90 5.5.95 5.10.85 5.10.95 5.15.85 5.15.90 1

17

9

6

22

27

18

20

26

15

2

22

3

12

25

26

20

27

17

23

3

16

16

13

27

24

26

24

12

18

4

21

11

14

22

26

22

22

6

10

5

17

10

14

26

25

20

9

8

23

6

14

10

7

20

18

17

24

25

22

7

11

7

16

24

21

21

27

18

20

8

8

4

14

19

19

24

27

16

19

9

18

7

18

26

22

16

27

21

25

10

25

14

6

27

21

26

14

17

16

Promedio y Desviación Estándar de las Posiciones 2.15.90 2.5.85 2.10.85 2.10.95 2.15.85 3.15.85 3.5.85 2.5.90 3.10.85 Promedio

2,2

5,3

Desviación est. 0,7888 3,0569

5,3

5,5

6,8

3,335

3,7491

7,306

9,1

9,7

10,2

10,4

4,0675 5,9824 4,077 6,8993

3.5.90 2.10.90 3.10.90 2.5.95 3.15.90 2.15.95 5.5.85 5.15.85 3.10.95 Promedio

10,6

10,9

10,9

11,3

Desviación est. 6,7032 6,3675 4,7246 7,5873

12 3,171

13,3

15,6

16,6

4,3218 7,306 6,5693

3.15.95 5.15.90 5.10.85 5.10.90 3.5.95 5.15.95 5.10.95 5.5.95 Promedio

17,5

Desviación est.

3,171

19,1

21

21,2

21,2

4,5326 3,5277 4,5326 5,1812

22,1 3,178

22,1

22,9

16,9 5,087

5.5.90 23,8

6,1905 3,1429 2,8983

90

|

Aplicación de un algoritmo ACO al problema

|

Makespan de las cinco mejores combinaciones (cinco instancias) Parámetros

1

2

3

4

5

Promedio Desv. Est. 5035,6

3,97492138

2.5.85

5037 5029 5035 5038 5039 5065 5020 5042 5036 5037

5040

16,2326831

2.10.85

5055 5032 5036 5045 5050

5043,6

9,55510335

2.10.95

5069 5035 5057 5036 5053

5050

14,4913767

2.15.85

5051 5031 5047 5055 5029

5042,6

11,8659176

2.15.90

Parámetros

1

2

3

4

5

Promedio Desv. Est.

2.15.90

4881 4869 4882 4893 4889

4882,8

9,1760558

2.5.85

4883 4915 4885 4911 4888

4896,4

15,323185

2.10.85

4880 4888 4891 4896 4872

4885,4

9,47628619

2.10.95

4887 4907 4886 4925 4910

4903

16,5378354

2.15.85

4900 4893 4905 4882 4890

4894

8,91627725

Parámetros

1

2

3

4

5

Promedio Desv. Est.

2.15.90

5553 5547 5555 5558 5549

5552,4

4,44971909

2.5.85

5562 5551 5553 5564 5561

5558,2

5,80517011

2.10.85

5572 5549 5574 5560 5574

5565,8

11,0544109

2.10.95

5585 5577 5548 5559 5568 5547 5552 5551 5557 5560

5567,4

14,5705182

5553,4

5,12835256

2.15.85

Parámetros

1

2

3

4

5

Promedio Desv. Est.

2.15.90

5410 5433 5429 5401 5419

5418,4

13,2211951

2.5.85

5417 5438 5406 5433 5443

5427,4

15,4369686

2.10.85

5438 5421 5451 5415 5411

5427,2

16,8285472

2.10.95

5442 5418 5425 5441 5420

5429,2

11,5195486

2.15.85

5422 5421 5424 5419 5434

5424

5,87367006

Parámetros

1

2

3

4

5

Promedio Desv. Est.

2.15.90

5179 5199 5205 5206 5191

5196

11,2249722

2.5.85

5196 5189 5197 5216 5210

5201,6

11,058933

2.10.85

5189 5200 5201 5209 5218

5203,4

10,8305125

2.10.95

5224 5195 5199 5205 5240

5212,6

18,928814

2.15.85

5210 5191 5207 5204 5196

5201,6

7,8930349

91 Aplicación de un algoritmo ACO al problema

|

|

Posiciones de los makespan en las cinco instancias Parámetros 1 2 3

4

5 Promedio Desv. Est. 9,2

5,06951674

2.5.85

11 2 6 13 14 24 1 15 8 11

11,8

8,5264295

2.10.85

21 5 8 16 18

13,6

6,80441033

2.10.95

25 6 23 8 20

16,4

8,79204186

2.15.85

19 4 17 21 2

12,6

8,90505474

2.15.90

Parámetros 1

2

3

1

4

5 Promedio Desv. Est.

2.15.90

4

5 16 13

7,8

6,37965516

2.5.85

7 24 8 23 11

14,6

8,2643814

2.10.85

3 11 15 18 2

9,8

7,12039325

2.10.95

10 21 9 25 22

17,4

7,36885337

2.15.85

19 16 20 5 14

14,8

5,9749477

Parámetros

1

2

2.15.90

9

1 11 13 4

2.5.85

18 6

3

4

5 Promedio

Desv. Est.

7,6

4,97995984

9 19 17

13,8

5,89067059

2.10.85

21 4 22 15 22

16,8

7,72657751

2.10.95

25 24 3 14 20

17,2

9,03880523

2.15.85

1

8

6 12 15

8,4

5,41294744

Parámetros 1

2

3

4

5 Promedio Desv. Est. 1

9

7,31436942

13,8

9,39148551

13

9,246621

23 7 15 22 10

15,4

7,09224929

13 11 14 8 19

13

4,0620192

2.15.90

3 17 16 8

2.5.85

6 20 2 17 24

2.10.85

20 11 25 5

2.10.95 2.15.85

Parámetros 1

2

3

4

4

5 Promedio

Desv. Est.

2.15.90

1 10 15 17 4

9,4

6,87749955

2.5.85

7

12

8,63133825

2

9 22 20

2.10.85

2 12 13 19 23

13,8

7,98122798

2.10.95

24 6 10 15 25

16

8,39642781

2.15.85

20 4 18 14 7

12,6

6,91375441

92

|

Aplicación de un algoritmo ACO al problema

|

Convergencia de la heuristica ACS Instancia 1 5175 5125 5075 5025 0

500

1000

1500 1

2000

2500

2

3

2000

2500

2

3

2000

2500

2

3

3000 4

3500

4000

4500

5000

4000

4500

5000

4000

4500

5000

5

Instancia 2 5020 4970 4920 4870 0

500

1000

1500 1

3000 4

3500 5

Instancia 3 5690 5640 5590 5540 0

500

1000

1500 1

3000 4

3500 5

93

|

Aplicación de un algoritmo ACO al problema

|

Instancia 4 5600 5550 5500 5450 5400 0

500

1000

1500 1

2000

2500

2

3

2000

2500

2

3

3000 4

3500

4000

4500

5000

4000

4500

5000

5

Instancia 5

5370 5320 5270 5220 5170 0

500

1000

1500 1

3000 4

3500 5

94 Aplicación de un algoritmo ACO al problema

|

|

A3. Diferencias de Métodos Heurísticos Comparados con ACS sin el proceso de revisión.

Nivel de Setup Alto m = 3, n = 30 Makespan

Diferencia porcentual

LPT xLPT MC MV ACS(S)

LPT

xLPT

MC

Diferencia en segundos MV

LPT

xLPT

MC

MV

1

921

964

737 661

647

42,35% 49,00% 13,91%

2,16%

274

317

90

14

2

948

905

754 720

647

46,52% 39,88% 16,54% 11,28%

301

258

107

73

3

923

902

725 686

636

45,13% 41,82% 13,99%

7,86%

287

266

89

50

4

887

880

682 662

602

47,34% 46,18% 13,29%

9,97%

285

278

80

60

5

958

975

703 663

627

52,79% 55,50% 12,12%

5,74%

331

348

76

36

6

982

1032 810 767

701

40,09% 47,22% 15,55%

9,42%

281

331

109

66

7

845

893

692 579

591

42,98% 51,10% 17,09% -2,03%

254

302

101

-12

8

841

899

609 548

530

58,68% 69,62% 14,91%

3,40%

311

369

79

18

9

850

950

672 676

566

50,18% 67,84% 18,73% 19,43%

284

384

106

110

10

970

919

686 602

610

59,02% 50,66% 12,46% -1,31%

360

309

76

-8

11

820

869

724 672

653

25,57% 33,08% 10,87%

2,91%

167

216

71

19

12

987

1013 760 664

609

62,07% 66,34% 24,79%

9,03%

378

404

151

55

13

814

874

600 564

535

52,15% 63,36% 12,15%

5,42%

279

339

65

29

14

827

862

720 629

638

29,62% 35,11% 12,85% -1,41%

189

224

82

-9

15

772

872

609 526

531

45,39% 64,22% 14,69% -0,94%

241

341

78

-5

16 1014

914

777 749

699

45,06% 30,76% 11,16%

7,15%

315

215

78

50

17

858

905

672 603

585

46,67% 54,70% 14,87%

3,08%

273

320

87

18

18

792

825

672 644

580

36,55% 42,24% 15,86% 11,03%

212

245

92

64

19 1065

992

716 697

689

54,57% 43,98%

3,92%

1,16%

376

303

27

8

20

845

637 561

538

64,68% 57,06% 18,40%

4,28%

348

307

99

23

47,37% 50,48% 14,41%

5,38%

886

Promedio diferencias

287,3 303,8 87,15 32,95

95 Aplicación de un algoritmo ACO al problema

|

|

m = 5, n = 50 Makespan

Diferencia porcentual

LPT xLPT MC MV ACS(S)

LPT

xLPT

MC

Diferencia en segundos MV

LPT

xLPT MC

MV

1

814

890

706 643

603

34,99% 47,60% 17,08% 6,63%

211

287

103

40

2

774

728

669 630

573

35,08% 27,05% 16,75% 9,95%

201

155

96

57

3

871

869

738 681

661

31,77% 31,47% 11,65% 3,03%

210

208

77

20

4

778

795

664 588

571

36,25% 39,23% 16,29% 2,98%

207

224

93

17

5

949

847

714 637

629

50,87% 34,66% 13,51% 1,27%

320

218

85

8

6

815

859

684 620

586

39,08% 46,59% 16,72% 5,80%

229

273

98

34

7

827

847

699 652

621

33,17% 36,39% 12,56% 4,99%

206

226

78

31

8

901

864

729 645

658

36,93% 31,31% 10,79% -1,98%

243

206

71

-13

9

-26

809

796

713 611

637

27,00% 24,96% 11,93% -4,08%

172

159

76

10 854

800

734 655

615

38,86% 30,08% 19,35% 6,50%

239

185

119

40

11 855

837

710 597

626

36,58% 33,71% 13,42% -4,63%

229

211

84

-29

12 868

901

755 660

659

31,71% 36,72% 14,57% 0,15%

209

242

96

1

13 850

836

728 645

630

34,92% 32,70% 15,56% 2,38%

220

206

98

15

14 826

819

701 608

614

34,53% 33,39% 14,17% -0,98%

212

205

87

-6

15 790

823

655 566

563

40,32% 46,18% 16,34% 0,53%

227

260

92

3

16 678

659

609 543

525

29,14% 25,52% 16,00% 3,43%

153

134

84

18

17 806

862

702 632

629

28,14% 37,04% 11,61% 0,48%

177

233

73

3

18 873

811

708 641

629

38,79% 28,93% 12,56% 1,91%

244

182

79

12

19 867

869

762 686

646

34,21% 34,52% 17,96% 6,19%

221

223

116

40

20 781

806

660 597

587

33,05% 37,31% 12,44% 1,70%

194

219

73

10

Promedio diferencias

35,27% 34,77% 14,56% 2,31%

216,2 212,8 88,9 13,75

96 Aplicación de un algoritmo ACO al problema

|

|

m = 10, n = 100 Makespan

Diferencia porcentual

LPT xLPT MC MV ACS(S)

LPT

xLPT

Diferencia en segundos

MC

MV

LPT

xLPT

MC

MV

8,16%

1

794

772

689 642

637

24,65% 21,19%

0,78%

157

135

52

5

2

800

788

733 695

622

28,62% 26,69% 17,85% 11,74%

178

166

111

73

3

754

757

699 648

633

19,12% 19,59% 10,43%

2,37%

121

124

66

15

4

747

709

682 633

624

19,71% 13,62%

9,29%

1,44%

123

85

58

9

5

725

767

692 642

620

16,94% 23,71% 11,61%

3,55%

105

147

72

22

6

733

743

669 601

592

23,82% 25,51% 13,01%

1,52%

141

151

77

9

7

718

699

657 609

578

24,22% 20,93% 13,67%

5,36%

140

121

79

31

8

805

846

758 682

653

23,28% 29,56% 16,08%

4,44%

152

193

105

29

9

801

775

732 659

641

24,96% 20,90% 14,20%

2,81%

160

134

91

18

10 752

773

701 663

632

18,99% 22,31% 10,92%

4,91%

120

141

69

31

11 745

730

659 618

576

29,34% 26,74% 14,41%

7,29%

169

154

83

42

12 678

726

648 567

595

13,95% 22,02%

8,91%

-4,71%

83

131

53

-28

13 768

788

707 647

655

17,25% 20,31%

7,94%

-1,22%

113

133

52

-8

14 745

744

715 654

601

23,96% 23,79% 18,97%

8,82%

144

143

114

53

15 757

733

684 615

579

30,74% 26,60% 18,13%

6,22%

178

154

105

36

16 763

746

684 605

606

25,91% 23,10% 12,87% -0,17%

157

140

78

-1

17 730

749

680 606

615

18,70% 21,79% 10,57% -1,46%

115

134

65

-9

18 746

767

685 628

586

27,30% 30,89% 16,89%

7,17%

160

181

99

42

19 732

755

699 636

597

22,61% 26,47% 17,09%

6,53%

135

158

102

39

20 786

773

691 645

597

31,66% 29,48% 15,75%

8,04%

189

176

94

48

23,29% 23,76% 13,34%

3,77%

142 145,05 81,25 22,8

Promedio diferencias

97 Aplicación de un algoritmo ACO al problema

|

|

Nivel de Setup Bajo m = 3, n = 30 Makespan

Diferencia porcentual

LPT xLPT MC MV ACS(S)

LPT

xLPT

1

673

639

623 612

581

15,83%

9,98%

7,23% 5,34%

92

58

42

31

2

669

654

610 614

576

16,15% 13,54% 5,90% 6,60%

93

78

34

38

3

640

615

597 587

546

17,22% 12,64% 9,34% 7,51%

94

69

51

41

4

563

548

489 465

454

24,01% 20,70% 7,71% 2,42%

109

94

35

11

5

607

592

538 528

496

22,38% 19,35% 8,47% 6,45%

111

96

42

32

6

625

608

557 530

518

20,66% 17,37% 7,53% 2,32%

107

90

39

12

7

571

596

522 520

484

17,98% 23,14% 7,85% 7,44%

87

112

38

36

8

550

578

497 492

467

17,77% 23,77% 6,42% 5,35%

83

111

30

25

9

616

645

572 568

524

17,56% 23,09% 9,16% 8,40%

92

121

48

44

10 645

644

578 572

549

17,49% 17,30% 5,28% 4,19%

96

95

29

23

11 654

656

607 575

564

15,96% 16,31% 7,62% 1,95%

90

92

43

11

12 523

519

482 479

440

18,86% 17,95% 9,55% 8,86%

83

79

42

39

13 712

724

655 650

626

13,74% 15,65% 4,63% 3,83%

86

98

29

24

14 678

662

607 589

593

14,33% 11,64% 2,36% -0,67%

85

69

14

-4

15 686

712

644 618

595

15,29% 19,66% 8,24% 3,87%

91

117

49

23

16 627

640

575 541

545

15,05% 17,43% 5,50% -0,73%

82

95

30

-4

17 692

701

636 619

601

15,14% 16,64% 5,82% 3,00%

91

100

35

18

18 628

632

581 564

545

15,23% 15,96% 6,61% 3,49%

83

87

36

19

19 567

589

510 503

480

18,13% 22,71% 6,25% 4,79%

87

109

30

23

20 731

729

685 666

657

11,26% 10,96% 4,26% 1,37%

74

72

28

9

17,00% 17,29% 6,79% 4,29%

90,8

92,1

Promedio diferencias

MC

Diferencia en segundos MV

LPT xLPT MC

MV

36,2 22,55

98 Aplicación de un algoritmo ACO al problema

|

|

m = 5, n = 50 Makespan

Diferencia porcentual

Diferencia en segundos

LPT

xLPT

MC

MV

ACS(S)

LPT

xLPT

MC

MV

LPT

xLPT

MC

MV

1

734

732

695

682

641

14,51%

14,20%

8,42%

6,40%

93

91

54

41

2

613

617

590

565

553

10,85%

11,57%

6,69%

2,17%

60

64

37

12

3

680

672

653

626

611

11,29%

9,98%

6,87%

2,45%

69

61

42

15

4

665

664

628

612

576

15,45%

15,28%

9,03%

6,25%

89

88

52

36

5

653

645

620

626

569

14,76%

13,36%

8,96%

10,02%

84

76

51

57

6

664

669

632

605

588

12,93%

13,78%

7,48%

2,89%

76

81

44

17

7

622

646

596

591

570

9,12%

13,33%

4,56%

3,68%

52

76

26

21

8

590

585

565

537

531

11,11%

10,17%

6,40%

1,13%

59

54

34

6

9

660

666

628

607

587

12,44%

13,46%

6,98%

3,41%

73

79

41

20

10

600

589

550

559

536

11,94%

9,89%

2,61%

4,29%

64

53

14

23

11

599

591

567

565

528

13,45%

11,93%

7,39%

7,01%

71

63

39

37

12

664

666

637

629

590

12,54%

12,88%

7,97%

6,61%

74

76

47

39

13

643

650

606

602

581

10,67%

11,88%

4,30%

3,61%

62

69

25

21

14

651

656

614

576

570

14,21%

15,09%

7,72%

1,05%

81

86

44

6

15

627

634

598

568

556

12,77%

14,03%

7,55%

2,16%

71

78

42

12

16

630

631

609

568

555

13,51%

13,69%

9,73%

2,34%

75

76

54

13

17

633

635

607

612

574

10,28%

10,63%

5,75%

6,62%

59

61

33

38

18

678

672

674

662

646

4,95%

4,02%

4,33%

2,48%

32

26

28

16

19

555

542

529

523

522

6,32%

3,83%

1,34%

0,19%

33

20

7

1

20

623

624

598

598

570

9,30%

9,47%

4,91%

4,91%

53

54

28

28

11,62%

11,62%

6,45%

3,98%

66,5

66,6

37,1

22,95

Promedio diferencias

99 Aplicación de un algoritmo ACO al problema

|

|

m = 10, n = 100 Makespan

Diferencia porcentual

LPT xLPT MC MV ACS(S)

LPT

xLPT

MC

Diferencia en segundos MV

LPT xLPT

MC

MV

1

601

601

593 583

547

9,87%

9,87%

8,41% 6,58%

54

54

46

36

2

626

638

622 594

585

7,01%

9,06%

6,32% 1,54%

41

53

37

9

3

642

643

641 628

603

6,47%

6,63%

6,30% 4,15%

39

40

38

25

4

623

634

617 582

580

7,41%

9,31%

6,38% 0,34%

43

54

37

2

5

563

571

557 545

542

3,87%

5,35%

2,77% 0,55%

21

29

15

3

6

614

605

608 601

568

8,10%

6,51%

7,04% 5,81%

46

37

40

33

7

652

659

657 645

613

6,36%

7,50%

7,18% 5,22%

39

46

44

32

8

568

575

570 566

529

7,37%

8,70%

7,75% 6,99%

39

46

41

37

9

609

606

591 593

573

6,28%

5,76%

3,14% 3,49%

36

33

18

20

10 565

554

557 532

516

9,50%

7,36%

7,95% 3,10%

49

38

41

16

11 624

632

630 620

605

3,14%

4,46%

4,13% 2,48%

19

27

25

15

12 646

632

622 616

586

10,24%

7,85%

6,14% 5,12%

60

46

36

30

13 551

559

558 543

521

5,76%

7,29%

7,10% 4,22%

30

38

37

22

14 620

623

607 603

568

9,15%

9,68%

6,87% 6,16%

52

55

39

35

15 585

589

577 555

530

10,38% 11,13% 8,87% 4,72%

55

59

47

25

16 602

603

595 590

559

7,69%

7,87%

6,44% 5,55%

43

44

36

31

17 667

662

664 653

629

6,04%

5,25%

5,56% 3,82%

38

33

35

24

18 591

590

589 567

566

4,42%

4,24%

4,06% 0,18%

25

24

23

1

19 541

550

546 549

517

4,64%

6,38%

5,61% 6,19%

24

33

29

32

20 604

598

600 592

569

6,15%

5,10%

5,45% 4,04%

35

29

31

23

6,99%

7,27%

6,17% 4,01%

39,4

40,9

Promedio diferencias

34,75 22,55

100 Aplicación de un algoritmo ACO al problema

|

|

A4. Diferencias Generadas por el Proceso de Revisión de ACS Nivel de Setup Alto n=30 ACS sin ACS con

Dif. %

n=50 Dif.

ACS sin 603

ACS con 589

Dif. %

n=100 Dif. 14

ACS sin 637

ACS con 594

7,24%

622

Dif. %

Dif.

1

647

597

2

647

647

0,00%

0

573

549

4,37%

24

622

0,00%

0

3

636

594

7,07%

42

661

623

6,10%

38

633

592

6,93%

41

4

602

564

6,74%

38

571

527

8,35%

44

624

577

8,15%

47

5

627

596

5,20%

31

629

602

4,49%

27

620

583

6,35%

37

6

701

701

0,00%

0

586

557

5,21%

29

592

576

2,78%

16

7

591

556

6,29%

35

621

570

8,95%

51

578

566

2,12%

12

8

530

530

0,00%

0

658

621

5,96%

37

653

644

1,40%

9

9

2,35%

13

637

585

8,89%

52

641

612

4,74%

29

8,38%

50

2,38%

43

566

553

10

610

569

7,21%

41

615

612

0,49%

3

632

601

5,16%

31

11

653

593

10,12%

60

626

515

21,55%

111

576

555

3,78%

21

12

609

594

2,53%

15

659

619

6,46%

40

595

540

10,19%

55

13

11,46%

55

630

617

2,11%

13

655

612

7,03%

43

535

480

14

638

589

8,32%

49

614

558

10,04%

56

601

585

2,74%

16

15

531

497

6,84%

34

563

535

5,23%

28

579

576

0,52%

3

16

699

657

6,39%

42

525

498

5,42%

27

606

595

1,85%

11

17

3,91%

22

629

574

9,58%

55

615

585

5,13%

30

585

563

18

580

569

1,93%

11

629

595

5,71%

34

586

584

0,34%

2

19

689

603

14,26%

86

646

639

1,10%

7

597

597

0,00%

0

20

538

538

0,00%

0

587

560

4,82%

27

597

584

2,23%

13

5,45%

31,2

6,36%

35,85

3,93%

22,95

Promedio diferencias

101 Aplicación de un algoritmo ACO al problema

|

|

Nivel de Setup Bajo

n=30

n=50

Dif.

581

569

2,11%

12

2

576

575

0,17%

1

553

535

3,36%

18

585

585

0,00%

0

3

546

543

0,55%

3

611

601

1,66%

10

603

596

1,17%

7

4

454

444

2,25%

10

576

573

0,52%

3

580

569

1,93%

11

5

496

496

0,00%

0

569

569

0,00%

0

542

530

2,26%

12

6

518

518

0,00%

0

588

586

0,34%

2

568

565

0,53%

3

7

484

484

0,00%

0

570

553

3,07%

17

613

612

0,16%

1

8

467

460

1,52%

7

531

518

2,51%

13

529

528

0,19%

1

9

524

524

0,00%

0

587

578

1,56%

9

573

552

3,80%

21

10

549

536

2,43%

13

536

515

4,08%

21

516

516

0,00%

0

11

564

561

0,53%

3

528

528

0,00%

0

605

591

2,37%

14

12

440

438

0,46%

2

590

577

2,25%

13

586

586

0,00%

0

13

626

608

2,96%

18

581

562

3,38%

19

521

508

2,56%

13

14

593

567

4,59%

26

570

564

1,06%

6

568

565

0,53%

3

15

595

593

0,34%

2

556

556

0,00%

0

530

528

0,38%

2

16

545

530

2,83%

15

555

547

1,46%

8

559

551

1,45%

8

17

601

592

1,52%

9

574

554

3,61%

20

629

618

1,78%

11

18

545

545

0,00%

0

646

619

4,36%

27

566

545

3,85%

21

19

480

469

2,35%

11

522

485

7,63%

37

517

513

0,78%

4

20

657

637

3,14%

20

570

554

2,89%

16

569

549

3,64%

20

1,39%

7,6

1,37%

7,6

Promedio diferencias

0,00%

n=100

1

ACS sin ACS con Dif. % Dif.

ACS con 641

Dif.

ACS sin 641

Dif. %

0

ACS sin 547

ACS con 547

0,00%

0

2,19% 11,95

Dif. %

102

|

Aplicación de un algoritmo ACO al problema

|

A5. Análisis de Varianza Nivel de Setup Alto m = 3, n = 30 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 1,8402E6 379705, 2,21991E6

Gl Cuadrado Medio Razón-F Valor-P 4 460050, 115,10 0,0000 95 3996,9 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media Grupos Homogéneos 579,5 X 643,65 X 697,85 X 898,0 X 914,5 X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -16,5 55,5938 LPT - MV * 254,35 55,5938 LPT - MC * 200,15 55,5938 LPT - ACS * 318,5 55,5938 xLPT - MV * 270,85 55,5938 xLPT - MC * 216,65 55,5938 xLPT - ACS * 335,0 55,5938 MV - MC -54,2 55,5938 MV - ACS * 64,15 55,5938 MC - ACS * 118,35 55,5938 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 78,725 xLPT 20 82,125 MV 20 31,025 MC 20 44,575 ACS 20 16,05 Estadístico = 80,7532 Valor-P = 0

103

|

Aplicación de un algoritmo ACO al problema

|

m = 5, n = 50 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 1,0448E6 201446, 1,24625E6

Gl Cuadrado Medio Razón-F Valor-P 4 261201, 123,18 0,0000 95 2120,49 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC xLPT LPT

Casos 20 20 20 20 20

Media Grupos Homogéneos 577,25 X 626,85 X 702,0 X 825,9 X 829,3 X

Contraste Sig. Diferencia +/- Límites LPT - xLPT 3,4 40,4932 LPT - MV * 202,45 40,4932 LPT - MC * 127,3 40,4932 LPT - ACS * 252,05 40,4932 xLPT - MV * 199,05 40,4932 xLPT - MC * 123,9 40,4932 xLPT - ACS * 248,65 40,4932 MV - MC * -75,15 40,4932 MV - ACS * 49,6 40,4932 MC - ACS * 124,75 40,4932 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 79,6 xLPT 20 79,225 MV 20 28,55 MC 20 50,875 ACS 20 14,25 Estadístico = 82,411 Valor-P = 0

104

|

Aplicación de un algoritmo ACO al problema

|

m = 10, n = 100 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 434894, 79987,9 514882,

Gl Cuadrado Medio Razón-F Valor-P 4 108724, 129,13 0,0000 95 841,978 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media Grupos Homogéneos 589,0 X 634,75 X 693,2 X 753,95 X 757,0 X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -3,05 25,5161 LPT - MV * 119,2 25,5161 LPT - MC * 60,75 25,5161 LPT - ACS * 164,95 25,5161 xLPT - MV * 122,25 25,5161 xLPT - MC * 63,8 25,5161 xLPT - ACS * 168,0 25,5161 MV - MC * -58,45 25,5161 MV - ACS * 45,75 25,5161 MC - ACS * 104,2 25,5161 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 78,15 xLPT 20 79,725 MV 20 29,7 MC 20 52,3 ACS 20 12,625 Estadístico = 82,9203 Valor-P = 0

105

|

Aplicación de un algoritmo ACO al problema

|

Nivel de Setup Bajo m = 3, n = 30 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 152957, 304219, 457176,

Gl Cuadrado Medio Razón-F Valor-P 4 38239,4 11,94 0,0000 95 3202,3 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media 534,45 564,6 578,25 632,85 634,15

Grupos Homogéneos X X X X X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -1,3 49,7618 LPT - MV * 68,25 49,7618 LPT - MC * 54,6 49,7618 LPT - ACS * 98,4 49,7618 xLPT - MV * 69,55 49,7618 xLPT - MC * 55,9 49,7618 xLPT - ACS * 99,7 49,7618 MV - MC -13,65 49,7618 MV - ACS 30,15 49,7618 MC - ACS 43,8 49,7618 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 69,125 xLPT 20 69,825 MV 20 39,975 MC 20 45,925 ACS 20 27,65 Estadístico = 32,6576 Valor-P = 0,00000140367

106

|

Aplicación de un algoritmo ACO al problema

|

m = 5, n = 50 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 86740,7 145473, 232214,

Gl Cuadrado Medio Razón-F Valor-P 4 21685,2 14,16 0,0000 95 1531,29 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media 560,75 595,65 609,8 639,2 639,3

Grupos Homogéneos X X XX X X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -0,1 34,4107 LPT - MV * 43,55 34,4107 LPT - MC 29,4 34,4107 LPT - ACS * 78,45 34,4107 xLPT - MV * 43,65 34,4107 xLPT - MC 29,5 34,4107 xLPT - ACS * 78,55 34,4107 MV - MC -14,15 34,4107 MV - ACS * 34,9 34,4107 MC - ACS * 49,05 34,4107 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 68,65 xLPT 20 69,425 MV 20 41,85 MC 20 50,675 ACS 20 21,9 Estadístico = 37,559 Valor-P = 1,38158E-7

107

|

Aplicación de un algoritmo ACO al problema

|

m = 10, n = 100 Tabla ANOVA Fuente Entre grupos Intra grupos Total (Corr.)

Suma de Cuadrados 32379,9 108007, 140387,

Gl Cuadrado Medio Razón-F Valor-P 4 8094,98 7,12 0,0000 95 1136,92 99

Pruebas de Múltiples Rangos Método: 95,0 porcentaje Tukey HSD

ACS MV MC LPT xLPT

Casos 20 20 20 20 20

Media Grupos Homogéneos 557,7 X 587,85 X 600,05 X 604,7 X 606,2 X

Contraste Sig. Diferencia +/- Límites LPT - xLPT -1,5 29,6503 LPT - MV 16,85 29,6503 LPT - MC 4,65 29,6503 LPT - ACS * 47,0 29,6503 xLPT - MV 18,35 29,6503 xLPT - MC 6,15 29,6503 xLPT - ACS * 48,5 29,6503 MV - MC -12,2 29,6503 MV - ACS * 30,15 29,6503 MC - ACS * 42,35 29,6503 * indica una diferencia significativa.

Prueba de Kruskal-Wallis Tamaño de Muestra Rango Promedio LPT 20 60,95 xLPT 20 62,05 MV 20 46,95 MC 20 56,85 ACS 20 25,7 Estadístico = 21,6407 Valor-P = 0,000236274

108 Aplicación de un algoritmo ACO al problema

|

|

A6. Verificación de supuestos de ANOVA Nivel de Setup Alto m = 3, n = 30 Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 88,739 76 0,6693

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 4,7 9,9 6,0 13,8 13,8

Valor-P 0,910297 0,44931 0,815263 0,182311 0,182311

Verificación de Varianza Prueba Valor-P Levene's 1,81737 0,131841

Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 80,8768 80,8768 80,8768 80,8768 56,3116 56,3116 56,3116 66,4936 66,4936 56,7332

Sigma2 56,3116 66,4936 56,7332 51,3066 66,4936 56,7332 51,3066 56,7332 51,3066 51,3066

F-Ratio 2,06277 1,47941 2,03223 2,48485 0,717194 0,985192 1,20462 1,37368 1,67963 1,22272

P-Valor 0,1233 0,4010 0,1310 0,0541 0,4756 0,9744 0,6890 0,4956 0,2673 0,6656

m = 5, n = 50 Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 57,818 76 0,9402

109 Aplicación de un algoritmo ACO al problema

|

|

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 8,6 7,3 7,3 9,9 4,7

Valor-P 0,570438 0,696852 0,696852 0,44931 0,910297

Verificación de Varianza Prueba Valor-P Levene's 0,949777 0,438888 Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 56,9414 56,9414 56,9414 56,9414 55,755 55,755 55,755 36,1958 36,1958 36,995

Sigma2 55,755 36,1958 36,995 39,6576 36,1958 36,995 39,6576 36,995 39,6576 39,6576

F-Ratio 1,04301 2,4748 2,36903 2,0616 2,37275 2,27134 1,97658 0,957258 0,833035 0,87023

P-Valor 0,9278 0,0552 0,0676 0,1236 0,0671 0,0817 0,1465 0,9251 0,6946 0,7650

m = 10, n = 100 Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 19,458 76 1,0000

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 11,2 17,7 7,3 16,4 17,7

Valor-P 0,34215 0,0602401 0,696852 0,0887402 0,0602401

Verificación de Varianza Prueba Valor-P Levene's 0,580127 0,677752

110 Aplicación de un algoritmo ACO al problema

|

Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

F-Ratio 0,996782 1,15013 1,42016 1,92669 1,15385 1,42475 1,93291 1,23478 1,67519 1,35667

Sigma1 32,0599 32,0599 32,0599 32,0599 32,1116 32,1116 32,1116 29,8943 29,8943 26,9026

Sigma2 32,1116 29,8943 26,9026 23,097 29,8943 26,9026 23,097 26,9026 23,097 23,097

| P-Valor 0,9945 0,7636 0,4517 0,1620 0,7583 0,4476 0,1600 0,6504 0,2697 0,5126

Nivel de Setup Bajo m = 3, n = 30 Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 15,951 76 1,0000

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 6,0 11,2 9,9 6,0 6,0

Valor-P 0,815263 0,34215 0,44931 0,815263 0,815263

Verificación de Varianza Prueba Valor-P Levene's 0,036171 0,997459 Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 56,6004 56,6004 56,6004 56,6004 56,0444 56,0444 56,0444 56,541 56,541 57,9209

Sigma2 56,0444 56,541 57,9209 55,814 56,541 57,9209 55,814 57,9209 55,814 55,814

F-Ratio 1,01994 1,0021 0,954924 1,02838 0,982512 0,936255 1,00827 0,95292 1,02622 1,07692

P-Valor 0,9661 0,9964 0,9210 0,9520 0,9697 0,8873 0,9859 0,9174 0,9556 0,8734

111 Aplicación de un algoritmo ACO al problema

|

|

m = 5, n = 50

Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 9,487 76 1,0000

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 8,6 13,8 9,9 12,5 8,6

Valor-P 0,570438 0,182311 0,44931 0,252985 0,570438

Verificación de Varianza Prueba Valor-P Levene's 0,0938543 0,984191 Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 39,0743 39,0743 39,0743 39,0743 41,1967 41,1967 41,1967 39,3945 39,3945 39,7963

Sigma2 41,1967 39,3945 39,7963 36,0115 39,3945 39,7963 36,0115 39,7963 36,0115 36,0115

F-Ratio 0,899616 0,983811 0,964043 1,17733 1,09359 1,07162 1,30871 0,979906 1,19671 1,22125

P-Valor 0,8200 0,9720 0,9372 0,7256 0,8474 0,8817 0,5634 0,9652 0,6995 0,6675

112 Aplicación de un algoritmo ACO al problema

|

|

m = 10, n = 100 Prueba Chi-Cuadrado de Independencia Prueba Estadístico Gl Valor-P Chi-Cuadrada 5,438 76 1,0000

Pruebas Chi-Cuadrado de Normalidad Heurística LPT xLPT MV MC ACS

Estadístico 8,6 9,9 7,3 7,3 8,6

Valor-P 0,570438 0,44931 0,696852 0,696852 0,570438

Verificación de Varianza Prueba Valor-P Levene's 0,0148062 0,999561 Comparación ResLPT / ResxLPT ResLPT / ResMV ResLPT / ResMC ResLPT / ResACS ResxLPT / ResMV ResxLPT / ResMC ResxLPT / ResACS ResMV / ResMC ResMV / ResACS ResMC / ResACS

Sigma1 34,7292 34,7292 34,7292 34,7292 33,7492 33,7492 33,7492 33,9989 33,9989 33,5441

Sigma2 33,7492 33,9989 33,5441 32,5319 33,9989 33,5441 32,5319 33,5441 32,5319 32,5319

F-Ratio 1,05892 1,04342 1,0719 1,13964 0,985368 1,01227 1,07624 1,0273 1,09222 1,0632

P-Valor 0,9020 0,9272 0,8813 0,7787 0,9747 0,9791 0,8744 0,9538 0,8495 0,8951

UNIVERSIDAD DE CONCEPCIÓN – FACULTAD DE INGENIERÍA RESUMEN DE MEMORIA DE TÍTULO Departamento de Ingeniería

Industrial

Título

Aplicación de un algoritmo ACO al problema de minimización

de

makespan

en

máquinas

paralelas idénticas con tiempos de setup dependientes de la secuencia Nombre Memorista Modalidad

Pablo Arriagada Pizarro Investigación

Profesor Patrocinante

Concepto

Sr. Eduardo Salazar Hornig

Calificación

Ingeniero Supervisor

Fecha

Abril, 2012

-

Institución -

Comisión (Nombre y Firma) Sr. Alejandro Concha

Sra. Lorena Pradenas

Resumen Este trabajo aplica un procedimiento heurístico al problema

|

|

, que es el problema de

programación de la producción sobre la minimización de makespan en máquinas paralelas idénticas, con tiempos de preparación dependientes de la secuencia de trabajos, un problema que se encuentra bastante en las industrias, pero que no tiene la misma consideración teórica que (sin tiempos de setup). La heurística aprovecha la metaheurística Ant Colony System por su aplicación exitosa en el Problema del Vendedor Viajero y similares. El algoritmo consiste en generar una secuencia inicial de trabajos por medio de ACS, para luego distribuirlos en las máquinas disponibles para producir; con dos variantes dentro de la misma heurística: uno que va asignando los trabajos antes de un límite calculado a partir de los parámetros de la instancia y otro que lo asigna después. Finalmente, por medio de ACS la máquina más ocupada pasa a ser revisada para evaluar si puede disminuir su tiempo de finalización, y, por lo tanto, el de todo el sistema. El makespan que entrega la heurística es el menor entre las dos variantes descritas. El desempeño de este procedimiento se compara con el de otras cuatro alternativas: LPT, LPT con tiempos de setup promedio, Mejor Vecino y Montecarlo. Los resultados de makespan generados por la heurística ACS con revisión muestran ser consistentemente menores que los otros cuatro métodos descritos, diferencia que es mayor en escenarios balanceados, donde los tiempos de setup son comparables a los tiempos de proceso.