11
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

3.leccion5 BúsquedaLocal

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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)