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

Actividad 3 Algoritmos Genéticos

  • Upload
    lacey

  • View
    72

  • Download
    4

Embed Size (px)

DESCRIPTION

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. Origen. - PowerPoint PPT Presentation

Citation preview

Page 1: Actividad 3 Algoritmos Genéticos

Actividad 3Actividad 3Algoritmos Algoritmos GenéticosGenéticos

Diapositivas de María Luz Carballo y Rubén Lunda, Diapositivas de María Luz Carballo y Rubén Lunda, parcialmente sobre ideas de John Holland y otrosparcialmente sobre ideas de John Holland y otros

Inte

lige

nci

a A

rtif

icia

l 1P

arte

II

Page 2: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

OrigenOrigen

Los Algoritmos GenéticosLos Algoritmos Genéticos,, fueron fueron desarrollados por John H. Holland en desarrollados por John H. Holland en 1975 inspirándose en el proceso 1975 inspirándose en el proceso observado en la evolución natural de los observado en la evolución natural de los seres vivos.seres vivos.

Page 3: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

DescripciónDescripción

Los Algoritmos Genéticos son métodos Los Algoritmos Genéticos son métodos estocásticos de búsqueda ciega. En estos, estocásticos de búsqueda ciega. En estos, se mantiene a una población que se mantiene a una población que representa a un conjunto de posibles representa a un conjunto de posibles soluciones, la cual es sometida a ciertas soluciones, la cual es sometida a ciertas transformaciones y a un proceso de transformaciones y a un proceso de selección a favor de los mejores selección a favor de los mejores candidatos.candidatos.

Page 4: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

DescripciónDescripción

El objetivo principal de un AG, es El objetivo principal de un AG, es evolucionar a partir de una población de evolucionar a partir de una población de soluciones para un determinado problema, soluciones para un determinado problema, intentando producir nuevas generaciones intentando producir nuevas generaciones de soluciones que sean mejores que la de soluciones que sean mejores que la anterior.anterior.

Page 5: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

AlgoritmoAlgoritmo1. [Inicio] Generar una población aleatoria con n cromosomas (posible 1. [Inicio] Generar una población aleatoria con n cromosomas (posible

solución)solución)2. [Aptitud] Evalúa la aptitud f(x) de cada cromosoma x en la población2. [Aptitud] Evalúa la aptitud f(x) de cada cromosoma x en la población3. [Nueva generación] Crea una nueva generación repitiendo estos pasos 3. [Nueva generación] Crea una nueva generación repitiendo estos pasos

hasta que la nueva generación este completahasta que la nueva generación este completa

1.[Selección] Selecciona 2 cromosomas padres de la población de 1.[Selección] Selecciona 2 cromosomas padres de la población de acuerdo a su aptitud (cuanto mas apto es, posee mayor posibilidad de acuerdo a su aptitud (cuanto mas apto es, posee mayor posibilidad de ser seleccionado)ser seleccionado)2.[Cruzamiento] con una probabilidad de cruzamiento, cruzar los padres 2.[Cruzamiento] con una probabilidad de cruzamiento, cruzar los padres para obtener los hijos. Si no existiera el cruzamiento, los hijos serian una para obtener los hijos. Si no existiera el cruzamiento, los hijos serian una copia de los padres.copia de los padres.3.[Mutación] reemplazar con cierta probabilidad el valor de un bit.3.[Mutación] reemplazar con cierta probabilidad el valor de un bit.4.[Aceptación] Ubica el nuevo descendiente en la nueva población4.[Aceptación] Ubica el nuevo descendiente en la nueva población

4. [Remplazar] Usar la nueva generación para correr el algoritmo4. [Remplazar] Usar la nueva generación para correr el algoritmo5. [Prueba] Si la condición final se satisface, se detiene, y devuelve la mejor 5. [Prueba] Si la condición final se satisface, se detiene, y devuelve la mejor

solución de la población actualsolución de la población actual6. [Loop] Ir a 26. [Loop] Ir a 2

Page 6: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

GeneraciónGeneración

