Está en la página 1de 32

Universidad de Oviedo

Centro de Inteligencia Artificial

SISTEMAS INTELIGENTES
T4: Algoritmos Genticos
{jdiez, juanjo} @ aic.uniovi.es

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

La idea es
! Qu pretende la IA?
Producir agentes inteligentes

! Cul es el mejor ejemplo de agente inteligente?


El Hombre

! Cmo ha logrado ser inteligente?


Gracias a la EVOLUCIN!!!

! La evolucin se ha mostrado como una solucin exitosa dentro de los sistemas biolgicos ! La inteligencia humana es el mejor ejemplo del poder de la evolucin ! Idea: seguir la teoras neo-darwinistas para hacer evolucionar los agentes inteligentes de un problema
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Cmo funcionan?
! Simulan vagamente la evolucin biolgica ! Parten de una poblacin de agentes (hiptesis) diseados para realizar una determinada tarea ! La poblacin evoluciona cmo?
! ! !

Sobreviven los mejores agentes: SELECCIN ! Combinamos dos agentes: REPRODUCCIN ! Alteramos agentes: MUTACIN !

! Tras cada generacin, la poblacin resuelve mejor la tarea para la que se dise ! Al final nos quedaremos con el mejor agente
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

El Ciclo Evolutivo Seleccin Padres Cruce

Poblacin

Mutacin

Descendencia
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Desmitificando un poco
! No producen hombres, ni nada parecido (de momento) ! Son sistemas de bsqueda ! Es una bsqueda informada, similar a la bsqueda por haz local (con cruce) ! Cundo dejamos de evolucionar? ! A pesar de todo, tienen ventajas:
! !

Trabajan en espacios de bsqueda complejos Fcilmente paralelizables

! xito indudable en ciertas tareas


Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Tcnicas evolutivas

! Programacin evolutiva [Fogel, 60]


! ! !

Evolucin al nivel de las especies Usa la mutacin y la seleccin es probabilstica No usan el cruce Evolucin al nivel de los individuos Usan operadores de recombinacin La seleccin es determinista Programacin Gentica
Sistemas Inteligentes T4: Algoritmos Genticos

! Estrategias Evolutivas [Alemania, 64]


! ! !

! Algoritmos Genticos [Holland, 60]


!

Universidad de Oviedo

Centro de Inteligencia Artificial

Algoritmos Genticos
! John Holland, 60s, y 70s, Univ. Michigan ! Idea original estudio terico de la adaptacin y los planes reproductivos (nombre original) ! Se evoluciona el genotipo y no el fenotipo ! Representacin gentica independiente del dominio: cadenas binarias ! Seleccin probabilstica ! Operacin principal: cruce ! La mutacin desempea un papel secundario
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Qu necesitamos para definir un GA?


! Representacin de las soluciones (genotipos) ! Funcin de evaluacin ! Estrategia de seleccin ! Operadores genticos (cruce, mutacin, ) ! Parmetros:
! ! ! !

Tamao de la poblacin Porcentaje de elitismo/cruce Probabilidad de mutacin Criterio de parada (calidad de la solucin, n mximo de generaciones, )
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Algoritmo genrico (gentico)


GA ( F, F_T, p, r, m)
F: funcin de evaluacin, valora cada genotipo F_T: nivel de aceptacin p: nmero de individuos (hiptesis) en la poblacin r: porcentaje de la poblacin reemplazada por cruce m: probabilidad de mutacin

P = generar p hiptesis (aleatoriamente) (Poblacin inicial) Para cada h ! P, evaluar F(h) Mientras ( maxh!P F(h) < F_T ) hacer Crear una nueva poblacin Ps 1) Ps = Seleccin probabilstica de (1-r)*p miembros de P Cada hiptesis tiene Pr(h)=F(h)/"F(h) de ser elegida 2) Cruce: seleccionar r*p/2 parejas de individuos de P Cada pareja genera 2 descendientes # Ps 3) Mutacin: seleccin uniforme de m*p miembros de Ps Se actualiza P: P = Ps Para cada h ! p, evaluar F(h) Fin Mientras Retornar el mejor individuo: h, tal que F(h)=maxh!P F(h) Fin GA
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Representacin de los genotipos


! Hay que definir cmo se representan las caractersticas genticas de los individuos (soluciones, hiptesis) de la poblacin ! Aspecto muy importante en la definicin de GA ! La representacin afecta a la definicin de los operadores genticos (seleccin, cruce, mutacin) ! Muchos tipos de representacin: ! Cadenas de bits (la ms tpica) ! Cdigo Gray (mantiene la adyacencia) ! Punto Flotante (Binaria, Real) ! Entera ! LISP, Expresiones, (Programacin Gentica)
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Representacin: Cadenas de bits (I)


