Vous êtes sur la page 1sur 45

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Tema 6: Bsqueda local y algoritmos genticos


Jos Luis Ruiz Reina
Departamento de Ciencias de la Computacin e Inteligencia Articial Universidad de Sevilla

Inteligencia Articial I, 2012

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

ndice

Problemas de optimizacin Bsqueda local Bsqueda en escalada Enfriamiento simulado Algoritmos genticos

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Introduccin
Algoritmos de bsqueda de soluciones ptimas
Buscar la mejor solucin 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 genticos Reparacin heurstica (tema 5)

Ninguno de estos algoritmos ofrece completitud, pero a

veces es la nica aproximacin en la prctica

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Ejemplo: problema del viajante


Problema: dada una lista de ciudades, pasar por todas

ellas recorriendo la menor distancia posible (suponiendo que existe conexin directa entre todas ellas)

CO

JA

SE HU GR AL MA

CA

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Problema del viajante


Una posible representacin 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 bsqueda exhaustiva que encuentre

una solucin ptima


Muy ineciente en la prctica

Alternativa:
Estados: permutacin de las ciudades Operadores: obtener una nueva permutacin, usando

tcnicas heursticas e incluyendo cierta aleatoriedad


Mejorar los estados en iteraciones sucesivas La bondad de los estados se cuantica por una funcin

objetivo (en este caso, la distancia total del circuito)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Caractersticas de algunos problemas de optimizacin


Estado inicial: no est claramente denido Operadores:
Se puede denir cierta nocin de nodo sucesor o vecino En algunos casos, gran cantidad de vecinos Introducimos cierta componente heurstica y aleatoria,

generando cada vez un nico nodo nodo vecino Estados nales y soluciones:
Todos los estados son posibles soluciones, pero se trata de

encontrar una solucin buena (cuanticada por una funcin objetivo) Si es posible, la mejor Se busca el estado con un ptimo valor (mximo o mnimo) de funcin objetivo No buscamos la secuencia de operadores (los estados contienen toda la informacin)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Representacin de un problema de optimizacin (para aplicar bsqueda local)


Eleccin de una representacin para los estados

(estructura de datos)
Funcin F-OBJETIVO(ESTADO)
Funcin cuyo valor se trata de optimizar Minimizar o maximizar

Funcin GENERA-ESTADO-INICIAL() Si en el problema el estado inicial no est claramente denido, el estado inicial puede generarse de manera aleatoria, o usando alguna tcnica heurstica Funcin GENERA-SUCESOR(ESTADO)
Genera un estado sucesor a uno dado Dene la nocin de vecindad para el problema concreto Usualmente, existe cierta componente aleatoria y

heurstica en la generacin del sucesor

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Representacin del problema del viajante


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

Generacin aleatoria del estado inicial


Asumiremos que la funcin GENERA-ESTADO-INICIAL()

obtiene un circuito inicial aleatorio Funcin objetivo


La funcin F-OBJETIVO(ESTADO) devuelve la distancia total

del circuito

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Representacin del problema del viajante


Generacin de un sucesor con la funcin
GENERA-SUCESOR(ESTADO) Eleccin aleatoria de dos ciudades e inversin del camino

entre ellas
a b h b a h

d e

d e

Heurstica + aleatoriedad
Heurstica: trata de reducir los cruces Aleatoriedad: al elegir el par de ciudades

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bsqueda en escalada
Idea de la bsqueda en escalada:
Aplicar una simple mejora iterativa Guiado por la heurstica y aleatoriedad de la funcin que

genera sucesores
No se permite recuperarse de un camino errneo (no se

mantiene un rbol de bsqueda)


Puede verse como una escalada (ascenso o descenso)
F. objetivo F(e)

Estados

F(e)

e=generasucesor(e) e

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bsqueda en escalada

