Algoritmos genéticos Introducción Esquema básico Codificación

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Crecimiento de las Generaciones Posteriores en los Algoritmos Genéticos Curso: Inteligencia Artificial.
ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Algoritmo GENETICO.
Actividad 3 Algoritmos Genéticos
“Impulsando la Sociedad
REALIZADO POR: VICTOR PATRICIO VERDEZOTO PEREIRA
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Telekom Solutions.
Clase # 8: Análisis Conformacional (II)
Ramón Garduño Juárez Diseño de Fármacos
Tema 6: Compresión de imagen
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.
Algoritmos genéticos. Idea básica Problema Solución complejo ideal Algoritmo conocido A menudo este esquema no es realista Problemas NP Algoritmo desconocido.
“En lugar de envidiar la naturaleza debemos emularla” Holland
Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.
Pablo Musso ARTech Algoritmos Genéticos con GeneXus.
Sistemas Inteligentes Algoritmos Geneticos
Universidad Nacional de Colombia
Grupo 6 Sharón Benasús Michell Vanrell
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.
Inteligencia Artificial Búsqueda local
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.
Optimización Multiobjetivo Por: Antonio H
4n 2n.
Universidad Michoacana de San Nicolás de Hidalgo Facultad de Ingeniería Eléctrica División de Estudios de Posgrado Algoritmos Genéticos.
Algoritmos genéticos.
Capítulo 4 BUSQUEDA INFORMADA.
EL PODER DE SOLVER.
Diseño y análisis de algoritmos
Sesión 6: Campos de Markov
Diseño y análisis de algoritmos
COMPUTACION EVOLUTIVA Introducción. Computación Evolutiva: Computación Evolutiva: Enfoque alternativo para abordar problemas complejos de: Enfoque alternativo.
Algoritmos Genéticos y Predicción de Plegamiento de Proteinas
Diseño de Algoritmos Evolutivos para Localización Inicial Optima de Sensores en Plantas Industriales Jessica Andrea Carballido Noviembre, 2005 Defensa.
BIOINFORMÁTICA TEMA 1 INTRODUCCIÓN
Computación Evolutiva
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Objetivo: maximizar J para una cierta combinación de valores de
Algoritmos genéticos paralelos
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.
Análisis y Diseño de Algoritmos
Una introducción a la computación evolutiva
Aplicación educativa sobre Algoritmos Evolutivos en imágenes digitales
Algoritmos Genéticos en Aprendizaje Clase 3 de Computación Evolutiva.
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
Asignación de Horarios
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.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
ALGORITMOS GENETICOS.
INTELIGENCIA ARTIFICIAL. Redes Neuronales Artificiales Mecanismos de aprendizaje ◦ Entrada x ◦ Salida y ◦ Peso w ◦ Transferencia ~
3.4 PRINCIPALES FACTORES DE LA EVOLUCION
Taller: Inteligencia Computacional
Mariaisabel Adrián Fernanda Andrea Esteban Aníbal Nallely Arlet
Ing. Uziel Quiroz Castañeda Blanca Esthela Carranza Ortega 8º Semestre Junio/2013.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Introducción a la Computación Evolutiva Dr. Carlos A. Coello Coello Laboratorio Nacional de Informática Avanzada Rébsamen 80 Xalapa, Veracruz México.
Intervalos de Confianza M. C. José Juan Rincón Pasaye UMSNH – FIE Mayo de 2003.
2. LA REPRODUCCIÓN LA REPRODUCCIÓN CONSISTE EN OBTENER ORGANISMOS PARECIDOS A LOS ORGANISMOS ORIGINALES -Reproducción: si se hacen nuevos organismos -División.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
Transcripción de la presentación:

Algoritmos genéticos Introducción Esquema básico Codificación Evaluación Selección Operadores Ejemplo

Introducción Propuestos por Holland, mediados 70, computación evolutiva Popularizados por Goldberg, mediados 80, solución de problemas del mundo real Inspirados en el modelo de evolución biológica sexual Aplicables a problemas de búsqueda y optimización complejos

Aproximación a la evolución biológica Método de búsqueda y optimización inspirados en la evolución biológica Posibles soluciones: población Selección de los individuos más aptos Generación de nuevos candidatos: reproducción sexual Recombinación (cruce) Mutación

