La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Actividad 3 Algoritmos Genéticos

Presentaciones similares


Presentación del tema: "Actividad 3 Algoritmos Genéticos"— Transcripción de la presentación:

1 Actividad 3 Algoritmos Genéticos
Inteligencia Artificial 1 Parte II Diapositivas de María Luz Carballo y Rubén Lunda, parcialmente sobre ideas de John Holland y otros

2 Origen Los Algoritmos Genéticos, fueron desarrollados por John H. Holland en 1975 inspirándose en el proceso observado en la evolución natural de los seres vivos. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

3 Descripción Los Algoritmos Genéticos son métodos estocásticos de búsqueda ciega. En estos, se mantiene a una población que representa a un conjunto de posibles soluciones, la cual es sometida a ciertas transformaciones y a un proceso de selección a favor de los mejores candidatos. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

4 Descripción El objetivo principal de un AG, es evolucionar a partir de una población de soluciones para un determinado problema, intentando producir nuevas generaciones de soluciones que sean mejores que la anterior. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

5 Algoritmo 1. [Inicio] Generar una población aleatoria con n cromosomas (posible solución) 2. [Aptitud] Evalúa la aptitud f(x) de cada cromosoma x en la población 3. [Nueva generación] Crea una nueva generación repitiendo estos pasos hasta que la nueva generación este completa 1.[Selección] Selecciona 2 cromosomas padres de la población de acuerdo a su aptitud (cuanto mas apto es, posee mayor posibilidad de ser seleccionado) 2.[Cruzamiento] con una probabilidad de cruzamiento, cruzar los padres para obtener los hijos. Si no existiera el cruzamiento, los hijos serian una copia de los padres. 3.[Mutación] reemplazar con cierta probabilidad el valor de un bit. 4.[Aceptación] Ubica el nuevo descendiente en la nueva población 4. [Remplazar] Usar la nueva generación para correr el algoritmo 5. [Prueba] Si la condición final se satisface, se detiene, y devuelve la mejor solución de la población actual 6. [Loop] Ir a 2 Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

6 Generación El primer paso en la implementación de un algoritmo genético es la generación de la población inicial. Generalmente se representan mediante cadenas binarias de longitud L que codifican el problema. Cada cadena es llamada genotipo o cromosoma. Generalmente la población inicial es creada de forma aleatoria. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

7 Evaluación Cada cadena es evaluada y se le asigna un valor de aptitud (fitness). La función de evaluación cuantifica la performace respecto a ciertos parámetros. La función de aptitud transforma el resultado en la posibilidad de reproducción de esa cadena. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

8 Selección Son muestreos estocásticos, en los cuales se asigna una probabilidad a cada individuo que se cruzará en la siguiente generación, basándose en el valor de aptitud (fitness). Los criterios más usados en la práctica son: por ruleta, universal y por ranking. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

9 Selección por Ruleta Cada cadena es representada por un espacio que se corresponde proporcionalmente a su valor de aptitud (fitness). Haciendo "girar la ruleta" repetidas veces las cadenas son seleccionadas utilizando "muestreo estocástico con repeticiones" para completar la población intermedia. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

10 Selección Universal Muestreo estocástico universal: La población se ubica en un orden aleatorio, representado por un espacio proporcional a su valor de aptitud, luego se toma una "ruleta" con N cantidad de punteros separados por espacios iguales. Haciendo "girar la ruleta" una sola vez, se obtienen los N miembros de la población intermedia. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

11 Selección por ranking Muchos tipos de selección pueden tener problemas cuando existen grandes diferencias entre los valores de aptitud (fitness). Por ejemplo, si el mejor cromosoma tiene un fitness igual al 90% de la suma de todos los fitness, los otros cromosomas tienen muy poca probabilidad de ser elegidos. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

12 Selección por ranking Se realiza un ranking de la población y se le da al peor cromosoma el valor de fitness 1, al segundo 2, etc. Ahora, todos los cromosomas tiene una oportunidad de ser seleccionados; sin embargo, este método produce una convergencia lenta, ya que los mejores cromosomas no se diferencian mucho del resto. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

13 Cruzamiento 1 # # 0 | 1 0 1 # = #0#1 | # 0 1 1 1 # 0 1 1 1 | # 0 # 1
1 # # 0 | # # | # 0 # 1 = #0#1 | # = # | 1 # # 0 Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

