4.leccion5_BúsquedaL..

Anuncio
15/10/12 Inteligencia
Artificial (30223)
Lección 5. Búsqueda local
Curso 2012-2013
José Ángel Bañares
2/10/2013. Dpto. Informática e Ingeniería de Sistemas.
Índice
¡ Problemas de optimización, búsqueda
local
¡ Escalada/Hill Climbing
¡ Enfriamiento simulado/Simulated
annealing
¡ Algoritmos genéticos
Problemas de optimización
y búsqueda local
¡  En lecciones previas, el agente Resolución de problemas
exploraba sistemáticamente el espacio de estados.
¡  El camino al objetivo es la solución al problema
¡  En muchos problemas de optimización el camino es
irrelevantes, lo que nos importa es el estado objetivo.
Espacio de estados = conjunto completo de configuraciones
Problema: Encontrar la configuración óptima
¡  Por ejemplo las 8-reinas
¡  Configuración horarios
¡  Diseño de circuitos integrados
¡  Planificación de trabajos
¡  Optimización de la red de telecomunicaciones
1 15/10/12 Problemas de optimización
y búsqueda local
¡  Los algoritmos de búsqueda local trabajan utilizando un
único nodo en curso (en lugar de múltiples caminos) y
generalmente se mueven solo a nodos vecinos.
¡  Ventajas
¡  Usan muy poca memoria
¡  Encuentran una solución razonable en espacios de estados
grande o infinito (continuo) para los cuales los algoritmos de
exploración sistemática no son adecuados.
¡  Útiles para problemas de optimización puros.
¡  Encuentra el estado mejor de acuerdo a una función objetivo.
¡  P.e. la supervivencia de las especies es una función objetivo
como metáfora de la optimización
¡  La evolución de Darwin no tiene un test objetivo, ni coste del
camino para el problema.
Ejemplo: Problema del
viajante
¡  Comienza con un viaje completo, y realiza cambio
ente pares
¡  Variantes de esta aproximación rondan el 1% de la
solución óptima rápidamente con miles de
ciudades.
Ejemplo: n-reinas
¡  Poner n reinas en un tablero nxn sin que dos reinas estén en la
misma fila, columna o diagonal.
¡  Mueve una reina para reducir el número de conflictos
Casi siempre se resuelve el problema de las n-reinas casi
instantáneamente para problemas muy grandes, p.e.
n =1millón
2 15/10/12 Búsqueda local y optimización
Escalada/Hill-climbing search
¡  “es un bucle que se mueve continuamente en la
dirección del valor creciente”
¡  Termina cuando se alcanza unpoco.
¡  Hill climbing no mira mas allá de los vecinos
inmediatos al estado en curso.
¡  Hill-climbing elige aleatoriamente entre el
conjunto de sucesores si hay mas de uno.
¡  Hill-climbing se la conoce también como
búsqueda local voraz (greedy local search)
Hill-climbing search
“Como escalar el Everest en una espesa niebla con amnesia”
function HILL-CLIMBING( problema) return un estado que es un máximo local
enCurso← MAKE-NODE(INITIAL-STATE[problema])
loop do
vecino← sucesor de enCurso con mayor valor
if vecino.VALUE ≤ enCurso.VALUE then return enCurso.STATE
enCurso← vecino
3 15/10/12 Ejemplo Hill-climbing
¡  Problema 8-reinas (formulación del problema
con estado completo, partimos de un estado
con todas las reinas).
¡  Función sucesor: movemos una única reina a
otro cuadrado de la misma columna.
¡  Función heurística h(n): número de pares de
reinas que se atacan entre sí (directa o
inderectamente).
Ejemplo Hill-climbing example
a)
0
b)
0
0
3
1
2
3
4
0
2
2
0
0
1
0
0
a) Muestra un estado con h=17 (3+4+2+3+2+2+1+0) y el valor de h para cada posible.
b) Un mínimo local en el espacio de 8-reinas (h=1).
11
Problemas con la escalada
¡  Máximo local
¡  Cresta = secuencia de máximos locales de difícil navegación para algoritmos voraces
¡  Llano = un área del espacio de estados donde la función de evaluación es plana
En el problema de las 8-reinas, partiendo de un estado inicial aleatorio la escalada se
atasca en el 86% del tiempo y resuelve el 4% de los casos
¡  Cuando lo resuelve lo hace en cuatro pasos de media y se atasca en tres pasos de media.
¡  No está mal para un espacio de estados de 88 ≈17 millones de estados
4 15/10/12 Soluciones Hill-climbing
¡  Continuar en una dirección con la esperanza de
que el llano sea un shoulder/joroba (no es un
llano máximo local)
¡  Buena solución poniendo un límite en el número de
movimientos consecutivos en el llano
¡  p.e. 100 en el problema de las 8-reinas. Elevamos el
porcentaje de éxito del 14% al 94%. El algoritmo
ahora lo hace en 21 pasos de promedia para cada
caso exitoso, y 64 pasos para casos fallidos.
Otras Soluciones Hill-climbing
¡  Hill-climbing estocástica
¡  Selección aleatoria entre los movimientos ascendentes.
¡  La probabilidad varía con la pendiente
¡  First-choice hill-climbing
¡  Como estocástica generando aleatoriamente sucesores hasta
que encuentra uno mejor
Otras Soluciones Hill-climbing
¡  Random-restart hill-climbing
¡  Intenta evitar atascarse en un máximo local
¡  Genera estados iniciales aleatoriamente.
¡  Completa, porque con infinito intentos, la probabilidad de generar el
estado objetivo es 1.
¡  Si cada escalada tiene una probabilidad de éxito p, el número de
reinicios es 1/p
¡  Para 8-reinas p≈0.14, así que 1/0.14=7 iteraciones se requerirán
para tener éxito ( 6 fallos y 1 éxito)
¡  3*6 + 4+1 = 22 pasos de media, Número de pasos promedio 3 pasos de
media se atasca, 4 pasos de media éxito.
5 15/10/12 Enfriamiento simulado/
Simulated annealing
¡  Escapar de los máximos locales permitiendo
“malos” movimientos.
¡  Idea: reducir gradulamente su tamaño y frecuencia.
¡  Simil; endriamiento de metales para que
alcancen la mayor dureza
¡  Analogía de la bola en superficie no uniforme:
¡  Sacudir en una superficie con mínimos locales (= alta temperatura).
¡  Sacudir ligeramente (= menor temperatura).
¡  Si la temperatura T decrece los suficientemente
despacio, alcanzaremos el mejor estado.
¡  Applied for VLSI layout, airline scheduling, etc.
16
octubre 15, 2012
TLo (IRIDIA)
Simulated annealing
function SIMULATED-ANNEALING( problema, schedule) return a solution state
input: problema, un problema
schedule, función de la temperatura con el tiempo
local variables: current, un nodo
next, un nodo
T, la “temperatura” controlando la probailidad de pasos atrás
current ← MAKE-NODE(problema.INITIAL-STATE)
for t ← 1 to ∞ do
T ← schedule(t)
if T = 0 then return current
next ← un sucesor elegido aleatoriamente
∆E ← next. VALUE - current. VALUE
if ∆E > 0 then current ← next
else current ← next sólo con probabilidad e∆E /T
Local beam search
¡  Idea: Mantener k estados en lugar de uno
¡  Inicialmente: k estados aleatorios
¡  Siguiente: determinar los sucesores de los k estados
¡  Si cualquiera de los sucesores es el objetivo → fin
¡  Sino selecciona los k mejores de los sucesores y repetimos
¡  La principal diferencia con la random-restart search
¡  La información de las k búsquedas se comparte/ No es lo mismo que k
búsquedas en paralelo.
¡  Puede sufrir de falta de diversidad
¡  Los k estados pueden acabar en el mismo máximo local.
¡  Variante estocástica: Elige k sucesores aleatoriamente con una
probabilidad proporcional a una función de éxito (selección natural).
6 15/10/12 Algoritmos genéticos
¡ Variante de local beam search con
recombinación sexual.
19
Algoritmos genéticos
= stochastic local beam search + generación de
sucesores a partir de parejas de estados.
20
Algoritmos genéticos
¡  Representación de los estados como Strings de dígitos (8 dígitos
representando posición de la reina en cada columna
8
7
6
5
4
3
2
1
8
7
6
5
4
3
2
1
21
7 15/10/12 Algoritmos genéticos
¡  Clasificación de la población por la función de fitness (Número de pares de
reinas que no se atacan). Tiene 28 para la solución.
24/78=31%
24
23
20
11
---78
6+5+4+3+3+2+0=23
8
7
6
5
4
3
2
1
4
3
2
6
5
3
0
6+5+4+3+1+1+0=24
8
7
6
5
4
3
2
1
4
3
1
5
4
1
6
22
Genetic algorithm
function GENETIC_ALGORITHM( población, FITNESS-FN) return un individuo
input: población, un conjunto de individuos
FITNESS-FN, una fución que determina la calidad del individuo
repeat
nueva_población ← conjunto vacio
for i :=11 to SIZE(población) do
x ← RANDOM_SELECTION(población, FITNESS_FN)
y ← RANDOM_SELECTION(población, FITNESS_FN)
hijo← REPRODUCE(x,y)
if (pequeña probabilidad aleatoria) then hijo← MUTATE(hijo)
add hijo to nueva_población
población ← nueva_poblaciónn
until algún individuo encaje suficientemente o haya pasado sufieciente tiempo
return el mejor individuo
Genetic algorithm
function REPRODUCE( X, Y) returns un individuo
input: x,y, individuos padres
n ← LENGTH(x);
c ← número aleatorio de 1 a n
return APPEND (SUBSTRING(x,1,c), SUBSTRING(y,c+1,n))
8 15/10/12 Algoritmos genéticos y
aprendizaje en juegos
Fitness function: Se evalúa si conseguimos el objetivo o no. En este caso
El marciano tiene evaluación positiva si te mata o llega abajo, y negativa
si no llega.
Idea
¡  Diseñar un controlador, programas cortos escritos en
lenguajes sencillos que contienen instrucciones para
controlar las naves/asteroides
¡  P.E. Juego de 8 instrucciones
1.  Mueve hacia el jugador
2.  Alejar del jugador
3.  Mover en dirección +x (derecha de la pantalla)
4.  Mover en dirección –x (izquierda de la pantalla)
5.  Si la distancia al jugador es < 100 pixels, saltar siguiente
instrucción
6.  Si la distancia al jugador > 100 pixels, saltar siguiente
instrucción
7.  Si la distancia < 50 pixels saltar dos siguientes instrucciones
8.  Si la distancia > 50 pixels saltar dos siguientes instrucciones.
Idea
¡  Ejemplo de programa escrito a mano razonable para el
control de las naves enemigas (10 instrucciones/programa)
1.  Mueve hacia el jugador
2.  Mueve hacia el jugador
3. 
4. 
5. 
6. 
7. 
Si la distancia al jugador < 50 pixels, salta dos instrucciones
Mover en dirección –x (izquierda de la pantalla)
Mover en dirección +x (derecha de la pantalla)
Mueve hacia el jugador
Mueve hacia el jugador
8.  Si la distancia al jugador es < 100 pixels, salta siguiente
instrucción
9.  Mover en dirección +x (derecha de la pantalla)
10.  Mueve hacia el jugador
9 15/10/12 Juego
¡  Espacio de estados
¡  Programas: Secuencias de instrucciones que controlan las
naves enemigas
¡  Representación:
¡  8 instrucciones, con 3 bits (23)
¡  Programas de 10 instrucciones: 10*3= 30 bits (genes)
¡  Por ejemplo: 12 naves enemigas, el programa usa 12
“cromosomas”
¡  La función de fitness usa las siguientes estadísticas
¡  Distancia más cercana al jugador
¡  Distancia más lejana al jugador
¡  Distancia media al jugador
¡  Numero de veces que la nave es alcanzada y recreada
¡  Máxima velocidad
Búsqueda local en espacios
continuos
¡  Entorno Discretos vs. continuos
¡  La función sucesor produce infinitos estados
¡  ¿Como resolverlo?
¡  Discretizar la vecindad de cada estado.
¡  Utilizar la función gradiente para dirigir la búsqueda
local
x " x + #$f
¡  Método Newton-rhapson
& %f %f )
where $f = ' ,
,...*
( %x1 %x 2 +
!
Método de Newton
Raphson
¡  Para encontrar las raíces de una
ecuación (Isaac Newton 1642-1727)
¡  Si Xn es una estimación de la raíz,
Xn+1 es una estimación mejor. f ‘ es
derivada de la función en Xn.
la
Tangente=f(Xn)/(Xn-Xn+1)
¡ Método aproximado. Dejamos de iterar cuando
|Estimación actual –Estimación previa| < tolerancia
10 15/10/12 Inteligencia
Artificial
(30223) Grado en Ingeniería Informática
lección 5. Búsqueda local Sección 4.1 (AIMA)
11 
Descargar