Your SlideShare is downloading. ×
Diseño, Aplicación y Evaluación de un Algoritmo Evolutivo Manuel Ruiz de Quintanilla Foncubierta Director: Severino Fernán...
Objetivos  <ul><li>Análisis de técnicas de computación evolutiva para la resolución de problemas de optimización. </li></u...
<ul><li>Estudio de distintas aproximaciones a la computación evolutiva. </li></ul><ul><li>Elección de un algoritmo evoluti...
<ul><li>Características: </li></ul><ul><ul><ul><ul><ul><li>Población compuesta por soluciones candidatas. </li></ul></ul><...
Inicialización de la población Evaluación de la población Mientras !Condición de Terminación { Selección de Padres Recombi...
<ul><li>Algoritmos Genéticos </li></ul><ul><li>Estrategias Evolutivas </li></ul><ul><li>Programación Evolutiva </li></ul><...
<ul><li>Problema de optimización matemática. </li></ul><ul><li>Contenedor de capacidad finita. </li></ul><ul><li>Colección...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
<ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de pertenencia a la solución. </li></ul></u...
Tipos de solución  <ul><li>Dada una solución tenemos dos posibilidades. </li></ul><ul><li>Factible: el volumen de los obje...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
<ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul>...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
Función de Evaluación  <ul><li>Tres implementaciones diferentes: </li></ul><ul><ul><ul><li>Función Decodificadora. </li></...
Solución Factible  Resultado idéntico para soluciones factibles. Se diferencian en el tratamiento de soluciones no factibl...
Solución no Factible  <ul><li>La solución propuesta no cabe en la mochila. </li></ul><ul><li>Distintas aproximaciones depe...
<ul><li>Recorrido por orden de ratio. </li></ul><ul><ul><ul><ul><ul><li>Decodificadora interpreta y reparadora corrige. </...
<ul><li>Penaliza soluciones no factibles </li></ul><ul><li>Posibles valores: </li></ul><ul><ul><ul><li>Si es factible:  </...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
<ul><ul><li>Recombinación de dos padres genera dos hijos. Para cada recombinación generamos un punto aleatorio “i”. </li><...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
Características del Algoritmo Genético  <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de ...
Entorno de aplicación  Pantalla principal
Entorno de aplicación  Pantallas de preferencias y configuración de objetos.
Evaluación empírica  <ul><li>Resultados obtenidos: </li></ul><ul><li>Función penalizadora tiene peor rendimiento que la de...
Conclusiones  <ul><li>Interfaz gráfico. </li></ul><ul><li>Evaluación. </li></ul><ul><li>Posibles mejoras. </li></ul><ul><u...
Upcoming SlideShare
Loading in...5
×

Presentacion Proyecto

2,804

Published on

Presentación del PFC "Diseño, Aplicación y Evaluación de un Algoritmo Evolutivo" (lolo@lolo.es)

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,804
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Presentacion Proyecto"

  1. 1. Diseño, Aplicación y Evaluación de un Algoritmo Evolutivo Manuel Ruiz de Quintanilla Foncubierta Director: Severino Fernández Galán Curso 2008/2009. Convocatoria de Diciembre/Enero Oferta General Universidad Nacional de Educación a Distancia Escuela Técnica Superior de Ingeniería Informática Proyecto de Fin de Carrera de Ingeniero Informático
  2. 2. Objetivos <ul><li>Análisis de técnicas de computación evolutiva para la resolución de problemas de optimización. </li></ul><ul><li>Implementación de un algoritmo evolutivo que resuelva el problema de la mochila. </li></ul><ul><li>Desarrollo de una aplicación gráfica que muestre la resolución del problema. </li></ul><ul><li>Evaluación empírica del algoritmo. </li></ul>
  3. 3. <ul><li>Estudio de distintas aproximaciones a la computación evolutiva. </li></ul><ul><li>Elección de un algoritmo evolutivo para resolver el problema de la mochila. </li></ul><ul><li>Elección de característica fundamental a estudiar (función de evaluación). </li></ul><ul><li>Implementación del algoritmo y desarrollo de un entorno de simulación que muestre la evolución del algoritmo gráficamente. </li></ul><ul><li>Evaluación empírica del algoritmo. </li></ul>Metodología
  4. 4. <ul><li>Características: </li></ul><ul><ul><ul><ul><ul><li>Población compuesta por soluciones candidatas. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Función de evaluación determina la aptitud de cada solución y guía la evolución del sistema. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Aplica repetidamente una serie de operadores para evolucionar (mutación, recombinación, selección natural, supervivencia del más apto, etc). </li></ul></ul></ul></ul></ul>“ Algoritmo que incorpora técnicas inspiradas en la evolución biológica para refinar un conjunto de soluciones iterativamente.” Algoritmos Evolutivos
  5. 5. Inicialización de la población Evaluación de la población Mientras !Condición de Terminación { Selección de Padres Recombinación Mutación Evaluación Selección de Supervivientes } Estructura de un algoritmo evolutivo
  6. 6. <ul><li>Algoritmos Genéticos </li></ul><ul><li>Estrategias Evolutivas </li></ul><ul><li>Programación Evolutiva </li></ul><ul><li>Programación Genética </li></ul>Ramas de Computación Evolutiva
  7. 7. <ul><li>Problema de optimización matemática. </li></ul><ul><li>Contenedor de capacidad finita. </li></ul><ul><li>Colección de objetos con dos características: valor y volumen. </li></ul><ul><li>Objetivo: Maximizar el valor de los objetos introducidos en la mochila sin sobrepasar su capacidad. </li></ul>Problema de la Mochila
  8. 8. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  9. 9. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  10. 10. <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de pertenencia a la solución. </li></ul></ul></ul></ul></ul>Representación de Individuos Valor total = 10 + 3 + 9 + 8 + 9 = 39 Volumen total = 8 + 5 + 4 + 4 + 7 = 28 Objeto Valor Volumen Objeto_1 6 3 Objeto_2 10 8 Objeto_3 3 5 Objeto_4 7 9 Objeto_5 9 4 Objeto_6 4 10 Objeto_7 6 1 Objeto_8 2 3 Objeto_9 8 4 Objeto_10 9 7 0 1 1 0 1 0 0 0 1 1
  11. 11. Tipos de solución <ul><li>Dada una solución tenemos dos posibilidades. </li></ul><ul><li>Factible: el volumen de los objetos a introducir en la mochila es menor o igual que la capacidad de la mochila. </li></ul><ul><li>No Factible: los objetos que se quieren introducir no caben en la mochila. </li></ul>
  12. 12. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  13. 13. <ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul>Inicialización de la Población . . . 1 2 3 4 5 n 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1
  14. 14. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  15. 15. Función de Evaluación <ul><li>Tres implementaciones diferentes: </li></ul><ul><ul><ul><li>Función Decodificadora. </li></ul></ul></ul><ul><ul><ul><li>Función Reparadora. </li></ul></ul></ul><ul><ul><ul><li>Función Penalizadora. </li></ul></ul></ul>
  16. 16. Solución Factible Resultado idéntico para soluciones factibles. Se diferencian en el tratamiento de soluciones no factibles. En este caso la evaluación quedará: Eval = valor 2 + valor 3 + valor 5 + valor 9 + valor 10 0 1 1 0 1 0 0 0 1 1
  17. 17. Solución no Factible <ul><li>La solución propuesta no cabe en la mochila. </li></ul><ul><li>Distintas aproximaciones dependiendo de la función de evaluación elegida. </li></ul><ul><ul><ul><li>Función decodificadora: Tomamos los mejores objetos de la solución y los demás los ignoramos. </li></ul></ul></ul><ul><ul><ul><li>Función reparadora: Tomamos los mejores objetos de la solución y los demás los eliminamos de la solución. </li></ul></ul></ul><ul><ul><ul><li>Función penalizadora: Penalizamos las soluciones no factibles proporcionalmente al volumen sobrepasado. </li></ul></ul></ul>
  18. 18. <ul><li>Recorrido por orden de ratio. </li></ul><ul><ul><ul><ul><ul><li>Decodificadora interpreta y reparadora corrige. </li></ul></ul></ul></ul></ul>Función Decodificadora y Reparadora Orden Valor Vol. Ratio 10 1 10 0.10 8 2 5 0.40 4 3 2 1.50 9 2 9 0.22 2 8 3 2.66 1 6 1 6.00 6 7 9 0.77 3 4 2 2.00 5 7 6 1.17 7 1 7 0.44 0 1 1 0 1 1 1 0 1 0
  19. 19. <ul><li>Penaliza soluciones no factibles </li></ul><ul><li>Posibles valores: </li></ul><ul><ul><ul><li>Si es factible: </li></ul></ul></ul><ul><ul><ul><li>Si es no factible: </li></ul></ul></ul>Función Penalizadora Eval = valor 2 + valor 3 + valor 5 + valor 9 + valor 10 Eval = capacidad - vol 2 - vol 3 - vol 5 - vol 9 - vol 10 0 1 1 0 1 0 0 0 1 1
  20. 20. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  21. 21. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  22. 22. <ul><ul><li>Recombinación de dos padres genera dos hijos. Para cada recombinación generamos un punto aleatorio “i”. </li></ul></ul>Cruce por un punto Padre 1 Padre 2 Hijo 1 Hijo 2 b 1 b 2 b 3 ... b i-1 a i a i+1 ... a n-1 a n b 1 b 2 b 3 ... b i-1 b i b i+1 ... b n-1 b n a 1 a 2 a 3 ... a i-1 b i b i+1 ... b n-1 b n a 1 a 2 a 3 ... a i-1 a i a i+1 ... a n-1 a n
  23. 23. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  24. 24. Características del Algoritmo Genético <ul><li>Representación de individuos. </li></ul><ul><ul><ul><ul><ul><li>Vector de valores binarios. </li></ul></ul></ul></ul></ul><ul><li>Inicialización de la población. </li></ul><ul><ul><ul><ul><ul><li>Asignación aleatoria de objetos. </li></ul></ul></ul></ul></ul><ul><li>Función de evaluación. </li></ul><ul><ul><ul><ul><ul><li>Tres implementaciones. </li></ul></ul></ul></ul></ul><ul><li>Selección de padres. </li></ul><ul><ul><ul><ul><ul><li>Torneo de n individuos. </li></ul></ul></ul></ul></ul><ul><li>Operador de recombinación. </li></ul><ul><ul><ul><ul><ul><li>Cruce por un punto. </li></ul></ul></ul></ul></ul><ul><li>Operador de mutación. </li></ul><ul><ul><ul><ul><ul><li>Modificación aleatoria con tasa variable. </li></ul></ul></ul></ul></ul><ul><li>Selección de supervivientes. </li></ul><ul><ul><ul><ul><ul><li>Método generacional. </li></ul></ul></ul></ul></ul>
  25. 25. Entorno de aplicación Pantalla principal
  26. 26. Entorno de aplicación Pantallas de preferencias y configuración de objetos.
  27. 27. Evaluación empírica <ul><li>Resultados obtenidos: </li></ul><ul><li>Función penalizadora tiene peor rendimiento que la decodificadora y la reparadora. </li></ul><ul><li>La función decodificadora y la reparadora son prácticamente semejantes. </li></ul>
  28. 28. Conclusiones <ul><li>Interfaz gráfico. </li></ul><ul><li>Evaluación. </li></ul><ul><li>Posibles mejoras. </li></ul><ul><ul><ul><ul><li>Aproximación no generacional. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mejora del rendimiento. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Optimización centrada en el problema. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Evaluación temporal. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Distintos métodos de representación de objetos. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Exportación a la web. </li></ul></ul></ul></ul>

×