Esquema básico función ALGORITMO-GENÉTICO(poblaciónInicial) returns una población entrada: poblaciónInicial, una población static: población(.), un array de población begin t  0 población(t)  poblaciónInicial EVALUAR(población(t)) while (not condiciónTerminación) do t  t +1 población1  SELECCIONAR(población(t-1)) población2  CRUZAR(población1) población3  MUTAR(población2) población(t)  REMPLAZAR(población3) end return(población(t))

Codificación Individuo: cromosoma Cromosoma: cadena de caracteres En principio, cualquier representación es válida Codificación óptima: alfabeto binario (teorema de los esquemas) Codificación habitual: cadena de bits

Ejemplos de codificación maximización función f(x)=1-x2, parábola invertida con máximo en x=0 Único parámetro o atributo: variable x Codificamos el valor de la variable mediante un byte [0,255], ajustado al intervalo real [-1,1], donde queremos hallar el máximo de la función Valor binario Descodi-ficación real 10010100 148 0,161 10010001 145 0,137 00101001 41 -0,678 01000101 65 -0,490 2/255*x -1= y

8-reinas Atributo: posición de una dama en una columna (3 bits) Cromosoma: secuencia de atributos, 24 bits Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 1

Regla de los bloques de construcción La codificación es clave en la resolución del problema Heurística: parámetros relacionados ente sí (genes) deben de estar cercanos en el cromosoma Gran flexibilidad Cromosomas bi, tridimensionales Longitud variable

Evaluación En esta etapa hay que cuantificar la calidad de los individuos de la población Generalmente Decodificar el cromosoma Calidad de la solución Evaluación mediante función fitness o aptitud

Ejemplos de funciones de aptitud Para f(x)=1-x2, la función de aptitud es la misma Para 8-reinas: número total de pares de damas no amenazadas En cualquier solución: 7+6+5+4+3+2+1=28 Valor binario Descodi-ficación real Aptitud 10010100 148 0,161 0.974 10010001 145 0,137 .981 00101001 41 -0,678 .540 01000101 65 -0,490 .760

Selección Selección de los elementos que se reproducen A partir de la función de aptitud Varios métodos Rueda de ruleta Basado en el rango Selección de torneo Cambio de generación Manteniendo el tamaño de la población Aumentando el tamaño de la población

Rueda de ruleta Se asigna a cada individuo la probabilidad: Si algún individuo domina la población, se escala o normaliza Se elijen parejas aleatorias de individuos de acuerdo a su probabilidad Inconveniente: los individuos con más aptitud tiende a dominar la población en pocas generaciones 1 2 3 4

Rueda Valor binario Descodi-ficación real Aptitud Probabilidad Probabilidad acumulada 10010100 148 0,161 0.974 0.299 10010001 145 0,137 0.981 0.301 0.600 00101001 41 -0,678 0.540 0.166 0.766 01000101 65 -0,490 0.760 0.233 1.000 1 2 3 4

Basado en el rango Se ordena la población por orden creciente de aptitud Se eliminan los M primeros (menor aptitud) Se eligen de forma aleatoria, con probabilidad dada por el rango, pares de individuos y sus descendientes se añaden a la población

Torneo Se seleccionan dos individuos aleatoriamente Se elije el más apto con una probabilidad P y el menos apto con una probabilidad (1-P) Introduce más diversidad en la población

Cambio de generación Manteniendo el tamaño de la población intermedia Reemplazar padres por hijos Reemplazar un par de individuos elegidos aleatoriamente por los hijos Otros Aumentando el tamaño de la población intermedia Crear población temporal con padres e hijos, seleccionando los mejores Dados n padres generar m (m>n) hijos y de ellos seleccionar los n mejores

Operador de cruce (crossover) Principal operador genético Simula el intercambio de material genético o genes Se aplica con probabilidad pc a individuos seleccionados Cruce ideal: recombina buenos bloques de construcción de sus progenitores Operadores Cruce de n-puntos Cruce multipunto Cruce especializado

Cruce de un punto Seleccionar aleatoriamente una posición en el cromosoma Intercambiar el final del cromosoma a partir de dicho punto padre 1 madre hijo 1 hijo 2

Cruce de dos puntos padre 1 madre hijo 1 hijo 2

Otros operadores de cruce Multipunto o uniforme Cada bit se hereda de un padre aleatoriamente Operadores especializados En aquellos problemas donde un cruce aleatorio puede generar individuos no válidos

