Documente Academic
Documente Profesional
Documente Cultură
Muchas Gracias a Margarita, porque estuvo cada vez que la necesit, por
el tiempo compartido, por el cario sincero, en definitiva, por ser mi
amiga.
Resumen
Este proyecto comienza con una introduccin general al tema, siguiendo con la
justificacin del tema a desarrollar. Posteriormente en el Captulo 1 establece toda la base
terica de la investigacin, para en el Captulo 2 mostrar cada una de las Metaheursticas
implementadas. En el Captulo 3 se muestra el anlisis para la obtencin de los mejores
parmetros para un problema dado en ambas Metaheursticas y en el Captulo 4 se indican
los resultados obtenidos al comparar las Metaheursticas mediante problemas de pruebas.
Las Metaheursticas ayudan a resolver problemas Multiobjetivo que son muy importantes
en la industria. El presente informe muestra el funcionamiento de las Metaheursticas, el
por qu nacen y temas relacionados como lo son: tpicos de Problemas Combinatorios,
Optimizacin, Programacin de la Produccin, Multiobjetivo, Flow-Shop, Heursticas,
Metaheursticas, formas de Medicin de objetivos, etc. Posteriormente, se presentarn dos
Metaheursticas multiobjetivo una relacionada con Algoritmos Genticos y otra basada en
Simulated Annealing. Finalmente se comparan estas dos Metaheursticas utilizando para
esto un par de problemas de prueba de tipo Flow-Shop. Antes de realizar la comparacin
entre las Metaheursticas, se presentar un anlisis individual de cada una, relacionado con
la combinacin de parmetros ms adecuada para resolver un problema de pruebas.
iii
Es importante mencionar que estudios como el presente son muy pocos, ya que
comparaciones entre Simulated Annealing y Algoritmos Genticos para problemas
multiobjetivo, no fueron encontrados en la literatura, y menos aplicados a problemas de
tipo Flow-Shop. Por lo que un estudio que tomara estas Metaheursticas y las comparara
resultaba muy atractivo.
A muchas empresas que necesitan optimizar sus procesos de produccin, les interesa un
buen mtodo para realizar esta tarea, ya que un mtodo exacto no es capaz de entregar una
buena solucin en un tiempo razonable, dado que la cantidad de soluciones para problemas
reales llega a ser de nmeros estratosfricos.
Las Metaheursticas nacen para entregar soluciones buenas en un tiempo razonable, pero de
una forma ms inteligente que las heursticas. Por esto es que se analizan dos tipos de
Metaheursticas que han sido ampliamente estudiadas en el mbito de un solo objetivo, pero
como la mayora de las decisiones se toman considerando ms de un aspecto, estas
Metaheursticas son implementadas, y comparadas, para la resolucin de problemas
MultiObjetivo.
iv
NDICE
NDICE..................................................................................................................................iv
NOMENCLATURA.............................................................................................................vii
INTRODUCCIN.................................................................................................................. 1
JUSTIFICACIN................................................................................................................... 3
Captulo 1. TEMAS RELACIONADOS................................................................................ 5
1.1 Optimizacin ................................................................................................................ 5
1.2 Heursticas .................................................................................................................. 11
1.2.1 Heursticas de Construccin ................................................................................ 11
1.2.2 Heursticas de Bsqueda Local............................................................................ 12
1.3 Metaheursticas........................................................................................................... 14
1.3.1 Algoritmos Genticos .......................................................................................... 16
1.3.2 Simulated Annealing ........................................................................................... 16
1.3.3 Tab Search ......................................................................................................... 17
1.3.4 Meta-Raps............................................................................................................ 18
1.4 Multiobjetivo .............................................................................................................. 19
1.4.1 Cmax (Makespan) ............................................................................................... 20
1.4.2 Tardanza Total..................................................................................................... 22
1.4.3 Retardo Mximo .................................................................................................. 26
1.5 Flow-Shop .................................................................................................................. 27
1.6 Programacin de la Produccin.................................................................................. 30
1.6.1Aspectos importantes............................................................................................ 30
1.6.1.1 Trabajo.......................................................................................................... 31
1.6.1.2 Mquinas ...................................................................................................... 32
1.6.1.2.1 Una sola mquina .................................................................................. 32
1.6.1.2.2 Mquinas paralelas ................................................................................ 32
1.6.1.2.3 Talleres de produccin continua............................................................ 33
v
NOMENCLATURA
SA : Simulated Annealing
AG : Algoritmo(s) Gentico(s)
OR : Objetivo Referente
FS : Funcin de Seleccin
PS : Probabilidad de Seleccin
INTRODUCCIN
Las Metaheursticas son un medio eficiente para resolver problemas reales en un tiempo
aceptable. Al enfrentarse a un proceso de optimizacin, donde dadas ciertas condiciones y
limitaciones se trata de elegir de entre una serie de alternativas, la que nos entregue, en la
medida de lo posible, el mayor beneficio que se pueda obtener, pero el gasto de recursos en
determinar cual es la mejor opcin, puede ser muy alto.
Dado esto, las tcnicas, procedimientos y/o algoritmos que ayudan a resolver un problema
de optimizacin merecen un profundo anlisis. Casi todo problema se enmarca en una
estructura comn, como lo menciona B. Philippi (1988), Por una parte deben existir
opciones o cursos de accin entre los cuales se debe poder escoger. Si la opcin es nica,
ciertamente el problema es muy simple, otro punto es que este proceso requiere el poder
comparar las ventajas y desventajas de los cursos de accin posibles. Al saber qu es lo
que se quiere lograr, se puede tener claro los criterios de evaluacin de las alternativas, y de
esta forma tomar una decisin.
As, es imprescindible para una industria el contar con herramientas que le ayuden en este
proceso. Esto es porque habitualmente las alternativas posibles llegan a ser casi infinitas,
los criterios de evaluacin pueden ser numerosos, las limitaciones variadas, etc.
2
Al comparar dos alternativas para la resolucin de este tipo de problemas lo que se busca es
poder responder preguntas como Cul de las dos Metaheursticas tiene un mejor
comportamiento?, Cul necesita mejoras para poder competir con la otras?, Cul es ms
eficiente?, Cul es ms eficaz?, entre otras.
Tambin, el poder determinar formas en las cuales mejorar una, o ambas Metaheursticas
de ser posible, es algo que se espera obtener. Adems de entregar observaciones que
permitan trabajos futuros.
3
JUSTIFICACIN
Por esto es interesante estudiar cmo las Metaheursticas nos ayudan en la solucin de este
tipo de problemas. Esto debido a que los algoritmos de mtodos exactos existentes para
encontrar soluciones ptimas, tienen un tiempo de proceso exponencial, porque buscan en
todo el espacio de soluciones y esto es ineficiente, y en algunos casos se vuelve imposible.
Por otra parte las heursticas no dan una certeza absoluta de qu tan buena es una solucin
encontrada, pudiendo sta ser, o no, mejorada.
4
Los problemas de tipo Flow-shop Multiobjetivo no han sido muy estudiados, son pocas las
publicaciones relacionadas con este tema especfico, por lo que se har una recopilacin
bibliogrfica tomando investigaciones similares aunque slo consideren los temas
involucrados individualmente.
Primero, prcticamente no hay publicaciones en las que Simulated Annealing resuelva este
tipo de problemas, y dado que para problemas con un solo objetivo se ha demostrado que es
una muy buena Metaheurstica, vale la pena investigar su comportamiento en problemas
con ms de un objetivo.
Segundo, los Algoritmos Genticos han sido ampliamente investigados y son una muy
buena alternativa para solucionar problemas multiobjetivo y existen muchas publicaciones
al respecto.
1.1 Optimizacin
Al tener una serie de alternativas entre las cuales poder elegir, lo natural e intuitivo es
querer elegir la mejor de ellas. El proceso de determinar cul de stas es la mejor,
considerando los criterios que se han establecido, el objetivo que se quiere lograr, las
ventajas y desventajas de cada opcin, y todas las variables que puedan influir en la
decisin, se denomina optimizacin.
Optimizar f(X)
Sujeto a
gi(X) { , = , } bi; i=1,,m;
Donde X es el vector de variables de decisin con n elementos {x1, x2,, xn}; y las
funciones f(X) y gi(X) son funciones generales.
6
Cuando todos los elementos en el Vector X toman valores discretos, se conoce como un
problema de optimizacin combinatorio (Moraga, 2002).
As, por ejemplo, una persona tiene cierta cantidad de dinero, y est pensando en gastarlo
en varios productos, pero la suma de los precios de estos artculos es mayor que la cantidad
que posee, el modelo sera como sigue:
Sujeto a
Precio producto1 + Precio producto2 + + Precio producto n $ disponible
Con
Precio producto 1 = cant. 1
Precio producto 2 = cant. 2
---
Precio producto n = cant. n
En este sencillo ejemplo se pueden identificar las partes de la formulacin de un modelo del
problema. La decisin que tome esta persona depender de los criterios que haya definido
para elegir, por ejemplo, si piensa que ciertos productos le son ms necesarios, se decidir
por estos, siempre que la suma de los precios no sea mayor a lo que dispone. Pero si piensa
7
que un producto que no necesita tanto, pero est muy barato y es una gran oportunidad el
adquirirlo, entonces si vale menos de lo que posee, se podra decidir por l.
Pero esta es una decisin muy simple. En la industria, las decisiones son muy complejas
(Moraga, 2002), en seguida se presenta un ejemplo:
En un sistema existen n tareas que deben ser procesadas, la idea es hacer la combinacin
para que el tiempo total de procesamiento de estas tareas sea el mnimo.
Se asume que las n tareas estn ya en el sistema para comenzar a ser procesadas en el
tiempo R. Supongamos que se tienen 5 tareas, con sus respectivos tiempos de proceso.
Tarea 1 180
Tarea 2 40
Tarea 3 200
Tarea 4 500
Tarea 5 250
Tarea 6 150
8
Solucin
Con un tiempo total de: 180 + 220 + 420 + 920 + 1170 + 1320 = 4230
Solucin:
Con un tiempo total de: 40 + 190 + 370 + 570 + 820 + 1320 = 3310
Aqu podemos ver que usando la regla SPT se logra una mejor solucin que utilizando la
regla FIFO.
Pero el total de combinaciones que se puede conseguir en este problema est dado por
factorial del nmero de trabajos, eso sera 6! = 720 combinaciones posibles. Lo que
9
muestra que analizar todas las posibles secuencias de trabajos puede resultar un trabajo
arduo, y a veces imposible.
A continuacin se presenta una tabla donde se muestren las combinaciones posibles para el
nmero de trabajos que se indica:
Por lo que se puede ver, an con el computador ms potente, resulta imposible poder
esperar el proceso para la tomar la decisin de cual es la mejor solucin, ya que, por
ejemplo, para computar todas las posibles soluciones para 32 tareas, esto es 32! = 1.6*1035,
suponiendo que una computadora puede examinar mil millones de secuencias por
segundo, tomara 8.4 * 1015 siglos! (Sipper y Bulfin, 1998). Para 16 tareas se calcula
aproximadamente en 8 meses el procesamiento de las combinaciones posibles para
determinar cul ser la ptima (Sipper y Bulfin, 1998).
Como en la industria muy pocos sistemas de planificacin consideran tan pocos trabajos, y
no se puede disponer del tiempo para esperar los resultados de algoritmos exactos, dado la
limitada capacidad de proceso de los computadores, se hace necesario elaborar nuevos
procedimientos que permitan realizar este procesamiento en un tiempo aceptable, as nacen
las heursticas.
11
1.2 Heursticas
Una Heurstica es una tcnica que busca soluciones (ojal cercanas al ptimo) a un costo
computacional razonable, pero no garantiza que la solucin encontrada en realidad est
cerca del ptimo, ni da indicios de qu tan buena es. Es importante mencionar que una
heurstica no considera todas las combinaciones posibles para determinado problema, slo
unas pocos.
Lleva a cabo una secuencia estructurada de iteraciones, en la que se toman en cuenta todos
los aspectos que se considerarn para la toma de la decisin y se termina con una solucin
factible. Se tiene una funcin que evala la calidad de la solucin.
Dada una solucin X, los elementos del vecindario de X son aquellas soluciones X que
pueden ser obtenidas aplicando sobre X una modificacin elementara conocida como
movida, y no se suele guardar historia del camino recorrido. Una movida, por ejemplo,
puede ser el intercambio o la insercin.
Un intercambio se refiere a tomar dos tareas de esta secuencia y poner una en la posicin de
la otra y viceversa. As, por ejemplo, las siguientes secuencias seran vecinos de X:
Una insercin constara de tomar una tarea de la secuencia y ponerla en cualquier otra
posicin de la lista. Por ejemplo:
Pero desafortunadamente, los problemas a los cuales se enfrentan las industrias en sus
lneas de produccin requieren de sistemas que entreguen soluciones mucho ms cercanas
al ptimo que las que puede elaborar una heurstica comn. As entonces, es necesario
considerar el uso de Metaheursticas para la programacin de la produccin.
14
1.3 Metaheursticas
Las Metaheursticas tienen que tener como un objetivo el escapar a ptimos locales que
pueda encontrar, con el fin de recorrer de forma basta todo el espacio de soluciones.
Una Metaheurstica puede usar cualquier heurstica o algoritmo subordinado que entregue
una solucin inicial y factible para la etapa de construccin.
La bsqueda local puede utilizar una heurstica de bsqueda local, esto es mediante
insercin, intercambio u otra, para definir la vecindad de la solucin inicial. Y as evaluar
el primer vecino que se encuentre, el primero que mejore la solucin, un vecino aleatorio,
etc.
Como estrategias para evitar ptimos locales se pueden mencionar las siguientes:
Esta Metaheurstica tiene su base, y nace, sobre la teora de la evolucin de las especies. La
idea es que en una poblacin de individuos (soluciones iniciales), sta es sometida a
acciones aleatorias, con las que se generan nuevos individuos (soluciones evolucionadas)
de los cuales se seleccionan los ms aptos para que sigan evolucionando.
El nombre de esta Metaheurstica nace del proceso de templado (annealing) de los metales.
Donde se calienta un metal y luego controladamente se va enfriando, si este proceso se
realiza rpidamente, el metal puede presentar imperfecciones, si se hace gradualmente las
propiedades de este metal sern mejores.
17
La idea bsica del mtodo, es la de explorar el espacio de bsqueda de todas las soluciones
factibles por una secuencia de movimientos. Un movimiento de una solucin a otra es el
mejor disponible, es decir, de todas las soluciones a las que se puede pasar se escoge la que
mejore ms el o los objetivos deseados. Sin embargo, para escapar de un ptimo local y
para prevenir los ciclos, algunos movimientos, en una iteracin en particular, son
clasificados como prohibidos o tab. Los movimientos en tab estn basados en la historia
de la secuencia de movimientos a corto y largo trmino. Una implementacin simple, por
ejemplo, puede clasificar un movimiento como tab si el movimiento contrario ha sido
hecho recientemente o frecuentemente. Algunas veces, cuando es favorable, un movimiento
tab puede ser realizado a pesar de todo.
18
1.3.4 Meta-Raps
1.4 Multiobjetivo
Pero en muchos casos un problema puede tener varias Funciones Objetivo, como por
ejemplo, se podra querer maximizar la utilidad, o minimizar los tiempos totales de proceso,
minimizar los retardos en las entregas, maximizar la calidad total, etc.
En estos casos, entonces, a parte de todas las variables que intervienen en la toma de
decisiones, tambin se hace preciso considerar que se logren todos los objetivos
presentados para ese problema.
En este estudio se analizan slo Funciones Objetivo que se requiere sean minimizadas, ya
que para procesos industriales, en lo referente a programacin de la produccin
20
9 Cmax (Makespan)
9 Tardanza Total o Tardiness (Tmax)
9 Mximo Retraso(Lmax)
Se representa como Cmax, se define como el mximo entre un conjunto de valores, mx.
(C1,, Cn), donde Ci es el tiempo de trmino de procesar el trabajo i. Cmax se entiende
como el tiempo del ltimo trabajo en salir del sistema.
Supongamos un proceso donde se tiene tres trabajos para ser procesados en una mquina,
con los tiempos de procesamiento que se indican:
Tiempo Tiempo
Trabajo proceso acumulado Ci
1 12 12 12
2 10 22 34
3 5 27 49
21
Supongamos que los trabajos estn listos en el sistema para empezar a ser procesados, y
que el pasar de un trabajo a otro no tiene un tiempo significativo. Entonces, cuando el
trabajo 1 es procesado han pasado 12 unidades de tiempo (u/t), luego al procesar el trabajo
2, este permaneci 12 u/t en el sistema ms las 10 u/t que requiere para ser procesado, por
lo que su tiempo total de permanencia en el sistema es de 22 u/t, con lo que la suma del
trabajo 1 ms el trabajo 2 es de 34 u/t. Para el trabajo tres se hace el mismo clculo, con lo
que el tiempo de permanencia en el sistema es de 27 u/t., y al calcular el Cmax este da un
total de 49 u/t.
Si se busca una mejor programacin de estos trabajos, se podra llegar a lo siguiente, donde
se aprecia que el Cmax es menor:
Tiempo Tiempo
Trabajo proceso acumulado Ci
2 10 10 10
3 5 15 25
1 12 27 42
22
Se representa por T. Indica la suma de las tardanzas que podran tener los trabajos que
deben realizarse. Para entenderlo se tomar el ejemplo anterior y se le agregar los tiempos
de entrega de los trabajos.
La idea siempre es que los trabajos se terminen a tiempo, por lo que se hace imperioso tener
un buen programa que permita que esto se cumpla.
T = max ( 0 , Ci Ti )
23
Donde Ci indica el tiempo de salida del trabajo i del sistema, y Ti indica en tiempo de
entrega de ese trabajo, por lo que el clculo sera el siguiente:
Tiempo Tiempo
Trabajo proceso Entrega Tiempo acumulado Ci Ti
2 10 -2 10 10 12
3 5 6 15 25 19
1 12 17 27 42 25
56
Con estos dos ejemplos se puede ver claramente que el segundo programa de produccin es
mejor que el primero, porque para ambos objetivos este programa es mejor, pero hasta el
momento nada nos indica si se ha llegado al mejor ya que pueden existir mejores
programas.
24
Pero puede darse el caso de encontrar una solucin que slo sea mejor en uno de los
objetivos. En ese caso no se puede decir cul de las soluciones es mejor que la otra, y eso
se llamar solucin no dominadas.
Donde cada fi(x) representa un objetivo, diremos entonces que una solucin domina a otra
s:
Curva de Pareto
150
Tardiness
100
50
0
0 50 100
Makespan
Las siete soluciones unidas por una lnea dominan a todas las dems, pero ninguna de ellas
puede ser considerada mejor que cualquier otra que se encuentre en la curva.
26
Lmax = 25
1.5 Flow-Shop
Generalmente los objetivos que se busca minimizar en estos problemas son el makespan y
la tardanza total.
A este proceso pueden llegar varios trabajos que llamaremos rdenes de trabajo, cada una
con una fecha de entrega, y una cantidad de automviles, es decir, que por ejemplo una
orden puede tener 50 automviles asignados y otra orden 20. As entonces, cada automvil
sera una tarea.
La mquina de Armado tiene como funcin la unin de las partes que han sido recibidas,
de acuerdo con su respectiva forma y modelo, o sea, la carrocera, puertas, pisos, cubiertas,
etc. La operacin central es la soldadura autgena y el recubrimiento de uniones para
mejorar la presentacin. Adicionalmente, se realizan actividades de pulimento,
impermeabilizacin y limpieza.
de estas sustancias se hace en cmaras especiales que pueden operar de diversas formas, de
acuerdo con el nivel tecnolgico de las empresas.
La mquina de Montaje, realiza la parte del proceso en la cual se ensamblan las partes
mecnicas, el motor, los ejes, el sistema de frenos, tapetes y accesorios.
Despus de este proceso los automviles estn listos para ser entregados.
Un programa se puede representar como una secuencia de nmeros donde cada nmero
indica el orden en que se ejecutar ese trabajo; por ejemplo, la secuencia 1 2 3, indica
que el trabajo 1 es el primero en procesarse, luego el 2, y por ltimo el 3. Por otro lado, la
secuencia 3 2 1 indica que el primer trabajo en procesarse es el 3, despus el 2, y
finalmente el 1.
1.6.1Aspectos importantes
31
Para realizar la programacin hay tres aspectos importantes que deben considerarse: los
trabajos, las mquinas y la medicin.
1.6.1.1 Trabajo
Los trabajos son actividades a realizar (Sipper y Bulfin, 1998). Los trabajos que se
pueden identificar en el ejemplo de la lnea de montaje automotriz, de la seccin anterior,
son las rdenes de automviles que se deben realizar. Si nos imaginamos una papelera, los
trabajos seran las diversas rdenes de papeles y cartones que debe producir, y en una
fbrica de ropa seran los conjuntos de prendas iguales que se deben hacer.
Un trabajo siempre debera tener un tiempo de proceso y una fecha en la que debe estar
terminado. Para el presente anlisis supondremos que un trabajo una vez que comienza a
ser procesado no se detiene hasta que es terminado.
Otras caractersticas que puede poseer un trabajo, segn Sipper y Bulfin (1998), son que:
9 Puede depender de otro trabajo, o sea, que no puede realizarse antes de que termine
otro. Esto es lo que sucede en el procesamiento tipo Flow-Shop, donde las tareas se
ejecutan en un nico orden.
32
9 Puede poseer una fecha de inicio, antes de la cual no puede comenzar el proceso.
1.6.1.2 Mquinas
Las Mquinas procesan los trabajos (Sipper y Bulfin, 1998). Las mquinas en la
industria son literalmente mquinas o robots, pero en una pista de aterrizaje en un
aeropuerto, un bus en una empresa de transporte, una mesa en un casino, tambin pueden
considerarse mquinas.
Se tiene una sola mquina para procesar todos los trabajos, esta mquina slo puede
procesar un trabajo a la vez, y una vez que termina uno puede continuar con el siguiente.
Son varias mquinas idnticas en el sentido de que pueden realizar los mismos
procesamientos. As entonces, un trabajo se podra realizar en cualquiera de ellas para
33
Es donde se encuentran diferentes mquinas y los trabajos, para ser completados, deben
pasar una vez por cada una y en el mismo orden, es decir, si numeramos las mquinas como
1, 2 y 3, un trabajo no puede pasar a la mquina 2 si no ha pasado por la 1, y no podr pasar
a la 3 si no ha terminado en la 2.
Es similar al de produccin continua, es decir, existen varias mquinas distintas, pero los
trabajos no deben pasar una vez por cada una ni en el mismo orden necesariamente. Es
decir, un trabajo podra pasar por la mquina 1 y luego por la 2, pero nunca por la 3, en
cambio otro solo podra pasar por la 3.
34
35
Son en los cuales da lo mismo por qu mquina pasan primero los trabajos, en caso de que
deban pasar por ms de una. Un ejemplo es un taller mecnico, donde un automvil que
ingresa, y da lo mismo que reparacin se realice primero.
1.6.1.3 Medicin
Maximizar utilidad o minimizar costos, son los objetivos que cualquier empresa persigue,
pero desafortunadamente, es difcil estimar los parmetros financieros que relacionen un
programa con costo o ganancia (Sipper y Bulfin, 1998). Por esto, las medidas que se
utilizan son generalmente las mencionadas en la seccin 1.4.
36
m = nmero de mquinas
1.6.2 Supuestos
El primero de los supuestos que se debe considerar es el de disponibilidad, que quiere decir
que los trabajos estn listos y dispuestos para ser procesados en la lnea de produccin, es
decir, ri= 0.
Tambin se supone la certidumbre de los datos, es decir, que en ningn problema se podra
argumentar el desconocimiento de los datos exactos.
Otro supuesto que ya se mencion en una seccin anterior, es que un trabajo una vez
comenzado no se detiene hasta que est terminado.
C = [4 2 3 1]
En un problema de tipo Flow Shop, significa que el primer trabajo en procesarse ser el 4
despus el 2, posteriormente el 3 y finalmente el 1.
40
Fonseca y Fleming fueron los creadores de MOGA en 1993. La idea es asignar una
jerarqua a los individuos, la que es igual al nmero de individuos de la poblacin que lo
dominan ms uno, es decir, los individuos de la frontera de Pareto tienen un valor de
jerarqua igual a 1, ya que no son dominados por ninguna solucin. El valor de la funcin
de aptitud se puede entender como:
Este algoritmo fue propuesto por Srinivas y Deb (1994). Es similar a MOGA, la principal
diferencia est en la forma en que se atribuye la funcin de aptitud a cada individuo y en el
uso de la estrategia de fitness compartido, (Pappa, 2002). Al igual que MOGA, se basa en
la clasificacin de individuos en varias capas o frentes. El valor de la funcin de fitness
para cada individuo en el primer frente es igual a N, donde N es el nmero de individuos de
la poblacin. Luego se utiliza una estrategia de fitness compartido, a cada individuo se le
atribuye una funcin de fitness compartido dividiendo el valor anteriormente atribuido por
el contador del nicho (nmero de individuos del nicho). Es guardado el valor de fitness
compartido. Despus se identifican los individuos no dominados del segundo frente, y se le
asigna un nuevo valor de funcin de fitness, que es ms pequeo que la funcin de fitness
compartido del primer frente, es decir, el guardado anteriormente menos un valor pequeo,
45
y as hasta que no queden ms individuos. Puesto que los individuos en el primer frente
tienen el valor de fitness mayor, consiguen siempre ms copias que el resto de la poblacin.
2.1.4.1 Representacin
Cada solucin, o individuo, es representado mediante un vector, el cual posee valores entre
1 y en nmero de trabajos que posea el problema, como se muestra a continuacin para un
problema con 7 trabajos:
7 5 1 4 3 2 6
46
El cul indica la secuencia de proceso de los trabajos, por lo que no puede existir un
individuo en el cual se repita algn trabajo, ni con un valor en la secuencia superior al
nmero de trabajos.
7 5 1 4 3 2 6
2 3 5 6 7 6 1
6 5 7 3 1 4 2
1 2 7 3 4 6 5
1 5 6 4 7 2 3
3 5 4 6 7 2 1
47
7 1 2 3 5 4 6
5 4 1 2 3 6 7
2.1.4.3 Seleccin
Supngase que se tienen los siguientes individuos, con el fitness indicado en la tabla:
Probabilidad de Prob.
Individuo Fitness seleccin Acumulada
1 100 100 / 640 0,16 0,16
2 100 100 / 640 0,16 0,32
3 100 100 / 640 0,16 0,48
4 80 80 / 640 0,13 0,61
5 75 75 / 640 0,11 0,72
48
3% 2% 16%
6%
8%
9% 16%
11%
16%
13%
As, la seleccin por ruleta se puede visualizar como el proceso de elegir un nmero
aleatorio entre 0 y 1, y elegir al individuo que est en ese rango, para lo cul ayuda el
clculo de la probabilidad acumulada. Por ejemplo, un nmero aleatorio x=0.28, nos indica
que el individuo a seleccionar es el segundo ya que su probabilidad acumulada es 0.32, y
cualquier valor aleatorio entre 0.17 y 0.32, indicara la seleccin de ste.
Ya que es posible que ms de una vez la eleccin de un nmero aleatorio coincida con un
mismo individuo, no hay problema en que ste sea seleccionado ms de una vez. Adems,
como se mencion anteriormente, los individuos de la Frontera de Pareto, pasan
automticamente a la siguiente generacin, lo que en este ejemplo, significara que los
individuos 1, 2 y 3 son seleccionados en primer lugar, y para completar la mitad de la
poblacin que tiene que ser seleccionada, se realiza el proceso de la ruleta.
2.1.4.4 Cruzamiento
7 5 1 4 3 2 6
2 3 5 6 7 6 1
50
7 5 1 4 7 6 1
2 3 5 6 3 2 6
Dado que los hijos son soluciones infactibles para el problema puesto que hay trabajos
repetidos y otros que no aparecen, estos individuos deben ser modificados. En el primer
hijo, no aparece el trabajo 2 ni el 3 y est repetido el trabajo 7 y el 1, y en el hijo dos el
nico trabajo no repetido es el 5, faltando por aparecer los trabajos 1, 4 y 7. Para
solucionar esto, aleatoriamente se elijen los trabajos faltantes y se colocan en una posicin
donde haya un trabajo repetido. As se puede llegar a la siguiente configuracin de los
individuos, la que cumple con ser una solucin factible:
7 5 2 4 3 6 1
2 4 5 6 7 3 1
2.1.4.5 Mutacin
conoce como intercambio de pares. La cantidad de individuos que son objeto de mutacin
depende de una probabilidad de mutacin, que generalmente es un valor pequeo. El
siguiente es un ejemplo:
3 5 4 6 7 2 1
En la secuencia anterior, se han elegido los trabajos 4 y 2 para ser intercambiados y con ello
logar un cambio en los objetivos que se busca mejorar, con lo que el individuo mutado sera
el que se ve a continuacin:
3 5 2 6 7 4 1
El fitness indica qu tan buena es una solucin con respecto a las dems. Esta medida se
calcula considerando los valores de cada objetivo a evaluar. La implementacin a realizar
considera los objetivos Cmax y Tardanza.
sucesivamente hasta que todos los individuos hayan sido clasificados. Posteriormente, a
cada ranking le es asignado un fitness inicial, es decir que cada individuo de ese ranking
posee el mismo fitness, dado que desde una perspectiva multiobjetivo, las soluciones no
dominadas entre s, son iguales.
El procedimiento para calcular el fitness inicial, as como el final, es extrado del Captulo 5
de la Obra de Deb (2001), Multi-Objective Optimization using Evolutionary Algorithms,
donde el fitness inicial se define como sigue:
53
Para verlo claramente se presenta el siguiente ejemplo (Deb, 2001), que slo posee seis
individuos, cuyos datos se presentan en la siguiente tabla:
El grfico de estas soluciones muestra cada curva de soluciones, es decir, cada ranking:
54
Con estos datos se puede calcular el fitness inicial de la siguiente forma, utilizando la
formula anteriormente vista:
F1 = 6 0 0.5 (3 1) = 5
F2 = 6 3 0.5 (2 1) = 2.5
F4 = 6 3 2 0.5 (1 1) = 1
Lo que indica que para el primer ranking, el fitness es de 5, para el segundo es 2.5, y 1 es
para el ltimo.
55
En esta etapa se modifican los valores iniciales del fitness de cada individuo. Lo que se
intenta, es dar un mejor fitness a aquellos individuos que se encuentran ms aislados y
castigar a aquellos individuos que se encuentren reunidos en un nicho, disminuyendo su
fitness. El clculo es bastante complicado, y para su completo entendimiento, hace falta un
anlisis profundo. Aun as, se explica y se presenta un ejemplo (Deb, 2001).
56
En primer trmino, se debe calcular la distancia entre las soluciones de cada ranking
utilizando la siguiente frmula:
La que indica la distancia entre el individuo j y el individuo i. Donde, fkmax y fkmin son el
mximo y mnimo valor del objetivo k. Luego, el contador del nicho para el individuo i, es
la sumatoria de las distancias de i a cada individuo de ese ranking, aplicando la funcin Sh,
es decir:
Donde (ri) es el nmero de soluciones del ranking ri. Y la funcin Sh se define como
sigue:
En cualquier otro caso Sh (dij) = 0. La idea es que la funcin entregue un valor entre 0 y 1,
como medida de qu tan cerca estn los individuos, siendo un valor cercano a uno indicador
de que los individuos muy cercanos, y un valor cercano a cero indica que se encuentran
ms distantes.
Donde, fkmax y fkmin son el mximo y mnimo valor del objetivo k. As share, que indica qu
valor se considera como lmite para determinar si un individuo pertenece, o no, a un mismo
nicho, se calcula de la siguiente manera:
58
= 0.0221
= 0.149
= 0.2253
= 0.475
= 0.3851
= 0.6206
As, el contador de nicho para los individuos del primer ranking, seran los siguientes:
Despus de esto, se multiplica el fitness compartido de cada individuo por el factor recin
calculado, y se obtiene el fitness final. Lo que sera:
Esto, muestra cmo, desde un fitness inicial de 5 para cada individuo de este ranking, se
lleg a un fitness final diferenciado, en el que los individuos que se encontraban ms
cercanos, son castigados, y el individuo ms alejado es beneficiado en su fitness.
61
2.2.1 MOSARTS
Este valor indica la probabilidad de aceptacin de una solucin Y dada una solucin X a
una temperatura T. El parmetro representa el peso de la funcin objetivo j con respecto
a la importancia total.
63
La mayor diferencia entre los enfoques de Simulated Annealing Multiobjetivo est dada por
la forma en que se define la probabilidad de aceptacin de una nueva solucin dominada.
Una vez que se ha encontrado una solucin inicial, dgase X0, se evala un vecino de X0,
dgase X1. Esto se realiza comparando cada objetivo de la solucin X1 con respecto a la
solucin anterior X0. Es aqu donde podra darse uno de los siguientes escenarios:
En el caso en que todos los objetivos mejoren, significa que la nueva solucin es mejor que
la anterior, o sea, X1 domina a X0, por lo que X1 es aceptada para continuar la bsqueda en
esa direccin.
Si todos los objetivos empeoran, es decir, si X0 domina a X1, se evala una funcin de
aceptacin para ver si se admite esta nueva solucin para continuar la bsqueda desde ah.
Esta funcin de aceptacin se referir a un solo objetivo, por lo que ser necesario
seleccionar previamente un Objetivo Referente (OR) para guiar el proceso.
En el ltimo caso, donde ninguna solucin domina a la otra, se elige un OR, si est objetivo
mejora en X1 con respecto a X0, X1 es aceptada, en caso contrario, se debe evaluar una
funcin de aceptacin que siempre depende de la temperatura particular de ese objetivo en
el momento actual de la bsqueda.
FSi = w1 * F1 + w2 * F2
Donde:
F1 = Ti / Timax
F1 = Funcin de Probabilidad de seleccin de un objetivo dependiendo de su
desempeo histrico (memoria de largo plazo) (Baesler et al., 2005).
La funcin F1 tiene por misin dar una mayor probabilidad de seleccin a aquellos
objetivos que no han tenido un buen desempeo, es decir, que en todo el proceso de
construccin de soluciones no han mejorado lo suficiente. Los objetivos que han mejorado
bastante tienen relacionado un Ti mucho menor que Timax, ya que el Ti disminuye cada vez
que el objetivo i mejora. As entonces, la razn Ti / Timax es elevada cuando el objetivo i
no ha sido explorado suficientemente.
F2 = 1 (C%i / C%i)
FSi = w1 * F1 + w2 * F2
Para seccionar el OR, se calcula la Probabilidad de Seleccin (PS) para cada objetivo,
como sigue:
Las dos Metaheursticas fueron implementadas en lenguaje C++, para poder realizar
experimentos y hacer las respectivas comparaciones entre ambas.
En primer lugar se realiz un anlisis individual, para determinar cuales son los mejores
parmetros, que se ajustan a cada implementacin para posteriormente, considerando dos
problemas de prueba, compararlas entre ellas, y poder determinar cul tiene un mejor
desempeo.
Dado que en los problemas multiobjetivo no se genera una solucin individual, sino que
una curva de soluciones, y como las soluciones son no-dominadas, no se puede decir que
una es mejor que otra, y los criterios de comparacin pueden ser variados, pero se
considerarn los siguientes:
17000
de pareto con
16000
pocas soluciones
15000
14000
3550 3600 3650 3700 3750
Cmax
18000
Tardanza
17000
16000
15000
14000
3550 3600 3650 3700 3750
Cmax
Este mismo proceso se utilizar para comparar curvas de una misma Metaheurstica en caso
de que sea difcil decidir cual combinacin de parmetros es la mejor, considerando los
otros criterios de comparacin.
72
El Promedio Valores de los Objetivos de todas las curva de pareto obtenidas en el proceso
de experimentacin, es importante para analizar como se comporta una Metaheurstica.
Otros criterios de comparacin menos concluyentes y menos importantes, pero que sirven
para decidir son: la desviacin estndar en el nmero de soluciones de la Frontera de Pareto
obtenidas en un conjunto de ejecuciones de una Metaheurstica; La cantidad de Curvas
distintas generadas; y El mximo nmero de soluciones.
%Mutacin 1 3 5 10 15
73
Con estos parmetros se realizarn todas las combinaciones posibles y se determinar cual
es la mejor. Es decir, se tendrn 60 combinaciones, cada cual se ejecutar 10 veces, y as se
obtendrn las mejores combinaciones de parmetros.
Indivi Genera %Muta Prom. Desviacin Cant. Max. Min. Prom Prom
duos ciones cin Num.Sol Standar Curvas Num.Sol Num.sol. Cmax Tard
300 150 10 7,2 1,8 6 9 4 3685,7 15447
300 500 10 7,1 2 5 9 4 3660,7 14851
100 100 15 6,3 2,3 7 11 4 3692,9 17153
300 150 15 6,2 2,2 7 11 3 3649 15420
300 150 5 6,1 1,7 6 8 3 3700,1 16301
Las dems soluciones posean un Promedio de Nmero de Soluciones inferior a 5.5 y ests
posean los mejores promedios de Cmax y Tardanza, adems los Mximos y Mnimos de
Nmero de Soluciones son superiores a la media, que fueron 6.6 y 2.5 respectivamente.
74
Posterior a este anlisis se tomaron los resultados entregados por las 4 primeras
combinaciones, y con stos se gener una sola curva para realizar el anlisis propuesto por
Hyun et al. (1998). As se obtuvieron 10 grficos como el siguiente:
100-100-15
Ejemplo 300-150-10
19000 300-150-15
18000 300-500-10
Tardanza
17000
16000
15000
14000
3550 3600 3650 3700 3750 3800
Cmax
Con los que se pudo generar la siguiente tabla con los datos que muestra:
Lo que nos demuestra que la mejor combinacin de parmetros es la de 300 individuos, 500
generaciones y 10 % de mutacin. Por lo que estos sern los parmetros que se utilizarn
para comparar esta Metaheurstica versus MOSARTS.
76
Para el caso de Simulated Annealing los parmetros a determinar son las Memorias de
Largo y Corto Plazo para cada objetivo analizado, es decir, para la Tardanza y el Cmax.
De la misma forma que para el caso del AG, se harn combinaciones de parmetros y con
cada una de estas combinaciones se ejecutar el programa 10 veces, para ver como se
comporta. Las combinaciones de estos parmetros deben sumar 1 para cada objetivo, por
lo que todas las combinaciones a probar son las siguientes:
Ejemplo
30000
28000
Tardanza
26000
24000
22000
20000
3850 3900 3950 4000 4050 4100 4150 4200 4250
Cmax
Los promedios obtenidos indican que la tercera y sexta combinacin son las mejores, es
decir, que para la Tardanza se debe tener una ponderacin de la Memoria de Largo Plazo
alta, en este caso, 0.8 u 80%, y una ponderacin pequea para la Memoria de corto Plazo, o
sea, un 20%. Pero no queda claro cuales son mejores parmetros para el objetivo Cmax.
Por este motivo se realiz una comparacin con el mtodo de Hyun, et al. (1998), entre
estas dos combinaciones solamente, para ver cul de ellas era mejor. Los resultados se
presentan en la siguiente tabla:
0,5-0,5-0,2-0,8 0,8-0,2-0,2-0,8
1 0,25 0,75
2 0,17 0,83
3 0,17 0,83
4 0,67 0,33
5 0,20 0,80
6 1,00 0,00
7 0,25 0,75
8 1,00 0,00
9 0,50 0,50
10 0,83 0,17
Promedio 50,33 49,67
Lo que deja empatadas a ambas combinaciones. Dado esto, se opt por considerar cul de
ellas presenta una mayor densidad de las Curvas de Pareto:
80
Como se puede observar, MOSARTS muestra una ventaja en cuanto a los promedios de los
objetivos, aun cuando, el promedio de nmero de soluciones de las curvas de pareto es
inferior. Adems, utilizando el mtodo de Hyun et al. (1998), se obtuvieron los siguientes
resultados:
82
Los resultados expuestos indican que, al generar una Curva de Pareto uniendo las dos
curvas generadas individualmente por ambas Metaheursticas, en promedio, un 75 % de las
soluciones pertenecen a MOSARTS y slo un 25% a Simulated Annealing simple.
Esto nos muestra que MOSARTS es un mejor mtodo que el uso de Simulated Annealing
simple, por lo que es un aporte en el estudio de las Metaheursticas, y resolucin de
problemas combinatorios, y refuerza el inters por compararla con otra tcnica ms
sofisticada como lo es Algoritmos Genticos.
83
Para la comparacin entre ambas Metaheursticas se utilizarn los mismos criterios a los
que se recurri para la comparacin entre distintos parmetros. As, cada una ser
ejecutada diez veces para ver su comportamiento en comparacin con la otra. Se utilizarn
dos problemas de prueba uno grande, el mismo utilizado anteriormente, de 49 trabajos y 15
mquinas, y otro ms pequeo de 20 trabajos y 10 mquinas.
20000
SA
15000
AG
10000
5000
0
3500 3600 3700 3800 3900 4000 4100 4200
Cmax
Como se puede observar, todas las soluciones de las Curvas de Pareto generadas por el
Algoritmos Gentico dominan a las generadas por MOSARTS en ambos objetivos.
85
Para el caso del problema mas pequeo MOSART no presenta muchas mejoras, aunque en
un primer anlisis se ve una mayor densidad en las curvas generadas por esta
Metaheurstica:
Pero el promedio de los objetivos sigue siendo peor. Adems de las 10 iteraciones en que
fue comparado, slo en una se logr superar al AG, obteniendo el 57% de la curva generada
por la combinacin de las curvas de ambas Metaheursticas, en el resto de las iteraciones el
AG siempre fue superior. Esto se puede apreciar en el siguiente grfico donde se muestran
las soluciones de todas las curvas generadas durante la comparacin:
86
1200
1000
Tardanza
800 SA
600 AG
400
200
0
370 380 390 400 410 420 430
Cmax
Grfico 4.2: Comparacin entre MOSARTS y Algoritmo Gentico para problema pequeo
20000
SA
15000
AG
10000
5000
0
3500 3600 3700 3800 3900 4000 4100 4200
Cmax
Las heursticas nacen para intentar encontrar buenas soluciones en un tiempo aceptable,
pero no indican qu tan cerca de la solucin ptima se encuentran. Por esto, aparecen las
Metaheursticas, que se pueden entender como heursticas, pero con mecanismos para
evitar caer en ptimos locales.
La creacin de una Curva de Pareto formada por la unin de dos de ellas, para luego
cuantificar el nmero de soluciones aportadas desde cada Metaheurstica, mtodo
91
introducido por Hyun, et al. (1998), es una muy buena medida para la comparacin, ya que
indica claramente si existe superioridad de alguna Metaheurstica en relacin con otra.
De todos los datos extrados al ejecutar las Metaheursticas, el que mejor indica la calidad
de las soluciones entregadas, es el promedio de los valores de los objetivos analizados, esto
se ve en el anlisis de parmetros y en la comparacin de las Metaheursticas, ya que
siempre fue mejor uno de los tems con buenos promedios en estas columnas.
Si bien MOSARTS entrega mejores soluciones que Simulated Annealing simple, esto no es
suficiente para igualarse, o superar, a las soluciones entregadas por el Algoritmo Gentico,
que siempre fue superior, por lo que se hace preciso alguna modificacin a MOSARTS
para poder competir con algoritmos ms sofisticados.
MOSARTS posee un tiempo de ejecucin mucho menor que el Algoritmo Gentico, por lo
que se ve como una oportunidad para realizar mejoras al algoritmo y que seguir siendo
mejor que otras Metaheursticas en el uso del tiempo. A su vez, una posible mejora para el
Algoritmo Gentico, claro que con un menoscabo en el tiempo de ejecucin, y el hecho de
92
Captulo 6. BIBLIOGRAFA
BAESLER, F., MORAGA, R. and CORNEJO, O. 2005. The use of memory elements in
simulated annealing to solve multiobjective parallel machine scheduling problems.
Aceptada en: Fifth Alio/Euro Conference On Combinatorial Optimization, Pars, Francia.
2005.
HANAFI, S. and FREVILLE, A. 1997. An efficient tabu search approach for the 0-1
multidimensional knapsack problem. En: European Journal of Operational Research,
vol.106, April, 1997.
HYUN, C. J., KIM, Y. and KIN, Y. K. 1998. A genetic algorithm for multiple objective
sequencing problems in mixed model assembly. En: Computers and Operations Research
1998.
LEE, Y., H. and PINEDO, M. 1995. Theory and methodology: scheduling jobs on parallel
machines whit sequence-dependent setup times. En: European Journal of Operational
Research, vol.100, November, 1995.
PINEDO, M. 1995. Scheduling: Theory, algorithms and system, New Jersey, USA:
Prentice-Hall, 1995.