14 Cruzamiento Cruzamiento simple: un punto de cruce es seleccionado, desde el principio hasta el punto de cruce es copiado del primer padre, y el resto es copiado del otro padre. = Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

15 Cruzamiento Dos puntos de cruzamiento: dos puntos son seleccionados, desde el principio del cromosoma hasta el primer punto de cruce es copiado del primer padre, de ahi hasta el segundo punto de cruce es copiado del segundo padre, y copia lo que le queda (desde el segundo punto de cruce hasta el final) de primer cromosoma = Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

16 Cruzamiento Cruzamiento Uniforme: copia bits al azar del primer padre y del segundo = Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

17 Cruzamiento Cruzamiento Aritmético: alguna operación aritmética es empleada para obtener al nuevo descendiente. = (AND) Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

18 Mutación Inversión de bits: selecciona bits y estos son invertidos (si era un 0 se transforman en 1) =>   Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

19 Elitismo Hay otro operador propuesto originalmente en Alemania llamado elitismo, el cual consiste en mantener intacto a través de las generaciones al individuo más apto, por lo que no se cruza sino hasta que surge otro individuo mejor que él. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

20 Algoritmos genéticos paralelos
La función de evaluación debe ser relativamente rápida, pero en mucho casos, requiere un tiempo considerable. Se debe evaluar cada cromosoma. La evaluación se puede realizar de manera concurrente para varios cromosomas si se dispone de múltiples procesadores y un canal de comunicación. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

21 Algoritmos genéticos paralelos Maestro/esclavo
Los cromosomas a evaluar se reparten entre el número de procesadores disponibles. Los resultados se reportan al procesador maestro que realiza todas las otras operaciones del algoritmo genético. Sólo la evaluación se distribuye entre los diferentes procesadores, las operaciones restantes se efectúan de manera centralizada. Esta implementación de algoritmos genéticos paralelos tiene la desventaja de hacer uso intensivo del canal de comunicación. Maestro Esclavos Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

22 Algoritmos genéticos paralelos de grano fino/grueso
En este tipo de algoritmos genéticos existen múltiples poblaciones, tantas como procesadores se emplean. Cada procesador implementa el algoritmo completo sobre una población ubicada en su espacio de memoria. Las poblaciones evolucionan de manera independiente, hasta que un evento preestablecido acontece, y los mejores cromosomas de cada población emigran hacia las poblaciones vecinas y substituyen algunos de sus cromosomas. Grano Grueso Grano Fino Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

23 Ventajas No necesitan conocimientos específicos sobre el problema que intentan resolver. Operan de forma simultánea con varias soluciones, en vez de trabajar de forma secuencial como las técnicas tradicionales. Resulta fácil ejecutarlos en las modernas arquitecturas masivas en paralelo. Usan operadores probabilísticos. En problemas de optimización, se afectan menos por los máximos locales (falsas soluciones). Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

24 Desventajas Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta medida de los parámetros que se utilicen (tamaño de la población, número de generaciones, etc.) Pueden converger prematuramente debido a una serie de problemas de diversa índole. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

25 Usos Parametrización de sistemas. Búsqueda de reglas en juegos.
Enrutamientos. Resolución de sistemas de ecuaciones no lineales. Optimización (estructural, de topologías, numérica, combinatoria, etc.). Aprendizaje de máquina. Bases de datos (optimización de consultas). Reconocimiento de patrones. Planeación de movimientos de robots. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

26 Ejemplo simple En este ejemplo vemos como utilizando algoritmos genéticos podemos obtener un circulo, partiendo de una serie de puntos al azar. Luego de algunas generaciones, obtenemos: Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

27 Ejemplo simple Se crea una población inicial aleatoria de una selección de soluciones (cromosomas). Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") A cada solución se le asigna un valor de aptitud dependiendo de la cercanía a la respuesta del problema. Los cromosomas con mayor valor de aptitud (fitness) son seleccionados para reproducirse (tambien pueden mutar luego de la reproducción). Esta composición consiste en una combinación de genes, este proceso se conoce como "crossing over". Reproducción (mutación de hijos) Si la nueva generación contiene una solución cercana a la respuesta del problema, se termina el proceso; en caso contrario el proceso vuelve a comenzar. Nueva Generación Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