Versin para minimizar (anlogo 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bsqueda 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 solucin ptima

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bsqueda en escalada
Evidentemente, no se garantiza encontrar el ptimo Problemas:
Su ecacia depende en gran medida de la funcin

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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bsqueda 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 nmero 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

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 solucin ptima

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Problema del cuadrado de puntos


Caso particular del problema del viajante:
Las ciudades estn representadas por pares de

coordenadas
4n puntos situados uniformemente a lo largo de los lados

de un cuadrado de lado n
Parametrizado y con solucin conocida (escalable,

adecuado para pruebas)


Representacin anloga 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

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 (1 . 0) (0 . 0) (0 . 1) (0 . 3) (0 . 2) (1 17.478706) > (escalada-con-reinicio-aleatorio 100000) (((1 . 0) (0 . 0) (0 . 1) (0 . 2) (0 . 3) (1 (3 . 2) (3 . 3) (2 . 3) (3 . 0) (3 . 1) (2 15.812559)

. 0) . 3)) . 3) . 0))

Soluciones no ptimas, debemos mejorar la tcnica para

escapar de los ptimos locales

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Enfriamiento simulado

Idea principal:
Aceptar probabilsticamente estados peores La probabilidad de que un estado peor sea aceptado vara

en funcin del incremento producido en la funcin objetivo


Permitimos as salir de ptimos locales, sin salir del ptimo

global Algoritmo inspirado en el proceso fsico-qumico de

enfriamiento de metales

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Enfriamiento simulado (inspiracin fsico-qumica)


Enfriamiento de metales
Sistema estable: mnimo de energa Dada una temperatura, el sistema necesita tiempo para

estabilizarse (perder energa)


Es posible pasar momentneamente por estados de mayor

energa, con probabilidad dada por p (E , T ) = e k T


Despus de estabilizarse, se vuelve a bajar la temperatura,
E

y el sistema se estabiliza nuevamente en un estado de menor energa Programa de enfriamiento


Al principio (T grande) mayor probabilidad de aceptacin

de soluciones candidatas (diversicacin)


Al nal (T pequea), se aceptan pocas soluciones

candidatas (intensicacin)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Enfriamiento simulado
Generacin del estado inicial y estados vecinos
Aleatoria, heurstica

Aceptacin probabilstica
Probabilidad de aceptacin de un estado que incrementa

F el valor de la funcin objetivo: e

F T

Programa de enfriamiento, en nuestro caso:


Temperatura inicial Variacin de la temperatura: T T Nmero jo de iteraciones para cada T

Criterio de parada
Valor sucientemente bueno de la funcin objetivo Nmero mximo de iteraciones sin mejora En nuestro caso, nmero jo de iteraciones totales

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Implementacin 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Implementacin de enfriamiento simulado (II)


2. Iterar un nmero de veces igual a N-ENFRIAMIENTOS: 2.1 Iterar un nmero de veces igual a N-ITERACIONES: 2.1.1 Crear las siguientes variables locales: 2.1.1.1 CANDIDATA, una solucin 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 probabilsticamente la solucin 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Enfriamiento simulado: ejemplo


Ejemplo (problema del viajante por Andaluca)
> (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 (3 . 2) (3 . 3) (2 . 3) (1 . 3) (0 . 3) (0 12) > (cuadrado 7) ... > (second (enfriamiento-simulado 15 0.95 100 28 > (cuadrado 10) ... > (second (enfriamiento-simulado 20 0.95 100 43.414215 > (second (enfriamiento-simulado 20 0.95 100 40 > (cuadrado 15) ... > (second (enfriamiento-simulado 35 0.95 100 99.498474 > (second (enfriamiento-simulado 35 0.95 500 60 . 1) . 2))

100))

100)) 100))

100)) 500))

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmos genticos: evolucin natural


Optimizacin inspirada en los procesos evolutivos de la

naturaleza:
La evolucin ocurre en los cromosomas de los individuos Las buenas estructuras sobreviven con ms probabilidad

que las dems


El nuevo material gentico se obtiene mediante cruces y

mutaciones Algoritmos genticos:


Aplicacin de estas ideas en la bsqueda de soluciones

ptimas
No existe un nico algoritmo gentico Es una denominacin para este tipo de algoritmos

evolutivos

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmos genticos: codicacin del problema original


Un primer paso es representar los estados del problema

original como individuos de una poblacin


Genes: material gentico bsico Cromosomas: secuencia de genes que codica a un

estado del problema original


Poblacin: conjunto de cromosomas (slo un subconjunto

de tamao manejable)
La poblacin evoluciona en las distintas generaciones Genotipo y fenotipo

