+ All Categories
Home > Documents > Tema 6: B squeda local y algoritmos gen ticos - cs.us.es · • Algoritmo inspirado en el proceso...

Tema 6: B squeda local y algoritmos gen ticos - cs.us.es · • Algoritmo inspirado en el proceso...

Date post: 22-Oct-2018
Category:
Upload: duongminh
View: 212 times
Download: 0 times
Share this document with a friend
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
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?”.


Recommended