tema 6: b squeda local y algoritmos gen ticos - cs.us.es · • algoritmo inspirado en el proceso...
TRANSCRIPT
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Tema 6: Búsqueda local y algoritmosgenéticos
José Luis Ruiz Reina
Departamento de Ciencias de la Computación e Inteligencia ArtificialUniversidad de Sevilla
Inteligencia Artificial I, 2012
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Índice
Problemas de optimización
Búsqueda local
Búsqueda en escalada
Enfriamiento simulado
Algoritmos genéticos
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Introducción
• Algoritmos de búsqueda de soluciones óptimas
• Buscar la mejor solución dentro de un espacio de posiblessoluciones
• Maximizar o minimizar
• Mejoras iterativas
• Empezar con un estado inicial cualquiera• Mejorar su calidad paso a paso
• Algoritmos:
• Escalada• Escalada con reinicio aleatorio• Enfriamiento simulado• Algoritmos genéticos• Reparación heurística (tema 5)
• Ninguno de estos algoritmos ofrece completitud, pero aveces es la única aproximación en la práctica
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Ejemplo: problema del viajante
• Problema: dada una lista de ciudades, pasar por todasellas recorriendo la menor distancia posible (suponiendoque existe conexión directa entre todas ellas)
HU
SE
JACO
CA
GR
AL
MA
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Problema del viajante
• Una posible representación como espacio de estados:
• Estados: ciudades visitadas• Operadores: ir a una ciudad• Un operador es aplicable si la ciudad está entre las que
quedan por visitar• Problema: Aplicar una búsqueda exhaustiva que encuentre
una solución óptima• Muy ineficiente en la práctica
• Alternativa:
• Estados: permutación de las ciudades• Operadores: obtener una nueva permutación, usando
técnicas heurísticas e incluyendo cierta aleatoriedad• Mejorar los estados en iteraciones sucesivas• La bondad de los estados se cuantifica por una función
objetivo (en este caso, la distancia total del circuito)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Características de algunos problemas de optimización
• Estado inicial: no está claramente definido
• Operadores:
• Se puede definir cierta noción de nodo “sucesor” o “vecino”• En algunos casos, gran cantidad de vecinos• Introducimos cierta componente heurística y aleatoria,
generando cada vez un único nodo “nodo vecino”
• Estados finales y soluciones:
• Todos los estados son posibles soluciones, pero se trata deencontrar una solución “buena” (cuantificada por unafunción objetivo)
• Si es posible, la mejor• Se busca el estado con un óptimo valor (máximo o mínimo)
de función objetivo• No buscamos la secuencia de operadores (los estados
contienen toda la información)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Representación de un problema de optimización(para aplicar búsqueda local)
• Elección de una representación para los estados(estructura de datos)
• Función F-OBJETIVO(ESTADO)
• Función cuyo valor se trata de optimizar• Minimizar o maximizar
• Función GENERA-ESTADO-INICIAL()
• Si en el problema el estado inicial no está claramentedefinido, el estado inicial puede generarse de maneraaleatoria, o usando alguna técnica heurística
• Función GENERA-SUCESOR(ESTADO)
• Genera un estado sucesor a uno dado• Define la noción de “vecindad” para el problema concreto• Usualmente, existe cierta componente aleatoria y
heurística en la generación del sucesor
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Representación del problema del viajante
• Representación de los estados:
• Cada estado será un posible circuito, representado por unalista con todas las ciudades, sin repetir, en un ordendeterminado
• Ejemplo: (malaga cadiz cordoba almeria huelva
granada jaen sevilla)
• Generación aleatoria del estado inicial
• Asumiremos que la función GENERA-ESTADO-INICIAL()
obtiene un circuito inicial aleatorio
• Función objetivo
• La función F-OBJETIVO(ESTADO) devuelve la distancia totaldel circuito
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Representación del problema del viajante• Generación de un sucesor con la función
GENERA-SUCESOR(ESTADO)
• Elección aleatoria de dos ciudades e inversión del caminoentre ellas
b
d
e
g
a
c
h
f
a
b
c
e
f
g
d
h
• Heurística + aleatoriedad• Heurística: trata de reducir los “cruces”• Aleatoriedad: al elegir el par de ciudades
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Búsqueda en escalada• Idea de la búsqueda en escalada:
• Aplicar una simple mejora iterativa• Guiado por la heurística y aleatoriedad de la función que
genera sucesores• No se permite recuperarse de un camino erróneo (no se
mantiene un árbol de búsqueda)• Puede verse como una escalada (ascenso o descenso)
e
Estados
F. objetivo
e’=genera−sucesor(e)
F(e’)
F(e)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Búsqueda en escalada
• Versión para minimizar (análogo para maximizar)FUNCION BUSQUEDA-EN-ESCALADA()1. Hacer ACTUAL igual GENERA-ESTADO-INICIAL() y
VALOR-ACTUAL igual a F-OBJETIVO(ACTUAL).2. Hacer VECINO igual a GENERA-SUCESOR(ACTUAL) y
VALOR-VECINO igual a F-OBJETIVO(VECINO)3. Mientras VALOR-VECINO sea menor que VALOR-ACTUAL,
3.1 Hacer ACTUAL igual a VECINOy VALOR-ACTUAL igual a VALOR-VECINO.
3.2 Hacer VECINO igual a GENERA-SUCESOR(ACTUAL) yVALOR-VECINO igual a F-OBJETIVO(VECINO)
3. Devolver ACTUAL y VALOR-ACTUAL
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Búsqueda en escalada: ejemplo
• Ejemplos> (load "viajante")...> (escalada-aleatoria)((CADIZ HUELVA CORDOBA JAEN ALMERIA SEVILLA GRANADA MALAGA)
1366.7968)> (escalada-aleatoria)((SEVILLA JAEN HUELVA CORDOBA MALAGA ALMERIA GRANADA CADIZ)
1488.9255)> (escalada-aleatoria)((SEVILLA GRANADA ALMERIA CORDOBA JAEN CADIZ MALAGA HUELVA)
1431.388)
• Ninguna de ellas es la solución óptima
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Búsqueda en escalada
• Evidentemente, no se garantiza encontrar el óptimo
• Problemas:
• Su eficacia depende en gran medida de la funciónGENERA-SUCESOR
• Óptimos locales, mesetas
• Una idea simple para intentar escapar de los óptimoslocales:
• Buscar aleatoriamente el inicio de la pendiente• Hacer escalada (o descenso) a partir de ahí• Iterar el proceso• Devolver el mejor estado conseguido en alguna de las
iteraciones
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Búsqueda en escalada con reinicio aleatorio
FUNCION ESCALADA-CON-REINICIO-ALEATORIO(ITERACIONES)1. Hacer MEJOR-ESTADO igual GENERA-ESTADO-INICIAL() y
MEJOR-VALOR igual a F-OBJETIVO(MEJOR-ESTADO)2. Hacer un número de veces igual a ITERACIONES:
2.1 Realizar una escalada aleatoria.2.2 Si el estado obtenido tiene un valor mejor
que MEJOR-VALOR, actualizar MEJOR-ESTADOy MEJOR-VALOR con el nuevo estado y valorobtenido.
3. Devolver MEJOR-ESTADO y MEJOR-VALOR
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Escalada con reinicio aleatorio: ejemplo
• Problema del viajante:> (load "viajante")...> (escalada-con-reinicio-aleatorio 50)((JAEN CORDOBA SEVILLA CADIZ HUELVA MALAGA ALMERIA GRANADA)
1009.58923)> (escalada-con-reinicio-aleatorio 300)((CORDOBA GRANADA ALMERIA JAEN MALAGA SEVILLA HUELVA CADIZ)
1080.9673)> (escalada-con-reinicio-aleatorio 1000)((MALAGA CADIZ HUELVA SEVILLA CORDOBA JAEN ALMERIA GRANADA)
929.9256)
• La última es la solución óptima
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Problema del cuadrado de puntos• Caso particular del problema del viajante:
• Las “ciudades” están representadas por pares decoordenadas
• 4n puntos situados uniformemente a lo largo de los ladosde un cuadrado de lado n
• Parametrizado y con solución conocida (escalable,adecuado para pruebas)
• Representación análoga al problema del viajante
(0,0)
(0,1)
(0,2)
(0,3)
(0,n) (n,n)
(1,0) (2,0) (3,0) (n,0)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Escalada con reinicio aleatorio: ejemplo
• Problema del cuadrado de puntos:> (load "puntos")...> (cuadrado 3)> (escalada-con-reinicio-aleatorio 10000)(((3 . 3) (3 . 2) (2 . 3) (3 . 1) (2 . 0) (3 . 0)
(1 . 0) (0 . 0) (0 . 1) (0 . 3) (0 . 2) (1 . 3))17.478706)
> (escalada-con-reinicio-aleatorio 100000)(((1 . 0) (0 . 0) (0 . 1) (0 . 2) (0 . 3) (1 . 3)
(3 . 2) (3 . 3) (2 . 3) (3 . 0) (3 . 1) (2 . 0))15.812559)
• Soluciones no óptimas, debemos mejorar la técnica paraescapar de los óptimos locales
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Enfriamiento simulado
• Idea principal:
• Aceptar probabilísticamente estados “peores”• La probabilidad de que un estado peor sea aceptado varía
en función del incremento producido en la función objetivo• Permitimos así salir de óptimos locales, sin salir del óptimo
global
• Algoritmo inspirado en el proceso físico-químico deenfriamiento de metales
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Enfriamiento simulado (inspiración físico-química)• Enfriamiento de metales
• Sistema estable: mínimo de energía• Dada una temperatura, el sistema necesita tiempo para
estabilizarse (perder energía)• Es posible pasar momentáneamente por estados de mayor
energía, con probabilidad dada por
p(∆E, T ) = e−
∆Ek·T
• Después de estabilizarse, se vuelve a bajar la temperatura,y el sistema se estabiliza nuevamente en un estado demenor energía
• Programa de enfriamiento
• Al principio (T grande) mayor probabilidad de aceptaciónde soluciones candidatas (diversificación)
• Al final (T pequeña), se aceptan pocas solucionescandidatas (intensificación)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Enfriamiento simulado
• Generación del estado inicial y estados vecinos
• Aleatoria, heurística
• Aceptación probabilística
• Probabilidad de aceptación de un estado que incrementa∆F el valor de la función objetivo: e−
∆FT
• Programa de enfriamiento, en nuestro caso:
• Temperatura inicial• Variación de la temperatura: T ← α · T• Número fijo de iteraciones para cada T
• Criterio de parada
• Valor suficientemente bueno de la función objetivo• Número máximo de iteraciones sin mejora• En nuestro caso, número fijo de iteraciones totales
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Implementación de enfriamiento simulado (I)
FUNCION ENFRIAMIENTO-SIMULADO(T-INICIAL,FACTOR-DESCENSO,N-ENFRIAMIENTOS,N-ITERACIONES)
1. Crear las siguientes variables locales:1.1 TEMPERATURA (para almacenar la temperatura actual),
inicialmente con valor T-INICIAL.1.2 ACTUAL (para almacenar el estado actual), cuyo valor
inicial es GENERA-ESTADO-INICIAL().1.3 VALOR-ACTUAL igual a F-OBJETIVO(ACTUAL)1.4 MEJOR (para almacenar el valor del mejor estado
encontrado hasta el momento), inicialmente ACTUAL.1.5 VALOR-MEJOR (para almacenar el valor de MEJOR),
inicialmente igual a VALOR-ACTUAL
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Implementación de enfriamiento simulado (II)
2. Iterar un número de veces igual a N-ENFRIAMIENTOS:
2.1 Iterar un número de veces igual a N-ITERACIONES:
2.1.1 Crear las siguientes variables locales:2.1.1.1 CANDIDATA, una solución vecina de ACTUAL,
generada por GENERA-SUCESOR.2.1.1.2 VALOR-CANDIDATA, el valor de CANDIDATA.2.1.1.3 INCREMENTO, la diferencia entre VALOR-CANDIDATA y
VALOR-ACTUAL2.1.2 Cuando INCREMENTO es negativo, o se acepta
probabilísticamente la solución candidata,hacer ACTUAL igual a VECINAy VALOR-ACTUAL igual a VALOR-VECINA.
2.1.3 Si VALOR-ACTUAL es mejor que VALOR-MEJOR,actualizar MEJOR con ACTUALy VALOR-MEJOR con VALOR-ACTUAL.
2.2 Disminuir TEMPERATURA usando FACTOR-DESCENSO
3. Devolver MEJOR y VALOR-MEJOR
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Enfriamiento simulado: ejemplo
• Ejemplo (problema del viajante por Andalucía)> (enfriamiento-simulado 100 0.95 100 100)((MALAGA GRANADA ALMERIA JAEN CORDOBA SEVILLA HUELVA CADIZ)
929.92554)
• Ejemplo (problema de los puntos)> (cuadrado 3)...> (enfriamiento-simulado 5 0.95 100 100)(((0 . 1) (0 . 0) (1 . 0) (2 . 0) (3 . 0) (3 . 1)
(3 . 2) (3 . 3) (2 . 3) (1 . 3) (0 . 3) (0 . 2))12)
> (cuadrado 7)...> (second (enfriamiento-simulado 15 0.95 100 100))28> (cuadrado 10)...> (second (enfriamiento-simulado 20 0.95 100 100))43.414215> (second (enfriamiento-simulado 20 0.95 100 100))40> (cuadrado 15)...> (second (enfriamiento-simulado 35 0.95 100 100))99.498474> (second (enfriamiento-simulado 35 0.95 500 500))60
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmos genéticos: evolución natural
• Optimización inspirada en los procesos evolutivos de lanaturaleza:
• La evolución ocurre en los cromosomas de los individuos• Las “buenas estructuras” sobreviven con más probabilidad
que las demás• El nuevo material genético se obtiene mediante cruces y
mutaciones
• Algoritmos genéticos:
• Aplicación de estas ideas en la búsqueda de solucionesóptimas
• No existe un único algoritmo genético• Es una denominación para este tipo de algoritmos
evolutivos
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmos genéticos: codificación del problemaoriginal
• Un primer paso es representar los estados del problemaoriginal como individuos de una población
• Genes: material genético básico• Cromosomas: secuencia de genes que codifica a un
estado del problema original• Población: conjunto de cromosomas (sólo un subconjunto
de tamaño “manejable”)• La población evoluciona en las distintas generaciones• Genotipo y fenotipo
• Bondad de los individuos
• Según el valor de la función objetivo
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmos genéticos: representación del problema• Problemas de optimización: un ejemplo simple
• Ejemplo: encontrar el mínimo de la función f (x) = x2 en[0, 210) ∩ N
• Variables * GENES* y * LONGITUD-INDIVIDUOS*
• Ejemplo en la función cuadrado: (0 1) y 10, resp.
• Función DECODIFICA(X) , obtiene el fenotipo• En la función cuadrado: un cromosoma puede verse como
un número binario de 10 dígitos (en orden inverso). Elfenotipo de un cromosoma es dicho número (en notacióndecimal)
• Ejemplo: (0 1 1 0 0 1 0 0 0 0) es un cromosoma querepresenta al 38
• Función F-OBJETIVO(X) , valor de de la función a optimizar(actuando sobre el fenotipo)
• Ejemplo en la función cuadrado: la función que recibiendoun número natural lo eleva al cuadrado
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmos genéticos: mecanismo evolutivo
• Reproducción de las generaciones• Operaciones:
• Cruces: combinación de estructuras, aleatorio• Mutaciones: cambio de algunos genes, aleatorio
• Mecanismo de evolución• En general, debe ser un método de selección que
favorezca a los individuos con mejor valoración, pero queno impida la diversidad
• En general, siempre existe una componente aleatoria
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Operaciones genéticas más comunes
• Cruces:
1 0 0 0 1 1
0110 0 0 0 1 1 0 1 1
1 0 0 0 0 0
• Mutaciones:
1 0 0 0 1 1 1 101 01
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmo genético con selección por élite yaleatoriedad (pseudocódigo)
t := 0Inicia-Población P(t)Evalúa-Población P(t)
Mientras no Fin hacerP’ := Selecciona-Padres P(t)P’’ := Cruza P’P’’’ := Muta P’’Evalua-Población P’’’P(t+1) := Selecciona-Mejores P’’’,P(t)t:= t+1
Fin-Mientras
Devolver el mejor de P(t)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Parámetros del algoritmo genético anterior
• El algoritmo anterior debe recibir como entrada losiguiente:
• Número de generaciones• Número total de individuos en la población (en cada
generación)• Número de individuos que intervienen en la reproducción
(cruces, dado como proporción del total)• Padres que se escogen entre los mejores (dado como
proporción del total de padres)• Probabilidad de que ocurra una mutación (generalmente,
muy baja)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Selección, mutación y reproducción en el algoritmo
• Selección de padres:
• Un número fijo de padres se obtienen con los mejores de lapoblación (élite)
• El resto se escoge aleatoriamente de entre los restantes(para mantener así la diversidad)
• Cruces:
• Las parejas se obtienen reordenando aleatoriamente lospadres (por diversidad) y cruzando de dos en dos
• Mutación:
• Cada gen de cada individuo se mutará según laprobabilidad dada (aleatoriedad)
• Nueva generación:
• Unir las dos generaciones y quedarse con los mejores (enigual número que la población inicial)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Ejemplo de ejecución (función cuadrado)
> (load "funcion-cuadrado")...> (algoritmo-genetico-con-salida 20 10 0.75 0.6 0.1)
Generacion: 1. Media: 361954.9, Mejor: (0 1 1 0 0 1 0 0 0 0), Valo r: 1444Generacion: 2. Media: 79730.6, Mejor: (0 1 1 0 0 1 0 0 0 0), Valor : 1444Generacion: 3. Media: 22278.6, Mejor: (0 1 1 0 0 1 0 0 0 0), Valor : 1444Generacion: 4. Media: 3537.7, Mejor: (1 1 1 1 0 0 0 0 0 0), Valor: 225Generacion: 5. Media: 1597.3, Mejor: (0 0 1 1 0 0 0 0 0 0), Valor: 144Generacion: 6. Media: 912.8, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4Generacion: 7. Media: 345.3, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4Generacion: 8. Media: 60.7, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4Generacion: 9. Media: 14.0, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4Generacion: 10. Media: 4.5, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4Generacion: 11. Media: 3.7, Mejor: (1 0 0 0 0 0 0 0 0 0), Valor: 1Generacion: 12. Media: 3.4, Mejor: (1 0 0 0 0 0 0 0 0 0), Valor: 1Generacion: 13. Media: 2.4, Mejor: (0 0 0 0 0 0 0 0 0 0), Valor: 0
0
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Representación genética del problema del viajante
• Genes y longitud de los individuos en el problema delviajante
• * GENES* = (almeria cadiz cordoba granada huelva
jaen malaga sevilla)• * LONGITUD-INDIVIDUOS* = 8
• Decodificación en el problema del viajante:
• DECODIFICA(X)= X• La codificación permite ciudades repetidas• La función objetivo debe penalizar las repeticiones
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Representación genética del problema del viajante
• Función objetivo:
• Penalización por camino incompletoPENALIZACION-POR-INCOMPLETO(CAMINO)=
100 * | * GENES* - CAMINO|
• Combinación de distancia con penalizaciónF-OBJETIVO(X)=
2* DISTANCIA-VIAJE(X) + 50 * PENALIZACION-POR-INCOMPLETO(X)
• Los pesos de cada componente pueden ajustarseexperimentalmente
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Solución al problema del viajante
• Una ejecución:> (algoritmo-genetico 100 50 0.75 0.6 0.05)Mejor individuo:(HUELVA SEVILLA CORDOBA GRANADA ALMERIA JAEN MALAGA CADIZ)Valor: 2015.8258
• Es usual realizar varios ejecuciones del algoritmo• En este caso, en el experimento 84 se obtiene la solución
óptima:
Mejor individuo:(MALAGA GRANADA ALMERIA JAEN CORDOBA SEVILLA HUELVA CADIZ),Valor: 1859.8511
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Otro ejemplo: problema del cuadrado mágico
• Colocar en un cuadrado n × n los números naturales de 1a n2, de tal manera que las filas, las columnas y lasdiagonales principales sumen los mismo
• Una solución para n = 3:
4 3 8
9 5 1
2 7 6
• Soluciones representadas como listas de números entre 1y n2
• Admitimos repeticiones• La función objetivo penaliza las repeticiones
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Otro ejemplo: cuadrado mágico
• Problema parametrizado, variables globales:
• Dimensión del cuadrado: N• Suma común: SUMA=(N·(N 2 + 1))/2
• Función de decodificación, DECODIFICA(X) :
• Un cromosoma representa al cuadrado cuyaconcatenación de filas es igual al cromosomaEjemplo (para N igual a 3):> (decodifica ’(1 7 5 3 2 8 4 6 9))((1 7 5) (3 2 8) (4 6 9))
• Genes y longitud de los individuos:
• * GENES* = (1 2 3 ...N 2)• * LONGITUD-INDIVIDUOS* = N2
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Otro ejemplo: cuadrado mágico
• La función objetivo penaliza las repeticiones:N-REPETICIONES(X)= "Número de genes repetidos en X"
SUMA-DIFERENCIAS(X)="Suma de las diferencias (en valor absoluto)
entre la suma de los números de cada hilera(filas, columnas y diagonales) y SUMA"
F-OBJETIVO(X)= (1 + N-REPETICIONES(X)) * SUMA-DIFERENCIAS(X)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Solución al cuadrado mágico
• Caso n = 3;;; Soluciones N=3 (se encuentra fácilmente);;; ((8 1 6) (3 5 7) (4 9 2))
• Caso n = 4;;; Soluciones N=4;;; Encontrado con;;; (algoritmo-genetico 1000 500 0.75 0.6 0.1);;; en la generación 125:;;; ((7 14 9 4) (16 2 5 11) (1 15 12 6) (10 3 8 13))
16 2 5 11
7 14 9 4
1 15 12 6
10 3 8 13
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Selección probabilística
• En el algoritmo anterior, la selección de individuos estábasada en un método elitista
• Esto asegura que los mejores siempre pasan a la siguientegeneración y siempre son escogidos para cruce
• La diversidad se garantiza introduciendo individuosseleccionados aleatoriamente
• La selección probabilística es un método alternativo deselección, que favorece a los mejores, manteniendo ladiversidad
• La idea es que la probabilidad de seleccionar un individuoserá mayor cuanto mejor sea
• Los peores individuos se seleccionarán con menosfrecuencia
• Con este método es posible seleccionar varias veces almismo individuo
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Selección probabilística por ruleta• Selección por ruleta
• Cada individuo i es seleccionado con probabilidadproporcional a su valor de la función objetivo:
P(i) =Fobj(i)
∑nj=1 Fobj(j)
• Importante: con este método de selección sólo podemosresolver problemas de maximización
• Si es de minimización habría que transformar la funciónobjetivo
• Algoritmo para seleccionar por ruleta:• Calcular la suma total acumulada de los valores de la
función objetivo de todos los miembros de la población• Generar un número aleatorio x entre 1 y la suma total
anterior• Recorrer la población, nuevamente acumulando los valores
de la función objetivo y seleccionando el primercromosoma cuya suma acumulada sea mayor o igual que x
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmo genético con selección por ruleta
• Vamos a definir un algoritmo genético diferente del anterior
• Usando selección por ruleta
• Tanto de los individuos que pasan directamente a lasiguiente generación, como de aquellos que se usaránpara cruces
• Entrada al algoritmo:
• Número total p de individuos de la población• Un número r , 0 <= r <= 1, fracción de la población que
será obtenida mediante cruces• La probabilidad m de que ocurra una mutación
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Algoritmo genético con selección por ruleta(pseudocódigo)
t := 0Inicia-Población P(t)Evalúa-Población P(t)
Mientras no Fin hacerP1 := Selección por ruleta de (1-r) ·p individuos de P(t)P2 := Selección por ruleta de (r ·p) individuos de P(t)P3 := Cruza P2P4 := Union de P1 y P3P(t+1) := Muta P4Evalua-Población P(t+1)t:= t+1
Fin-Mientras
Devolver el mejor de P(t)
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Conclusión
• Algoritmos genéticos como proceso de búsqueda local
• Mejora iterativa• Los cruces, las mutaciones y la diversidad tratan de evitar
el problema de los óptimos locales
• Existen otras muchas implementaciones de algoritmosgenéticos
• Pero todas se basan en las mismas ideas de reproducción,mutación, selección de los mejores y mantenimiento de ladiversidad
• Fácil de aplicar a muchos tipos de problemas:
• optimización, aprendizaje automático, planificación,. . .
• Resultados aceptables en algunos problemas
• Aunque no son mejores que algoritmos específicos paracada problema
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos
Bibliografía
• Russell, S. y Norvig, P. Artificial Intelligence (A ModernApproach) 3rd edition (Prentice–Hall, 2010).
• Cap. 4 “Beyond classical search”.
• Rich, E. y Knight, K. Inteligencia artificial (segundaedición) (McGraw–Hill Interamericana, 1994).
• Cap. 3: “Técnicas de búsqueda heurística”.
• Mitchell, T.M. Machine Learning (McGraw-Hill, 1997)
• Cap. 9: “Genetic Algorithms”
• Michalewicz, Z. Genetic Algorithms + Data Structures =Evolution Programs (Springer, 1999).
• Cap. 2 “GAs: How Do They Work?”.