! Se utilizan cadenas de bits para representar los distintos genotipos existentes ! Es un tipo de representacin que se adapta a casi cualquier problema
Ej. Problema n-reinas: Podemos usar una matriz de bits
0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0

Demasiadas reinas

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Representacin: Cadenas de bits (II)


! Ej. Optimizar la funcin x*sen(10*pi*x)+2 en [-1,2]

Para 6 decimales de precisin habr 3.000.000 valores (long. intervalo 3) 2097152 = 221 < 3000000 < 222 = 4194304 (1000101110110101000111) representa al nmero 0.637197 (fenotipo) En esta caso: cada genotipo representa un fenotipo (OK!)
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Representacin: Cadenas de bits (III)


! Ej. Problema Nadar , atributos:
Pronstico: Soleado, Nublado, Lluvia Temperatura: Baja, Moderada, Alta Humedad: Normal, Alta Viento: Flojo, Fuerte Nadar: Si, No (Clase) Cada individuo representa una regla:
Pronstico Temperatura Humedad Viento Nadar

SI Pronstico = Lluvia Y ENTONCES Nadar = No

Viento = Fuerte

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Interpretacin biolgica
! Cromosoma: cadena de ADN que contiene la informacin gentica de un individuo ! Gen: seccin de ADN que codifica una cierta funcin bioqumica (p.e. producir una protena) ! Alelo: cada valor posible para una cierta posicin gentica
Pronstico Temperatura Humedad Viento Nadar

0
Gen#1

Gen#2

Gen#3 Gen#4 Gen#5

Cromosoma
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Representacin: otros aspectos


! Cromosomas de longitud variable
Nadar: cada individuo es un conjunto de reglas 100 000 10 00 10 ENTONCES Nadar = Si SI (Pronstico = Soleado ) Y (Humedad = Alta) ENTONCES Nadar = No 100 000 01 00 01 SI (Pronstico = Soleado ) Y (Humedad = Normal)

! Individuos correctos
La representacin de los individuos y los operadores genticos deben disearse para producir siempre individuos correctos 100 000 10 00 10 100 000 Faltan genes!!!

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Cadenas de bits: Ventajas


! Representacin universal ! Es la que usan los ordenadores ! Justificacin terica (y biolgica):
! !

Representacin con muchos genes y con pocos alelos posibles Es lo habitual en los cromosomas naturales

! Se favorece la diversidad y la formacin de buenos bloques constructores


!

Bloque constructor: grupo pequeo de genes que ha coevolucionado y que si se introdujera en un cromosoma incrementara probablemente su aptitud
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Cadenas de bits: Problemas


! Escalabilidad, cromosomas demasiado grandes ! Precisin limitada ! Diferencias entre el espacio genotpico y el fenotpico
5 (entero) = 101 6 (entero) = 110 Distancia 1 en el espacio fenotpico, y 2 en el genotpico Posible solucin: usar cdigo Gray

! Pero:
! !

Todas las representaciones tienen inconvenientes Es la representacin ms usada


Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Otras representaciones: enteros


! n-reinas: un entero por cada columna indicando en qu fila est la reina
Individuo: 1 6 2 5 7 4 8 3

! TSP: se representa cada ciudad con un nmero {1,,n} y cada individuo ser una permutacin de esos nmeros indicando el orden de recorrido
Individuo: 1 8 4 5 2 7 6 10 3 9
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Cmo disear buenas representaciones?


! La representacin no debe tener sesgos, todos los individuos se deben encontrar representados de manera equitativa en el conjunto de genotipos posibles. Es decir, los genotipos deben representar bien los fenotipos ! La representacin no debera permitir soluciones no factibles ! La funcin de evaluacin debe aplicarse fcilmente (de forma rpida) sobre los genotipos de los individuos ! La representacin debe poseer localidad (cambios pequeos en el genotipo resultan en cambios pequeos en el fenotipo) ! La representacin debe ajustarse a un conjunto de operadores genticos de tal forma que se transmitan los bloques constructores de padres a hijos ! Una buena representacin debe minimizar la epstasis (la medida en que la contribucin de aptitud de un gen depende de los valores de los otros genes)
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Funcin de evaluacin (o de fitness)


! Mide la aptitud de cada individuo. Nos permiten evaluar la calidad de los genotipos ! Hay muchas posibles:
! ! ! !

