Optimización multiobjetivo para distribución en planta

615 views
477 views

Published on

Extracto de mi proyecto fin de carrera sobre la aplicación de algoritmos de optimización multiobjetivo al problema de la distribución en planta.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
615
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Optimización multiobjetivo para distribución en planta

  1. 1. Escuela Técnica Superior de Ingeniería Informática Universidad de Sevilla INGENIERÍA INFORMÁTICAOPTIMIZACIÓN DE LA DISTRIBUCIÓN EN PLANTA DE INSTALACIONES INDUSTRIALES MEDIANTE ALGORITMOS GENÉTICOS EXTRACTO Realizado por: Antonio José Álvarez Gamero Vicente Herrera García Dirigido por: Elena Martín García Gerardo Valeiras Reina Departamento: Matemática Aplicada I Sevilla, Septiembre de 2010
  2. 2. AGRADECIMIENTOSDamos las gracias a los profesores Dª Elena Martín García y D. Gerardo Valeiras Reina por su ayuda y apoyo en la elaboración de este proyecto. También queremos agradecer la colaboración de D. Justo Carmona Calvo, Director Técnico de la Planta Fotovoltaica de Carmona, por su asesoramiento técnico. DEDICATORIAS Antonio: A mis padres Antonio y Ana. Vicente: A mi esposa Claudia, mi madre Antonia, y mi hermana Helena.
  3. 3. IntroducciónIntroducción En este proyecto abordaremos el problema de la distribución en planta parainstalaciones industriales. Para ello nos valdremos de algoritmos genéticos comoherramienta de optimización en aras de conseguir el mejor resultado posible a la horade optimizar diversos criterios. La distribución en planta es un término que hace referencia a la disposición deuna instalación, teniendo en cuenta la organización de la maquinaria, departamentos,espacios comunes, almacenes, líneas de montaje, etc. Puede estar destinado a unaplanta de producción propuesta o incluso ya existente, con la finalidad de organizar loselementos anteriormente mencionados para conseguir la fluidez del flujo de trabajodentro del sistema productivo. El problema de la distribución en planta goza de plena vigencia en la actualidaddebido a la gran importancia que tiene este aspecto a la hora de diseñar una instalaciónindustrial, lo que nos puede llevar, en primer lugar, a un considerable ahorro en cuantoa costes y espacios. Más allá, podremos tener en cuenta multitud de factores para lamencionada optimización, como pueden ser la geometría idónea del área destinada, elmínimo tránsito de materias primas y personal, número de personas a contratar pararealizar una actividad, uso eficiente del espacio, eliminación de cuellos de botella, etc.No se puede pasar por alto restricciones tales como las derivadas de aspectos comoprevención de riesgos laborales, higiene, seguridad, mejor uso posible de maquinariausada, etc. Todos ellos serán puntos a tener en cuenta para conseguir la optimizaciónde criterios, cumpliendo las restricciones propias de las características del proyectoconcreto, y lo más importante, sin perder eficiencia en la consideración de unos criterioscuando intentemos optimizar otros. Por tanto nuestro problema de distribución enplanta lo enfocaremos como un problema multiobjetivo. Hemos partido de una implementación real de una planta solar fotovoltaica parahacer el estudio de aplicación del problema de la distribución en planta. Se trata de uncaso de modelado que, abordado de manera general en base a las características deeste tipo de instalaciones, adaptamos según la metodología que queremos aplicar.Conseguiremos expresar una solución según los aspectos propios de los algoritmosgenéticos. Así se puede observar su aplicabilidad y adaptabilidad a este tipo deproblemas, lo cual nos lleva a demostrar la capacidad de esta técnica para adaptarse atodo tipo de temática sobre instalaciones industriales.
  4. 4. Introducción El problema de la distribución en planta es un problema de asignacióncuadrática o QAP: un problema de optimización combinatoria que puede establecersecomo un conjunto de n elementos distintos que deben ser localizados en n localidadesde forma óptima. Al ser un problema de optimización se necesita minimizar ya sea elflujo, los costos o las distancias. Pertenece a la clase de los NP-duros, cuya resolución noes posible en “tiempos cortos” si se emplean métodos de búsqueda exhaustivos, y elabordarlo en un planteamiento multiobjetivo complica aún más las cosas. En los problemas multiobjetivo se define el concepto de dominancia de unasolución sobre otra, como la cualidad de la primera de mejorar o mantener algunos delos objetivos de la segunda sin perjudicar a ningún otro. Aquellas soluciones para las queno hay otras que las dominen (no se pueden mejorar) se dicen no-dominadas o Pareto-óptimas, y el conjunto de valores de sus funciones objetivos el frente de Pareto. Entreestas soluciones no establecemos a priori cuál de ellas es la mejor, todas ellas sonválidas, y en función de las necesidades específicas que tengamos nos podríamosdecantar por una o unas de entre ellas a posteriori. Tras evaluar el estado del arte de las diferentes alternativas, como algoritmos noelitistas, SPEA-2, etc., decidimos emplear NSGA-2 (Non-dominated Sorting GeneticAlgorithm, second generation) también llamado Algoritmo Genético de Ordenación deFrentes. Se trata de un algoritmo genético multiobjetivo no-dominado elitista, quejerarquizan a la población de acuerdo a si un individuo es dominado o no. Comoalgoritmo genético que es, al operar sobre una población de soluciones, permiteencontrar múltiple soluciones Pareto-óptimas en una sola ejecución del algoritmo.NSGA-2 cuenta con excelentes cualidades para la resolución de este tipo de problema,como poseer complejidad O(MN2), y ha demostrado que las soluciones encontradasestán diversificadas y convergen cerca del verdadero conjunto Pareto-óptimo. Nuestra implementación ha sido realizada en C# debido a las facilidades para lamodularización de los diversos componentes y la capacidad de reutilización posterior delos mismos. De esta forma, ha sido desarrollada según un diseño modular, orientado afacilitar el análisis del desempeño en tiempo real y de los resultados, permitiendo variartodos los parámetros y visualizar de forma gráfica su rendimiento.
  5. 5. Índice GeneralÍndice General1. Definición de Objetivos ................................................................................................... 1 Problema multiobjetivo, dominancia, y frente de Pareto .............................................. 3 Algoritmos evolutivos ................................................................................................... 10 Algoritmo NSGA-II ......................................................................................................... 173. Uso de metaheurísticas................................................................................................. 214. Comparación con otras alternativas. NSGA-II vs SPEA-2 .............................................. 235. Problema de la distribución en planta .......................................................................... 31 Especificaciones técnicas .............................................................................................. 31 Modelado ...................................................................................................................... 386. Problema NP-duro ........................................................................................................ 55 Problemas clase P, NP, NP-completo y NP-duro........................................................... 55 La optimización en planta como problema NP-duro .................................................... 577. Diseño e Implementación ............................................................................................. 598. Líneas de desarrollo posteriores ................................................................................... 67 Implementación multithread ........................................................................................ 67 Aplicación de un caso mayor ........................................................................................ 70 Modelos de islas............................................................................................................ 729. Análisis temporal y coste de desarrollo ........................................................................ 7310. Conclusiones ............................................................................................................... 7511. Bibliografía .................................................................................................................. 77 i
  6. 6. Índice GeneralÍndice de FigurasFigura 1: Ejemplo frente de Pareto. .................................................................................... 5Figura 2: Soluciones Pareto óptimas Kursawe. ................................................................... 6Figura 3: Frente de Pareto Kursawe. ................................................................................... 6Figura 4: Frente de Pareto DEB bimodal ............................................................................. 7Figura 5: Soluciones Pareto óptimas Kita ............................................................................ 8Figura 6: Frente de Pareto Kita ........................................................................................... 8Figura 7: Frente de Pareto DTLZ1, vista A .......................................................................... 9Figura 8: : Frente de Pareto DTLZ1, vista B ........................................................................ 9Figura 9: Representación gráfica de cruce y mutación ..................................................... 11Figura 10: Cálculo de la distancia en NSGA-II .................................................................... 19Figura 11: Esquema de ordenación en NSGA-II ................................................................ 20Figura 12: Retardo NSGA2 vs SPEA2 ................................................................................. 26Figura 13: Número de saltos NSGA2 vs SPEA2 .................................................................. 26Figura 14: Retardo ............................................................................................................. 27Figura 15: Operaciones utilizando SPEA2.......................................................................... 28Figura 16: Operaciones utilizando NSGA2 ........................................................................ 28Figura 17: Comparativa NSGA2 vs SPEA2.......................................................................... 29Figura 18: Esquema Unifilar .............................................................................................. 32Figura 19: Esquema de planta solar fotovoltaica .............................................................. 32Figura 20: Ejemplo de planta solar fotovoltaica. .............................................................. 35Figura 21: Decodificación de cromosomas en Layagen .................................................... 43Figura 22: Cruce ................................................................................................................ 44Figura 23: Mutación .......................................................................................................... 44Figura 24: Influencia del entorno en el fenotipo .............................................................. 45Figura 25: Árboles de corte ............................................................................................... 48Figura 26: Codificación de la distribución de Layagen ...................................................... 49Figura 27: Metodología de Layagen .................................................................................. 50Figura 28: Tabla relacional de actividades ........................................................................ 51Figura 29: Ejemplo de distribución de planta solar........................................................... 52Figura 30: Plano real de planta solar fotovoltaica ............................................................ 53Figura 31: Clases de problemas......................................................................................... 56Figura 32: Pestaña principal del interfaz del programa .................................................... 59Figura 33: Pestaña secundaria del interfaz del programa................................................. 60Figura 34: Comparativa ejecución mono y multi-thread .................................................. 68Figura 35: Sucesivas ejecuciones en modo mono y multi-thread ..................................... 69Figura 36: Proyecto Salud e-Virtual ................................................................................... 70 ii
  7. 7. Índice GeneralÍndice de TablasTabla 1: Comparativa entre algoritmos ............................................................................ 24Tabla 2: Comparativa entre algoritmos ............................................................................ 24Tabla 3: Comparativa entre algoritmos ............................................................................ 24Tabla 4: Comparación métricas SPEA2 vs NSGA2 ............................................................. 28Tabla 5: Estimación de tiempos ........................................................................................ 73 iii
  8. 8. Definición de objetivos1. Definición de Objetivos 1
  9. 9. Optimización Multiobjetivo2. Optimización MultiobjetivoProblema multiobjetivo, dominancia, y frente de Pareto Las principales características de un Problema de Optimización Multiobjetivoson las siguientes: • Trabaja sobre un espacio multidimensional de funciones objetivo. • No existe una única solución al problema. • Es necesario un proceso de toma de decisiones en el cual se decide qué tipo de compromisos son más convenientes desde la perspectiva del que decide. Este proceso puede ser realizado a priori o a posteriori. Estos problemas pueden formularse como: 1. Hallar el vector ∗ = ∗ , ∗ ,…, ∗ 2. Que optimice = , ,.., 3. Sujeto a las restricciones de desigualdad ≥0 = 1, 2, … , 4. Y a las restricciones de igualdad ℎ =0 = 1, 2, … , La noción más aceptada de “optimizar” y “óptimo” en estos casos es lapropuesta originalmente por Francis Ysidro Edgeworth en 1881 y generalizada porVilfredo Pareto en 1896, más comúnmente denominada óptimo de Edgeworth-Pareto osimplemente óptimo de Pareto. 3
  10. 10. Optimización Multiobjetivo Decimos que un punto: ● es un óptimo de Pareto si: ● Para toda e , se da que o bien: ● O hay al menos una tal que En palabras llanas, un óptimo de Pareto es aquel punto para el que no hay otrasolución que proporcione valores mejores en de las funciones objetivo sin que empeoresimultáneamente a alguna de ellas. Una representación informal común es decir que“no es posible que alguien gane más, sin que al mismo tiempo alguien gane menos”. Para analizar mejor esta definición, añadiremos un concepto nuevo denominadodominancia de Pareto. Dados dos vectores: Decimos que u domina a v (denotado mediante ) si y solo si u esparcialmente menor a v, i.e., Es decir, un punto o solución domina a otro, si es capaz de proporcionarsoluciones iguales o mejores de las funciones objetivo sin perjudicar a ninguna de ellasen el proceso. Para un problema multiobjetivo dado f(x), el conjunto de óptimos de Pareto P*se define como: Esto es, el conjunto de puntos para los que no existen otros que los dominen, oque proporcionen el mismo resultado. Para un problema multiobjetivo dado y un conjunto de óptimos de ParetoP*, el frente de Pareto (PF ) se define como: * 4
  11. 11. Optimización Multiobjetivo Es decir, el conjunto de óptimos de Pareto hace referencia a los vectores paralos que analizamos las restricciones y valores de las funciones objetivo, mientras que elfrente de Pareto hace referencia a las valores de las funciones objetivo aplicadas a esospuntos. Veamos a continuación un ejemplo de frente de Pareto, para un problema dedos dimensiones, con dos funciones objetivos f1 y f2, donde los cuadrados representanposibles soluciones, y se busca minimizar el valor de las funciones objetivo.En este ejemplo, se da: ● f1(A) > f1(B) ● f2(A) < f2(B) ● f1(A) < f1(C) ● f2(A) < f2(C) ● f1(B) < f1(C) ● f2(B) < f2(C) Figura 1: Ejemplo frente de Pareto. El punto C no está en el frente de Pareto porque es dominado por los puntos A yB. Los puntos A y B no están estrictamente dominados el uno por el otro, y por lo tantoambos están incluidos en la frontera. A continuación presentamos algunos ejemplos concretos de frentes de Paretopara ciertos problemas multiobjetivo. 5
  12. 12. Optimización Multiobjetivo A continuación veamos varios ejemplos reales de frentes de Pareto paradistintos problemas multiobjetivo. A. KURSAWE Problema: minimizar , con Figura 2: Soluciones Pareto óptimas Kursawe. Figura 3: Frente de Pareto Kursawe. 6
  13. 13. Optimización MultiobjetivoB. DEB Bimodal Problema: minimizar , con Figura 4: Frente de Pareto DEB bimodal 7
  14. 14. Optimización Multiobjetivo C. KITA Problema: minimizar , con Figura 5: Soluciones Pareto óptimas Kita Figura 6: Frente de Pareto Kita8
  15. 15. Optimización MultiobjetivoD. DTLZ1 Problema: Minimizar la función , con Figura 7: Frente de Pareto DTLZ1, vista A Figura 8: : Frente de Pareto DTLZ1, vista B 9
  16. 16. Optimización MultiobjetivoAlgoritmos evolutivos El término Algoritmos Evolutivos (EV) aúna una colección de todas las variantesde algoritmos de optimización probabilística inspirados en la evolución Darwiniana. Losestados óptimos se aproximan mediante mejoras sucesivas basadas en el paradigma dela selección natural. De esa forma, la variación de los operadores produce diversidadgenética y la selección dirige la búsqueda evolutiva. Un algoritmo genético (AG) es una variante de un EV, el cual en una analogíacon la terminología utilizada en el ADN biológico, opera sobre cadenas, normalmente debits de longitud fija. Las cadenas corresponden al genotipo del individuo. El fenotipo delindividuo se obtiene por mapeo sobre los parámetros del objeto (mapeo genotipo-fenotipo). Un AG es, de acuerdo con Koza: “un algoritmo matemático altamente paraleloque transforma un conjunto (población) de objetos matemáticos individuales(cromosomas que típicamente se definen con patrones de cadenas de caracteres delongitud fija), cada uno con un valor de función de ajuste asociada, en una nuevapoblación (es decir, la siguiente generación) utilizando operaciones diseñadas asemejanza de los principios Darwinianos de reproducción y adaptación y operacionesgenéticas producidas de forma natural (principalmente recombinación sexual).” El AG se caracteriza usualmente por una selección proporcionada al valor deajuste, así como selección competitiva. El cruce es el operador principal; la mutación (anivel de bit) se considerada generalmente un operador secundario. Los componentes más comunes del AG son: • Una representación de soluciones potenciales al problema. • Un método para crear una población inicial de soluciones potenciales. • Una función de evaluación, que realiza el papel del medio ambiente, valorando las soluciones en función del valor de ajuste. • Operadores genéticos que alteran la composición de los miembros de la población de la siguiente generación. 10
  17. 17. Optimización Multiobjetivo • Valores de varios parámetros que el algoritmo genético utiliza (tamaño de la población, probabilidad de aplicar cada operador genético, etc.). El ajuste es una evaluación de un individuo respecto a su capacidad dereproducción, y es usualmente una función objetivo a ser optimizada, que depende delos parámetros del objeto. El término función de ajuste (fitness) es así mismo utilizadocomo sinónimo de función objetivo. La implementación de un AG comienza con una población de cromosomas,típicamente inicializados con valores al azar. Uno entonces los evalúa de maneraque a aquellos cromosomas que representen una mejor solución al problema tienenmayores oportunidades de reproducirse que aquellos con peores soluciones. Labondad de una solución está típicamente definida con respecto a la poblaciónactual y su valor de la función de ajuste. La selección focaliza la búsqueda a aquellospuntos más prometedores en el espacio de soluciones, mientras que la mutación yel cruce tratan de generar nuevos y mejores puntos de esas soluciones. Figura 9: Representación gráfica de cruce y mutación La selección en los AE se realiza en función del ajuste, y generalmente sedetermina en base a los valores objetivos del individuo en comparación con todoslos otros individuos del conjunto de selección. La función de ajuste puedeadicionalmente depender de diferentes condiciones/restricciones adicionales einfluencias estocásticas (ruido de ajuste). La esperanza es que haya una correlaciónentre el ajuste de los padres de una generación o de otra forma la búsqueda seconvertiría esencialmente en un paseo aleatorio. Las mutaciones aportan a lacomponente local de la búsqueda de la solución padre mientras que los crucesproporcionan una exploración de un ámbito más global en el espacio de búsqueda. 11
  18. 18. Optimización Multiobjetivo 1Capítulo 1Optimización Multiobjetivo
  19. 19. 2 Algoritmo NSGA-2 Optimización Multiobjetivo 1.1. Problema multiobjetivo Las principales características de un Problema de Optimización Multiobjetivo son las siguientes: ● Trabaja sobre un espacio multidimensional de funciones objetivo. ● No existe una única solución al problema. ● Es necesario un proceso de toma de decisiones en el cual se decide qué tipo de compromisos son más convenientes desde la perspectiva del que decide. Este proceso puede ser realizado a priori o a posteriori. Estos problemas pueden formularse como: ● Hallar el vector ● que optimice ● Sujeto a las restricciones de desigualdad ● Y a las restricciones de igualdad La noción más aceptada de “optimizar” y “óptimo” en estos casos es la propuesta originalmente por Francis Ysidro Edgeworth en 1881 y generalizada por Vilfredo Pareto en 1896, más comúnmente denominada óptimo de Edgeworth-Pareto o simplemente óptimo de Pareto.
  20. 20. Optimización Multiobjetivo 3Decimos que un punto: ● es un óptimo de Pareto si: ● Para toda e I={1,..,k}, se da que o bien: ● O hay al menos una tal queEn palabras llanas, un óptimo de Pareto es aquel punto para el que no hay otra solución queproporcione valores mejores en de las funciones objetivo sin que empeore simultáneamente aalguna de ellas. Una representación informal común es decir que “no es posible que alguiengane más, sin que al mismo tiempo alguien gane menos”.Para analizar mejor esta definición, añadiremos un concepto nuevo denominado dominanciade Pareto. Dados dos vectores: ●Decimos que u domina a v (denotado mediante ) si y solo si u es parcialmente menora v, i.e.,Es decir, un punto o solución domina a otro, si es capaz de proporcionar soluciones iguales omejores de las funciones objetivo sin perjudicar a ninguna de ellas en el proceso.Para un problema multiobjetivo dado f(x), el conjunto de óptimos de Pareto se definecomo:Esto es, el conjunto de puntos para los que no existen otros que los dominen, o queproporcionen el mismo resultado.
  21. 21. 4 Algoritmo NSGA-2 Para un problema multiobjetivo dado y un conjunto de óptimos de pareto , el frente de Pareto ( ) se define como: Es decir, el conjunto de óptimos de Pareto hace referencia a los vectores para los que analizamos las restricciones y valores de las funciones objetivo, mientras que el frente de Pareto hace referencia a las valores de las funciones objetivo aplicadas a esos puntos.
  22. 22. Optimización Multiobjetivo 51.2 Ejemplo genérico de frente de ParetoVeamos a continuación un ejemplo de frente de Pareto, para un problema de dos dimensones,con dos funciones objetivos f1 y f2, donde los cuadrados representan posibles soluciones, y sebusca minimizar el valor de las funciones objetivo.En este ejemplo, se da: ● f1(A) > f1(B) ● f2(A) < f2(B) ● f1(A) < f1(C) ● f2(A) < f2(C) ● f1(B) < f1(C) ● f2(B) < f2(C)El punto C no está en el frente de Pareto porque es dominado por los puntos A y B. Los puntosA y B no están estrictamente dominados el uno por el otro, y por lo tanto ambos estánincluidos en la frontera.A continuación presentamos algunos ejemplos concretos de frentes de paretos para ciertosproblemas multiobjetivo.
  23. 23. 6 Algoritmo NSGA-2 1.3 Ejemplos de frentes de pareto para ciertas funciones A. KURSAWE Problema: minimizar , con
  24. 24. Optimización Multiobjetivo 7 B. DEB Bimodal Problema: minimizar , con
  25. 25. 8 Algoritmo NSGA-2 C. KITA Problema: minimizar , con
  26. 26. Optimización Multiobjetivo 9
  27. 27. 10 Algoritmo NSGA-2 D. DTLZ1 Problema: Minimizar la función , con
  28. 28. Optimización Multiobjetivo 11 E. DTLZ7 Problema: Minimizar la función , con
  29. 29. 12 Algoritmo NSGA-2
  30. 30. BibliografíaPara más información, contacte con Vicente Herrera en el email:vicenteherrera @ vicenteherrera.comwww.vicenteherrera.com 80

×