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

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

Transcript of Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales Ana Isabel Cabanas...

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

Aplicación educativa sobre Aplicación educativa sobre Algoritmos Evolutivos en Algoritmos Evolutivos en

imágenes digitalesimágenes digitales

Aplicación educativa sobre Aplicación educativa sobre Algoritmos Evolutivos en Algoritmos Evolutivos en

imágenes digitalesimágenes digitalesAna Isabel Cabanas RodríguezAna Isabel Cabanas Rodríguez

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

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

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.

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

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).

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

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.

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

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.

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

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

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

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.

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

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.

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

CONCEPTOS BÁSICOS– Ejemplo: crossover de 5 puntos

Padre 1

Padre 2

Hijo

0 0 0 1 0 1 0 1 0 1 0 1 0 1

1 0 1 1 1 0 0 1 1 1 0 1 1 1

0 0 0 1 0 0 0 1 1 1 0 1 0 1

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

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.

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

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és1 0 0 1 1 01 0 0 1 0 0

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

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.

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

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.

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

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.

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

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í.

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

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.

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

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

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

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.

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

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.

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

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).

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

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.

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

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.

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

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.

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

CONCLUSIONES Y BIBLIOGRAFÍA

• Tutorial de Java, Pintando en AWTUso 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