Precisin de la hiptesis Coste de la solucin (TSP) Nivel de complejidad: se prefiere la ms simple (Occam) Hbridas

! Es dependiente del problema ! Debe ser rpida, se ejecuta muchsimas veces ! Es clave en el algoritmo, en base a ella se decide la seleccin de individuos, y de ella depende en gran medida la velocidad de ejecucin (y por tanto las soluciones que se pueden alcanzar)
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Seleccin de individuos
! Permite que las poblaciones mejoren sucesivamente ! Normalmente siempre se suele incluir el mejor individuo en la siguiente generacin (elitismo) ! La seleccin no se debe basar en elegir slo a los mejores individuos (problema de crowding) ! Aunque los mejores deben tener siempre ms probabilidad de ser elegidos (convergencia) ! Hay muchsimas tcnicas de seleccin
! ! ! !

Proporcional Por torneo Ranking

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Seleccin Proporcional
! Este nombre describe un grupo de esquemas de seleccin originalmente propuestos por Holland ! Eligen individuos de acuerdo a su contribucin de aptitud con respecto al total de la poblacin
P (hi ) = f [hi ]

p j =1

f hj

[ ]

! Pueden provocar poca diversidad, propiciando que predominen los mejores individuos (crowding) ! Variantes:
Ruleta ! Sobrante Estocstico ! Universal Estocstica !
!
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Seleccin por torneo y ranking


! Torneo:
! ! !

Se seleccionan uniformemente un grupo de individuos k Con probabilidad p se selecciona el mejor individuo El parmetro p permite controlar el crowding

! Ranking
! ! !

Similar al proporcional Se ordenan los individuos de acuerdo a su aptitud La probabilidad de seleccin es proporcional a la posicin en el ranking

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Operador de cruce
! Combina individuos (tpicamente 2) para generar descendientes (usualmente 2) ! Mscara de cruce: mscara de bits que indica los miembros del primer y del segundo padres que se transmiten a la descendencia ! Single-Point
Padres: Mscara: Descendientes: 11101001000 00001010101 11111000000 11101010101 00001001000

! Two-Point
Padres: Mscara: Descendientes: 11101001000 00001010101 00111110000 11001011000 00101000101

! Uniform (bit aleatoriamente elegidos)


Padres: Mscara: Descendientes:

11101001000 00001010101 10011010011 10001000100 01101011001


Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Operador de mutacin
! Idea: introducir cambios aleatorios en las estructuras (genes) ! Provoca: una bsqueda estocstica por el espacio de hiptesis ! Single-Point
Individuo: Individuo mutado: 11101001000 11101011000 (bit aleatorio)

! Multi-Point
Se invierten mltiples bits (elegidos aleatoriamente)

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Ejemplo: las n reinas (I)


! Representacin: entera, cada dgito indica la fila dentro de la columna i-sima donde est situada la reina i ! Fitness: pares de reinas no atacadas ! Seleccin: proporcional ! Cruce y mutacin: single-point
Ejemplo: 32752411

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Ejemplo: las n reinas (II)

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Esquemas
! Objetivo: identificar bloques constructores ! Describen familias de individuos ! Definicin: cadena contiene tres smbolos, 0, 1, *. El * representa que en esa posicin da igual un 1 un 0 ! Ejemplo: ***010*** ! Caracterizan las poblaciones de acuerdo al nmero de individuos que representan cada esquema
!

m(s,t)= n de individuos con el esquema s en la poblacin del instante t

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Programacin Gentica

! Uso de estructuras de rboles para representar programas de computadora ! Se predetermina la mxima profundidad de los rboles, pero no su topologa precisa ! El tamao, forma y contenido de los rboles puede cambiar dinmicamente durante el proceso evolutivo
Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Funciones ms utilizadas
! Operaciones aritmticas: +,-,*, ! Funciones matemticas: seno, exp, ! Operaciones Booleanas: AND, OR,.. ! Operadores condicionales: IF ! Iteraciones: DO-UNTIL ! Recursin ! Cualquier funcin especfica

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Cruce

Sistemas Inteligentes T4: Algoritmos Genticos

Universidad de Oviedo

Centro de Inteligencia Artificial

Aplicaciones
! Problemas de optimizacin combinatoria ! Problemas de ajuste de parmetros ! Problemas de satisfaccin de restricciones, planificacin y asignacin de recursos espaciales y temporales ! Optimizacin (estructural, de topologas, numrica, combinatoria, etc.) ! Reconocimiento de patrones ! Generacin de gramticas (regulares, libres de contexto)
Sistemas Inteligentes T4: Algoritmos Genticos

También podría gustarte