Optimización multiobjetivo para distribución en planta

34
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

description

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.

Transcript of Optimización multiobjetivo para distribución en planta

Page 1: 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

Page 2: Optimización multiobjetivo para distribución en planta
Page 3: Optimización multiobjetivo para distribución en planta

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.

Page 4: Optimización multiobjetivo para distribución en planta
Page 5: Optimización multiobjetivo para distribución en planta

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.

Page 6: Optimización multiobjetivo para distribución en planta

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.

Page 7: Optimización multiobjetivo para distribución en planta

Í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

Page 8: Optimización multiobjetivo para distribución en planta

Í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

Page 9: Optimización multiobjetivo para distribución en planta

Í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

Page 10: Optimización multiobjetivo para distribución en planta
Page 11: Optimización multiobjetivo para distribución en planta

Definición de objetivos

1

1. Definición de Objetivos

Page 12: Optimización multiobjetivo para distribución en planta
Page 13: Optimización multiobjetivo para distribución en planta

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.

Page 14: Optimización multiobjetivo para distribución en planta

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:

�&∗ ≔ ' � � � � ����,… , ����|� ∈ �∗$.

Page 15: Optimización multiobjetivo para distribución en planta

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.

Page 16: Optimización multiobjetivo para distribución en planta

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.

Page 17: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo

7

B. DEB Bimodal

Problema: minimizar , con

Figura 4: Frente de Pareto DEB bimodal

Page 18: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo

8

C. KITA

Problema: minimizar , con

Figura 5: Soluciones Pareto óptimas Kita

Figura 6: Frente de Pareto Kita

Page 19: Optimización multiobjetivo para distribución en planta

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

Page 20: Optimización multiobjetivo para distribución en planta

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.

Page 21: Optimización multiobjetivo para distribución en planta

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.

Page 22: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo 1

Capítulo 1

Optimización Multiobjetivo

Page 23: Optimización multiobjetivo para distribución en planta

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.

Page 24: Optimización multiobjetivo para distribución en planta

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.

Page 25: Optimización multiobjetivo para distribución en planta

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.

Page 26: Optimización multiobjetivo para distribución en planta

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.

Page 27: Optimización multiobjetivo para distribución en planta

6 Algoritmo NSGA-2

1.3 Ejemplos de frentes de pareto para ciertas funciones

A. KURSAWE

Problema: minimizar , con

Page 28: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo 7

B. DEB Bimodal

Problema: minimizar , con

Page 29: Optimización multiobjetivo para distribución en planta

8 Algoritmo NSGA-2

C. KITA

Problema: minimizar , con

Page 30: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo 9

Page 31: Optimización multiobjetivo para distribución en planta

10 Algoritmo NSGA-2

D. DTLZ1

Problema: Minimizar la función , con

Page 32: Optimización multiobjetivo para distribución en planta

Optimización Multiobjetivo 11

E. DTLZ7

Problema: Minimizar la función , con

Page 33: Optimización multiobjetivo para distribución en planta

12 Algoritmo NSGA-2

Page 34: Optimización multiobjetivo para distribución en planta

Bibliografía

80

Para más información, contacte con Vicente Herrera en el email: vicenteherrera @ vicenteherrera.com www.vicenteherrera.com