El primer paso en la implementación de un El primer paso en la implementación de un algoritmo genético es la generación de la algoritmo genético es la generación de la población inicialpoblación inicial. Generalmente se . Generalmente se representan mediante cadenas binarias de representan mediante cadenas binarias de longitud L que codifican el problema.longitud L que codifican el problema.

Cada cadena es llamada genotipo o Cada cadena es llamada genotipo o cromosomacromosoma..

Generalmente la población inicial es Generalmente la población inicial es creada de forma aleatoria.creada de forma aleatoria.

Page 7: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

EvaluaciónEvaluación

Cada cadena es Cada cadena es evaluadaevaluada y se le y se le asigna un valor de asigna un valor de aptitudaptitud (fitness). (fitness).

La función de evaluación cuantifica la La función de evaluación cuantifica la performace respecto a ciertos performace respecto a ciertos parámetros.parámetros.

La función de aptitud transforma el La función de aptitud transforma el resultado en la posibilidad de resultado en la posibilidad de reproducción de esa cadena.reproducción de esa cadena.

Page 8: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

SelecciónSelección

Son muestreos estocásticos, en los Son muestreos estocásticos, en los cuales se asigna una probabilidad a cuales se asigna una probabilidad a cada individuo que se cruzará en la cada individuo que se cruzará en la siguiente generación, basándose en siguiente generación, basándose en el valor de aptitud (fitness). el valor de aptitud (fitness).

Los criterios más usados en la Los criterios más usados en la práctica son: por ruleta, universal y práctica son: por ruleta, universal y por ranking.por ranking.

Page 9: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Selección por RuletaSelección por Ruleta

Cada cadena es representada por un Cada cadena es representada por un espacio que se corresponde espacio que se corresponde proporcionalmente a su valor de aptitud proporcionalmente a su valor de aptitud (fitness). Haciendo "girar la ruleta" (fitness). Haciendo "girar la ruleta" repetidas veces las cadenas son repetidas veces las cadenas son seleccionadas utilizando "muestreo seleccionadas utilizando "muestreo estocástico con repeticiones" para estocástico con repeticiones" para completar la población intermedia.completar la población intermedia.

Page 10: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Selección UniversalSelección Universal

Muestreo estocástico universal: La Muestreo estocástico universal: La población se ubica en un orden población se ubica en un orden aleatorio, representado por un espacio aleatorio, representado por un espacio proporcional a su valor de aptitud, proporcional a su valor de aptitud, luego se toma una "ruleta" con N luego se toma una "ruleta" con N cantidad de punteros separados por cantidad de punteros separados por espacios iguales. Haciendo "girar la espacios iguales. Haciendo "girar la ruleta" una sola vez, se obtienen los N ruleta" una sola vez, se obtienen los N miembros de la población intermedia.miembros de la población intermedia.

Page 11: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Selección por rankingSelección por ranking

Muchos tipos de selección pueden tener Muchos tipos de selección pueden tener problemas cuando existen grandes problemas cuando existen grandes diferencias entre los valores de aptitud diferencias entre los valores de aptitud (fitness). Por ejemplo, si el mejor (fitness). Por ejemplo, si el mejor cromosoma tiene un fitness igual al 90% de cromosoma tiene un fitness igual al 90% de la suma de todos los fitness, los otros la suma de todos los fitness, los otros cromosomas tienen muy poca probabilidad cromosomas tienen muy poca probabilidad de ser elegidos.de ser elegidos.

Page 12: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Selección por rankingSelección por ranking

Se realiza un ranking de la población y se le Se realiza un ranking de la población y se le da al peor cromosoma el valor de fitness 1, al da al peor cromosoma el valor de fitness 1, al segundo 2, etc. segundo 2, etc.

Ahora, todos los cromosomas tiene una Ahora, todos los cromosomas tiene una oportunidad de ser seleccionados; sin oportunidad de ser seleccionados; sin embargo, este método produce una embargo, este método produce una convergencia lenta, ya que los mejores convergencia lenta, ya que los mejores cromosomas no se diferencian mucho del cromosomas no se diferencian mucho del resto.resto.

Page 13: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Cruzamiento

1 # # 0 | 1 0 1 #