28 Ejemplo simple Este applet intenta desarrollar círculos.
Este applet intenta dibujar 10 generaciones en un segundo. El mejor individuo es dibujado en verde, el peor en rojo y el medio en amarrillo. El Algoritmo Genético tiene una población de 50. Los 10 peores se substituyen cada generación. Cada cromosoma una mutación de 1 bit en cada generación. El cromosoma es una cadena de 256 bits. Cada byte en el cromosoma es un coordenada (16 pares de coordenadas). Los datos coordinados son cifrados en código de Gray para una evolución más fácil. Estos ajustes no son óptimos. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

29 Ejemplo simple Clase chromo
Constructor aleatorio que completa los puntos del círculo con valores aleatorios. Arreglo de bytes. Instancia de la clase Random, que genera una secuancia de números pseudoaleatorios. Constructor para clonar un cromosoma. Crea un hijo utilizando un punto de crossover Valor de aptitud. El cromosoma es almacenado como código de Gray. Este número tiene la propiedad de incrementar o decrementarse cambiando un sólo bit. Esto facilita la mutación ya que sino, para incrementar el 63 -> 64 requeriría cambiar 6 bits. Tabla que convierte un byte codificado en Gray en un byte binario. Calcula la distancia ordinal. Para definir a circunsferencia:Busca los puntos que esten mas alejados uno de otros y que no superen cierto margen de error permitido Cambia el bit. Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

30 Ejemplo simple Crea una instacia de la Clase Thread.
Inicializa el Thread Destruye el Thread Reinicia el Thread Inicia el Thread Detiene el Thread Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

31 Ejemplo simple Extractos del código donde se implementan los pasos de todo algoritmo genético Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") Reproducción (mutación de hijos) Nueva Generación public chromo() { points = new byte[32]; r.nextBytes(points); calc_fitness(); } Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

32 Ejemplo simple public void calc_fitness() { float fit = 0; int i;
// distancia entre los puntos vecinos for (i=0; i < 30; i += 2) fit += distance(ungray(i), ungray(i+1), ungray(i+2), ungray(i+3)); fit += distance(ungray(30), ungray(31), ungray(0), ungray(1)); for (i=0; i < 16; i+=2) fit += distance2(ungray(i), ungray(i+1), ungray(i+16), ungray(i+17)); fitness = fit; } Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") Reproducción (mutación de hijos) Nueva Generación Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

33 Ejemplo simple MUTACIÓN: public void mutate() {
Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") Reproducción (mutación de hijos) Nueva Generación MUTACIÓN: public void mutate() { int bit = r.nextInt() & 255; int bite = bit >> 3; bit = bit & 7; byte mask = (byte)(0x1 << bit); points[bite] ^= mask; } Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

34 Ejemplo simple CRUCE DE LOS CROMOSOMAS
public chromo(chromo mum, chromo dad) { int bit = r.nextInt() & 255; int bite = bit >> 3; byte mask = (byte)(0xff >> (bit & 7)); int i; points = new byte[32]; for (i=0; i<bite; i++) points[i] = mum.points[i]; points[bite] = (byte)((dad.points[bite] & mask) | (mum.points[bite] & (~mask))); for (i=bite+1; i<32; i++) points[i] = dad.points[i]; calc_fitness(); } } Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") Reproducción (mutación de hijos) Nueva Generación Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

35 Ejemplo simple Práctica: Identificar cual es el applet.
Identificar cuantos cromosomas se están utilizando en este ejemplo. Identificar la longitud de los cromosomas. ¿Qué código extraño utiliza? ¿Por qué cree que se utilizo? ¿Qué algoritmo de cruzamiento utiliza? ¿Cómo se dio cuenta? Cambiar el algoritmo de cruce por el de dos puntos Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben

36 Bibliografía Implementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. -Arturo Gómez Cortés y Raúl Leal Ascencio A Genetic Algorithm Tutorial – Darrell Whiltley Algoritmos Genéticos en Paralelo de Grano Fino - Introduction to Genetic Algorithm - Practical Artificial Itelligence Progamming in Java – Marrck Watson A Genetic Algorithm Demo - Inteligencia Artificial I – FASTA AI Carballo M. Luz – AI Lunda Ruben


Descargar ppt "Actividad 3 Algoritmos Genéticos"

Presentaciones similares


Anuncios Google