Bondad de los individuos


Segn el valor de la funcin objetivo

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmos genticos: representacin del problema


Problemas de optimizacin: un ejemplo simple
Ejemplo: encontrar el mnimo de la funcin f (x ) = x 2 en

[0, 210 ) N Variables *GENES* y *LONGITUD-INDIVIDUOS* Ejemplo en la funcin cuadrado: (0 1) y 10, resp. Funcin DECODIFICA(X), obtiene el fenotipo
En la funcin cuadrado: un cromosoma puede verse como

un nmero binario de 10 dgitos (en orden inverso). El fenotipo de un cromosoma es dicho nmero (en notacin decimal) Ejemplo: (0 1 1 0 0 1 0 0 0 0) es un cromosoma que representa al 38 Funcin F-OBJETIVO(X), valor de de la funcin a optimizar

(actuando sobre el fenotipo)


Ejemplo en la funcin cuadrado: la funcin que recibiendo

un nmero natural lo eleva al cuadrado

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmos genticos: mecanismo evolutivo

Reproduccin de las generaciones


Operaciones: Cruces: combinacin de estructuras, aleatorio Mutaciones: cambio de algunos genes, aleatorio Mecanismo de evolucin En general, debe ser un mtodo de seleccin que

favorezca a los individuos con mejor valoracin, pero que no impida la diversidad En general, siempre existe una componente aleatoria

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Operaciones genticas ms comunes


Cruces:

0 0 0 1 1 0 0 0

1 0

0 0 0 0 0 1 1

0 1 1

0 1 1

Mutaciones:

0 0 0 1 1

1 0 1

0 1 1

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmo gentico con seleccin por lite y aleatoriedad (pseudocdigo)

t := 0 Inicia-Poblacin P(t) Evala-Poblacin P(t) Mientras no Fin hacer P := Selecciona-Padres P(t) P := Cruza P P := Muta P Evalua-Poblacin P P(t+1) := Selecciona-Mejores P,P(t) t:= t+1 Fin-Mientras Devolver el mejor de P(t)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Parmetros del algoritmo gentico anterior

El algoritmo anterior debe recibir como entrada lo

siguiente:
Nmero de generaciones Nmero total de individuos en la poblacin (en cada

generacin)
Nmero de individuos que intervienen en la reproduccin

(cruces, dado como proporcin del total)


Padres que se escogen entre los mejores (dado como

proporcin del total de padres)


Probabilidad de que ocurra una mutacin (generalmente,

muy baja)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Seleccin, mutacin y reproduccin en el algoritmo


Seleccin de padres:
Un nmero jo de padres se obtienen con los mejores de la