# 0 1 1 1 | # 0 # 1

= #0#1 | # 0 1 1 1

= 1 0 1 # | 1 # # 0

Page 14: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Cruzamiento Cruzamiento

Cruzamiento simple: un punto de cruce es Cruzamiento simple: un punto de cruce es seleccionado, desde el principio hasta el seleccionado, desde el principio hasta el punto de cruce es copiado del primer punto de cruce es copiado del primer padre, y el resto es copiado del otro padre.padre, y el resto es copiado del otro padre.

1100111001011+11011011+11011111111 = = 1100111111001111

Page 15: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

CruzamientoCruzamiento

Dos puntos de cruzamiento: dos puntos son Dos puntos de cruzamiento: dos puntos son seleccionados, desde el principio del seleccionados, desde el principio del cromosoma hasta el primer punto de cruce es cromosoma hasta el primer punto de cruce es copiado del primer padre, de ahi hasta el copiado del primer padre, de ahi hasta el segundo punto de cruce es copiado del segundo segundo punto de cruce es copiado del segundo padre, y copia lo que le queda (desde el padre, y copia lo que le queda (desde el segundo punto de cruce hasta el final) de segundo punto de cruce hasta el final) de primer cromosomaprimer cromosoma

1111001000101111 + 11+ 110111011111 = 11 = 1101111111011111

Page 16: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

CruzamientoCruzamiento

Cruzamiento Uniforme: copia bits al azar Cruzamiento Uniforme: copia bits al azar del primer padre y del segundodel primer padre y del segundo

1110100100101111 + + 11101011111101 = 01 = 1101111111011111

Page 17: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

CruzamientoCruzamiento

Cruzamiento Aritmético: alguna Cruzamiento Aritmético: alguna operación aritmética es empleada operación aritmética es empleada para obtener al nuevo descendiente.para obtener al nuevo descendiente.

11001011 + 11011111 = 11001011 + 11011111 = 11001001 11001001 (AND) (AND)

Page 18: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

MutaciónMutación

Inversión de bits: selecciona bits y Inversión de bits: selecciona bits y estos son invertidos (si era un 0 se estos son invertidos (si era un 0 se transforman en 1)transforman en 1)

1111001001 =>  1001001 =>  100001001 001001

Page 19: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

ElitismoElitismo

Hay otro operador propuesto Hay otro operador propuesto originalmente en Alemania llamado originalmente en Alemania llamado elitismo, el cual consiste en elitismo, el cual consiste en mantener intacto a través de las mantener intacto a través de las generaciones al individuo más apto, generaciones al individuo más apto, por lo que no se cruza sino hasta que por lo que no se cruza sino hasta que surge otro individuo mejor que él. surge otro individuo mejor que él.

Page 20: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Algoritmos genéticos Algoritmos genéticos paralelosparalelos

La función de evaluación debe ser La función de evaluación debe ser relativamente rápida, pero en mucho relativamente rápida, pero en mucho casos, requiere un tiempo considerable.casos, requiere un tiempo considerable.

Se debe evaluar cada cromosoma.Se debe evaluar cada cromosoma. La evaluación se puede realizar de La evaluación se puede realizar de

manera concurrente para varios manera concurrente para varios cromosomas si se dispone de múltiples cromosomas si se dispone de múltiples procesadores y un canal de procesadores y un canal de comunicación.comunicación.

Page 21: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Algoritmos genéticos Algoritmos genéticos paralelosparalelos

Maestro/esclavoMaestro/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…

Page 22: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Algoritmos genéticos Algoritmos genéticos paralelosparalelos

de grano fino/gruesode 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

Page 23: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

VentajasVentajas

No necesitan conocimientos específicos sobre el No necesitan conocimientos específicos sobre el problema que intentan resolver.problema que intentan resolver.

Operan de forma simultánea con varias soluciones, en Operan de forma simultánea con varias soluciones, en vez de trabajar de forma secuencial como las técnicas vez de trabajar de forma secuencial como las técnicas tradicionales.tradicionales.

Resulta fácil ejecutarlos en las modernas arquitecturas Resulta fácil ejecutarlos en las modernas arquitecturas masivas en paralelo.masivas en paralelo.