Ejemplo cruce 1 punto 8 reinas La selección aleatoria del punto de cruce no es interesante Genera individuos válidos La mezcla de bloques –genes- no parece asimilable a un operador del problema real Seleccionar aleatoriamente el gen a partir del que se hace el reemplazo Seleccionar aleatoriamente un entero 1 y 7 (número de genes) Equivale a intercambiar columnas contiguas entre tableros padres

Ejemplo cruce 1 punto 8 reinas Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 1 Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 1 Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 1 Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 1

Ejemplo cruce 1 punto 8 reinas ¤ ¤ padres Aptitud:20 Aptitud:26 ¤ ¤ hijos Aptitud:25 Aptitud:27

Operador de Mutación En la evolución En los algoritmos genéticos: Las mutaciones son poco frecuentes En la mayor parte de los casos letales En promedio, contribuyen a la diversidad genética En los algoritmos genéticos: Se simula cambiando aleatoriamente el valor de un bit Se aplica con probabilidad baja (10-3 o menor) a cada bit de un nuevo individuo, habitualmente junto al cruce Dependiendo del tamaño de la población y del número de bits por individuo, la mutación puede ser extremadamente rara en una generación

Utilidad de la mutación Genera diversidad Puede ser de utilidad cuando un algoritmo genético está estancado Su abuso reduce al algoritmo genético a una búsqueda aleatoria Otros mecanismos de generación de diversidad Aumentar el tamaño de la población Garantizar la aleatoriedad de la población inicial

Otros operadores Cromosomas de longitud variable Operadores de nicho Añadir, eliminar Operadores de nicho Fuerzan a que cromosomas similares sólo reemplacen a cromosomas similares Intentan mantener la diversidad Distintas “especies” en la población Cada una de ellas puede converger a un máximo diferente

Ejemplo optimización: f(x)=x2 encontrar máximo entero en [1,32] Codificación binaria: cadena de 5 bits Tamaño población inicial: 4 individuos Población inicial: aleatoria Sortear cada bit de cada cadena con p=1/2 Función de aptitud f(x)=x2 Selección: ruleta Cambio de generación: manteniendo el tamaño de la población intermedia Reemplazar un par de individuos elegidos aleatoriamente por los hijos

Población inicial Población inicial x aptitud Probabilidad selección Probabilidad acumulada 1 01101 13 169 0.14 2 11000 24 576 0.49 0.63 3 01000 8 64 0.06 0.69 4 10011 19 361 0.31 1.00 Suma 1170 Media 293 mejor

Selección: ruleta Generar cuatro números aleatorios, distribución de probabilidad uniforme en intervalo (0,1) Un individuo i se selecciona si el número aleatorio obtenido está en el intervalo definido por la probabilidad acumulada del individuo i-1 y la del individuo i Suponer que se obtienen: 0.58, 0.84, 0.11 y 0.43 Individuos seleccionados: 2, 4, 1, 2

Población seleccionada Población inicial x aptitud Probabilidad selección Probabilidad acumulada 2 11000 24 576 4 10011 19 361 1 01101 13 169 Suma 1682 Media 420.5 mejor

Cruce Emparejamiento: emparejarlos según se han seleccionado -2 con 4, 1 con 2- Probabilidad de cruce: 0.8 Generar número aleatorio, distribución uniforme, (0, 1) Suponer se obtienen 0.7, 0.3: se produce el cruce en ambos emparejamientos Generar puntos de cruce: numero aleatorio, distribución uniforme en [1, 2… ,L] con L longitud del cromosoma Suponer se obtienen 2,3

Creación descendientes 2 1 4 h1 h2 1 2 h3 h4

Mutación Probabilidad mutación: 10-3 Suponer no se produce ninguna mutación

Nueva población: reemplazar padres por hijos Población 1ª iteración x aptitud Probabilidad selección Probabilidad acumulada h1 11011 27 729 0.44 h2 10000 16 256 0.15 0.59 h3 01100 8 64 0.04 0.63 h4 11001 25 625 0.37 1.00 Suma 1674 Media 418,5 mejor

Ejercicio Considerar el problema de encontrar el máximo de la función f(x)=1-x2, en el intervalo [-1, 1] Utilizar la codificación y función de aptitud propuestas como ejemplo Método de selección: torneo Probabilidad de cruce: 0,8 Probabilidad de mutación:0,001 Cambio de generación: cambiar padres por hijos Obtener la población tras dos iteraciones