La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Actividad 3 Algoritmos Genéticos Diapositivas de María Luz Carballo y Rubén Lunda, parcialmente sobre ideas de John Holland y otros Diapositivas de María."— Transcripción de la presentación:

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

2 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

3 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

4 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

5 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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

6 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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. Cada cadena es llamada genotipo o cromosoma. Generalmente la población inicial es creada de forma aleatoria. Generalmente la población inicial es creada de forma aleatoria.

7 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Evaluación Cada cadena es evaluada y se le asigna un valor de aptitud (fitness). 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 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. La función de aptitud transforma el resultado en la posibilidad de reproducción de esa cadena.

8 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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). 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. Los criterios más usados en la práctica son: por ruleta, universal y por ranking.

9 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

10 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

11 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

12 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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. 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.

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

14 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Cruzamiento 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. 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 =

15 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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 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 =

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

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

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

19 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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. 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.

20 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Algoritmos genéticos paralelos La función de evaluación debe ser relativamente rápida, pero en mucho casos, requiere un tiempo considerable. La función de evaluación debe ser relativamente rápida, pero en mucho casos, requiere un tiempo considerable. Se debe evaluar cada cromosoma. 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. 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.

21 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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 …

22 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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

23 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Ventajas No necesitan conocimientos específicos sobre el problema que intentan resolver. 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. 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. Resulta fácil ejecutarlos en las modernas arquitecturas masivas en paralelo. Usan operadores probabilísticos. Usan operadores probabilísticos. En problemas de optimización, se afectan menos por los máximos locales (falsas soluciones). En problemas de optimización, se afectan menos por los máximos locales (falsas soluciones).

24 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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 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. Pueden converger prematuramente debido a una serie de problemas de diversa índole.

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

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

27 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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") Reproducción (mutación de hijos) Nueva Generación 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". 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.

28 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Ejemplo simple Este applet intenta desarrollar círculos. 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. 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. 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.

29 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Ejemplo simple Arreglo de bytes. Clase chromo Instancia de la clase Random, que genera una secuancia de números pseudoaleatorios. Valor de aptitud. Tabla que convierte un byte codificado en Gray en un byte binario. Constructor aleatorio que completa los puntos del círculo con valores aleatorios. Constructor para clonar un cromosoma. Crea un hijo utilizando un punto de crossover 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. Calcula la distancia ordinal. Cambia el bit. Para definir a circunsferencia:Busca los puntos que esten mas alejados uno de otros y que no superen cierto margen de error permitido

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

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

32 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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

33 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben Ejemplo simple 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; } Crear un estado inicial aleatorio. Evaluar la aptitud ("Fitness") Reproducción (mutación de hijos) Nueva Generación

34 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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

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

36 Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben 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 -


Descargar ppt "Actividad 3 Algoritmos Genéticos Diapositivas de María Luz Carballo y Rubén Lunda, parcialmente sobre ideas de John Holland y otros Diapositivas de María."

Presentaciones similares


Anuncios Google