poblacin (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 Mutacin:


Cada gen de cada individuo se mutar segn la

probabilidad dada (aleatoriedad) Nueva generacin:


Unir las dos generaciones y quedarse con los mejores (en

igual nmero que la poblacin inicial)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Ejemplo de ejecucin (funcin 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Representacin gentica 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

Decodicacin en el problema del viajante:


DECODIFICA(X)= X La codicacin permite ciudades repetidas La funcin objetivo debe penalizar las repeticiones

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Representacin gentica del problema del viajante

Funcin objetivo:
Penalizacin por camino incompleto
PENALIZACION-POR-INCOMPLETO(CAMINO)= 100 * |*GENES* - CAMINO|

Combinacin de distancia con penalizacin


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

Los pesos de cada componente pueden ajustarse

experimentalmente

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Solucin al problema del viajante

Una ejecucin:
> (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 solucin ptima:

Mejor individuo: (MALAGA GRANADA ALMERIA JAEN CORDOBA SEVILLA HUELVA CADIZ), Valor: 1859.8511

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Otro ejemplo: problema del cuadrado mgico


Colocar en un cuadrado n n los nmeros naturales de 1

a n2 , de tal manera que las las, las columnas y las diagonales principales sumen los mismo
Una solucin para n = 3:

4 9 2

3 5 7

8 1 6

Soluciones representadas como listas de nmeros entre 1

y n2
Admitimos repeticiones La funcin objetivo penaliza las repeticiones

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Otro ejemplo: cuadrado mgico


Problema parametrizado, variables globales:
Dimensin del cuadrado: N Suma comn: SUMA=(N(N2 + 1))/2

Funcin de decodicacin, DECODIFICA(X):


Un cromosoma representa al cuadrado cuya

concatenacin de las 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 optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Otro ejemplo: cuadrado mgico

La funcin objetivo penaliza las repeticiones:


N-REPETICIONES(X)= "Nmero de genes repetidos en X" SUMA-DIFERENCIAS(X)= "Suma de las diferencias (en valor absoluto) entre la suma de los nmeros de cada hilera (filas, columnas y diagonales) y SUMA" F-OBJETIVO(X)= (1 + N-REPETICIONES(X)) * SUMA-DIFERENCIAS(X)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Solucin al cuadrado mgico


Caso n = 3
;;; Soluciones N=3 (se encuentra fcilmente) ;;; ((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 generacin 125: ;;; ((7 14 9 4) (16 2 5 11) (1 15 12 6) (10 3 8 13))

7 16 1 10

14 2 15 3

9 5 12 8

4 11 6 13

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Seleccin probabilstica
En el algoritmo anterior, la seleccin de individuos est

basada en un mtodo elitista


Esto asegura que los mejores siempre pasan a la siguiente

generacin y siempre son escogidos para cruce


La diversidad se garantiza introduciendo individuos

seleccionados aleatoriamente La seleccin probabilstica es un mtodo alternativo de

seleccin, 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 seleccionarn con menos

frecuencia
Con este mtodo es posible seleccionar varias veces al

mismo individuo

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Seleccin probabilstica por ruleta


Seleccin por ruleta Cada individuo i es seleccionado con probabilidad proporcional a su valor de la funcin objetivo: P (i ) = Fobj (i ) n j =1 Fobj (j )

Importante: con este mtodo de seleccin slo podemos

resolver problemas de maximizacin


Si es de minimizacin habra que transformar la funcin

objetivo Algoritmo para seleccionar por ruleta: Calcular la suma total acumulada de los valores de la funcin objetivo de todos los miembros de la poblacin Generar un nmero aleatorio x entre 1 y la suma total anterior Recorrer la poblacin, nuevamente acumulando los valores de la funcin objetivo y seleccionando el primer cromosoma cuya suma acumulada sea mayor o igual que x

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmo gentico con seleccin por ruleta

Vamos a denir un algoritmo gentico diferente del anterior Usando seleccin por ruleta
Tanto de los individuos que pasan directamente a la

siguiente generacin, como de aquellos que se usarn para cruces Entrada al algoritmo:
Nmero total p de individuos de la poblacin Un nmero r , 0 <= r <= 1, fraccin de la poblacin que

ser obtenida mediante cruces


La probabilidad m de que ocurra una mutacin

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Algoritmo gentico con seleccin por ruleta (pseudocdigo)

t := 0 Inicia-Poblacin P(t) Evala-Poblacin P(t) Mientras no Fin hacer P1 := Seleccin por ruleta de (1-r)p individuos de P(t) P2 := Seleccin por ruleta de (rp) individuos de P(t) P3 := Cruza P2 P4 := Union de P1 y P3 P(t+1) := Muta P4 Evalua-Poblacin P(t+1) t:= t+1 Fin-Mientras Devolver el mejor de P(t)

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Conclusin
Algoritmos genticos como proceso de bsqueda 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

genticos
Pero todas se basan en las mismas ideas de reproduccin,

mutacin, seleccin de los mejores y mantenimiento de la diversidad Fcil de aplicar a muchos tipos de problemas:
optimizacin, aprendizaje automtico, planicacin,. . .

Resultados aceptables en algunos problemas


Aunque no son mejores que algoritmos especcos para

cada problema

Problemas de optimizacin

Bsqueda local

Bsqueda en escalada

Enfriamiento simulado

Algoritmos genticos

Bibliografa
Russell, S. y Norvig, P. Articial Intelligence (A Modern

Approach) 3rd edition (PrenticeHall, 2010).


Cap. 4 Beyond classical search.

Rich, E. y Knight, K. Inteligencia articial (segunda

edicin) (McGrawHill Interamericana, 1994).


Cap. 3: Tcnicas de bsqueda heurstica.

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