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

Slides:



Advertisements
Presentaciones similares
Dreamweaver Primeros Pasos.
Advertisements

ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Algoritmo GENETICO.
Lenguaje de programación Java
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Actividad 3 Algoritmos Genéticos
David Escudero Mancebo Alfonso Pedriza Rebollo
“Impulsando la Sociedad
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Telekom Solutions.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Simulación del patrón … (2)
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ajustando el Algoritmo al problema Universidad Nacional Oscar Lozano.
Jorge Salas Chacón A03804 Rubén Jiménez Goñi A93212
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
SISTEMAS DE DISEÑO ASISTIDO POR COMPUTADORA
“En lugar de envidiar la naturaleza debemos emularla” Holland
Sistemas Inteligentes Algoritmos Evolutivos
Sistemas Inteligentes Algoritmos Geneticos
Clase 7: Componentes Básicos del Algoritmo Genético (Continuación)
Optimización matemática Algoritmos Genéticos – Parte 2 Por: Antonio H
Algoritmos Genéticos.
Algoritmos Genéticos (AG) Integrantes: Rubén Levineri Miguel Rozas Juan Yañez Faltan autores y bibliografía.
ALGORITMO GENÉTICO John Henry Holland (n. 02 de febrero 1929, Fort Wayne, Indiana, EE.UU.) ostenta los títulos de Profesor de Psicología y Profesor de.
Manual Flash. La Barra de Menús tiene como propósito facilitar el acceso a las distintas utilidades del programa. Es similar a la de cualquier otro.
Universidad Michoacana de San Nicolás de Hidalgo Facultad de Ingeniería Eléctrica División de Estudios de Posgrado Algoritmos Genéticos.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Weka.

JPEG/JPG Aguilar López Donaji Cruz Ortiz Nora Elida
Evolución Selección Natural.
CÓDIGOS DE HUFFMAN. Códigos de Huffman Los códigos de Huffman, que representan caracteres por cadenas de bits de longitud variable, proporcionan alternativas.
La evolución y otras cosas
COMPUTACION EVOLUTIVA Introducción. Computación Evolutiva: Computación Evolutiva: Enfoque alternativo para abordar problemas complejos de: Enfoque alternativo.
Cómo adquirir programas
BIOINFORMÁTICA TEMA 1 INTRODUCCIÓN
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Simulación del patrón … (4)
Neodarwinismo.
Algoritmos genéticos Introducción Esquema básico Codificación
Sistema De Apoyo A La Asignación De Horarios De Clases Para El Colegio Piamarta UCINFSantiago, 18 de Noviembre 2006 Darío Díaz Videla iii. Teoría Enfoques.
Una introducción a la computación evolutiva
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Trabajo de Graduación “SISTEMA DE PLANEACIÓN AVANZADO (APS) PARA DETERMINAR LA UBICACIÓN ÓPTIMA DE CAPACITORES EN UNA RED DE DISTRIBUCIÓN DE ENERGÍA ELÉCTRICA.
Propuesta del algoritmo
Mary C. Jarur M. ww.udec.cl/~mjarur
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Tema 4. VÍDEO DIGITAL.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO Francisco Antonio González Salas Luis Valencia Cabrera.
INSTITUTO TECNOLÓGICO DE TIJUANA Maestría en Ciencias en Ciencias De La Computación Tema: Operadores genéticos Alumnas: Leticia Mendoza Reyes. Rosalinda.
Alexander Aristizabal Ángelo flores herrera
Diseño Multimedia Photoshop. ¿Qué es? Es una aplicación informática que trabaja sobre fotografías y permite realizar tareas de edición y retoque de imagen.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Presentación de Avances Seminario de Titulo Álvaro Aguilar Claudia Cornejo Juan Bello Sistema De Apoyo A La Asignación De Horarios De Clases Para El Colegio.
ALGORITMOS GENETICOS.
4.- EL LAMARCKISMO, LA PRIMERA TEORÍA EVOLUTIVA
3.4 PRINCIPALES FACTORES DE LA EVOLUCION
Taller: Inteligencia Computacional
Pixelación de imágenes avanzada usando el algoritmo slic
Ingeniería del Software I
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Ing. Uziel Quiroz Castañeda Blanca Esthela Carranza Ortega 8º Semestre Junio/2013.
Heurística. Los procesos que se llevan a cabo en el cerebro pueden ser analizados, a un nivel de abstacción dado, como procesos computacionales de algún.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
Neodarwinismo o Teoría sintética y saltacionismo
TEMA 7 ANÁLISIS DE LOS RESULTADOS TEMA 7 ANÁLISIS DE LOS RESULTADOS.
Transcripción de la presentación:

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

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

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.

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.

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

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.

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.

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

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.

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

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.

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.

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.

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

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.

REQUISITOS, 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

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.

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.

CONCLUSIONES Y BIBLIOGRAFÍA 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).

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.

CONCLUSIONES Y 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.

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.

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