Download SISTEMAS INTELIGENTES - Centro de Inteligencia Artificial

Document related concepts

Algoritmo genético wikipedia , lookup

Algoritmo evolutivo wikipedia , lookup

Programación genética wikipedia , lookup

Programación de expresiones de genes wikipedia , lookup

Computación evolutiva wikipedia , lookup

Transcript
Universidad
de Oviedo
Centro de
Inteligencia Artificial
SISTEMAS INTELIGENTES
T4: Algoritmos Genéticos
{jdiez, juanjo} @ aic.uniovi.es
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
La idea es…
•  ¿Qué pretende la IA?
Producir agentes inteligentes
•  ¿Cuál es el mejor ejemplo de agente inteligente?
El Hombre
•  ¿Cómo ha logrado ser inteligente?
Gracias a la … EVOLUCIÓN!!!
•  La evolución se ha mostrado como una solución exitosa
dentro de los sistemas biológicos
•  La inteligencia humana es el mejor ejemplo del poder de
la evolución
•  Idea: seguir la teorías neo-darwinistas para hacer
evolucionar los agentes inteligentes de un problema
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
¿Cómo funcionan?
•  Simulan vagamente la evolución biológica
•  Parten de una población de agentes (hipótesis)
diseñados para realizar una determinada tarea
•  La población evoluciona… ¿cómo?
° 
Sobreviven los mejores agentes: ¡ SELECCIÓN !
Combinamos dos agentes:
¡ REPRODUCCIÓN !
° 
Alteramos agentes:
° 
¡ MUTACIÓN !
•  Tras cada generación, la población resuelve
mejor la tarea para la que se diseñó
•  Al final nos quedaremos con el mejor agente
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
El Ciclo Evolutivo
Selección
Población
Padres
Mutación
Cruce
Descendencia
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Desmitificando un poco…
•  No producen hombres, ni nada parecido (de
momento)
•  Son sistemas de búsqueda
•  Es una búsqueda informada, similar a la
búsqueda por haz local (con cruce)
•  ¿Cuándo dejamos de evolucionar?
•  A pesar de todo, tienen ventajas:
° 
° 
Trabajan en espacios de búsqueda complejos
Fácilmente paralelizables
•  Éxito indudable en ciertas tareas
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Técnicas evolutivas
•  Programación evolutiva [Fogel, 60]
° 
° 
° 
Evolución al nivel de las especies
Usa la mutación y la selección es probabilística
No usan el cruce
•  Estrategias Evolutivas [Alemania, 64]
° 
° 
° 
Evolución al nivel de los individuos
Usan operadores de recombinación
La selección es determinista
•  Algoritmos Genéticos [Holland, 60]
° 
Programación Genética
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Algoritmos Genéticos
•  John Holland, 60s, y 70s, Univ. Michigan
•  Idea original estudio teórico de la adaptación y
los planes reproductivos (nombre original)
•  Se evoluciona el genotipo y no el fenotipo
•  Representación genética independiente del
dominio: cadenas binarias
•  Selección probabilística
•  Operación principal: cruce
•  La mutación desempeña un papel secundario
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
¿Qué necesitamos para definir un GA?
•  Representación de las soluciones
(genotipos)
•  Función de evaluación
•  Estrategia de selección
•  Operadores genéticos (cruce, mutación, …)
•  Parámetros:
° 
Tamaño de la población
° 
Porcentaje de elitismo/cruce
° 
° 
Probabilidad de mutación
Criterio de parada (calidad de la solución, nº máximo de
generaciones, …)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Algoritmo genérico (genético)
GA
( F, F_T, p, r, m)
F: función de evaluación, valora cada genotipo
F_T: nivel de aceptación
p: número de individuos (hipótesis) en la población
r: porcentaje de la población reemplazada por cruce
m: probabilidad de mutación
P = generar p hipótesis (aleatoriamente) (Población inicial)
Para cada h ∈ P, evaluar F(h)
Mientras ( maxh∈P F(h) < F_T ) hacer
Crear una nueva población Ps
1) Ps = Selección probabilística de (1-r)*p miembros de P
Cada hipótesis 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) Mutación: selección 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 Genéticos
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Representación de los genotipos
•  Hay que definir cómo se representan las
características genéticas de los individuos
(soluciones, hipótesis) de la población
•  Aspecto muy importante en la definición de GA
•  La representación afecta a la definición de los
operadores genéticos (selección, cruce, mutación)
•  Muchos tipos de representación:
°  Cadenas de bits (la más típica)
°  Código Gray (mantiene la adyacencia)
°  Punto Flotante (Binaria, Real)
°  Entera
°  LISP, Expresiones, … (Programación
Genética)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Representación: Cadenas de bits (I)
•  Se utilizan cadenas de bits para representar los
distintos genotipos existentes
•  Es un tipo de representación que se adapta a casi
cualquier problema
Ej. Problema n-reinas: Podemos usar una matriz de bits
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Sistemas Inteligentes – T4: Algoritmos Genéticos
Demasiadas
reinas
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Representación: Cadenas de bits (II)
•  Ej. Optimizar la función x*sen(10*pi*x)+2 en [-1,2]
Para 6 decimales de precisión habrá 3.000.000 valores (long. intervalo 3)
2097152 = 221 < 3000000 < 222 = 4194304
(1000101110110101000111) representa al número 0.637197 (fenotipo)
En esta caso: cada genotipo representa un fenotipo (OK!)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Representación: Cadenas de bits (III)
•  Ej. Problema Nadar , atributos:
Pronóstico: Soleado, Nublado, Lluvia
Temperatura: Baja, Moderada, Alta
Humedad: Normal, Alta
Viento: Flojo, Fuerte
Nadar: Si, No (Clase)
Cada individuo representa una regla:
Pronóstico
0
0
Temperatura
1
0
0
Humedad
0
SI Pronóstico = Lluvia Y
ENTONCES Nadar = No
0
0
Viento
0
Viento = Fuerte
Sistemas Inteligentes – T4: Algoritmos Genéticos
1
Nadar
0
1
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Interpretación biológica
•  Cromosoma: cadena de ADN que contiene la información
genética de un individuo
•  Gen: sección de ADN que codifica una cierta función
bioquímica (p.e. producir una proteína)
•  Alelo: cada valor posible para una cierta posición
genética
Pronóstico
0
0
Gen#1
Temperatura
1
0
0
0
Gen#2
Humedad
0
0
Viento
0
1
Nadar
0
1
Gen#3 Gen#4 Gen#5
Cromosoma
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Representación: otros aspectos
•  Cromosomas de longitud variable
Nadar: cada individuo es un conjunto de reglas
100 000 10 00 10
100 000 01 00 01
SI (Pronóstico = Soleado ) Y (Humedad = Normal)
ENTONCES Nadar = Si
SI (Pronóstico = Soleado ) Y (Humedad = Alta)
ENTONCES Nadar = No
•  Individuos correctos
La representación de los individuos y los operadores genéticos
deben diseñarse para producir siempre individuos correctos
100 000 10 00 10
100 000
Faltan genes!!!
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Cadenas de bits: Ventajas
•  Representación universal
•  Es la que usan los ordenadores
•  Justificación teórica (y biológica):
° 
° 
Representación con muchos genes y con pocos alelos
posibles
Es lo habitual en los cromosomas naturales
•  Se favorece la diversidad y la formación de
buenos bloques constructores
° 
Bloque constructor: grupo pequeño de genes que ha coevolucionado y que si se introdujera en un cromosoma
incrementaría probablemente su aptitud
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Cadenas de bits: Problemas
•  Escalabilidad, cromosomas demasiado grandes
•  Precisión limitada
•  Diferencias entre el espacio genotípico y el
fenotípico
5 (entero) = 101
6 (entero) = 110
Distancia 1 en el espacio fenotípico, y 2 en el genotípico
Posible solución: usar código Gray
•  Pero:
° 
° 
Todas las representaciones tienen inconvenientes
Es la representación más usada
Sistemas Inteligentes – T4: Algoritmos Genéticos
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 número
{1,…,n} y cada individuo será una permutación
de esos números indicando el orden de recorrido
Individuo: 1 8 4 5 2 7 6 10 3 9
Sistemas Inteligentes – T4: Algoritmos Genéticos
Universidad
de Oviedo
Centro de
Inteligencia Artificial
¿Cómo diseñar buenas representaciones?
•  La representación 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 representación no debería permitir soluciones no
factibles
•  La función de evaluación debe aplicarse fácilmente (de
forma rápida) sobre los genotipos de los individuos
•  La representación debe poseer localidad (cambios pequeños
en el genotipo resultan en cambios pequeños en el fenotipo)
•  La representación debe ajustarse a un conjunto de
operadores genéticos de tal forma que se transmitan los
bloques constructores de padres a hijos
•  Una buena representación debe minimizar la epístasis (la
medida en que la contribución de aptitud de un gen
depende de los valores de los otros genes)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Función de evaluación (o de fitness)
•  Mide la aptitud de cada individuo. Nos permiten evaluar
la calidad de los genotipos
•  Hay muchas posibles:
° 
° 
° 
° 
Precisión de la hipótesis
Coste de la solución (TSP)
Nivel de complejidad: se prefiere la más simple (Occam)
Híbridas
•  Es dependiente del problema
•  Debe ser rápida, se ejecuta muchísimas veces
•  Es clave en el algoritmo, en base a ella se decide la
selección de individuos, y de ella depende en gran
medida la velocidad de ejecución (y por tanto las
soluciones que se pueden alcanzar)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Selección de individuos
•  Permite que las poblaciones mejoren sucesivamente
•  Normalmente siempre se suele incluir el mejor
individuo en la siguiente generación (elitismo)
•  La selección no se debe basar en elegir sólo a los
mejores individuos (problema de crowding)
•  Aunque los mejores deben tener siempre más
probabilidad de ser elegidos (convergencia)
•  Hay muchísimas técnicas de selección
° 
° 
° 
° 
Proporcional
Por torneo
Ranking
…
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Selección Proporcional
•  Este nombre describe un grupo de esquemas de selección
originalmente propuestos por Holland
•  Eligen individuos de acuerdo a su contribución de aptitud
con respecto al total de la población
P (hi ) =
f [hi ]
∑
p
j =1
[ ]
f hj
•  Pueden provocar poca diversidad, propiciando que
predominen los mejores individuos (crowding)
•  Variantes:
Ruleta
°  Sobrante Estocástico
°  Universal Estocástica
°  …
° 
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Selección por torneo y ranking
•  Torneo:
° 
Se seleccionan uniformemente un grupo de individuos k
° 
Con probabilidad p se selecciona el mejor individuo
° 
El parámetro p permite controlar el crowding
•  Ranking
° 
Similar al proporcional
° 
Se ordenan los individuos de acuerdo a su aptitud
° 
La probabilidad de selección es proporcional a la
posición en el ranking
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Operador de cruce
•  Combina individuos (típicamente 2) para generar descendientes
(usualmente 2)
•  Máscara de cruce: máscara de bits que indica los miembros del
primer y del segundo padres que se transmiten a la descendencia
•  Single-Point
Padres:
Máscara:
Descendientes:
11101001000
00001010101
11111000000
11101010101
00001001000
•  Two-Point
Padres:
Máscara:
Descendientes:
11101001000
00001010101
00111110000
11001011000
00101000101
•  Uniform (bit aleatoriamente elegidos)
Padres:
Máscara:
Descendientes:
11101001000
00001010101
10011010011
10001000100
01101011001
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Operador de mutación
•  Idea: introducir cambios aleatorios en las
estructuras (genes)
•  Provoca: una búsqueda estocástica por el
espacio de hipótesis
•  Single-Point
Individuo:
11101001000
Individuo mutado:
11101011000
(bit aleatorio)
•  Multi-Point
Se invierten múltiples bits (elegidos aleatoriamente)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Ejemplo: las n reinas (I)
•  Representación: entera, cada dígito indica la fila dentro de
la columna i-ésima donde está situada la reina i
•  Fitness: pares de reinas no atacadas
•  Selección: proporcional
•  Cruce y mutación: single-point
Ejemplo: 32752411
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Ejemplo: las n reinas (II)
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Esquemas
•  Objetivo: identificar bloques constructores
•  Describen familias de individuos
•  Definición: cadena contiene tres símbolos, 0, 1,
*. El * representa que en esa posición da igual
un 1 ó un 0
•  Ejemplo: ***010***
•  Caracterizan las poblaciones de acuerdo al
número de individuos que representan cada
esquema
° 
m(s,t)= nº de individuos con el esquema s en la
población del instante t
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Programación Genética
•  Uso de estructuras de árboles para
representar programas de computadora
•  Se predetermina la máxima profundidad
de los árboles, pero no su topología
precisa
•  El tamaño, forma y contenido de los
árboles puede cambiar dinámicamente
durante el proceso evolutivo
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Funciones más utilizadas
•  Operaciones aritméticas: +,-,*,…
•  Funciones matemáticas: seno, exp,…
•  Operaciones Booleanas: AND, OR,..
•  Operadores condicionales: IF
•  Iteraciones: DO-UNTIL
•  Recursión
•  Cualquier función específica
Sistemas Inteligentes – T4: Algoritmos Genéticos
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Cruce
Sistemas Inteligentes – T4: Algoritmos Genéticos
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Aplicaciones
•  Problemas de optimización combinatoria
•  Problemas de ajuste de parámetros
•  Problemas de satisfacción de restricciones,
planificación y asignación de recursos
espaciales y temporales
•  Optimización (estructural, de topologías,
numérica, combinatoria, etc.)
•  Reconocimiento de patrones
•  Generación de gramáticas (regulares, libres de
contexto)
Sistemas Inteligentes – T4: Algoritmos Genéticos