Inteligencia Artificial Algoritmos Genéticos Prof. Dra. Silvia Schiaffino ISISTAN Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Agenda • • • • Concepto Ciclo Población Reproducción – Recombinación – Mutación • Evaluación • Algoritmo • Ejemplos Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 1 Algoritmos Genéticos • Algoritmo de búsqueda en espacio de soluciones. • Inspirados en mecanismos de evolución biológica • Se basan en el mecanismo de supervivencia del más apto • Desarrollados por Holland en la Universidad de Michigan en los ’70 – Para entender el proceso adaptativo de los sistemas naturales – Para diseñar sistemas artificiales con la robustez de los sistemas naturales Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Algoritmos Genéticos • Procedimiento iterativo • Produce una serie de generaciones de poblaciones, una población por cada iteración • Cada miembro de la población representa una solución al problema y se denomina cromosoma • Nuevas soluciones se generan por crossover (recombinación) y mutación • Requiere el cálculo de una función de fitness Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 2 Similitud con sistemas biológicos Sistemas Biológicos Algoritmos Genéticos • • • • Los miembros de una población compiten por sobrevivir y reproducirse Las especies que mejor se adapten a su ambiente son las que tienen más posibilidades de reproducirse Los hijos son un híbrido de sus padres • • Inteligencia Artificial – 2016 Muchas soluciones compiten por resolver el problema y reproducirse Las soluciones que mejor resuelven el problema son las que tienen más posibilidades de reproducirse A partir de 2 soluciones se obtienen otras mediante el operador crossover Prof.Dra. Silvia Schiaffino Similitud con sistemas biológicos Sistemas Biológicos Algoritmos Genéticos • Los hijos tienen un código genético independiente del de sus padres • • Los padres son gradualmente reemplazados por sus hijos La población es cada vez más apta y se adapta al ambiente con el paso del tiempo • • Inteligencia Artificial – 2016 • Los hijos reciben un código independiente del de sus padres a través del operador mutación Los padres mueren inmediatamente una vez que nacen sus hijos La población de soluciones es cada vez mejor para resolver el problema Prof.Dra. Silvia Schiaffino 3 Algoritmos Genéticos: Componentes • Técnica de codificación gen, cromosoma • Procedimiento de inicialización creación • Función de fitness ambiente • Selección de padres reproducción • Operadores Genéticos mutación, crossover (recombinación) Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Algoritmos Genéticos: Ciclo Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 4 Población • Inicialización de la población: aleatoria o soluciones conocidas • Los cromosomas pueden ser: – – – – – String de bits Números reales Permutaciones de elementos Lista de reglas ... Inteligencia Artificial – 2016 (0101...1100) (43.6 78.2....) (E11 E3...E15) (R1 R2...R10) Prof.Dra. Silvia Schiaffino Reproducción • Los padres son seleccionados aleatoriamente, pero sus chances de selección están en relación a la evaluación de los cromosomas Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 5 Reproducción: Selección por rueda de la ruleta • Cuando la rueda se detiene, la probabilidad de detenerse en un cromosoma i es: – Pi = f i / k f k • La ruleta gira una cantidad aleatoria y devuelve el cromosoma apuntado por la flecha Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Reproducción • Selección por torneo: Selecciona un par de individuos aleatoriamente. Generar un número aleatorio R entre 0 y 1. Si R<r, usa el primer individuo como padre. Si R>=r, usa el segundo individuo como padre. El valor de r es un parámetro de este método. Se hace lo mismo para encontrar el segundo padre. • Elitismo: Primero se copian los N mejores cromosomas a la nueva población, y el resto se determinan con otros métodos. Esto incrementa rápidamente la performance del algoritmo ya que previene la pérdida de buenas soluciones. Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 6 Modificación de cromosomas • Operadores – Mutación – Crossover (Recombinación) Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Mutación • Causa un movimiento en el espacio de búsqueda • Altera los genes aleatoriamente • Mantiene la diversidad genética Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 7 Crossover o Recombinación • Crossover es una característica crítica de los algoritmos genéticos – Combina 2 padres en nuevos hijos, genera variantes combinando material genético existente – Acelera la búsqueda tempranamente en la evolución de la población Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Crossover Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 8 Evaluación • El evaluador decodifica un cromosoma y le asigna un valor de fitness • El evaluador es el único nexo entre el algoritmo genético y el problema que se está solucionando • Se necesita un modelo de evaluación distinto para cada problema Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Técnicas de fitness • La evaluación es directamente el valor de fitness • Windowing: toma el valor más bajo y asigna a cada cromosoma un valor de fitness igual a la cantidad que excede del mínimo • Normalización lineal: los cromosomas se ordenan por orden decreciente de valor de evaluación, y se le asigna un valor de fitness que comienza con una constante y decrece linealmente. El valor individual y el decremento son parámetros de esta técnica. Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 9 Eliminación • Eliminar todos: elimina todos los miembros de la población actual y los reemplaza con el mismo número de cromosomas que fueron creados • Steady-State: Elimina n de los viejos miembros, y los reemplaza con n nuevos miembros • Steady-State-No duplicates: igual al anterior pero chequea no incluir cromosomas duplicados en la población. Tiene un costo adicional pero se explora más cantidad del espacio de búsqueda. Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Algoritmo Básico Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 10 Algoritmo • Inicializar una población de cromosomas – Colección de puntos iniciales, soluciones – Transformar cada solución en un string de bits Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Algoritmo • Seleccionar padres para la reproducción • Crear nuevos cromosomas por crossover y mutación – Identificar puntos de crossover Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 11 Algoritmo • Seleccionar padres para la reproducción • Crear nuevos cromosomas por crossover y mutación – Identificar puntos de crossover – En cada punto de crossover, intercambiar las partes señaladas y crear nuevos hijos Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Algoritmo • Ocasionalmente mutar los hijos – Puntos de mutación Seleccionar un bit aleatorio en el string y cambiarlo – Mutaciones complejas Mutar un patrón o secuencias de bits Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 12 Algoritmo básico • Seleccionar cuestiones de implementación básicas – – – – Representación Tamaño de la población, razón de mutación Selección, políticas de eliminación Operadores de mutación y crossover • Criterio de terminación • La solución va a ser tan buena como lo sea la función de evaluación Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Ejemplo 1: Problema del viajante • Problema del viajante: encontrar un camino entre un conjunto de ciudades de manera que: – Cada ciudad se visita solo una vez – Minimizar la distancia total • Solución: lista ordenada de ciudades Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 13 Ejemplo 1: Problema del viajero • Posibles soluciones Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Ejemplo 1: Problema del viajante • Puede generar soluciones ilegales: – – – – Elige una parte del primer padre y la copia al primer hijo Copia los restantes genes que no están en la parte copiada Usa el orden de los genes del 2º padre Repite el proceso con el rol de los padres invertidos para generar el 2º hijo Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 14 Ejemplo: Problema del viajante Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Ejemplo 1: Problema del viajante • Mutación: consiste en reordenar la lista Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 15 Ventajas de la técnica • El algoritmo determina que hacer para resolver el problema. • Operan de forma simultánea con varias soluciones, en lugar de trabajar de forma secuencial como las técnicas tradicionales. • En cualquier momento se puede obtener una solución al problema. Las soluciones mejoran a través del tiempo. • Se puede aumentar la velocidad de la evolución con conocimiento acerca del problema. • Facilita la exploración de soluciones alternativas. • Utilizan operadores probabilísticos. • El algoritmo puede ser diseñado como un módulo separado de la aplicación. Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Desventajas de la técnica • Pueden tardar mucho en converger, dependiendo en cierta medida de los parámetros que se utilicen (tamaño de la población, número de generaciones, etc). • Como el método es básicamente numérico, no siempre es posible representar el conocimiento del dominio en la forma requerida por el algoritmo genético Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 16 Referencias “The Origin of Species”. Charles Darwin. 1859. http://www.darwin-literature.com/The_Origin_of_Species/index.html • “Adaptation in Natural and Artificial Systems”. John Holland. University of Michigan Press, Ann Arbor, 1975 • “Genetic Algorithm in Search, Optimization and Machine Learning”. Goldberg, D. E. Addison-Wesley Publishing Company, Massachusetts, 1989. • “Machine Learning”. Tom Mitchell. Ed. McGraw Hill, 1997. • “Representations for Genetic and Evolutionary Algorithms”. Franz Rothlauf. Ed. Springer, 2006. Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino Herramientas Algoritmos genéticos • JGAP http://jgap.sourceforge.net/ • JavaEva http://www-ra.informatik.uni-tuebingen.de/software/JavaEvA/ • Jaga http://www.jaga.org/ Inteligencia Artificial – 2016 Prof.Dra. Silvia Schiaffino 17