(Best-First Search)
Simulated annealing
2
Haz Local
Objetivos
Al finalizar este tema el alumno deber ser capaz de: 1. Definir funciones heursticas apropiadas a los problemas planteados. 2. Aplicar los algoritmos de b. heurstica. 3. Aplicar los algoritmos de b. local 4. Evaluar las ventajas de cada mtodo. 5. Seleccionar la mejor estrategia de acuerdo a las caractersticas del problema.
h1 = n de piezas mal colocadas h1(x) = fichas(1,2,6,7,8)=5 h2 = suma de las distancias de Manhattan de las posiciones a sus objetivos. La distancia de Manhattan es el n de filas y columnas que restan de la posicin actual de una pieza a su posicin final. Por ejemplo, la distancia Manhattan de la pieza 2 sera de 1, de la pieza 5 sera 0, etc.
5
h2(x) = 1+1+0+0+0+2+1+1=6
f(n)
Evaluar si el estado-actual es el mejor estado para seguir expandiendo el rbol o grafo de bsqueda Normalmente se establece el criterio de elegir el nodo con la f(n) ms baja, de tal manera que la funcin heurstica cumpla: h(objetivo) = 0
f(B) C
f(C)
h(B)
h(C)
Objetivo
Bsqueda Voraz o Avara (Greedy search) Algoritmo A* Mejoras al Algoritmo A* 2. FUNCIONES HEURSTICAS Propiedades 3. BSQUEDA LOCAL Bsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
Simulated annealing
8
Haz Local
Trata de expandir el nodo ms cercano al objetivo minimizar el coste estimado para alcanzar el estado final Funcin Heurstica h(n) estima el coste del camino del nodo n al estado final Selecciona de la lista ABIERTOS el nodo con el menor valor de
f(n)
10
11
h(n) realiza una estimacin del camino ms barato a Bucarest desdede Bsqueda Avara Ejemplo Arad: distancia en lnea recta Total recorrido=140+99+211 = 450
12
Algoritmo A*
La funcin de evaluacin f(n) calcula el coste estimado ms barato a travs del nodo n a la solucin:
objetivo.
f(n) = h(n)
Algoritmo A*
14
Funcin de evaluacin en A*
A
g(B)
B
g(C)
C
Objetivo
15
g(n) : distancia del origen a un nodo Ejemplo A* h(n) : distancia en lnea recta de una ciudad a Bucarest
ES MEJOR !
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3.
4. FIN
17
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS Nil Y First(ABIERTOS) Objetivo) a) actual:= First(ABIERTOS) b) CERRADOS:= {CERRADOS + actual} c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(ABIERTOS)==Objetivo) entonces Devolver Solucin si_no Devolver Fallo FIN
18
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS Nil Y First(ABIERTOS) Objetivo) a) actual:= First(ABIERTOS) b) CERRADOS:= {CERRADOS + actual} c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solucin si_no Devolver Fallo FIN
19
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS Nil Y First(ABIERTOS) Objetivo) a) actual:= First(ABIERTOS) b) CERRADOS:= {CERRADOS + actual} c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solucin si_no Devolver Fallo FIN
20
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS Nil Y First(ABIERTOS) Objetivo) a) actual:= First(ABIERTOS) b) CERRADOS:= {CERRADOS + actual} c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solucin si_no Devolver Fallo FIN
21
Algoritmo A*
1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS Nil Y First(ABIERTOS) Objetivo) a) actual:= First(ABIERTOS) b) CERRADOS:= {CERRADOS + actual} c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solucin si_no Devolver Fallo FIN
22
Ejercicio Genrico
Aplica B. Voraz y A* g(nodo)=valores en los arcos h(nodo)=valores dentro del nodo
23
24
Rendimiento de A*
Completo: cuando elimina los estados repetidos ptimo: cuando h es admisible (h nunca sobreestima el coste real de alcanzar la meta) Complejidad en tiempo: n de nodos generados O(bm) Complejidad en espacio: longitud mxima que puede alcanzar la lista de estados almacenada en memoria O(bm)
25
26
27
28
Bsqueda Voraz o Avara (Greedy search) Algoritmo A* Mejoras al Algoritmo A* 2. FUNCIONES HEURSTICAS Propiedades 3. BSQUEDA LOCAL Bsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
Simulated annealing
29
Haz Local
Admisibilidad
Admisibilidad: Una heurstica admisible es una funcin que nunca sobrestima el coste real de alcanzar el estado final. P.ej. Distancia en lnea recta Optimalidad: Si la funcin heurstica h es admisible, el algoritmo de bsqueda encontrar el camino ms barato hacia la solucin en el mnimo de pasos. A* es ptimo si h es admisible (con rboles de bsqueda): porque f(n)=g(n)+h(n) nunca sobrestima el coste actual de la mejor solucin hacia n
30
Demostracin A* es ptimo
G1: objetivo ptimo
h(G1) =0 f(G1)=g(G1)+h(n) C* C* Coste Mnimo
A
f(n)
n B
f(G2)
G2 G2
Objetivo Subptimo
G1 Objetivo G1
ptimo
31
n es un nodo en el camino de la solucin ptima f(n) MENOR O IGUAL que C* f(n)=g(n)+h(n) <= C* h admisible A* nunca seleccionar el nodo G2 porque f(n) C* < f(G2)
Consistencia
Optimalidad en Grafos Desechar camino ms caro Asegurar que se sigue el camino ptimo a cualquier estado repetido. Una funcin heurstica es consistente:
32
Bucarest
34
Relajacin de Precondiciones
Una ficha puede moverse del cuadrado A al cuadrado B si: A y B son adyacentes B est vaca Problemas relajados: Si no son adyacentes cualquier ficha del tablero puede moverse al hueco
h1 = n de piezas mal colocadas
Una ficha se puede mover a una ficha adyacente que no est vaca
h2 = distancias de Manhattan de las posiciones a sus objetivos
35
h1 = n de piezas mal colocadas h1(x) = fichas(1,2,6,7,8)=5 h2 = suma de las distancias de Manhattan de las posiciones a sus objetivos. La distancia de Manhattan es el n de filas y columnas que restan de la posicin actual de una pieza a su posicin final. Por ejemplo, la distancia Manhattan de la pieza 2 sera de 1, de la pieza 5 sera 0, etc.
36
h2(x) = 1+1+0+0+0+2+1+1=6
Bsqueda Voraz (Greedy search) Algoritmo A* Algoritmos Iterativos o de Bsqueda Local Bsqueda en escalada o Gradiente
(Hill-climbing or Gradient ascent/descent)
38
39
Bsqueda en Escalada
Se generan los sucesores de un estado n y sea m, el de mayor f(m). Si f(m)>f(n) devuelve m como expansin. Sigue el recorrido a travs de los nodos en los que el valor de dicha funcin sea mximo (cuesta arriba). No mantiene un rbol de bsqueda, tan solo una estructura con el estado y el valor de la funcin objetivo. La B. en Escalada slo mira a los vecinos inmediatos al estado actual. Termina cuando alcanza un pico donde ningn vecino tiene un valor ms alto.
40
Algoritmo B. en Escalada
La lista de ABIERTOS slo mantendra un nico estado despus de aplicar los operadores a actual
vecino:=sucesor de actual con f mayor si f(vecino) f(actual) entonces ABIERTOS:= actual si no ABIERTOS:= vecino
41
Problemas
llanura Mximo global
42
43
Colocar n reinas sobre un tablero de n x n, sin que queden dos reinas en la misma columna, o diagonal Mover una reina para reducir el nmero de conflictos
44
Referencias
Russell & Norvig : Captulo 3 Realiza un repaso a las tcnicas de bsqueda no informada, analizando el rendimiento de cada solucin y planteando alternativas menos costosas. Adems plantea el tratamiento de los estados repetidos, el cual se puede aplicar a cualquier estrategia seleccionada.
45
Referencias Bibliogrficas
Inteligencia Artificial: Un Enfoque Moderno. S. Russell y P. Norvig, 2005 Problemas Resueltos de IA Aplicada. Bsqueda y Representacin. Fernndez et al. (2003)
46