Download pdf - 3.leccion5 BúsquedaLocal

Transcript

15/10/12  

1  

Curso 2012-2013 José Ángel Bañares 2/10/2013. Dpto. Informática e Ingeniería de Sistemas.

Inteligencia Artificial (30223) Lección 5. Búsqueda local

Í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

15/10/12  

2  

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

15/10/12  

3  

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

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

“Como escalar el Everest en una espesa niebla con amnesia”

15/10/12  

4  

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

11

Ejemplo Hill-climbing example

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

a) b)

3 4

2

3

2 2

1

0

0

0

0

1

0

0

0

0

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

15/10/12  

5  

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.

15/10/12  

6  

TLo (IRIDIA) 16 octubre 15, 2012

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.

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

15/10/12  

7  

19

Algoritmos genéticos ¡ Variante de local beam search con

recombinación sexual.

20

Algoritmos genéticos = stochastic local beam search + generación de sucesores a partir de parejas de estados.

21

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

15/10/12  

8  

22

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.

8 7 6 5 4 3 2 1

8 7 6 5 4 3 2 1

6

5

4

3

3

2

0

6+5+4+3+3+2+0=23

6

5

4

4

3

1

1

6+5+4+3+1+1+0=24

24 23 20 11 ---- 78

24/78=31%

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

15/10/12  

9  

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.  Si la distancia al jugador < 50 pixels, salta dos instrucciones 4.  Mover en dirección –x (izquierda de la pantalla) 5.  Mover en dirección +x (derecha de la pantalla) 6.  Mueve hacia el jugador 7.  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

15/10/12  

10  

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

¡  Método Newton-rhapson

!

x" x +#$f where $f =%f%x1, %f%x2

,...& ' (

) * +

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 la derivada de la función en Xn. Tangente=f(Xn)/(Xn-Xn+1)

¡ Método aproximado. Dejamos de iterar cuando |Estimación actual –Estimación previa| < tolerancia

15/10/12  

11  

Inteligencia Artificial

(30223) Grado en Ingeniería Informática

lección 5. Búsqueda local Sección 4.1 (AIMA)


Recommended