1 / 25

Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales

Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales. Ana Isabel Cabanas Rodríguez. ÍNDICE. OBJETIVOS CONCEPTOS BÁSICOS LA APLICACIÓN: DIBUJOS EVOLUTIVOS REQUISITOS, DISEÑO E IMPLEMENTACIÓN VÍAS DE AMPLIACIÓN CONCLUSIONES Y BIBLIOGRAFÍA. OBJETIVOS.

duard
Download Presentation

Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales Ana Isabel Cabanas Rodríguez

  2. ÍNDICE • OBJETIVOS • CONCEPTOS BÁSICOS • LA APLICACIÓN: DIBUJOS EVOLUTIVOS • REQUISITOS, DISEÑO E IMPLEMENTACIÓN • VÍAS DE AMPLIACIÓN • CONCLUSIONES Y BIBLIOGRAFÍA

  3. OBJETIVOS • Ofrecer un ejemplo explicativo sobre el funcionamiento de los Algoritmos Genéticos. • Ejemplo explicativo de la Teoría de la Evolución de las Especies y la Genética; simula con imágenes individuos de una posible especie.

  4. CONCEPTOS BÁSICOS • Introducción a los algoritmos genéticos • Algoritmo Genético: técnica de búsqueda y optimización basada en la Teoría de la Evolución de Darwin. • Teoría de Darwin: los individuos más aptos de una población son los que sobreviven. • John Holland: trató de aplicar la teoría evolucionista en el desarrollo de programas bien adaptados para un fin determinado (años 60). Primeros algoritmos genéticos. • David Goldberg: uno de los primeros en aplicar los algoritmos genéticos a problemas industriales (años 70).

  5. CONCEPTOS BÁSICOS • Definición de un algoritmo genético • Codificación de los parámetros • Genes: características del individuo (parámetros del problema a optimizar). Se codifican en cadenas de bits. El nº de bits depende del nº de valores posibles (alelos) de dicho parámetro (gen). • Cromosoma: conjunto de genes (parámetros). • Individuo: conjunto de N cromosomas. • Población: conjunto de individuos.

  6. CONCEPTOS BÁSICOS • Mejor adaptación: conjunto de parámetros con los que se obtiene una mejor solución de la función objetivo (a optimizar). • Fitness: puntuación de un individuo (posible solución) según su adaptación al entorno. • Criterio de terminación: la convergencia del propio algoritmo genético o un número fijo de generaciones.

  7. CONCEPTOS BÁSICOS • Algoritmo genético básico: • Generar población inicial • Evaluar la adaptación de los individuos de la población • Mientras no se alcance el criterio de terminación: • Seleccionar individuos para la reproducción • Obtener nuevos individuos (recombinación) • Evaluar la adaptación de los individuos nuevos • Reemplazar parte o toda la población con los nuevos individuos

  8. CONCEPTOS BÁSICOS • Operadores genéticos: • Evaluación: se evalúa los genes (parámetros) de un individuo según su adaptación como solución al problema, y se le da una puntuación (fitness). • Selección: se selecciona los individuos que se van a reproducir según su fitness. Hay varias formas: • Selección basada en el rango: se ordenan los individuos por fitness; los M mejores son seleccionados para reproducirse y su descendencia sustituirá a los M peores.

  9. CONCEPTOS BÁSICOS • Selección de torneo: se escogen aleatoriamente K individuos y el que tiene mayor fitness se reproduce, sustituyendo su descendencia al de menor fitness. • Crossover o cruce: intercambio de material genético entre dos cromosomas (o a nivel de población, entre dos individuos). Hay dos formas principales de aplicarlo: • Crossover n-puntos o múltiple: los cromosomas se cortan por n puntos y el material genético entre los puntos se intercambia. Habitual es de 1 o 2 puntos.

  10. CONCEPTOS BÁSICOS • Ejemplo: crossover de 5 puntos Padre 1 Padre 2 Hijo

  11. CONCEPTOS BÁSICOS • Crossover uniforme: se genera un patrón aleatorio de 1s y 0s y se intercambian los bits de los dos cromosomas que coincidan donde hay un 1 en el patrón. • Crossover especializados: en algunos problemas hay que aplicar el crossover de forma que genere siempre soluciones válidas. Ejemplo: el problema del viajante.

  12. CONCEPTOS BÁSICOS • Mutación: consiste en mutar un gen del nuevo individuo generado por cruce de sus padres según una probabilidad. Garantiza la diversidad de la población. La frecuencia de mutación debe ser baja, igual que en la naturaleza. Si se abusa algoritmo se convierte en búsqueda aleatoria. Ejemplo: antes después

  13. CONCEPTOS BÁSICOS • Otros operadores: se usan sólo en algunos problemas y su variedad es infinita. Ejemplo: añadir y eliminar (añade y elimina algún gen de un cromosoma de longitud variable); operador zap (cambia un gen de un cromosoma en vez de un bit); etc.

  14. LA APLICACIÓN: DIBUJOS EVOLUTIVOS • Aplicación educativa sobre algoritmos genéticos en imágenes digitales sencillas. • Función: obtener imágenes mediante transformaciones de éstas. • Los individuos (dibujos) mejor adaptados (mayor parecido con otro dibujo realizado previamente por el usuario) se seleccionan y se reproducen (mutando algún gen en alguno de sus hijos) dando lugar a una nueva generación de individuos. Cuantas más generaciones, mejor adaptadas, es decir, mayor será el parecido con el dibujo del usuario. • Población inicial: se genera de forma aleatoria. • Individuo final (dibujo): es dibujado por el usuario. • Dibujos: son tableros de cuadritos de color: rojo, azul y amarillo.

  15. LA APLICACIÓN: DIBUJOS EVOLUTIVOS • Instrucciones: • Dibuja Tu dibujo situado abajo: pulsa 1 vez en cada cuadrito para cambiar de color: amarillo azul rojo • Botón Dibujado: la aplicación guardará y usará Tu dibujo. • Botón Calcular parecido: calcula el fitness de los individuos (parecido de los dibujos con Tu dibujo). • Botón Seleccionar dibujos: selecciona los “M mejores” dibujos (los más parecidos a Tu dibujo). • Botón Generar dibujos: cruza los individuos (dibujos) seleccionados y muta algún gen de alguno de sus hijos.

  16. LA APLICACIÓN: DIBUJOS EVOLUTIVOS • Nº cuadritos que pueden cambiar de color: nº de genes que pueden mutar (cambiar de color) en un dibujo al ser generado por cruce de dos dibujos padres (individuos). Recomendable menos de 10, porque no se debe abusar de la mutación como ya se explicó antes. • Nº generaciones para avanzar de una sola vez: nº de veces que se repiten los 3 pasos del algoritmo de una sola vez: calcular parecido (fitness), seleccionar y reproducir. • Botón Varias generaciones: genera tantas generaciones como se indicó en nº de generaciones para avanzar de una sola vez. • Botón Instrucciones: se exponen los pasos a seguir en el programa, los cuales se han indicado aquí.

  17. REQUISITOS, DISEÑO E IMPLEMENTACIÓN • Lenguaje y plataforma: aplicación realizada en Java 2 v5.0; archivo ejecutable .jar multiplataforma. • Requisitos: J2SE Runtime Environment 5.0.

  18. REQUISITOS, DISEÑO E IMPLEMENTACIÓN • Diseño e implementación: • mi_paquete: paquete que engloba las clases • Aplicación: clase principal (método main). • Individuo: clase que representa a un individuo (dibujo) con su fitness. Métodos genéticos a nivel de cromosomas. • PanelDibujo: clase que pinta el panel del dibujo (individuo) como una cuadrícula de 8x8 y lo representa por un array de 8x16 int. Cada cuadrito (“píxel”) son 2 bits: • Azul 00 • Rojo 01 • Amarillo 10

  19. REQUISITOS, DISEÑO E IMPLEMENTACIÓN • PanelPixel: clase que pinta un “cuadrito” o “píxel” del panel-dibujo de un individuo. Atributo que indica su color. • VentanaPrincipal: clase que implementa toda la interfaz gráfica de usuario. Métodos genéticos a nivel de individuos. Tiene 3 clases privadas: • BarraMenu: construye la barra de menús. • EscuchadorMenu: implementa la interfaz ActionListener. Recoge los eventos de los menús. • EscuchadorRaton: extiende a MouseAdapter. Recoge el evento de hacer 1 click con el ratón sobre los “cuadritos” del dibujo del usuario.

  20. VÍAS DE AMPLIACIÓN • Algoritmos genéticos: potentes algoritmos de búsqueda y optimización. Pueden ser usados para resolver problemas donde no se sabe el cómo pero sí se conocen cuáles son las soluciones buenas y malas. • Software ampliable y reutilizable para otras áreas. • Ampliar el algoritmo para usar imágenes digitales complejas así como fotografías. • Posibilidad de portar el código para realizar la aplicación en applets. • Otras posibilidades de uso en tratamiento de imágenes digitales.

  21. CONCLUSIONES Y BIBLIOGRAFÍA • Conclusiones • Sencillez: principal ventaja de los algoritmos genéticos. • Se requiere poca información del espacio de búsqueda. • Se trabaja con conjunto de posibles soluciones, por aproximación a mejor solución. • Función de evaluación (fitness): cuidado al definirla. • Areas de aplicación: en biología, medicina, tratamiento de imágenes, industria, etc. • En problemas de optimización: algoritmo genético se ve menos afectado por máximos locales (falsas soluciones).

  22. CONCLUSIONES Y BIBLIOGRAFÍA • Desventajas: pueden tardar mucho en converger, o no converger en absoluto, dependiendo del tamaño de la población, nº de generaciones, etc. También pueden converger prematuramente.

  23. CONCLUSIONES Y BIBLIOGRAFÍA • Bibliografía • Direcciones web: • www.programacion.com/java • http://geneura.ugr.es/~jmerelo • Tutorial de Juan Julián Merelo Guervós: Algoritmos genéticos; Informática evolutiva. • http://java.sun.com/docs/books/tutorial/index.html • Tutorial sobre programación en Java y el uso de las API de Java.

  24. CONCLUSIONES Y BIBLIOGRAFÍA • Libros: • Guía práctica para usuarios Java 2 v5.0: Autor: F. Javier Moldes Teo. Ediciones Anaya Multimedia (2006). • La biblia Java 2 v5.0: Editorial Anaya (2005). • Otros: • Evolution of Digital Images: Autores: Mara Elizabeth Jones y Arbin Agah. Artículo de investigación publicado en IEEE Transactions on Systems, Man and Cybernetics – Part C: Applications and Reviews, vol. 32, no. 3, august 2002.

  25. CONCLUSIONES Y BIBLIOGRAFÍA • Tutorial de Java, Pintando en AWT Uso de la función paint() y repaint() para dibujar componentes en una interfaz gráfica. • Java 2 Platform API Specification Especificación de las API de Java, que además se puede descargar de: http://java.sun.com/j2se/1.5.0/download.jsp

More Related