Professional Documents
Culture Documents
Introduccin
Bsqueda Heurstica
Supone la existencia de una funcin de evaluacin que debe medir la distancia estimada al (a un) objetivo (h(n)) Esta funcin de evaluacin se utiliza para guiar el proceso haciendo que en cada momento se seleccione el estado o las operaciones ms prometedores No siempre se garantiza encontrar una solucin (de existir sta) No siempre se garantiza encontrar la solucin ms prxima (la que se encuentra a una distancia, nmero de operaciones menor) Existen mltiples algoritmos:
Branch and Bound, Best First Search A, A IDA Bsqueda local (Hill climbing, Simulated annealing, Alg. Genticos)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
1 / 31
Bsqueda Heurstica
Introduccin
Ramicacin y acotacin Generaliza BFS, DFS Se guarda para cada estado el coste (hasta el momento) de llegar desde el estado inicial a dicho estado. Guarda el coste mnimo global hasta el momento Deja de explorar una rama cuando su coste es mayor que el mnimo actual Si el coste de los nodos es uniforme equivale a una bsqueda por niveles
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
2 / 31
Bsqueda Heurstica
Introduccin
Bsqueda Heurstica
Heursticos
Operaciones: - situar un bloque libre en la mesa - situar un bloque libre sobre otro bloque libre
A H G
H G F E D C B A
Estado Final H1=8 H2= 28 (= 7+6+5+4+3+2+1)
Heurstico 1: - sumar 1 por cada bloque que est colocado sobre el bloque que debe - restar 1 si el bloque no est colocado sobre el que debe
F E D C
Heurstico 2: - si la estructura de apoyo es correcta sumar 1 por cada bloque de dicha estructura - si la estructura de apoyo no es correcta restar 1 por cada bloque de dicha estructura
B
Estado Inicial H1=4 H2=28
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
4 / 31
Bsqueda Heurstica
Heursticos
H A G F E D C G A B F
H1=6 H2=21 H1=4 H2=14
E D H A C B
H1=4 H2=16
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
5 / 31
Bsqueda Heurstica
Heursticos
Heursticos
2 1 7 8 6 3 4 5 1 8 7 6 2 3 4 5
Estado Inicial
Estado Final
Posibles heursticos (estimadores del coste a la solucin) h(n) = w (n) = #desclasicados h(n) = p(n) = suma de distancias a la posicin nal h(n) = p(n) + 3 s(n) donde s(n) se obtiene recorriendo las posiciones no centrales y si una cha no va seguida por su sucesora sumar 2, si hay cha en el centro sumar 1
c b e a (LSI-FIB-UPC) Inteligencia Articial Curso 2011/2012 6 / 31
Bsqueda Heurstica
Heursticos
Costes
ni nj
Coste de un arco
nj
c(ni , nj ) > 0 C=
j1 x =i
ni
Coste de un camino
c(nx , nx +1 )
C1 C2 ... Cl
ni
nj
l K (ni , nj ) = mink=1 Ck
Si Si Si Si
nj es un nodo terminal ni es un nodo inicial existen varios nodos terminales T = {t1 , . . . , tl } existen varios nodos iniciales S = {s1 , . . . , sl }
h (ni ) = K (ni , nj ) g (nj ) = K (ni , nj ) l h (ni ) = mink=1 K (ni , tk ) l g (nj ) = mink=1 K (sk , nj )
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
7 / 31
Bsqueda Heurstica
Bsqueda A
Bsqueda A
La funcin de evaluacin tiene dos componentes:
1 2
coste para ir desde el (un) inicio al nodo actual coste (estimado) para ir desde el nodo actual a una solucin
Bsqueda Heurstica
Bsqueda A
Bsqueda A
g(n)
n
f(n)=g(n)+h(n)
n
h(n)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
9 / 31
Bsqueda Heurstica
Bsqueda A
Bsqueda A
g(n)
n
f(n)=g(n)+h(n)
n
h(n)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
10 / 31
Bsqueda Heurstica
Bsqueda A
Bsqueda A
Con esta funcin podemos variar el comportamiento del algoritmo Si n h(n) = 0, todo estar controlado por g (estaremos en presencia de un algoritmo de Branch & Bound) Si n h(n) = 0 y adems el coste de todos los arcos es 1 estaremos realizando una bsqueda en anchura. Si dicho coste fuera 0, la bsqueda sera aleatoria Al ser h una estimacin del verdadero coste h , cuanto ms se aproxime h a h mayor ser la tendencia a explorar en profundidad. Si h = h entonces A converge directamente hacia el objetivo Se puede demostrar que si h(n) es un minorante del coste real h (n), es decir si n h(n) h (n) A encontrar (de haberlo) un camino ptimo.
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
11 / 31
Bsqueda Heurstica
Bsqueda A
El algoritmo A
Algoritmo: A* Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vaca?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) hos generar_sucesores (Actual) hos tratar_repetidos (Hos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hos) Actual Est_abiertos.primero() n La estructura de abiertos es una cola con prioridad La prioridad la marca la funcin de estimacin (f (n) = g(n) + h(n)) En cada iteracin se escoge el mejor camino (el primero de la cola) Es el mismo algoritmo que el Best First!
c b e a (LSI-FIB-UPC) Inteligencia Articial Curso 2011/2012 12 / 31
Bsqueda Heurstica
Bsqueda A
Tratamiento de repetidos
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
13 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
0+2 Abiertos 0+2 1+1 1+1 1+3 Cerrados
2+1
2+1
2+2
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 Abiertos 1+1 0+2 1+1 1+1 1+1 1+3 1+3 Cerrados 0+2
2+1
2+1
2+2
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 1+1 1+3 Abiertos 1+1 0+2 2+1 1+1 1+3 Cerrados 0+2 1+1
2+1
2+1
2+2
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 3 1+1 1+3 Abiertos 2+1 1+1 0+2 2+1 1+1 1+3 Cerrados 0+2 1+1 1+1
2+1
2+1
2+2
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 2+1 2+2 3 1+1 1+3 Abiertos 2+1 1+1 0+2 3+1 2+1 1+1 1+3 Cerrados 0+2 1+1 1+1 2+1
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 5 2+1 2+2 3 1+1 1+3 Abiertos 3+1 2+1 1+1 0+2 3+1 2+1 1+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+2
3+1
3+1
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 6 3+1 3+1 3+2 5 2+1 2+2 3 1+1 1+3 Abiertos 3+1 2+1 1+1 0+2 1+3 3+1 2+1 1+1 4+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+1
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 6 3+1 7 3+1 3+2 5 2+1 2+2 3 1+1 1+3 Abiertos 1+3 3+1 2+1 1+1 0+2 4+1 1+3 3+1 2+1 1+1 4+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+1 3+1
4+1
4+1 3+1
4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 6 3+1 7 3+1 3+2 5 2+1 2+2 3 1+1 8 1+3 Abiertos 2+2 1+3 3+1 2+1 1+1 0+2 4+1 1+3 3+1 2+1 1+1 4+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+1 3+1 1+3 4+1 4+1 3+1 4+1
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 6 3+1 7 3+1 3+2 5 2+1 3 1+1 9 2+2 8 1+3 Abiertos 2+2 1+3 3+1 2+1 1+1 0+2 4+1 1+3 3+1 2+1 1+1 3+2 4+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+1 3+1 1+3 4+1 4+1 3+1 4+1 2+2
5+0
4+0
5+0
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
14 / 31
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1 0+2 2 1+1 4 2+1 6 3+1 7 3+1 10 4+1 3+1 3+2 5 2+1 3 1+1 9 2+2 8 1+3 Abiertos 4+0 2+2 1+3 3+1 2+1 1+1 0+2 4+1 1+3 3+1 2+1 1+1 3+2 4+1 1+3 Cerrados 0+2 1+1 1+1 2+1 2+1 3+1 3+1 1+3 4+1 2+2 3+1 5+0 4+0 5+0
Inteligencia Articial Curso 2011/2012 14 / 31
4+1
c b e a (LSI-FIB-UPC)
Bsqueda Heurstica
Bsqueda A
A Ejemplo
Abiertos 1 0+2 2 1+1 4 2+1 6 3+1 7 3+1 10 4+1 3+1 11 4+0 3+2 3+1 1+3 4+1 4+1 2+2 3+1 5+0 5+0
Inteligencia Articial
4+1 4+0 2+2 1+3 3+1 2+1 1+1 0+2 3+2 4+1 1+3 3+1 2+1 1+1 8
3 1+1 5 2+1
1+3 9 2+2
2+1 3+1
4+0
Curso 2011/2012 14 / 31
c b e a (LSI-FIB-UPC)
Bsqueda Heurstica
Admisibilidad
El algoritmo A encontrar la solucin ptima dependiendo del heurstico Si el heurstico es admisible la optimalidad est asegurada Un heurstico es admisible si se cumple la siguiente propiedad n 0 h(n) h (n) Por lo tanto, h(n) ha de ser un estimador optimista, nunca ha de sobreestimar h (n)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
15 / 31
Bsqueda Heurstica
1 A 2 B
(1+2)
1 A
5 C
(1+3)
2 D
(1+5)
B
(1+2)
C
(1+4)
D
(1+5)
3 E
(2+2)
6 F
(2+2)
3 E
(2+2)
H
(2+0)
4 G
(3+1)
7 H
(3+1)
4 F
(3+1)
Objetivo
8 I
(4+1)
5 G
(4+0) Objetivo
J
(4+0) Objetivo
h subestima h h(B) = 2, que no es real, hemos perdido tiempo pero acabaremos explorando otro camino (C)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Bsqueda Heurstica
Condicin de Consistencia
h (ni ) = coste mnimo desde ni a t
h (nj ) = coste mnimo desde nj a t h (n) cumple desigualdad triangular h (ni ) k(ni , nj ) + h (nj ) La condicin de consistencia exige que h(n) se comporte como h (n) h(ni ) h(nj ) k(ni , nj ) h(n) consistente = h(n) estimador uniforme de h(n)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
17 / 31
Bsqueda Heurstica
Utilidad de la consistencia
h(n) consistente = g(n) = k(s, n) (camino ptimo a n) Si g(n) = k(s, n), dado que h(n) siempre es constante = f (n) es mnima En este caso no es necesario tratar los nodos duplicados cerrados ya que los nodos expandidos ya no se podrn reexpandir (hemos llegado a ellos por el camino mnimo)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
18 / 31
Bsqueda Heurstica
Algoritmos ms informados
Dado un problema, existen tantos A para resolverlo como estimadores podamos denir. Ms informado Para h1 y h2 admisibles, si se cumple n = nal 0 h2 (n) < h1 (n) h (n) Entonces A es ms informado que A 1 2 Si A es ms informado que A entonces si el nodo n es expandido 1 2 por A = n es expandido por A (pero no al revs) 1 2 Eso quiere decir que A expande menor nmero de nodos que A 1 2
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
19 / 31
Bsqueda Heurstica
Algoritmos ms informados
Nmero de reexpansiones
A puede que reexpanda ms nodos que A 1 2 Pero si A es consistente seguro que no lo har 1
Perdida de admisibilidad
Puede interesar trabajar con no admisibles para ganar rapidez Algoritmos A ( -admisibilidad)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
20 / 31
Bsqueda Heurstica
Inteligencia Articial
Bsqueda Heurstica
di
h3 h3 (n) = si =
i[1,8] di + 3 S(n) ; con S(n) = i[1,8] si 0 si pieza i no en el centro y sucesora correcta
1 si pieza i en el centro
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
22 / 31
Bsqueda Heurstica
Bsqueda Heurstica
Bsqueda IDA
0+2
(1,3,8)
Similar a ID (es decir iteracin de bsqueda en profundidad con un lmite en la bsqueda) En ID el lmite lo daba una cota mxima en la profundidad En IDA el lmite lo da una cota mxima sobre el valor de la funcin f Ojo! La bsqueda es una DFS normal y corriente, el heurstico f slo se utiliza para podar Empezamos con corte = f(inicial)
(2,4,9)
1+1
1+2
(6,12)
(5,10)
2+1
2+1
(7,13)
(11)
3+1
3+1
(14)
4+1
4+0
Objetivo
(15)
5+0
Objetivo
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
24 / 31
Bsqueda Heurstica
Algoritmo IDA
Algoritmo: IDA* (limite entero) prof f (Estado inicial) Actual Estado inicial mientras no es_nal?(Actual) y prof<limite hacer Est_abiertos.incializa() Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_nal?(Actual) y no Est_abiertos.vaca?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) Hos generar_sucesores (Actual, prof) Hos tratar_repetidos (Hos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hos) Actual Est_abiertos.primero() prof prof+1 La funcin generar_sucesores solo genera aquellos con una f menor o igual a la del limite de la iteracin La estructura de abiertos es ahora una pila (bsqueda en profundidad) Hemos de tener en cuenta que si tratamos los nodos repetidos el ahorro en espacio es nulo
c b e a (LSI-FIB-UPC) Inteligencia Articial Curso 2011/2012 25 / 31
Bsqueda Heurstica
Las reexpansiones de IDA pueden suponer un elevado coste temporal Existen algoritmos que por lo general reexpanden menos nodos Su funcionamiento se basa en eliminar los nodos menos prometedores y guardar informacin que permita reexpandirlos Ejemplos:
Best rst recursivo Memory Bound A (MA )
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
26 / 31
Bsqueda Heurstica
Es una implementacin del Best First recursiva con coste lineal en espacio O(rp) Olvida una rama cuando su coste supera la mejor alternativa El coste de la rama olvidada se almacena en el padre como su nuevo coste La rama es reexpandida si su coste vuelve a ser el mejor (regeneramos toda la rama olvidada)
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
27 / 31
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
28 / 31
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
18
12
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
2 18 8 12
18
11
19
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
2 18 8 3 18 11 19 12
17
20
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
2 18 8 3 18 17 19 12
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
2 18 17 12
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
2 18 17 12
20
21
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
5 18 17 20
18
17
19
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
5 18 17 6 18 17 19 20
17
20
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
5 18 17 6 18 7 17 20 17 19 20
17
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
5 18 17 6 18 7 17 8 17
c b e a (LSI-FIB-UPC)
20
17
19
20
Inteligencia Articial
Curso 2011/2012
29 / 31
Bsqueda Heurstica
Por lo general reexpande menos nodos que IDA El lmite de memoria (lineal en espacio) provoca muchas reexpansiones en ciertos problemas Al no poder controlar los repetidos su coste en tiempo puede elevarse si hay ciclos Solucin: Relajar la restriccin de memoria
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
30 / 31
Bsqueda Heurstica
Impone un lmite de memoria (nmero de nodos que se pueden almacenar, mayor que O(rp)) Exploramos usando A y almacenamos nodos mientras quepan en la memoria Cuando no quepan eliminamos los peores guardando el mejor coste de los descendientes olvidados Reexpandimos si los nodos olvidados son mejores El algoritmo es completo si el camino solucin cabe en memoria
c b e a (LSI-FIB-UPC)
Inteligencia Articial
Curso 2011/2012
31 / 31