Download SISTEMAS INTELIGENTES - Centro de Inteligencia Artificial
Document related concepts
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