Usan operadores probabilísticos.Usan operadores probabilísticos. En problemas de optimización, se afectan menos por los En problemas de optimización, se afectan menos por los

máximos locales (falsas soluciones).máximos locales (falsas soluciones).

Page 24: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

DesventajasDesventajas

Pueden tardar mucho en converger, o no Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta converger en absoluto, dependiendo en cierta medida de los parámetros que se utilicen medida de los parámetros que se utilicen (tamaño de la población, número de (tamaño de la población, número de generaciones, etc.)generaciones, etc.)

Pueden converger prematuramente debido a Pueden converger prematuramente debido a una serie de problemas de diversa índole.una serie de problemas de diversa índole.

Page 25: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

UsosUsos

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, Optimización (estructural, de topologías, numérica,

combinatoria, etc.).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.

Page 26: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simple

En este ejemplo vemos En este ejemplo vemos como utilizando como utilizando algoritmos genéticos algoritmos genéticos podemos obtener un podemos obtener un circulo, partiendo de una circulo, partiendo de una serie de puntos al azar.serie de puntos al azar.

Luego de algunas Luego de algunas generaciones, generaciones, obtenemos:obtenemos:

Page 27: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simpleSe 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.

Page 28: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simple

Este applet intenta desarrollar círculos.Este applet intenta desarrollar círculos. Este applet intenta dibujar 10 generaciones Este applet intenta dibujar 10 generaciones

en un segundo. El mejor individuo es en un segundo. El mejor individuo es dibujado en verde, el peor en rojo y el medio dibujado en verde, el peor en rojo y el medio en amarrillo. en amarrillo.

El Algoritmo Genético tiene una población de El Algoritmo Genético tiene una población de 50. 50. Los 10 peores se substituyen cada Los 10 peores se substituyen cada generación. Cada cromosoma una generación. Cada cromosoma una mutación de 1 bit en cada generación. El mutación de 1 bit en cada generación. El cromosoma es una cadena de 256 bits. cromosoma es una cadena de 256 bits. Cada byte en el cromosoma es un Cada byte en el cromosoma es un coordenada (16 pares de coordenadas). Los coordenada (16 pares de coordenadas). Los datos coordinados son cifrados en código de datos coordinados son cifrados en código de Gray para una evolución más fácil. Estos Gray para una evolución más fácil. Estos ajustes no son óptimos.ajustes no son óptimos.

Page 29: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simpleArreglo 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

Page 30: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simple

Inicializa el ThreadDestruye el ThreadReinicia el ThreadInicia el Thread

Detiene el Thread

Crea una instacia de la Clase Thread.

Page 31: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo 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

Page 32: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simplepublic void calc_fitness() { float fit = 0; int i; // distancia entre los puntos vecinosfor (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

Page 33: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo 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

Page 34: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simpleCRUCE 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

Page 35: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

Ejemplo simpleEjemplo simple

Práctica:Práctica: Identificar cual es el applet.Identificar cual es el applet. Identificar cuantos cromosomas se están Identificar cuantos cromosomas se están

utilizando en este ejemplo.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 ¿Qué código extraño utiliza? ¿Por qué cree que

se utilizo?se utilizo? ¿Qué algoritmo de cruzamiento utiliza? ¿Cómo ¿Qué algoritmo de cruzamiento utiliza? ¿Cómo

se dio cuenta?se dio cuenta? Cambiar el algoritmo de cruce por el de dos Cambiar el algoritmo de cruce por el de dos

puntospuntos

Page 36: Actividad 3 Algoritmos Genéticos

Inteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda RubenInteligencia Artificial I – FASTA - AI Carballo M. Luz – AI Lunda Ruben

BibliografíaBibliografí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 -

http://www.acm.org/crossroads/espanol/xrds8-3/fineGrained.html

Introduction to Genetic Algorithm - http://cs.felk.cvut.cz/~xobitko/ga/

Practical Artificial Itelligence Progamming in Java – Marrck Watson

A Genetic Algorithm Demo - http://oldeee.see.ed.ac.uk/~rjt/ga.html