Vous êtes sur la page 1sur 45

Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos

Tema 6: Búsqueda local y algoritmos


genéticos

José Luis Ruiz Reina

Departamento de Ciencias de la Computación e Inteligencia Artificial


Universidad 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 posibles
soluciones
• 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 a
veces 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 todas


ellas recorriendo la menor distancia posible (suponiendo
que existe conexión directa entre todas ellas)

CO
JA

SE

HU
GR

AL
MA

CA
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 de
encontrar una solución “buena” (cuantificada por una
funció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á claramente
definido, el estado inicial puede generarse de manera
aleatoria, 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 una
lista con todas las ciudades, sin repetir, en un orden
determinado
• 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 total
del 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 camino
entre ellas
a a

b h b h

c g c g

d f
d f

e e

• 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)

F. objetivo

F(e’)

Estados
F(e)

e’=genera−sucesor(e)
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 VECINO
y VALOR-ACTUAL igual a VALOR-VECINO.
3.2 Hacer VECINO igual a GENERA-SUCESOR(ACTUAL) y
VALOR-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ón
GENERA-SUCESOR
• Óptimos locales, mesetas

• Una idea simple para intentar escapar de los óptimos


locales:
• 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-ESTADO
y MEJOR-VALOR con el nuevo estado y valor
obtenido.
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 de
coordenadas
• 4n puntos situados uniformemente a lo largo de los lados
de un cuadrado de lado n
• Parametrizado y con solución conocida (escalable,
adecuado para pruebas)
• Representación análoga al problema del viajante
(0,n) (n,n)

(0,3)

(0,2)

(0,1)

(0,0)
(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 para


escapar 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 de
enfriamiento 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
∆E
p(∆E, T ) = e − k ·T

• Después de estabilizarse, se vuelve a bajar la temperatura,


y el sistema se estabiliza nuevamente en un estado de
menor energía
• Programa de enfriamiento
• Al principio (T grande) mayor probabilidad de aceptación
de soluciones candidatas (diversificación)
• Al final (T pequeña), se aceptan pocas soluciones
candidatas (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
∆F el valor de la función objetivo: e − T

• 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-ACTUAL
2.1.2 Cuando INCREMENTO es negativo, o se acepta
probabilísticamente la solución candidata,
hacer ACTUAL igual a VECINA
y VALOR-ACTUAL igual a VALOR-VECINA.
2.1.3 Si VALOR-ACTUAL es mejor que VALOR-MEJOR,
actualizar MEJOR con ACTUAL
y 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 la


naturaleza:
• 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 problema


original

• Un primer paso es representar los estados del problema


original 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) = x 2 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). El
fenotipo de un cromosoma es dicho número (en notación
decimal)
• Ejemplo: (0 1 1 0 0 1 0 0 0 0) es un cromosoma que
representa 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 recibiendo
un 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 que
no 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 1 0 0 0 0 0

0 1 1 0 0 0 0 1 1 0 1 1

• Mutaciones:

1 0 0 0 1 1 1 0 1 0 1 1
Problemas de optimización Búsqueda local Búsqueda en escalada Enfriamiento simulado Algoritmos genéticos

Algoritmo genético con selección por élite y


aleatoriedad (pseudocódigo)

t := 0
Inicia-Población P(t)
Evalúa-Población P(t)

Mientras no Fin hacer


P’ := 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 lo


siguiente:
• 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 la
población (élite)
• El resto se escoge aleatoriamente de entre los restantes
(para mantener así la diversidad)
• Cruces:
• Las parejas se obtienen reordenando aleatoriamente los
padres (por diversidad) y cruzando de dos en dos
• Mutación:
• Cada gen de cada individuo se mutará según la
probabilidad dada (aleatoriedad)
• Nueva generación:
• Unir las dos generaciones y quedarse con los mejores (en
igual 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), Valor: 1444
Generacion: 2. Media: 79730.6, Mejor: (0 1 1 0 0 1 0 0 0 0), Valor: 1444
Generacion: 3. Media: 22278.6, Mejor: (0 1 1 0 0 1 0 0 0 0), Valor: 1444
Generacion: 4. Media: 3537.7, Mejor: (1 1 1 1 0 0 0 0 0 0), Valor: 225
Generacion: 5. Media: 1597.3, Mejor: (0 0 1 1 0 0 0 0 0 0), Valor: 144
Generacion: 6. Media: 912.8, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4
Generacion: 7. Media: 345.3, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4
Generacion: 8. Media: 60.7, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4
Generacion: 9. Media: 14.0, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4
Generacion: 10. Media: 4.5, Mejor: (0 1 0 0 0 0 0 0 0 0), Valor: 4
Generacion: 11. Media: 3.7, Mejor: (1 0 0 0 0 0 0 0 0 0), Valor: 1
Generacion: 12. Media: 3.4, Mejor: (1 0 0 0 0 0 0 0 0 0), Valor: 1
Generacion: 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 del


viajante
• *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 incompleto
PENALIZACION-POR-INCOMPLETO(CAMINO)=
100 * |*GENES* - CAMINO|

• Combinación de distancia con penalización


F-OBJETIVO(X)=
2*DISTANCIA-VIAJE(X) + 50*PENALIZACION-POR-INCOMPLETO(X)

• Los pesos de cada componente pueden ajustarse


experimentalmente
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 1
a n2 , de tal manera que las filas, las columnas y las
diagonales 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 1


y 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·(N2 + 1))/2

• Función de decodificación, DECODIFICA(X):


• Un cromosoma representa al cuadrado cuya
concatenación de filas es igual al cromosoma
Ejemplo (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 ...N2 )
• *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))

7 14 9 4

16 2 5 11

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 siguiente
generación y siempre son escogidos para cruce
• La diversidad se garantiza introduciendo individuos
seleccionados aleatoriamente
• La selección probabilística es un método alternativo de
selección, que favorece a los mejores, manteniendo la
diversidad
• La idea es que la probabilidad de seleccionar un individuo
será mayor cuanto mejor sea
• Los peores individuos se seleccionarán con menos
frecuencia
• Con este método es posible seleccionar varias veces al
mismo 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 probabilidad
proporcional a su valor de la función objetivo:
Fobj (i)
P(i) = Pn
j=1 Fobj (j)

• Importante: con este método de selección sólo podemos


resolver problemas de maximización
• Si es de minimización habría que transformar la función
objetivo
• 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 primer
cromosoma 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 la
siguiente generación, como de aquellos que se usarán
para 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 := 0
Inicia-Población P(t)
Evalúa-Población P(t)
Mientras no Fin hacer
P1 := 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 P2
P4 := Union de P1 y P3
P(t+1) := Muta P4
Evalua-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 algoritmos
genéticos
• Pero todas se basan en las mismas ideas de reproducción,
mutación, selección de los mejores y mantenimiento de la
diversidad
• 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 para
cada 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 Modern


Approach) 3rd edition (Prentice–Hall, 2010).
• Cap. 4 “Beyond classical search”.

• Rich, E. y Knight, K. Inteligencia artificial (segunda


edició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?”.

Vous aimerez peut-être aussi