optimizacion_de_la_produccion_-_metaheuristica

  • 303 views
Uploaded on

 

More in: Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
303
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
27
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Optimización de la próducción parapróblemas de ‘Flów-Shóp’Multióbjetivó Mediante la Utilizaciónde MetaheurísticasInvestigación de OperacionesSesión 14Tomado de: Oscar Abel San Martín ContrerasIntroducciónLas Metaheurísticas son un medio eficiente para resolver problemas reales en un tiempoaceptable. Al enfrentarse a un proceso de optimización, donde dadas ciertas condiciones ylimitaciones se trata de elegir de entre una serie de alternativas, la que nos entregue, en lamedida de lo posible, el mayor beneficio que se pueda obtener, pero el gasto de recursosen determinar cual es la mejor opción, puede ser muy alto.Dado esto, las técnicas, procedimientos y/o algoritmos que ayudan a resolver un problemade optimización merecen un profundo análisis. Casi todo problema se enmarca en unaestructura común, como lo menciona B. Philippi (1988), “Por una parte deben existiropciones o cursos de acción entre los cuales se debe poder escoger. Si la opción es única,ciertamente el problema es muy simple”, otro punto es “que este proceso requiere el podercomparar las ventajas y desventajas de los cursos de acción posibles”. Al saber qué es loque se quiere lograr, se puede tener claro los criterios de evaluación de las alternativas, yde esta forma tomar una decisión.Así, es imprescindible para una industria el contar con herramientas que le ayuden en esteproceso. Esto es porque habitualmente las alternativas posibles llegan a ser casi infinitas,los criterios de evaluación pueden ser numerosos, las limitaciones variadas, etc.
  • 2. La evaluación de alternativas que Flow-Shop es un modelo de planificación de ayuden a industrias que procesen tareas, donde se tiene una serie de trabajos, y donde cada uno de ellos consiste a su vez trabajos en máquinas secuenciales (o en una serie de tareas que son llevadas a cualquier organización que tenga cabo por un conjunto de máquinas que deben seguir las siguientes características procesos que se asimilen a básicas: procesamiento lineal de trabajos), lo  Cada máquina realiza una sola tarea y para un trabajo a la vez. que se llamará procesamiento de tipo  Las tareas requieren una sola tarea para Flow-Shop, es un objetivo que se ser completadas (en caso de no utilizarse la máquina, su tiempo es cero). persigue, para lograr optimizar sus  Los trabajos pasan por cada máquina una sola vez. procesos de programación de tareas, y  El orden de las máquinas es siempre el así lograr un mejor uso de sus recursos mismo. materiales y lograr eficiencia en la producción.Al comparar dos alternativas para la resolución de este tipo de problemas lo que se buscaes poder responder preguntas como ¿Cuál de las dos Metaheurísticas tiene un mejorcomportamiento?, ¿Cuál necesita mejoras para poder competir con la otras?, ¿Cuál es máseficiente?, ¿Cuál es más eficaz?, entre otras.También, el poder determinar formas en las cuales mejorar una, o ambas Metaheurísticasde ser posible, es algo que se espera obtener. Además de entregar observaciones quepermitan trabajos futuros.JustificaciónEn una industria, y en otras actividades, donde se ejecutan procesos en una formasecuencial (Flow-Shop), es decir, se forma una cola en una línea de producción y estostrabajos deben pasar por distintas máquinas en un mismo orden, se debe optimizar ciertosobjetivos, como son el tiempo total de procesos o lo relativo al momento de entrega de untrabajo, entre otros. Si se combinan estos objetivos en un solo problema, se tiene unproblema de Flow-Shop Multiobjetivo. En la práctica los problemas Multiobjetivo son losmás comunes, dado que las decisiones, generalmente, se toman considerando más de unaspecto.
  • 3. Por esto es interesante estudiar cómo las Metaheurísticas nos ayudan en la solución deeste tipo de problemas. Esto debido a que los algoritmos de métodos exactos existentespara encontrar soluciones óptimas, tienen un tiempo de proceso exponencial, porquebuscan en todo el espacio de soluciones y esto es ineficiente, y en algunos casos se vuelveimposible.Por otra parte las heurísticas no dan una certeza absoluta de qué tan buena es unasolución encontrada, pudiendo ésta ser, o no, mejorada.Los problemas de tipo Flow-shop Multiobjetivo no han sido muy estudiados, son pocas laspublicaciones relacionadas con este tema específico, por lo que se hará una recopilaciónbibliográfica tomando investigaciones similares aunque sólo consideren los temasinvolucrados individualmente.El motivo por el cual se implementarán y comparan una Metaheurística basada enSimulated Annealing y otra en Algoritmos Genéticos, es porque:Primero, prácticamente no hay publicaciones en las que Simulated Annealing resuelva estetipo de problemas, y dado que para problemas con un solo objetivo se ha demostrado quees una muy buena Metaheurística, vale la pena investigar su comportamiento enproblemas con más de un objetivo.Segundo, los Algoritmos Genéticos han sido ampliamente investigados y son una muybuena alternativa para solucionar problemas multiobjetivo y existen muchas publicacionesal respecto. Tercero, es interesante la comparación entre estas dos muy distintasAlternativas de solución para problemas multiobjetivo.
  • 4. Capítulo 1. TEMAS RELACIONADOS1.1 OptimizaciónAl tener una serie de alternativas entre las cuales poder elegir, lo natural e intuitivo esquerer elegir la mejor de ellas. El proceso de determinar cuál de éstas es la mejor,considerando los criterios que se han establecido, el objetivo que se quiere lograr, lasventajas y desventajas de cada opción, y todas las variables que puedan influir en ladecisión, se denomina optimización.En general un problema de optimización se define como:Optimizar f(X)Sujeto agi(X) { ≤, = , ≥ } bi; i=1,…,m;“Donde X es el vector de variables de decisión con n elementos {x 1, x2,…, xn}; y lasfunciones f(X) y gi(X) son funciones generales.Cuando todos los elementos en el Vector X toman valores discretos, se conoce como unproblema de optimización combinatorio” (Moraga, 2002).Así, por ejemplo, una persona tiene cierta cantidad de dinero, y está pensando en gastarloen varios productos, pero la suma de los precios de estos artículos es mayor que lacantidad que posee, el modelo sería como sigue:Maximizar el beneficio que le ofrecen los productosSujeto aPrecio producto1 + Precio producto2 +… + Precio producto n ≤ $ disponibleConPrecio producto 1 = cant. 1Precio producto 2 = cant. 2---Precio producto n = cant. NEn este sencillo ejemplo se pueden identificar las partes de la formulación de un modelodel problema. La decisión que tome esta persona dependerá de los criterios que hayadefinido para elegir, por ejemplo, si piensa que ciertos productos le son más necesarios, se
  • 5. decidirá por estos, siempre que la suma de los precios no sea mayor a lo que dispone. Perosi piensa que un producto que no necesita tanto, pero está muy barato y es una granoportunidad el adquirirlo, entonces si vale menos de lo que posee, se podría decidir por él.Pero esta es una decisión 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 combinación para que el tiempototal de procesamiento de estas tareas sea el mínimo.Se asume que las n tareas están ya en el sistema para comenzar a ser procesadas en el tiempo R. Supongamosque se tienen 5 tareas, con sus respectivos tiempos de proceso.Tarea 1 = 180Tarea 2 = 40Tarea 3 = 200Tarea 4 = 500Tarea 5 = 250Tarea 6 = 150a) Aplicando la regla FIFO, se obtendría lo siguiente:SoluciónTarea 1 - Tarea 2 - Tarea 3 - Tarea 4 - Tarea 5 - Tarea 6Con un tiempo total de: 180 + 220 + 420 + 920 + 1170 + 1320 = 4230b) Aplicando la regla SPT (tiempo de proceso más corto) se obtendría lo siguiente:Solución:Tarea 2 - Tarea 6 - Tarea 1 - Tarea 3 - Tarea 5 – Tarea 4Con un tiempo total de: 40 + 190 + 370 + 570 + 820 + 1320 = 3310Aquí podemos ver que usando la regla SPT se logra una mejor solución que utilizando laregla FIFO.Pero el total de combinaciones que se puede conseguir en este problema está dado porfactorial del número de trabajos, eso sería 6! = 720 combinaciones posibles. Lo quemuestra que analizar todas las posibles secuencias de trabajos puede resultar un trabajoarduo, y a veces imposible.
  • 6. A continuación se presenta una tabla donde se muestren las combinaciones posibles parael número de trabajos que se indica: Tabla 1.1: Número de soluciones posibles para el número de trabajos dado Nro. Tareas Nro. De combinaciones Posibles 6 720 7 5.040 8 40.320 … …. 20 432.902.008.176.640.000 21 51.090.942.171.709.400.000 22 1.124.000.727.777.610.000.000 23 25.852.016.738.885.000.000.000 24 620.448.401.733.239.000.000.000 25 15.511.210.043.331.000.000.000.000 … …. 30 265.252.859.812.191.000.000.000.000.000.000 31 8.222.838.654.177.920.000.000.000.000.000.000 32 263.130.836.933.694.000.000.000.000.000.000.000Por lo que se puede ver, aún con el computador más potente, resulta imposible poderesperar el proceso para la tomar la decisión de cual es la mejor solución, ya que, porejemplo, para computar todas las posibles soluciones para 32 tareas, esto es 32! =1.6*1035, suponiendo que “una computadora puede examinar mil millones de secuenciaspor segundo, ¡tomaría 8.4 * 1015 siglos!” (Sipper y Bulfin, 1998). Para 16 tareas se calculaaproximadamente en 8 meses el procesamiento de las combinaciones posibles paradeterminar cuál será la óptima (Sipper y Bulfin, 1998).Como en la industria muy pocos sistemas de planificación consideran tan pocos trabajos, yno se puede disponer del tiempo para esperar los resultados de algoritmos exactos, dadola limitada capacidad de proceso de los computadores, se hace necesario elaborar nuevosprocedimientos que permitan realizar este procesamiento en un tiempo aceptable, asínacen las heurísticas.
  • 7. 1.2 HeurísticasUna Heurística es una técnica que busca soluciones (ojalá cercanas al óptimo) a un costocomputacional razonable, pero no garantiza que la solución encontrada en realidad estácerca del óptimo, ni da indicios de qué tan buena es. Es importante mencionar que unaheurística no considera todas las combinaciones posibles para determinado problema,sólo unas pocos.En general una heurística puede ser clasificada como Heurística de Construcción oHeurística de Búsqueda local.1.2.1 Heurísticas de ConstrucciónLleva a cabo una secuencia estructurada de iteraciones, en la que se toman en cuentatodos los aspectos que se considerarán para la toma de la decisión y se termina con unasolución factible. Se tiene una función que evalúa la calidad de la solución.Una heurística de construcción, o regla, es un procedimiento que sistemáticamente asignavalores a cada xi (i=1,…, n) en un número finito de pasos.Algunas heurísticas de construcción son:• FIFO (primero en llegar, primero en salir)• SPT (Tiempo de proceso más pequeño)• LPT (Tiempo de proceso más grande)1.2.2 Heurísticas de Búsqueda LocalPara definir qué es búsqueda local, se requiere especificar un vecindario local. Labúsqueda se realiza desde una solución inicial que se modifica a través de operadores.Dada una solución X, los elementos del vecindario de X son aquellas soluciones X’ quepueden ser obtenidas aplicando sobre X una modificación elementaría conocida como“movida”, y no se suele guardar historia del camino recorrido. Una movida, por ejemplo,puede ser el “intercambio” o la “inserción”.
  • 8. Supongamos que tenemos la siguiente secuencia de tareas:X = Tarea 1 – Tarea 2 – Tarea 3 – Tarea 4 – Tarea 5Un intercambio se refiere a tomar dos tareas de esta secuencia y poner una en la posiciónde la otra y viceversa. Así, por ejemplo, las siguientes secuencias serían vecinos de X:X’ = Tarea 2 – Tarea 1 – Tarea 3 – Tarea 4 – Tarea 5X’ = Tarea 1 – Tarea 3 – Tarea 2 – Tarea 4 – Tarea 5X’ = Tarea 4 – Tarea 2 – Tarea 3 – Tarea 1 – Tarea 5Etc.Una inserción constaría de tomar una tarea de la secuencia y ponerla en cualquier otraposición de la lista. Por ejemplo:X’ = Tarea 2 – Tarea 3 – Tarea 4 – Tarea 1 – Tarea 5X‘= Tarea 1 – Tarea 5 – Tarea 2 – Tarea 3 – Tarea 4X’ = Tarea 5 – Tarea 1 – Tarea 2 – Tarea 3 – Tarea 4Etc.Pero desafortunadamente, los problemas a los cuales se enfrentan las industrias en suslíneas de producción requieren de sistemas que entreguen soluciones mucho máscercanas al óptimo que las que puede elaborar una heurística común. Así entonces, esnecesario considerar el uso de Metaheurísticas para la programación de la producción.1.3 MetaheurísticasEn esta sección se interiorizará un poco en lo referente a las Metaheurísticas, pero no seespecificará ninguna, ya que existirá un capítulo completo dedicado al análisis deMetaheurísticas.“Una Metaheurística es un técnica de resolución iterativa que guía a una heurísticasubordinada combinando de forma inteligente diferentes técnicas de exploración delespacio de búsqueda; y utilizando estrategias de aprendizaje para estructurar lainformación con objeto de encontrar de forma eficiente soluciones cercanas al óptimo”(Osman y Laporte, 1996).
  • 9. Las Metaheurísticas tienen que tener como un objetivo el escapar a óptimos locales quepueda encontrar, con el fin de recorrer de forma basta todo el espacio de soluciones.Una Metaheurística puede presentarse como:Meta heurística = Construcción + Búsqueda Local + Estrategias y mecanismos para evitar óptimos locales.Una Metaheurística puede usar cualquier heurística o algoritmo subordinado queentregue una solución inicial y factible para la etapa de construcción.La búsqueda local puede utilizar una heurística de búsqueda local, esto es medianteinserción, intercambio u otra, para definir la vecindad de la solución inicial. Y así evaluar elprimer vecino que se encuentre, el primero que mejore la solución, un vecino aleatorio,etc.Como estrategias para evitar óptimos locales se pueden mencionar las siguientes:  Permitir movimientos de empeoramiento de la solución actual.  Modificar la estructura de entornos.  Volver a comenzar la búsqueda desde otra solución inicial.  Diversificación, (alejarse del punto actual).Algunas Metaheurísticas bien conocidas son:1.3.1 Algoritmos GenéticosEsta Metaheurística tiene su base, y nace, sobre la teoría de la evolución de las especies.La idea es que en una población de individuos (soluciones iniciales), ésta es sometida aacciones aleatorias, con las que se generan nuevos individuos (soluciones evolucionadas)de los cuales se seleccionan los más aptos para que sigan evolucionando.Construcción  Generación Aleatoria + Búsqueda Local  Cruzamiento & Mutación1.3.2 Simulated AnnealingEl nombre de esta Metaheurística nace del proceso de templado (Annealing) de losmetales.
  • 10. Donde se calienta un metal y luego controladamente se va enfriando, si este proceso serealiza rápidamente, el metal puede presentar imperfecciones, si se hace gradualmente laspropiedades de este metal serán mejores.Esta Metaheurística utiliza un parámetro que va disminuyendo en cierta cantidad, según elcual se realiza una búsqueda local, eligiendo un vecino cada vez que disminuye esteparámetro, mientras menor sea el valor de éste menos posibilidades de elegir un malvecino existen, el proceso se realiza hasta que este parámetro llegue a cero.Construcción  Generación Aleatoria + Búsqueda Local  Probabilidad de aceptar malassoluciones.1.3.3 Tabú SearchLa idea básica del método, es la de explorar el espacio de búsqueda de todas las solucionesfactibles por una secuencia de movimientos. Un movimiento de una solución a otra es elmejor disponible, es decir, de todas las soluciones a las que se puede pasar se escoge laque mejore más el o los objetivos deseados. Sin embargo, para escapar de un óptimo localy para prevenir los ciclos, algunos movimientos, en una iteración en particular, sonclasificados como prohibidos o tabú. Los movimientos en tabú están basados en la historiade la secuencia de movimientos a corto y largo término. Una implementación simple, porejemplo, puede clasificar un movimiento como tabú si el movimiento contrario ha sidohecho recientemente o frecuentemente. Algunas veces, cuando es favorable, unmovimiento tabú puede ser realizado a pesar de todo.Construcción  Generación Aleatoria + Búsqueda Local  Lista Tabú LTM, Criterio deaspiración.1.3.4 Meta-RapsMeta-RaPS es una Metaheurística que realiza un proceso de búsqueda de soluciones unnúmero determinado de veces, en cada iteración construye una solución factible, a travésde la utilización de reglas de prioridad usadas en forma aleatoria y luego utiliza búsqueda
  • 11. local y un proceso de mejoramiento. Cada vez que realiza el proceso mantiene la mejorsolución encontrada hasta ese momento.Construcción  Generación Aleatoria + Búsqueda Local  Combinación aleatoria dereglas.1.4 MultiobjetivoEn la sección de optimización, se explicó de manera simple en que consistía encontrar “lamejor” solución para un problema. Para un mejor entendimiento sólo se mencionó queexistía un Objetivo, que estaba en función de ciertas variables, cada una con unaponderación, en base a la cual se tomaba una decisión, dependiendo de cual combinaciónde variables optimizaba este objetivo, es decir, lo maximizaba o minimizaba según el caso,y que esta combinación fuera factible de elaborar, o sea, que cumpla con las restriccionesdel problema.Pero en muchos casos un problema puede tener varias Funciones Objetivo, como porejemplo, se podría querer maximizar la utilidad, o minimizar los tiempos totales deproceso, 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 dedecisiones, también se hace preciso considerar que se logren todos los objetivospresentados para ese problema.En este estudio se analizan sólo Funciones Objetivo que se requiere sean minimizadas, yaque para procesos industriales, en lo referente a programación de la produccióngeneralmente, se desean minimizar Objetivos como los que se mencionan a continuación(Pinedo, 1995):  Cmax (Makespan)  Tardanza Total o Tardiness (Tmax)  Máximo Retraso(Lmax)1.4.1 Cmax (Makespan)Se representa como Cmax, se define como el máximo entre un conjunto de valores, máx.(C1,…, Cn), donde Ci es el tiempo de término de procesar el trabajo i. Cmax se entiendecomo el tiempo del último trabajo en salir del sistema.
  • 12. Supongamos un proceso donde se tiene tres trabajos para ser procesados en unamáquina, con los tiempos de procesamiento que se indican: Tiempo de Tiempo Trabajo Ci Proceso Acumulado 1 12 12 12 2 10 22 34 3 5 27 49Supongamos que los trabajos están listos en el sistema para empezar a ser procesados, yque el pasar de un trabajo a otro no tiene un tiempo significativo. Entonces, cuando eltrabajo 1 es procesado han pasado 12 unidades de tiempo (u/t), luego al procesar eltrabajo 2, este permaneció 12 u/t en el sistema más las 10 u/t que requiere para serprocesado, por lo que su tiempo total de permanencia en el sistema es de 22 u/t, con loque la suma del trabajo 1 más el trabajo 2 es de 34 u/t. Para el trabajo tres se hace elmismo cálculo, con lo que el tiempo de permanencia en el sistema es de 27 u/t., y alcalcular el Cmax este da un total de 49 u/t.Si se busca una mejor programación de estos trabajos, se podría llegar a lo siguiente,donde se aprecia que el Cmax es menor: Tiempo de Tiempo Trabajo Ci Proceso Acumulado 2 10 10 10 3 5 15 25 1 12 27 42
  • 13. 1.4.2 Tardanza TotalSe representa por T. Indica la suma de las tardanzas que podrían tener los trabajos quedeben realizarse. Para entenderlo se tomará el ejemplo anterior y se le agregará lostiempos de entrega de los trabajos. Tiempo de Tiempo Tiempo Trabajo Ci Ti Proceso Entrega Acumulado 1 12 17 12 12 -5 2 10 -2 22 34 36 3 5 6 27 49 43 79La idea siempre es que los trabajos se terminen a tiempo, por lo que se hace imperiosotener un buen programa que permita que esto se cumpla.La tardanza se expresa de la siguiente forma: T = Σ max (0, Ci – Ti)Donde Ci indica el tiempo de salida del trabajo i del sistema, y Ti indica en tiempo deentrega de ese trabajo, por lo que el cálculo sería el siguiente: T = max ( 0 , 12 – 17 ) + max ( 0 , 34 – (-2) ) + max ( 0 , 49 – 6 ) T = 79Para el otro programa se tendría lo siguiente: Tiempo de Tiempo Tiempo Trabajo Ci Ti Proceso Entrega Acumulado 2 10 -2 10 10 12 3 5 6 15 25 19 1 12 17 27 42 25 56 T = max ( 0 , 10 – (-2) ) + max ( 0 , 25 – 6 ) + max ( 0 , 42 – 17 ) T = 56
  • 14. Con estos dos ejemplos se puede ver claramente que el segundo programa de producciónes mejor que el primero, porque para ambos objetivos este programa es mejor, pero hastael momento nada nos indica si se ha llegado al mejor ya que pueden existir mejoresprogramas.Pero puede darse el caso de encontrar una solución que sólo sea mejor en uno de losobjetivos. En ese caso no se puede decir cuál de las soluciones es mejor que la otra, y esose llamará solución no dominadas.Un problema multiobjetivo, suele tener una función objetivo de la siguiente forma: Max o Min Z = f(x) = (f1(x), f2(x), ..., fn(x)),Donde cada fi(x) representa un objetivo, diremos entonces que una solución domina a otrasí:  Es mejor en todos los objetivos.  Es mejor en al menos un objetivo e igual en los demás.  De esto nace lo que se denomina Curva de Pareto, generada de las soluciones no dominadas al graficarlas.A continuación se muestra un gráfico de la Curva de Pareto para un problema conobjetivos de Cmax (makespan) y Tardanza Total (tardiness). Gráfico 1.1. Curva de pareto para objetivos de Cmax y Tardiness.
  • 15. Las siete soluciones unidas por una línea dominan a todas las demás, pero ninguna de ellaspuede ser considerada mejor que cualquier otra que se encuentre en la curva.1.4.3 Retardo MáximoSe define como la sumatoria de las diferencias entre el tiempo de término de un trabajo ysu fecha de entrega. Por lo tanto, en el ejemplo que se ha usado, se tiene lo siguiente: Tiempo de Tiempo Tiempo Li Trabajo Ci Ti Proceso Entrega(di) Acumulado Ci - di 1 12 17 12 12 -5 -5 2 10 -2 22 34 36 36 3 5 6 27 49 43 43 79 T = max {12 – 17, 34 – (-2), 43 – 6} T = 43Y para el otro programa se tiene: Tiempo de Tiempo Tiempo Li Trabajo Ci Ti Proceso Entrega(di) Acumulado Ci - di 2 10 -2 10 10 12 12 3 5 6 15 25 19 19 1 12 17 27 42 25 25 56 Lmax = max {10 – (-2), 25 – 6, 42 – 17} Lmax = 25
  • 16. 1.5 Flow-ShopUn aspecto importante dentro de la investigación, es el que tiene que ver con laprogramación de la producción para problemas de tipo Flow-Shop.Generalmente los objetivos que se busca minimizar en estos problemas son el makespan yla tardanza total.Un problema de tipo Flow-Shop es básicamente uno en el cual se presentan n trabajos T1,T2,…, Tn. Cada trabajo consta de cierto número de tareas t1, t2,…, tn, para ser programadosen m máquinas m1, m2,…, mn, los cuales deben pasar por las máquinas en un mismoorden, cada trabajo posee un tiempo de proceso para cada máquina y una fecha deentrega, por lo que los trabajos deben programarse de forma que estén listos antes deesta fecha.Para ejemplificar un problema de programación de tipo Flow-Shop, se considerará unalínea de montaje automotriz simplificada, la que dispone de tres procedimientosprincipales: armado, pintura y montaje, cada uno de los cuales es realizado por unamáquina.A este proceso pueden llegar varios trabajos que llamaremos órdenes de trabajo, cada unacon una fecha de entrega, y una cantidad de automóviles, es decir, que por ejemplo unaorden puede tener 50 automóviles asignados y otra orden 20. Así entonces, cadaautomóvil sería una tarea.El proceso automatizado comienza considerando un patrón guardado en un computador,el que es modificado según el trabajo que se quiera realizar, es decir, el diseño delautomóvil que se fabricará. Cada máquina recibe las partes esenciales para su labor desdeuna máquina suministradora.La máquina de Armado tiene como función la unión de las partes que han sido recibidas,de acuerdo con su respectiva forma y modelo, o sea, la carrocería, puertas, pisos,cubiertas, etc. La operación central es la soldadura autógena y el recubrimiento deuniones para mejorar la presentación. Adicionalmente, se realizan actividades depulimento, impermeabilización y limpieza.La máquina de Pintura, protege al vehículo de la corrosión y le da un aspecto reluciente. Elvehículo seudo-ensamblado, se desengrasa y luego se laca y se cubre con fosfato para que
  • 17. absorba mejor la pintura. Después de varios enjuagues se aplican varias capas deanticorrosivo. Las últimas capas de pintura corresponden a acrílico brillante. La aplicaciónde estas sustancias se hace en cámaras especiales que pueden operar de diversas formas,de acuerdo con el nivel tecnológico de las empresas.La máquina de Montaje, realiza la parte del proceso en la cual se ensamblan las partesmecánicas, el motor, los ejes, el sistema de frenos, tapetes y accesorios. Después de esteproceso los automóviles están listos para ser entregados. Figura 1.1. Modelo de producción secuencial de una automóvil.Entonces, el problema de este sistema es el establecer qué trabajo se hace en quémomento, es decir, realizar el proceso de programación de la producción.1.6 Programación de la ProducciónLa programación de la producción se refiere a la secuencia en la que los trabajos seránprocesados, de manera de lograr los tiempos que se desea cumplir, y satisfacer todas lasrestricciones que se tenga, como pueden ser el uso de las máquinas, los tiempos deentrega, etc.En la sección 2.1 se hizo una pequeña introducción a lo referente a programación de laproducción, pero ahora se pasa a explicar de mejor forma.Un programa se puede representar como una secuencia de números donde cada númeroindica el orden en que se ejecutará ese trabajo; por ejemplo, la secuencia 1 – 2 – 3, indicaque el trabajo 1 es el primero en procesarse, luego el 2, y por último el 3. Por otro lado, lasecuencia 3 – 2 – 1 indica que el primer trabajo en procesarse es el 3, después el 2, yfinalmente el 1.
  • 18. 1.6.1Aspectos importantesPara realizar la programación hay tres aspectos importantes que deben considerarse: lostrabajos, las máquinas y la medición.1.6.1.1 Trabajo“Los trabajos son actividades a realizar” (Sipper y Bulfin, 1998). Los trabajos que se puedenidentificar en el ejemplo de la línea de montaje automotriz, de la sección anterior, son lasórdenes de automóviles que se deben realizar. Si nos imaginamos una papelera, lostrabajos serían las diversas órdenes de papeles y cartones que debe producir, y en unafábrica de ropa serían los conjuntos de prendas iguales que se deben hacer.Un trabajo siempre debería tener un tiempo de proceso y una fecha en la que debe estarterminado. Para el presente análisis supondremos que un trabajo una vez que comienza aser procesado no se detiene hasta que es terminado.Otras características que puede poseer un trabajo, según Sipper y Bulfin (1998), son que:  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.  Puede poseer una fecha de inicio, antes de la cual no puede comenzar el proceso.1.6.1.2 Máquinas“Las Máquinas procesan los trabajos” (Sipper y Bulfin, 1998). Las máquinas en la industriason literalmente máquinas o robots, pero en una pista de aterrizaje en un aeropuerto, unbus en una empresa de transporte, una mesa en un casino, también pueden considerarsemáquinas.Las máquinas pueden clasificarse como sigue (Sipper y Bulfin, 1998):1.6.1.2.1 Una sola máquinaSe tiene una sola máquina para procesar todos los trabajos, esta máquina sólo puedeprocesar un trabajo a la vez, y una vez que termina uno puede continuar con el siguiente.
  • 19. 1.6.1.2.2 Máquinas paralelasSon varias máquinas idénticas en el sentido de que pueden realizar los mismosprocesamientos. Así entonces, un trabajo se podría realizar en cualquiera de ellas paraquedar terminado, y el tiempo de proceso es el mismo indiferente de la máquina en quese procese.1.6.1.2.3 Talleres de producción continuaEs donde se encuentran diferentes máquinas y los trabajos, para ser completados, debenpasar una vez por cada una y en el mismo orden, es decir, si numeramos las máquinascomo 1, 2 y 3, un trabajo no puede pasar a la máquina 2 si no ha pasado por la 1, y nopodrá pasar a la 3 si no ha terminado en la 2.Interesa de sobremanera este forma de producción, ya que es en este tipo deprocesamiento el énfasis del análisis que se está realizando, es decir, un procesamiento detipo Flow-Shop.1.6.1.2.4 Producción intermitenteEs similar al de producción continua, es decir, existen varias máquinas distintas, pero lostrabajos no deben pasar una vez por cada una ni en el mismo orden necesariamente. Esdecir, un trabajo podría pasar por la máquina 1 y luego por la 2, pero nunca por la 3, encambio otro solo podría pasar por la 3.1.6.1.2.5 Plantas abiertasSon en los cuales da lo mismo por qué máquina pasan primero los trabajos, en caso de quedeban pasar por más de una. Un ejemplo es un taller mecánico, donde un automóvil queingresa, y da lo mismo que reparación se realice primero.1.6.1.3 MediciónLa medición se refiere a cómo evaluamos si nuestro programa de producción es el másadecuado, es decir, cómo podemos determinar si es el mejor programa que podemostener o, en su defecto, uno que sea lo suficientemente bueno.
  • 20. Maximizar utilidad o minimizar costos, son los objetivos que cualquier empresa persigue,pero “desafortunadamente, es difícil estimar los parámetros financieros que relacionen unprograma con costo o ganancia” (Sipper y Bulfin, 1998). Por esto, las medidas que seutilizan son generalmente las mencionadas en la sección 1.4.A continuación se presenta formalmente la notación que se utilizará en la investigación enlo que tiene que ver con los elementos de un problema de programación de la producción(Sipper y Bulfin, 1998):n = número de trabajos que serán procesadosm = número de máquinaspik = tiempo de proceso del trabajo i en la máquina k ( pi si m = 1)ri = tiempo de liberación de la orden del trabajo idi = fecha de entrega del trabajo iwi = ponderación (importancia o valor) del trabajo i respecto a los otros trabajosEn un programa específico, se define para cada trabajo i:Ci = tiempo de terminación del trabajo iFi = Ci – ri, tiempo de flujo del trabajo i (Fi > 0)Li = Ci –di, retraso del trabajo i (Li < 0 denota anticipación)Ti = max (0, Li), tardanza del trabajo iEi = max (0, -Li), adelanto del trabajo iCmax = max i = 1,n {Ci}, tiempo máximo de terminación de todos lostrabajos (makespan)Lmax = max i = 1,n {Li}, retraso máximo de todos los trabajosTmax = max i = 1,n {Ti}, tardanza máxima de todos los trabajos1.6.2 SupuestosEl primero de los supuestos que se debe considerar es el de disponibilidad, que quieredecir que los trabajos están listos y dispuestos para ser procesados en la línea deproducción, es decir, ri= 0.También se supone la certidumbre de los datos, es decir, que en ningún problema sepodría argumentar el desconocimiento de los datos exactos.
  • 21. Otro supuesto que ya se mencionó en una sección anterior, es que un trabajo una vezcomenzado no se detiene hasta que está terminado.La precedencia entre los trabajos no existe, es decir, son trabajos totalmenteindependientes.Capítulo 2. METAHEURÍSTICAS PARAPROGRAMACIÓN DE PRODUCCIÓN EN PROBLEMASDE TIPO FLOW-SHOP MULTIOBJETIVONo existen algoritmos exactos que puedan resolver problemas reales con más de unobjetivo en un tiempo razonable (Baesler, et al., 2005). En muchas ocasiones encontraruna solución óptima para un solo objetivo es imposible, producto de la complejidad de losproblemas. Es por esto que las Metaheurísticas surgen como una buena alternativa pararesolver problemas multiobjetivo.La mayoría de los desarrollos para la solución de problemas multiobjetivo están ligados aAlgoritmos Genéticos (AG), a diferencia de las implementadas basadas en SimulatedAnnealing, por lo que en el presente capítulo se presentarán dos metaheurísticas, unabasada en cada tema.
  • 22. 2.1 Algoritmos GenéticosAlgoritmo genético es una técnica de búsqueda basada en la teoría de la evolución deDarwin, es decir, procesos de selección natural y evolución genética. “Esta técnica se basaen los mecanismos de selección que utiliza la naturaleza, de acuerdo a los cuales losindividuos más aptos de una población son los que sobreviven, al adaptarse másfácilmente a los cambios que se producen en su entorno. Hoy en día se sabe que estoscambios se efectúan en los genes (unidad básica de codificación de cada uno de losatributos de un ser vivo) de un individuo, y que los atributos más deseables del mismo setransmiten a sus descendientes, cuando éste se reproduce sexualmente”,(REDCIENTIFICA.COM).2.1.1 Características principalesPoblación de individuos: Representan las soluciones del problema a resolver. Cadasolución es un cromosoma, por ejemplo:C = [4 2 3 1]En un problema de tipo Flow Shop, significa que el primer trabajo en procesarse será el 4después el 2, posteriormente el 3 y finalmente el 1.Operadores Genéticos: Selección Natural, Evolución Genética y Cambios Adaptativos, losque son simulados por la selección (mejores individuos o soluciones), cruce orecombinación (consiste en producir un nuevo individuo a partir de los genes de dospadres) y mutación (consiste en intercambiar el orden de las de los genes en un individuo,lo que en un problema de Flow Shop, sería cambiar la secuencia de los trabajos en unasolución), respectivamente.Función de Aptitud (o función de fitness): Determina la adaptación del individuo al medio(solución al problema), es decir que tan buena es la solución.
  • 23. 2.1.2 Algoritmo Genético Simple1. Elegir aleatoriamente una población de individuos2. Evaluar la aptitud (fitness) de cada individuo3. Repetir hasta alcanzar condición de terminación4. Seleccionar los individuos más aptos para reproducir5. Combinar pares de individuos aleatoriamente6. Aplicar el operador de recombinación7. Aplicar el operador de mutación8. Evaluar la aptitud (fitness) de cada individuo9. FinEl Algoritmo se podría mostrar gráficamente así: Figura 2.1. Secuencia de algoritmo genético.2.1.3 Algunos Algoritmos Genéticos MultiobjetivoLa primera implementación de un AG Multiobjetivo fue desarrollada por Schaffer en 1984,denominado VEGA (Vector Evaluated Genetic Algorithm). “Esta implementación tiene laidea de crear sub-poblaciones seleccionando los individuos de acuerdo con cada objetivo.Suponiendo que se tengan N individuos y se necesita optimizar k objetivos, se generan ksub-poblaciones con N / k individuos cada una. Luego esas sub-poblaciones son cruzadas yse le realizan operaciones de mutación para crear una nueva población” (Pappa, 2002).
  • 24. Posteriormente Goldberg en 1989, “incorpora el concepto de dominancia dentro delproceso de selección de individuos en el AG”, (Baesler, et al., 2005). Su idea era utilizar elconcepto de dominancia para separar a los individuos en grupos llamados ranking, dondecada ranking contendrá solo soluciones no dominadas. Así el primer ranking contendrá lassoluciones no dominadas del conjunto de soluciones y se les asignará el valor de fitnessmás elevado, el segundo ranking será compuesto de las soluciones no dominadas delconjunto de soluciones, no considerando las soluciones del ranking anterior. El valor defitness de este ranking será menor que el anterior pero superior que el siguiente. Elproceso continúa hasta que no existan individuos en la población. Además, Goldbergintrodujo el concepto de formación de nichos y la utilización de una función fitnesscompartido, compuesta de dos medidas, la función objetivo y el índice de la densidad depoblación del nicho al que ese individuo pertenece. Un nicho es la división de la poblaciónen especies, que reúne a individuos de características similares, se usa para reducir lacompetición por recursos y obtener sub-poblaciones estables, cada una de ellasconcentrada en un nicho de búsqueda, (Pappa, 2002).A continuación se muestran dos Algoritmos Genéticos que siguen los conceptosdesarrollados por Schaffer y Goldberg. La principal diferencia entre estos algoritmosconsiste en la forma en que el valor de la función de aptitud (fitness) es atribuido a losindividuos de la población.2.1.3.1 MultiObjective Genetic Algorithm (MOGA)Fonseca y Fleming fueron los creadores de MOGA en 1993. La idea es asignar una jerarquíaa los individuos, la que es igual al número de individuos de la población que lo dominanmás uno, es decir, los individuos de la frontera de Pareto tienen un valor de jerarquía iguala 1, ya que no son dominados por ninguna solución. El valor de la función de aptitud sepuede entender como:Aptitud = 1 / (valor de jerarquía)Su funcionamiento puede ser resumido en 3 etapas:Primero, ordenar toda la población de acuerdo a los individuos no dominados. El procesocontinua hasta que todos los individuos de la población han sido clasificados.
  • 25. Luego los individuos pertenecientes a al jerarquía 1 reciben un valor de ranking igual a 1,los individuos del jerarquía 2 y siguientes reciben un valor de ranking igual al número desoluciones que las dominan más. Por ejemplo, si la frontera de Pareto posee 3 elementos,los individuos del jerarquía 2 tendrán un valor de ranking igual a (3 + 1) = 4.Finalizado el proceso de ordenación, la función de aptitud es atribuida a cada solución deacuerdo con su ranking.2.1.3.2 Multiobjetive Optimization using Non-Dominated Sorting in Genetic Algorithms(NSGA)Este algoritmo fue propuesto por Srinivas y Deb (1994). Es similar a MOGA, la principaldiferencia está en la forma en que se atribuye la función de aptitud a cada individuo y enel uso de la estrategia de fitness compartido, (Pappa, 2002). Al igual que MOGA, se basaen la clasificación de individuos en varias capas o frentes. El valor de la función de fitnesspara cada individuo en el primer frente es igual a N, donde N es el número de individuosde la población. Luego se utiliza una estrategia de fitness compartido, a cada individuo sele atribuye una función de fitness compartido dividiendo el valor anteriormente atribuidopor el contador del nicho (número de individuos del nicho). Es guardado el valor de fitnesscompartido. Después se identifican los individuos no dominados del segundo frente, y sele asigna un nuevo valor de función de fitness, que es más pequeño que la función defitness compartido del primer frente, es decir, el guardado anteriormente menos un valorpequeño, y así hasta que no queden más individuos. Puesto que los individuos en el primerfrente tienen el valor de fitness mayor, consiguen siempre más copias que el resto de lapoblación.2.1.4 Algoritmo Genético Multiobjetivo a ImplementarEl AG a implementar tiene la misma estructura de un AG simple, en que se considera todoslos elementos relacionados con un AG, es decir, creación de la población inicial, selecciónnatural, mutación, recombinación, función de aptitud y criterio de término. El aspecto másimportante en esta implementación, es la forma en la que se asigna el fitness a losindividuos, en la cual se usan los conceptos de dominancia y nicho.
  • 26. A continuación se muestran los aspectos más importantes del AG desarrollado:2.1.4.1 RepresentaciónCada solución, o individuo, es representado mediante un vector, el cual posee valoresentre 1 y en número de trabajos que posea el problema, como se muestra a continuaciónpara un problema con 7 trabajos: 7 5 1 4 3 2 6El cuál indica la secuencia de proceso de los trabajos, por lo que no puede existir unindividuo en el cual se repita algún trabajo, ni con un valor en la secuencia superior alnúmero de trabajos.2.1.4.2 Población InicialLa población inicial es generada en forma aleatoria, es decir, considerando el tamaño de lapoblación, se crean individuos diferentes en base a la generación de números aleatorios,cumpliendo con la representación anterior, por lo que cada vez que el algoritmo esejecutado, la población inicial es siempre distinta. Por ejemplo, si existiera un problema de7 trabajos, y una población de 4 individuos, la población podría ser la siguiente: 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 5O bien esta otra: 1 5 6 4 7 2 3
  • 27. 3 5 4 6 7 2 1 7 1 2 3 5 4 6 5 4 1 2 3 6 7O cualquier otra combinación.2.1.4.3 SelecciónA cada individuo se le asigna una probabilidad de selección de acuerdo con su fitness,luego mediante una ruleta se seleccionan los individuos para el cruzamiento, y así pasar ala siguiente generación. Los individuos seleccionados son la mitad de la población.También es preciso mencionar una estrategia de elitismo, la cual elije a todos losindividuos que se encuentren en la Frontera de Pareto para que pasen a la siguientegeneración. A continuación se presenta un ejemplo:Supóngase que se tienen los siguientes individuos, con el fitness indicado en la tabla: Tabla 2.1: Fitness de los individuos y probabilidad de selección Probabilidad de Probabilidad Individuo Fitness Selección 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 6 60 60/640 0.09 0.81 7 50 50/640 0.08 0.89 8 40 40/640 0.06 0.95 9 20 20/640 0.03 0.98 10 15 15/640 0.02 1.00 Suma Fitness 640 1.00
  • 28. La probabilidad de que un individuo sea seleccionado para pasar a la siguiente generaciónestá dada por su fitness, dividido por la suma de los fitness de cada individuo, así, porejemplo, la probabilidad de seleccionar al individuo número 1, es : 100 / 640 = 0.16. Elmismo cálculo es realizado para cada individuo de la población. Así, como podemos ver enel siguiente gráfico, cada individuo posee una probabilidad se selección que depende dequé tan buena solución es. Gráfico 2.1: Probabilidades de Selección y RuletaAsí, la selección por ruleta se puede visualizar como el proceso de elegir un númeroaleatorio entre 0 y 1, y elegir al individuo que está en ese rango, para lo cuál ayuda elcálculo de la probabilidad acumulada. Por ejemplo, un número aleatorio x=0.28, nos indicaque el individuo a seleccionar es el segundo ya que su probabilidad acumulada es 0.32, ycualquier valor aleatorio entre 0.17 y 0.32, indicaría la selección de éste.Ya que es posible que más de una vez la elección de un número aleatorio coincida con unmismo individuo, no hay problema en que éste sea seleccionado más de una vez. Además,como se mencionó anteriormente, los individuos de la Frontera de Pareto, pasanautomáticamente a la siguiente generación, lo que en este ejemplo, significaría que losindividuos 1, 2 y 3 son seleccionados en primer lugar, y para completar la mitad de lapoblación que tiene que ser seleccionada, se realiza el proceso de la ruleta.
  • 29. 2.1.4.4 CruzamientoEl proceso de cruzar los individuos seleccionados en la fase anterior, consiste en elegirprimeramente dos individuos de forma aleatoria, luego una posición en ellos, yposteriormente, concatenar cada uno de las partes obtenidas (alelos). Por ejemplo, con lossiguientes padres: 7 5 1 4 3 2 6 2 3 5 6 7 6 1Y aleatoriamente elegir la posición 4, se obtendrían los siguientes hijos: 7 5 1 4 7 6 1 2 3 5 6 3 2 6Dado que los hijos son soluciones infactibles para el problema puesto que hay trabajosrepetidos y otros que no aparecen, estos individuos deben ser modificados. En el primerhijo, 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. Parasolucionar esto, aleatoriamente se elijen los trabajos faltantes y se colocan en una posicióndonde haya un trabajo repetido. Así se puede llegar a la siguiente configuración de losindividuos, la que cumple con ser una solución factible: 7 5 2 4 3 6 1 2 4 5 6 7 3 12.1.4.5 MutaciónLa mutación es un procedimiento simple en el que simplemente se toman aleatoriamentedos posiciones dentro de la secuencia, y esos valores son intercambiados entre sí, lo quese conoce como intercambio de pares. La cantidad de individuos que son objeto de
  • 30. mutación depende de una probabilidad de mutación, que generalmente es un valorpequeño. El siguiente es un ejemplo: 3 5 4 6 7 2 1En la secuencia anterior, se han elegido los trabajos 4 y 2 para ser intercambiados y conello logar un cambio en los objetivos que se busca mejorar, con lo que el individuo mutadosería el que se ve a continuación: 3 5 2 6 7 4 12.1.4.6 Fitness (función de aptitud)El fitness indica qué tan buena es una solución con respecto a las demás. Esta medida secalcula considerando los valores de cada objetivo a evaluar. La implementación a realizarconsidera los objetivos Cmax y Tardanza.En primer término se divide la población en varios ranking, utilizando los conceptosincorporados por Goldberg en 1989, donde el primer ranking está constituido por lassoluciones no dominadas del conjunto de soluciones, el segundo ranking será compuestode las soluciones no dominadas, no considerando las soluciones del ranking anterior, y asísucesivamente hasta que todos los individuos hayan sido clasificados. Posteriormente, acada ranking le es asignado un fitness inicial, es decir que cada individuo de ese rankingposee el mismo fitness, dado que desde una perspectiva multiobjetivo, las soluciones nodominadas entre sí, son iguales.Pero además, Goldberg introdujo los conceptos de formación de nichos y la utilización deuna función fitness compartido, los que también son considerados en la asignación de unfitness final a cada individuo. La idea es darles un mayor fitness a aquellos individuos queestén más alejados de los demás dentro de un mismo ranking y un fitness menor aaquellos que estén más cercanos, todo esto ayuda a reducir la competición por recursos yobtener sub-poblaciones estables.
  • 31. 2.1.4.6.1 Cálculo Fitness InicialEl procedimiento para calcular el fitness inicial, así como el final, es extraído del Capítulo 5de la Obra de Deb (2001), “Multi-Objective Optimization using Evolutionary Algorithms”,donde el fitness inicial se define como sigue:Donde N es el número de individuos de la población y μ(ri) es la cantidad de individuos enel ranking i.Para verlo claramente se presenta el siguiente ejemplo (Deb, 2001), que sólo posee seisindividuos, cuyos datos se presentan en la siguiente tabla: Tabla 2.2: Ranking de los individuos Solución Cmax Tardanza Ranking 1 0.31 6.10 1 2 0.43 6.79 2 3 0.22 7.09 1 4 0.59 7.85 4 5 0.66 3.65 1 6 0.83 4.23 2El gráfico de estas soluciones muestra cada curva de soluciones, es decir, cada ranking: Gráfico 2.2: Ranking de las soluciones
  • 32. Con estos datos se puede calcular el fitness inicial de la siguiente forma, utilizando laformula 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) = 1Lo que indica que para el primer ranking, el fitness es de 5, para el segundo es 2.5, y 1 espara el último.2.1.4.6.2 Cálculo Fitness FinalEn esta etapa se modifican los valores iniciales del fitness de cada individuo. Lo que seintenta, es dar un mejor fitness a aquellos individuos que se encuentran más aislados y“castigar” a aquellos individuos que se encuentren reunidos en un nicho, disminuyendo sufitness. El cálculo es bastante complicado, y para su completo entendimiento, hace faltaun análisis profundo. Aun así, se explica y se presenta un ejemplo (Deb, 2001).En primer término, se debe calcular la distancia entre las soluciones de cada rankingutilizando la siguiente fórmula:La que indica la distancia entre el individuo j y el individuo i. Donde, f kmax y fkmin son elmáximo y mínimo valor del objetivo k. Luego, el contador del nicho para el individuo i, es lasumatoria de las distancias de i a cada individuo de ese ranking, aplicando la función Sh, esdecir:Donde μ(ri) es el número de soluciones del ranking ri. Y la función Sh se define como sigue: Sh (dij) = 1 – (dij / σshare) ; Si d < σshare ij
  • 33. En cualquier otro caso Sh (dij) = 0. La idea es que la función entregue un valor entre 0 y 1,como medida de qué tan cerca están los individuos, siendo un valor cercano a unoindicador de que los individuos muy cercanos, y un valor cercano a cero indica que seencuentran más distantes.El valor de σshare algunos autores lo utilizan como un parámetro el cual se va modificandopara ver los efectos que produce, otros, para un determinado número de individuos danun valor fijo. Para el caso que se presenta se optó por calcular el valor de σshare, quedependerá de tres valores; n que es el número de objetivos que se analizan que este casoes 2; q, que es un valor fijo que puedo variar entre 5 y 10; y r, que es:Donde, fkmax y fkmin son el máximo y mínimo valor del objetivo k. Así σshare, que indica quévalor se considera como límite para determinar si un individuo pertenece, o no, a unmismo nicho, se calcula de la siguiente manera:A continuación, se continúa con el ejemplo anterior, al que se le aplicará el proceso paraobtener el fitness final, para la primera curva. Asumiendo un f1max = 1, f1min =0.1, f2max =10,f2min =1.d13 = √ ( (0.31 – 0.22) / (1 – 0.1) )2 + ( (6.1 – 7.09) / (10 – 1) )2 = √ 0.0221 = 0.149d15 = √ ( (0.31 – 0.66) / (1 – 0.1) )2 + ( (6.1 – 3.65) / (10 – 1) )2 = √ 0.2253 = 0.475d35 = √ ( (0.22 – 0.66) / (1 – 0.1) )2 + ( (7.09 – 3.65) / (10 – 1) )2 = √ 0.3851 = 0.6206Suponiendo un σshare = 0.5:Sh (d13) = 0.702, Sh (d15) = 0.05, Sh (d35) = 0Así, el contador de nicho para los individuos del primer ranking, serían los siguientes:nc1 = 1 + 0.702 + 0.05 = 1.752nc3 = 1 + 0.702 + 0 = 1.702nc5 = 1 + 0.05 + 0 = 1.050
  • 34. Posteriormente se calcula un Fitness Compartido dividiendo el fitness inicial por elcontador de nicho de ese individuo. Además, se debe calcular un factor del ranking, el cuales el fitness inicial de los individuos por el número de individuos de este ranking, divididopor la suma de los fitness compartidos, lo que en este caso sería, (5 x 3) / (2.854 + 2.938 +4.762) = 1.421.Después de esto, se multiplica el fitness compartido de cada individuo por el factor reciéncalculado, y se obtiene el fitness final. Lo que sería:Individuo 1: 2.854 * 1.421 = 4.056Individuo 3: 2.938 * 1.421 = 4.176Individuo 5: 4.762 * 1.421 = 6.768Esto, muestra cómo, desde un fitness inicial de 5 para cada individuo de este ranking, sellegó a un fitness final diferenciado, en el que los individuos que se encontraban máscercanos, son “castigados”, y el individuo más alejado es beneficiado en su fitness.2.2 Simulated AnnealingSimulated Annealing es una Metaheurística que en la solución de problemas de un soloobjetivo ha sido probada ampliamente, pero no así en el ámbito multiobjetivo.Como se mencionó en un Capítulo anterior, Simulated Annealing es una analogía delproceso de templado de los metales, donde un metal es calentado hasta cuando empiezaa derretirse y se disminuye su temperatura controladamente. En la fase de mayortemperatura las partículas se mueven aleatoriamente y, a medida que la temperaturadisminuye, estas partículas se mueven en forma más ordenada. Así, el proceso deenfriamiento se puede ver como la búsqueda de soluciones, donde, en un comienzo, elpasar de una solución a otra peor es frecuente, pero a medida que la temperaturadisminuye, son menos las soluciones peores que son aceptadas como nueva soluciónobtenida. Si el enfriamiento se realiza en forma muy rápida se produce fragilidad en losmetales, lo que en el algoritmo significaría el obtener un óptimo local.
  • 35. 2.2.1 MOSARTSA continuación se presenta la “metaheurística denominada MultiObjective SimulatedAnnealing with Random Trajectory Search (MOSARTS). Esta técnica se basa en elAlgoritmo Simulated Annealing, con la diferencia que introduce la utilización de memoriade corto y largo plazo para realizar una búsqueda que permita balancear el esfuerzo entretodos los objetivos involucrados en el problema”, (Baesler, et al., 2005).La idea en la cual se basa esta metaheurística es en la aceptación de soluciones inferiores,lo que en el ámbito Multiobjetivo significa una solución dominada, utilizando la siguientenorma:P (Y, X, T) = Min {1, emax j { λ j ( f j (X) – f (Y)) / T}}Este valor indica la probabilidad de aceptación de una solución Y dada una solución X auna temperatura T. El parámetro λ representa el peso de la función objetivo j con respectoa la importancia total.63La mayor diferencia entre los enfoques de Simulated Annealing Multiobjetivo está dadaporla forma en que se define la probabilidad de aceptación de una nueva solución dominada.Esta metaheurística se sitúa en el argumento de seleccionar un solo objetivo en cadaiteración, que se llamará Objetivo Referente (OR), y en base a éste continuar con elproceso de búsqueda en esa iteración, así no es necesario modificar la estructura deSimulated Annealing para el caso de un solo objetivo. Se incorporan mecanismosinteligentes como memoria de corto y largo plazo que permiten elegir una dirección en lacuál centrarse en cada iteración. “La probabilidad de aceptación de una solución inferiorsigue siendo definida por la variación de la función objetivo con respecto a la soluciónanterior y por la temperatura actual del sistema” (Baesler et al., 2005), donde se tiene unatemperatura diferente para cada objetivo.La memoria de largo plazo indica como ha evolucionado históricamente cada objetivo enforma individual. La memoria de corto plazo indica cuanto mejoró un objetivo en la últimaiteración (Baesler et al., 2005).
  • 36. Una vez que se ha encontrado una solución inicial, dígase X0, se evalúa un vecino de X0,dígase X1. Esto se realiza comparando cada objetivo de la solución X1 con respecto a lasolución anterior X0. Es aquí donde podría darse uno de los siguientes escenarios:  Todos los objetivos mejoran  Todos los objetivos empeoran  Algunos objetivos mejoran y otros empeoranEn el caso en que todos los objetivos mejoren, significa que la nueva solución es mejorquela anterior, o sea, X1 domina a X0, por lo que X1 es aceptada para continuar la búsquedaen esa dirección.Si todos los objetivos empeoran, es decir, si X0 domina a X1, se evalúa una función deaceptación para ver si se admite esta nueva solución para continuar la búsqueda desdeahí.Esta función de aceptación se referirá a un solo objetivo, por lo que será necesarioseleccionar previamente un Objetivo Referente (OR) para guiar el proceso.En el último caso, donde ninguna solución domina a la otra, se elige un OR, si esté objetivomejora en X1 con respecto a X0, X1 es aceptada, en caso contrario, se debe evaluar unafunción de aceptación que siempre depende de la temperatura particular de ese objetivoen el momento actual de la búsqueda.2.2.2 Obtención del Objetivo ReferenteEl OR se elige dependiendo de una Función de Selección (FS). Esta función de selección“no emplea tan solo el criterio obvio de selección aleatoria, sino que incorpora también lamejora o detrimento de cada objetivo, es decir, el desempeño, tanto en la última etapa dela evaluación (desempeño inmediato o memoria de corto plazo), como en todo el trayectorecorrido (desempeño histórico o memoria de largo plazo)” (Baesler et al., 2005). La FSutiliza dos parámetros arbitrarios que indican la importancia que el Tomador de Decisionesle concede a cada uno de los desempeños, o sea, qué tan importante considera lamemoria de largo y corto plazo.La estructura de la función de selección será la siguiente:FSi = w1 * F1 + w2 * F2
  • 37. Donde:W1 = Ponderación arbitraria de importancia de la memoria de largo plazo.W2 = Ponderación arbitraria de importancia de la memoria de corto plazo.F1 = Ti / TimaxF1 = Función de Probabilidad de selección de un objetivo dependiendo de su desempeñohistórico (memoria de largo plazo) (Baesler et al., 2005).Ti = Temperatura actual del sistema para el objetivo i.Timax = Temperatura de inicio del objetivo i.La función F1 tiene por misión dar una mayor probabilidad de selección a aquellosobjetivos que no han tenido un buen desempeño, es decir, que en todo el proceso deconstrucción de soluciones no han mejorado lo suficiente. Los objetivos que han mejoradobastante tienen relacionado un Ti mucho menor que Timax, ya que el Ti disminuye cada vezque el objetivo i mejora. Así entonces, la razón Ti / Timax es elevada cuando el objetivo i noha sido explorado suficientemente. F2 = 1 – (λC%i / Σ λC%i)F2 = “Función de Probabilidad de selección de un objetivo según el desempeño reciente(memoria de corto plazo)” (Baesler et al., 2005). λC%i = Variación porcentual del objetivo i.Lo que la función F2 plantea, es asignarle una mayor probabilidad de selección como OR aaquellos objetivos que en la última iteración hayan tenido un mejoramiento significativo.Los objetivos que más mejoraron en la última iteración tendrán una razón λC%i / Σ λC%imayor. Esta variación se mide en porcentaje ya que las escalas de los objetivos sondistintas, y se deben comparar entre sí.Así, cada objetivo tendrá una función de selección, FSi = w1 * F1 + w2 * F2Para seccionar el OR, se calcula la Probabilidad de Selección (PS) para cada objetivo, comosigue: PSi = FSi / ΣFSi
  • 38. Se cumple que ΣPSi = 1. Así entonces, se genera un número aleatorio entre 0 y 1, paraescoger cual será el OR.2.2.3 Algoritmo MOSARTS, MultiObjective Simulated Annealing withRandom Trajectory Search. (Baesler, et al., 2005).Los pasos que se pueden visualizar son los siguientes.1. Definir solución inicial X02. Evaluar objetivos Fi (X0)3. Definir vecino de X0 como X14. Evaluar objetivos Fi(X1)5. Comparar los objetivos de X0 con los de X16. Si X1 domina a X0, hacer X0 = X1 y volver a 3. En caso contrario ir a 7.7. Obtener función de selección FS, Probabilidad de Selección PS, y ObjetivoReferente OR. Ir a 8.8. Si OR mejora, hacer X0 = X1, actualizar temperatura particular de Ti. Volver a 3. Encaso contrario ir a 9.9. Calcular función de selección particular FAP exp ((λC/Ti)) para el OR.10. Si FAP rechaza la solución, volver a 3. En caso contrario ir a 11.11. Hacer X0 = X1, actualizar temperatura particular Ti del OR. Volver a 3.
  • 39. Capítulo 3. COMPARACION INDIVIDUAL DEAMBAS METAHEURISTICASLas dos Metaheurísticas fueron implementadas en lenguaje C++, para poder realizarexperimentos y hacer las respectivas comparaciones entre ambas.En primer lugar se realizó un análisis individual, para determinar cuales son los mejoresparámetros, que se ajustan a cada implementación para posteriormente, considerandodos problemas de prueba, compararlas entre ellas, y poder determinar cuál tiene un mejordesempeño.El análisis preliminar para determinar los mejores parámetros considerará un problemaFlow-Shop de 49 trabajos que deben ser procesados en 15 máquinas, el cual será probadocon varias combinaciones de parámetros, y la combinación de parámetros que entreguelos mejores resultados, será la que se utilice para comparar con la otra Metaheurística.Dado que en los problemas multiobjetivo no se genera una solución individual, sino queuna curva de soluciones, y como las soluciones son no-dominadas, no se puede decir queuna es mejor que otra, y los criterios de comparación pueden ser variados, pero seconsiderarán los siguientes:El Número de soluciones en la Curva de Pareto. Es deseable una Frontera de Pareto dealta densidad, esto es porque finalmente la decisión de cuál solución es la que se eligedepende de un tomador de decisiones, el que podría preferir soluciones mejores en unobjetivo, en contraste con otro que preferiría una solución mejor en otro objetivo, porejemplo si se tiene la siguiente frontera de Pareto:
  • 40. Gráfico 3.1: Ejemplo curva de Pareto con pocas solucionesEl número de posibilidades de elegir una solución es reducido, y sólo se pueden elegirextremos, o sea, una buena solución para la Tardanza pero mala para el Cmax, o viceversa,por lo que se hace más deseable una Curva de soluciones como la que sigue, ya que sepueden elegir soluciones intermedias: Gráfico 3.2: Ejemplo curva de Pareto con varias solucionesOtra medida de comparación será el Porcentaje de Soluciones en una Nueva Frontera dePareto generada por las curvas que se están comparando. Este método fue propuestoHyun, et al. (1998). Su idea era comparar dos Metaheurísticas creando una nueva Fronterade Pareto, que estaría compuesta por las soluciones no-dominadas entregadas por cadauna, y ver cuantas de las soluciones de la nueva Frontera pertenecen a una Metaheurísticay cuantas a la otra, esta nueva curva a lo menos tendrá la cantidad de soluciones de laMetaheurística con menos soluciones y a lo más la suma de ambas. Por ejemplo, si la curvade una Metaheurística tiene 5 soluciones, y la otra 7, la nueva curva tendrá un mínimo de5 soluciones y un máximo de 12 (5 + 7) soluciones. En este mismo ejemplo, si en la nuevacurva hay 10 soluciones, y 3 pertenecen a la Metaheurística 1 y las otras 7 a laMetaheurística 2, se entenderá que la Metaheurística 2 es mejor que la 1.
  • 41. Este mismo proceso se utilizará para comparar curvas de una misma Metaheurística encaso de que sea difícil decidir cual combinación de parámetros es la mejor, considerandolos otros criterios de comparación.El Promedio Valores de los Objetivos de todas las curva de pareto obtenidas en el procesode experimentación, es importante para analizar como se comporta una Metaheurística.Otros criterios de comparación menos concluyentes y menos importantes, pero que sirvenpara decidir son: la desviación estándar en el número de soluciones de la Frontera dePareto obtenidas en un conjunto de ejecuciones de una Metaheurística; La cantidad deCurvas distintas generadas; y El máximo número de soluciones.3.1 Parámetros para Algoritmo GenéticoLos parámetros a probar en el AG son la cantidad de individuos, el número degeneraciones y la probabilidad de mutación. Para ello, se harán combinaciones deparámetros y con cada una de ella se ejecutará el programa 10 veces, para ver como secomporta. Los parámetros para las combinaciones serán los siguientes: Tabla 3.1: Parámetros a combinar Individuos 100 200 300 Generaciones 100 150 300 500 %Mutación 1 3 5 10 15Con estos parámetros se realizarán todas las combinaciones posibles y se determinará cuales la mejor. Es decir, se tendrán 60 combinaciones, cada cual se ejecutará 10 veces, y asíse obtendrán las mejores combinaciones de parámetros.Después de ejecutar todos estos experimentos, se extrae la siguiente información:Cantidad Curvas Distintas, Máximo Número de Soluciones, Mínimo Número de Soluciones,Promedio del Número de Soluciones y Desviación Estándar, y se ordenarán por el valorpromedio del número de soluciones.
  • 42. Así se obtuvo la siguiente tabla, que contiene las mejores combinaciones, en la cuálademás, se muestra el promedio de ambos objetivos considerados: Tabla 3.2: Resultados experimentos con parámetros para AG Generaciones Cant. Curvas Prom. Cmax Prom. Num. %Mutación Max. Num. Desviación Min. Num. Soluciones Soluciones Soluciones Individuos Promedio Tardanza Estandar 300 150 10 7.2 1.8 6 9 4 3,685.7 15,447 300 500 10 7.1 2.0 5 9 4 3,660.7 14,851 100 100 15 6.3 2.3 7 11 4 3,692.9 17,153 300 150 15 6.2 2.2 7 11 3 3,649.0 15,420 300 150 5 6.1 1.7 6 8 3 3,700.1 16,301Las demás soluciones poseían un Promedio de Número de Soluciones inferior a 5.5 y estásposeían los mejores promedios de Cmax y Tardanza, además los Máximos y Mínimos deNúmero de Soluciones son superiores a la media, que fueron 6.6 y 2.5 respectivamente.Posterior a este análisis se tomaron los resultados entregados por las 4 primerascombinaciones, y con éstos se generó una sola curva para realizar el análisis propuesto porHyun et al. (1998). Así se obtuvieron 10 gráficos como el siguiente: Gráfico 3.3: Ejemplo de combinación de Curvas de Pareto ObtenidasCon los que se pudo generar la siguiente tabla con los datos que muestra:
  • 43. Tabla 3.3: Resultados comparativos de mejores combinaciones 100-100-15 300-150-10 300-150-15 300-500-10 1 --- --- --- 1.00 2 --- --- 0.50 0.50 3 --- --- --- 1.00 4 --- 0.58 0.42 --- 5 --- 0.69 --- 0.31 6 --- --- 0.43 0.57 7 --- --- --- 1.00 8 --- 0.13 0.38 0.50 9 --- --- --- 1.00 10 --- 0.09 0.645 0.27 Promedio 0 14.92% 23.57 61.52%Lo que nos demuestra que la mejor combinación de parámetros es la de 300 individuos,500 generaciones y 10 % de mutación. Por lo que estos serán los parámetros que seutilizarán para comparar esta Metaheurística versus MOSARTS.3.2 Parámetros para Simulated Annealing (MOSARTS)Para el caso de Simulated Annealing los parámetros a determinar son las Memorias deLargo 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 harán combinaciones de parámetros y concada una de estas combinaciones se ejecutará el programa 10 veces, para ver como secomporta. Las combinaciones de estos parámetros deben sumar 1 para cada objetivo, porlo que todas las combinaciones a probar son las siguientes:
  • 44. Tabla 3.4: Combinaciones para parámetros de MOSARTS Memoria C/P Memoria L/P Memoria C/P Memoria C/P Cmax Cmax Tardanza Tardanza 0.2 0.8 0.2 0.8 0.2 0.8 0.5 0.5 0.2 0.8 0.8 0.2 0.5 0.5 0.2 0.8 0.5 0.5 0.5 0.5 0.5 0.5 0.8 0.2 0.8 0.2 0.2 0.8 0.8 0.2 0.5 0.5 0.8 0.2 0.8 0.2Cantidad de Curvas Distintas, Máximo Número de Soluciones, Mínimo Número deSoluciones, Promedio del Número de Soluciones y Desviación Estándar, son los datos quese extraen al ejecutar el programa con cada una de las combinaciones. Además se calculael promedio de las curvas generadas por cada combinación de parámetros. Tabla 3.5: Resultados experimentos con parámetros para MOSARTS Promedio Desviación Cantidad Max. Num Max. Num. Prom. Prom. Combinación Num. Sol Estándar Curvas Soluciones Soluciones Cmax Tard.0.2 – 0.8 – 0.2 – 0.8 4.3 1.5 7 6 1 4,018 25,8420.2 – 0.8 – 0 .5 – 0.5 5.7 2.0 5 7 1 4,026 26,1960.2 – 0.8 – 0.8 – 0.2 5.2 1.2 5 6 4 4,032 25,4460.5 – 0.5 – 0.2 – 0.8 3.9 1.4 7 6 2 3,976 24,7340.5 – 0.5 – 0.5 – 0.5 2.6 1.0 5 5 2 3,987 24,9590.5 – 0.5 – 0.8 – 0.2 3.3 1.3 6 6 1 3,991 24,9050.8 – 0.2 – 0.2 – 0.8 4.2 1.2 6 6 2 3,979 24,9040.8 – 0.2 – 0.5 – 0.5 3.9 2.0 7 7 2 4,013 24,8150.8 – 0.2 – 0.8 – 0.2 4.1 1.6 7 7 2 4,003 25,047 4.1 1.5 6.1 6.2 1.9 4,002.70 25,205.40
  • 45. Observando el Promedio del Número de Soluciones generadas por la Metaheurística, sepuede decir que hay dos combinaciones superiores a las demás, las que tienen unpromedio de 5.7 y 5.2. A su vez, existen cuatro combinaciones que tienen un promedio deCmax y Tardanza inferior al promedio, las que también se puede decir que son buenascombinaciones. Por este motivo se compararán estas seis combinaciones utilizando elmétodo de Hyun et al. (1998). El siguiente gráfico es un ejemplo de cómo todas las curvasgeneran una nueva, la que muestra cuáles curvas domina la nueva frontera. Gráfico 3.4: Ejemplo combinación de Curvas de Pareto Obtenidas
  • 46. Así, se obtuvieron los siguientes resultados: Tabla 3.6: Resultados comparativos de mejores combinaciones 0.8 – 0.2 – 0.2 – 0 .8 0.2 – 0.8 – 0.5 – 0.5 0.2 – 0.8 – 0.8 – 0.2 0.5 – 0.5 – 0.2 – 0.8 0.2 – 0.8 – 0.5 – 0.5 0.5 – 0.5 – 0.8 – 0.2 1 -- 0.33 -- 0.17 0.33 0.17 2 -- -- 0.17 -- -- 0.83 3 -- -- 0.17 -- -- 0.83 4 -- -- 0.67 -- -- 0.33 5 -- -- 0.4 0.14 0.14 0.57 6 -- -- 0.50 -- 0.50 -- 7 -- -- -- 0.50 0.25 0.25 8 0.5 -- 0.50 -- -- -- 9 -- 0.20 0.20 -- 0.20 0.40 10 -- 0.29 0.43 -- 0.14 0.14 Promedio 5.00% 8.19% 27.71% 8.10% 15.69% 35.31%Los promedios obtenidos indican que la tercera y sexta combinación son las mejores, esdecir, que para la Tardanza se debe tener una ponderación de la Memoria de Largo Plazoalta, en este caso, 0.8 u 80%, y una ponderación pequeña para la Memoria de corto Plazo,o sea, un 20%. Pero no queda claro cuales son mejores parámetros para el objetivo Cmax.Por este motivo se realizó una comparación con el método de Hyun, et al. (1998), entreestas dos combinaciones solamente, para ver cuál de ellas era mejor. Los resultados sepresentan en la siguiente tabla:
  • 47. Tabla 3.7: Resultados comparativos de las dos mejores combinaciones 0.5 – 0.5 – 0.2 – 0.8 0.8 – 025 – 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.76Lo que deja empatadas a ambas combinaciones. Dado esto, se optó por considerar cuál deellas presenta una mayor densidad de las Curvas de Pareto: Tabla 3.8: Comparación de las mejores combinaciones para MOSARTS Prom. Desviación Cant. Max. Min. Prom. Prom Combinación Num.Sol Estándar Curvas Num.Sol Num.Sol Cmax Tard. 0.5-0.5-0.2-0.8 3.9 1.4 7 6 2 3,976 24,734 0.8-0.2-0.2-0.8 4.2 1.2 6 6 2 3,979 24,904Así es como se determinó que la combinación de 80 %, 20 % para las memorias de Largo yCorto Plazo, respectivamente, en el Objetivo Cmax, serán consideradas para lacomparación con el Algoritmo Genético.3.2.1 Comparación de MOSARTS versus Simulated Annealing SimpleLa diferencia entre MOSARTS y una implementación normal de Simulated Annealing es laintroducción de una memoria de largo y corto plazo para la elección de un Objetivo
  • 48. Referente que guíe la búsqueda, la que para Simulated Annealing realiza observando elcomportamiento de todos los objetivos al mismo tiempo.Así, es interesante comparar estas dos formas de Simulated Annealing para ver en quémedida aporta MOSARTS a la resolución de problemas. Para la comparación se utilizaronlos mismos métodos vistos anteriormente, y los resultados obtenidos se muestran acontinuación: Tabla 3.9: Comparación entre MOSARTS y Simulated Annealing SimpleMetaheuristica Prom. Desv. Cant. Max. Mix. Prom. Prom. Num.Sol Estandar Curvas Num.Sol Num.Sol Cmax Tard SA Simple 4.3 1.3 7 6 2 4,027.0 26,574.2 MOSARTS 3.6 1.1 9 5 1 3,987.4 25,541.7Como se puede observar, MOSARTS muestra una ventaja en cuanto a los promedios de losobjetivos, aun cuando, el promedio de número de soluciones de las curvas de pareto esinferior. Además, utilizando el método de Hyun et al. (1998), se obtuvieron los siguientesresultados: Tabla 3.10: Resultados comparativos entre MOSARTS y Simulated Annealing simple Experto MOSARTS SA SIMPLE 1 0.67 0.33 2 0.33 0.67 3 0.80 0.20 4 0.50 0.50 5 1.00 0.00 6 0.60 0.40 7 0.80 0.20 8 1.00 0.00 9 1.00 0.00 10 0.80 0.20 PROMEDIO 75% 25%
  • 49. Los resultados expuestos indican que, al generar una Curva de Pareto uniendo las doscurvas generadas individualmente por ambas Metaheurísticas, en promedio, un 75 % delas soluciones pertenecen a MOSARTS y sólo un 25% a Simulated Annealing simple.Esto nos muestra que MOSARTS es un mejor método que el uso de Simulated Annealingsimple, por lo que es un aporte en el estudio de las Metaheurísticas, y resolución deproblemas combinatorios, y refuerza el interés por compararla con otra técnica mássofisticada como lo es Algoritmos Genéticos.Capítulo 4. COMPARACION ENTRE MOSARTS(SIMULATED ANNEALING) Y UN ALGORITMOGENÉTICO MULTIOBJETICOPara la comparación entre ambas Metaheurísticas se utilizarán los mismos criterios a losque se recurrió para la comparación entre distintos parámetros. Así, cada una seráejecutada diez veces para ver su comportamiento en comparación con la otra. Se utilizarándos problemas de prueba uno grande, el mismo utilizado anteriormente, de 49 trabajos ymáquinas, y otro más pequeño de 20 trabajos y 10 máquinas.4.1 Comparación para Problema GrandeDe los datos obtenidos al ejecutar ambas Metaheurísticas 10 veces, se extrajo la siguienteinformación: Tabla 4.1: Comparación entre MOSARTS (SA) y Algoritmo Genético Meta Prom. Desviación Cant. Max. Min. Prom. Prom.Heurística Num.Sol Estándar Curvas Num.Sol Num.Sol Cmax Tard. AG 5.4 2.5 8 9 2 3,658.7 15,008.6 S.A 3.6 1.1 9 5 1 3,987.4 25,541.7
  • 50. Como se puede observar, el Algoritmo Genético, supera ampliamente en lo que respectaal Promedio del Número de Soluciones de las Curvas de Pareto generadas y al Promedio delos Objetivos que se desean minimizar. Por este motivo, se muestra a continuación ungráfico en el cual están todas las curvas obtenidas en el proceso de comparación, para veruna visión general del comportamiento de ambas metaheurísticas: Gráfico 4.1: Comparación entre MOSARTS y Algoritmos GenéticosComo se puede observar, todas las soluciones de las Curvas de Pareto generadas por elAlgoritmos Genético dominan a las generadas por MOSARTS en ambos objetivos.4.2 Comparación para Problema PequeñoPara el caso del problema mas pequeño MOSART no presenta muchas mejorías, aunqueen un primer análisis se ve una mayor densidad en las curvas generadas por estaMetaheurística: Tabla 4.2: Comparación entre MOSARTS (SA) y Algoritmo Genético Meta Prom. Desviación Cant. Max. Min. Prom. Prom.Heurística Num.Sol Estándar Curvas Num.Sol Num.Sol Cmax Tard. AG 3.5 1.3 10 6 2 392.8 637.2 S.A 5.1 2.3 9 11 2 401.9 800.7
  • 51. Pero el promedio de los objetivos sigue siendo peor. Además de las 10 iteraciones en quefue comparado, sólo en una se logró superar al AG, obteniendo el 57% de la curvagenerada por la combinación de las curvas de ambas Metaheurísticas, en el resto de lasiteraciones el AG siempre fue superior. Esto se puede apreciar en el siguiente gráficodonde se muestran las soluciones de todas las curvas generadas durante la comparación:Gráfico 4.2: Comparación entre MOSARTS y Algoritmo Genético para problema pequeño4.3 Comentarios de la ComparaciónPor lo visto en análisis comparativo, el Algoritmo Genético supera ampliamente a laimplementación de MOSARTS, sobretodo en el problema más grande. Pero uno de losaspectos no mencionados, es el tiempo de ejecución de los programas. Mientras que parael problema grande AG tiene un promedio de ejecución de 45 segundos, MOSARTS sóloocupa 0.75 segundos en promedio. Esto da una clara oportunidad a MOSARTS, paramodificaciones futuras que puedan incorporar nuevos mecanismos tendientes a explorarmejor el espacio de soluciones, sin llegar a acercarse siquiera al tiempo que toma el AG enejecutarse.Otro punto importante de mencionar es que el tiempo de ejecución de MOSARTS dependede la Temperatura y de cómo ésta va disminuyendo. Como resultado de la comparación seve una gran diferencia en el objetivo de la Tardanza, lo que hace pensar en cómo mejorar
  • 52. este objetivo. Así, se puede intentar que la temperatura vaya disminuyendo máslentamente para este objetivo, y de esta forma aumentar el número de solucionesanalizadas.Realizando este nuevo experimento, que aproximadamente iguala los tiempos de ambasMetaheurísticas, los resultados tampoco son muy alentadores para MOSARTS, ya queaunque los promedios de los ambos objetivos disminuyeron de 3987,4 y 25541,7 a 3952,223439,4, las diferencias siguen siendo notorias, como se puede observar en el siguientegráfico: Gráfico 4.3: Comparación entre MOSARTS y Algoritmo GenéticoEn este punto, no parece prudente volver a probar el algoritmo usando un valor dedisminución de la temperatura inferior, ya que aumentaría el tiempo de proceso por sobreel AG, y no se ven grandes mejorías.Capítulo 5. CONCLUSIONES Y COMENTARIOSGeneralmente las decisiones de cómo proceder en la elaboración de la secuencia queseguirán los trabajos en el momento de procesarse, se toman en base a más de objetivoque se desea optimizar, lo que hace que los problemas de programación de la producciónaumenten su complejidad, y pasan a llamarse Problemas de Optimización Multiobjetivo.Estos problemas combinatorios, que se presentan en la industria, requieren un granesfuerzo de planificación.
  • 53. Un Problema de Optimización Multiobjetivo es de tipo Flow-Shop si los trabajos que sedeben realizar deben seguir el mismo orden de paso por cada máquina que interviene enel proceso. Los problemas Flow-Shop se ven claramente en Celulosas, Papeleras,Madereras, Armadura de Automóviles, entre otras empresas.Dada la complejidad exponencial de los problemas combinatorios, los algoritmos exactosno pueden entregar una solución óptima en un tiempo aceptable, debido a la limitadacapacidad de proceso de los computadores. Y, aunque esta capacidad de proceso fueramucho mayor, tampoco podrían.Las heurísticas nacen para intentar encontrar buenas soluciones en un tiempo aceptable,pero no indican qué tan cerca de la solución óptima se encuentran. Por esto, aparecen lasMetaheurísticas, que se pueden entender como heurísticas, pero con mecanismos paraevitar caer en óptimos locales. Metaheurísticas basadas en Simulated Annealing yAlgoritmos Genéticos, en el ámbito de un solo objetivo, han sido ampliamente probadas, yhan entregado resultados muy buenos, lo que hacía presumir que, aplicadas a problemascon más de un objetivo, se conseguirán resultados superiores. Lo que fue conseguido porel Algoritmo Genético en un mayor grado que MOSARTS.Las Metaheurísticas están sujetas al ingreso de parámetros, de los cuales depende enmuchas ocasiones el buen o mal desempeño de éstas, por lo que se debe experimentar elingreso de distintas combinaciones de estos parámetros para determinar cuálcombinación es la que más ayuda a obtener las mejores soluciones. Por esto, esinteresante la inclusión de mecanismos de ajuste automático de parámetros, para ambasMetaheurísticas, que permitan obtener la mejor combinación de éstos, y así entregarmejores soluciones.La creación de una Curva de Pareto formada por la unión de dos de ellas, para luegocuantificar el número de soluciones aportadas desde cada Metaheurística, métodointroducido por Hyun, et al. (1998), es una muy buena medida para la comparación, ya queindica claramente si existe superioridad de alguna Metaheurística en relación con otra.
  • 54. En la literatura existente, por lo general el parámetro porcentaje de mutación siempreestá asociado a un valor pequeño de aproximadamente un 5% o menor, sin embargo, lasmejores combinaciones en la etapa de experimentación incluían valores como 10% o 15%.De todos los datos extraídos al ejecutar las Metaheurísticas, el que mejor indica la calidadde las soluciones entregadas, es el promedio de los valores de los objetivos analizados,esto se ve en el análisis de parámetros y en la comparación de las Metaheurísticas, ya quesiempre fue mejor uno de los ítems con buenos promedios en estas columnas. Si bienMOSARTS entrega mejores soluciones que Simulated Annealing simple, esto no essuficiente para igualarse, o superar, a las soluciones entregadas por el Algoritmo Genético,que siempre fue superior, por lo que se hace preciso alguna modificación a MOSARTS parapoder competir con algoritmos más sofisticados.MOSARTS posee un tiempo de ejecución mucho menor que el Algoritmo Genético, por loque se ve como una oportunidad para realizar mejoras al algoritmo y que seguir siendomejor que otras Metaheurísticas en el uso del tiempo. A su vez, una posible mejora para elAlgoritmo Genético, claro que con un menoscabo en el tiempo de ejecución, y el hecho deperder su esencia, sería convertirlo en un algoritmo híbrido mediante la incorporación deheurísticas de búsqueda local.NOMENCLATURA• FIFO : First In First Out• SPT : Short Process Time• LPT : Long Process Time• Ci : Tiempo de terminación de un trabajo• Cmax : Tiempo de terminación del último trabajo en el sistema• Tmax : Tardanza Total• Lmax : Retardo máximo• u/t : unidades de tiempo• SA : Simulated Annealing• AG : Algoritmo(s) Genético(s)• VEGA : Vector Evaluated Genetic Algorithm• MOGA : MultiObjective Genetic Algorithm
  • 55. • NSGA : Multiobjetive Optimization using Non-Dominated Sorting in GeneticAlgorithms• NPGA : Niched Pareto Genetic Algorithm• MOSARTS: MultiObjective Simulated Annealing with Random Trajectory Search• OR : Objetivo Referente• FS : Función de Selección• PS : Probabilidad de Selección• FAP : Función de Selección Particular