“Optimización de Planta de Deshidratación de Gas mediante ...
Optimización multiobjetivo para distribución en planta
-
Upload
vicente-herrera -
Category
Technology
-
view
365 -
download
0
description
Transcript of Optimización multiobjetivo para distribución en planta
Escuela Técnica Superior de Ingeniería Informática
Universidad de Sevilla
INGENIERÍA INFORMÁTICA
OPTIMIZACIÓN DE LA DISTRIBUCIÓN EN PLANTA
DE INSTALACIONES INDUSTRIALES
MEDIANTE ALGORITMOS GENÉTICOS
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
EXTRACTO
AGRADECIMIENTOS
Damos 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.
Introducción
Introducción
En este proyecto abordaremos el problema de la distribución en planta para instalaciones industriales. Para ello nos valdremos de algoritmos genéticos como herramienta de optimización en aras de conseguir el mejor resultado posible a la hora de optimizar diversos criterios.
La distribución en planta es un término que hace referencia a la disposición de una instalación, teniendo en cuenta la organización de la maquinaria, departamentos, espacios comunes, almacenes, líneas de montaje, etc. Puede estar destinado a una planta de producción propuesta o incluso ya existente, con la finalidad de organizar los elementos anteriormente mencionados para conseguir la fluidez del flujo de trabajo dentro del sistema productivo.
El problema de la distribución en planta goza de plena vigencia en la actualidad debido a la gran importancia que tiene este aspecto a la hora de diseñar una instalación industrial, lo que nos puede llevar, en primer lugar, a un considerable ahorro en cuanto a costes y espacios. Más allá, podremos tener en cuenta multitud de factores para la mencionada optimización, como pueden ser la geometría idónea del área destinada, el mínimo tránsito de materias primas y personal, número de personas a contratar para realizar 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 como prevención de riesgos laborales, higiene, seguridad, mejor uso posible de maquinaria usada, etc. Todos ellos serán puntos a tener en cuenta para conseguir la optimización de criterios, cumpliendo las restricciones propias de las características del proyecto concreto, y lo más importante, sin perder eficiencia en la consideración de unos criterios cuando intentemos optimizar otros. Por tanto nuestro problema de distribución en planta lo enfocaremos como un problema multiobjetivo.
Hemos partido de una implementación real de una planta solar fotovoltaica para hacer el estudio de aplicación del problema de la distribución en planta. Se trata de un caso de modelado que, abordado de manera general en base a las características de este tipo de instalaciones, adaptamos según la metodología que queremos aplicar. Conseguiremos expresar una solución según los aspectos propios de los algoritmos genéticos. Así se puede observar su aplicabilidad y adaptabilidad a este tipo de problemas, lo cual nos lleva a demostrar la capacidad de esta técnica para adaptarse a todo tipo de temática sobre instalaciones industriales.
Introducción
El problema de la distribución en planta es un problema de asignación cuadrática o QAP: un problema de optimización combinatoria que puede establecerse como un conjunto de n elementos distintos que deben ser localizados en n localidades de forma óptima. Al ser un problema de optimización se necesita minimizar ya sea el flujo, los costos o las distancias. Pertenece a la clase de los NP-duros, cuya resolución no es posible en “tiempos cortos” si se emplean métodos de búsqueda exhaustivos, y el abordarlo en un planteamiento multiobjetivo complica aún más las cosas.
En los problemas multiobjetivo se define el concepto de dominancia de una solución sobre otra, como la cualidad de la primera de mejorar o mantener algunos de los objetivos de la segunda sin perjudicar a ningún otro. Aquellas soluciones para las que no 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. Entre estas soluciones no establecemos a priori cuál de ellas es la mejor, todas ellas son válidas, y en función de las necesidades específicas que tengamos nos podríamos decantar por una o unas de entre ellas a posteriori.
Tras evaluar el estado del arte de las diferentes alternativas, como algoritmos no elitistas, SPEA-2, etc., decidimos emplear NSGA-2 (Non-dominated Sorting Genetic Algorithm, second generation) también llamado Algoritmo Genético de Ordenación de Frentes. Se trata de un algoritmo genético multiobjetivo no-dominado elitista, que jerarquizan a la población de acuerdo a si un individuo es dominado o no. Como algoritmo genético que es, al operar sobre una población de soluciones, permite encontrar 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 encontradas están diversificadas y convergen cerca del verdadero conjunto Pareto-óptimo.
Nuestra implementación ha sido realizada en C# debido a las facilidades para la modularización de los diversos componentes y la capacidad de reutilización posterior de los mismos. De esta forma, ha sido desarrollada según un diseño modular, orientado a facilitar el análisis del desempeño en tiempo real y de los resultados, permitiendo variar todos los parámetros y visualizar de forma gráfica su rendimiento.
Índice General
i
Índice General 1. Definición de Objetivos ................................................................................................... 1
Problema multiobjetivo, dominancia, y frente de Pareto .............................................. 3 Algoritmos evolutivos ................................................................................................... 10 Algoritmo NSGA-II ......................................................................................................... 17
3. Uso de metaheurísticas ................................................................................................. 21 4. Comparación con otras alternativas. NSGA-II vs SPEA-2 .............................................. 23 5. Problema de la distribución en planta .......................................................................... 31
Especificaciones técnicas .............................................................................................. 31 Modelado ...................................................................................................................... 38
6. Problema NP-duro ........................................................................................................ 55 Problemas clase P, NP, NP-completo y NP-duro........................................................... 55 La optimización en planta como problema NP-duro .................................................... 57
7. Diseño e Implementación ............................................................................................. 59 8. Líneas de desarrollo posteriores ................................................................................... 67
Implementación multithread ........................................................................................ 67 Aplicación de un caso mayor ........................................................................................ 70 Modelos de islas............................................................................................................ 72
9. Análisis temporal y coste de desarrollo ........................................................................ 73 10. Conclusiones ............................................................................................................... 75 11. Bibliografía .................................................................................................................. 77
Índice General
ii
Índice de Figuras Figura 1: Ejemplo frente de Pareto. .................................................................................... 5 Figura 2: Soluciones Pareto óptimas Kursawe. ................................................................... 6 Figura 3: Frente de Pareto Kursawe. ................................................................................... 6 Figura 4: Frente de Pareto DEB bimodal ............................................................................. 7 Figura 5: Soluciones Pareto óptimas Kita ............................................................................ 8 Figura 6: Frente de Pareto Kita ........................................................................................... 8 Figura 7: Frente de Pareto DTLZ1, vista A .......................................................................... 9 Figura 8: : Frente de Pareto DTLZ1, vista B ........................................................................ 9 Figura 9: Representación gráfica de cruce y mutación ..................................................... 11 Figura 10: Cálculo de la distancia en NSGA-II .................................................................... 19 Figura 11: Esquema de ordenación en NSGA-II ................................................................ 20 Figura 12: Retardo NSGA2 vs SPEA2 ................................................................................. 26 Figura 13: Número de saltos NSGA2 vs SPEA2 .................................................................. 26 Figura 14: Retardo ............................................................................................................. 27 Figura 15: Operaciones utilizando SPEA2.......................................................................... 28 Figura 16: Operaciones utilizando NSGA2 ........................................................................ 28 Figura 17: Comparativa NSGA2 vs SPEA2 .......................................................................... 29 Figura 18: Esquema Unifilar .............................................................................................. 32 Figura 19: Esquema de planta solar fotovoltaica .............................................................. 32 Figura 20: Ejemplo de planta solar fotovoltaica. .............................................................. 35 Figura 21: Decodificación de cromosomas en Layagen .................................................... 43 Figura 22: Cruce ................................................................................................................ 44 Figura 23: Mutación .......................................................................................................... 44 Figura 24: Influencia del entorno en el fenotipo .............................................................. 45 Figura 25: Árboles de corte ............................................................................................... 48 Figura 26: Codificación de la distribución de Layagen ...................................................... 49 Figura 27: Metodología de Layagen .................................................................................. 50 Figura 28: Tabla relacional de actividades ........................................................................ 51 Figura 29: Ejemplo de distribución de planta solar ........................................................... 52 Figura 30: Plano real de planta solar fotovoltaica ............................................................ 53 Figura 31: Clases de problemas ......................................................................................... 56 Figura 32: Pestaña principal del interfaz del programa .................................................... 59 Figura 33: Pestaña secundaria del interfaz del programa................................................. 60 Figura 34: Comparativa ejecución mono y multi-thread .................................................. 68 Figura 35: Sucesivas ejecuciones en modo mono y multi-thread ..................................... 69 Figura 36: Proyecto Salud e-Virtual ................................................................................... 70
Índice General
iii
Índice de Tablas Tabla 1: Comparativa entre algoritmos ............................................................................ 24 Tabla 2: Comparativa entre algoritmos ............................................................................ 24 Tabla 3: Comparativa entre algoritmos ............................................................................ 24 Tabla 4: Comparación métricas SPEA2 vs NSGA2 ............................................................. 28 Tabla 5: Estimación de tiempos ........................................................................................ 73
Definición de objetivos
1
1. Definición de Objetivos
Optimización Multiobjetivo
3
2. Optimización Multiobjetivo Problema multiobjetivo, dominancia, y frente de Pareto
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: 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 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.
Optimización Multiobjetivo
4
Decimos que un punto:
● ��∗ es un óptimo de Pareto si:
● Para toda ��∗ e � � �1,… , , 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 otra
solución que proporcione valores mejores en de las funciones objetivo sin que empeore simultá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 denominado dominancia de Pareto. Dados dos vectores:
��� � ���, ��, … , ����� � ���, ��, … , ��� Decimos que u domina a v (denotado mediante ) si y solo si u es
parcialmente menor a v, i.e.,
∀� ∈ �1,… , , �� � �� ∧ ∃� ∈ �1,… , ∶ �� � �� Es decir, un punto o solución domina a otro, si es capaz de proporcionar
soluciones iguales o mejores 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 P* se define como:
�∗ ≔ � ∈ !|#∃� ∈ ! ����� � ����$. Esto es, el conjunto de puntos para los que no existen otros que los dominen, o
que proporcionen el mismo resultado.
Para un problema multiobjetivo dado y un conjunto de óptimos de Pareto P*, el frente de Pareto (PF*) se define como:
�&∗ ≔ ' � � � � ����,… , ����|� ∈ �∗$.
Optimización Multiobjetivo
5
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.
Veamos a continuación un ejemplo de frente de Pareto, para un problema de dos dimensiones, con dos funciones objetivos f1 y f2, donde los cuadrados representan posibles 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)
El punto C no está en el frente de Pareto porque es dominado por los puntos A y B. Los puntos A y B no están estrictamente dominados el uno por el otro, y por lo tanto ambos están incluidos en la frontera.
A continuación presentamos algunos ejemplos concretos de frentes de Pareto para ciertos problemas multiobjetivo.
Figura 1: Ejemplo frente de Pareto.
Optimización Multiobjetivo
6
A continuación veamos varios ejemplos reales de frentes de Pareto para distintos problemas multiobjetivo.
A. KURSAWE
Problema: minimizar , con
Figura 2: Soluciones Pareto óptimas Kursawe.
Figura 3: Frente de Pareto Kursawe.
Optimización Multiobjetivo
7
B. DEB Bimodal
Problema: minimizar , con
Figura 4: Frente de Pareto DEB bimodal
Optimización Multiobjetivo
8
C. KITA
Problema: minimizar , con
Figura 5: Soluciones Pareto óptimas Kita
Figura 6: Frente de Pareto Kita
Optimización Multiobjetivo
9
D. DTLZ1
Problema: Minimizar la función , con
Figura 7: Frente de Pareto DTLZ1, vista A
Figura 8: : Frente de Pareto DTLZ1, vista B
Optimización Multiobjetivo
10
Algoritmos evolutivos
El término Algoritmos Evolutivos (EV) aúna una colección de todas las variantes de algoritmos de optimización probabilística inspirados en la evolución Darwiniana. Los estados óptimos se aproximan mediante mejoras sucesivas basadas en el paradigma de la selección natural. De esa forma, la variación de los operadores produce diversidad gené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ía con la terminología utilizada en el ADN biológico, opera sobre cadenas, normalmente de bits de longitud fija. Las cadenas corresponden al genotipo del individuo. El fenotipo del individuo 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 paralelo que transforma un conjunto (población) de objetos matemáticos individuales (cromosomas que típicamente se definen con patrones de cadenas de caracteres de longitud fija), cada uno con un valor de función de ajuste asociada, en una nueva población (es decir, la siguiente generación) utilizando operaciones diseñadas a semejanza de los principios Darwinianos de reproducción y adaptación y operaciones genéticas producidas de forma natural (principalmente recombinación sexual).”
El AG se caracteriza usualmente por una selección proporcionada al valor de ajuste, así como selección competitiva. El cruce es el operador principal; la mutación (a nivel 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.
Optimización Multiobjetivo
11
• 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 de reproducción, y es usualmente una función objetivo a ser optimizada, que depende de los parámetros del objeto. El término función de ajuste (fitness) es así mismo utilizado como 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 manera que a aquellos cromosomas que representen una mejor solución al problema tienen mayores oportunidades de reproducirse que aquellos con peores soluciones. La bondad de una solución está típicamente definida con respecto a la población actual y su valor de la función de ajuste. La selección focaliza la búsqueda a aquellos puntos más prometedores en el espacio de soluciones, mientras que la mutación y el 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 se
determina en base a los valores objetivos del individuo en comparación con todos los otros individuos del conjunto de selección. La función de ajuste puede adicionalmente depender de diferentes condiciones/restricciones adicionales e influencias estocásticas (ruido de ajuste). La esperanza es que haya una correlación entre el ajuste de los padres de una generación o de otra forma la búsqueda se convertiría esencialmente en un paseo aleatorio. Las mutaciones aportan a la componente local de la búsqueda de la solución padre mientras que los cruces proporcionan una exploración de un ámbito más global en el espacio de búsqueda.
Optimización Multiobjetivo 1
Capítulo 1
Optimización Multiobjetivo
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.
Optimización Multiobjetivo 3
Decimos 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 que
En palabras llanas, un óptimo de Pareto es aquel punto para el que no hay otra solución que
proporcione valores mejores en de las funciones objetivo sin que empeore simultá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 denominado dominancia
de Pareto. Dados dos vectores:
●
Decimos que u domina a v (denotado mediante ) si y solo si u es parcialmente menor
a v, i.e.,
Es decir, un punto o solución domina a otro, si es capaz de proporcionar soluciones iguales o
mejores 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 define
como:
Esto es, el conjunto de puntos para los que no existen otros que los dominen, o que
proporcionen el mismo resultado.
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.
Optimización Multiobjetivo 5
1.2 Ejemplo genérico de frente de Pareto
Veamos 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 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)
El punto C no está en el frente de Pareto porque es dominado por los puntos A y B. Los puntos
A y B no están estrictamente dominados el uno por el otro, y por lo tanto ambos están
incluidos en la frontera.
A continuación presentamos algunos ejemplos concretos de frentes de paretos para ciertos
problemas multiobjetivo.
6 Algoritmo NSGA-2
1.3 Ejemplos de frentes de pareto para ciertas funciones
A. KURSAWE
Problema: minimizar , con
Optimización Multiobjetivo 7
B. DEB Bimodal
Problema: minimizar , con
8 Algoritmo NSGA-2
C. KITA
Problema: minimizar , con
Optimización Multiobjetivo 9
10 Algoritmo NSGA-2
D. DTLZ1
Problema: Minimizar la función , con
Optimización Multiobjetivo 11
E. DTLZ7
Problema: Minimizar la función , con
12 Algoritmo NSGA-2
Bibliografía
80
Para más información, contacte con Vicente Herrera en el email: vicenteherrera @ vicenteherrera.com www.vicenteherrera.com