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 Artificial
Curso 2011/2012
1 / 30
Bsqueda Heurstica
Introduccin
Ramificacin 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 Artificial
Curso 2011/2012
2 / 30
Bsqueda Heurstica
Introduccin
Inteligencia Artificial
Curso 2011/2012
3 / 30
Bsqueda Heurstica
Heursticos
Operaciones:
- situar un bloque libre en la mesa
- situar un bloque libre sobre otro bloque libre
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
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
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
B
Estado Inicial
H1=4
H2=28
A
Estado Final
H1=8
H2= 28 (= 7+6+5+4+3+2+1)
Curso 2011/2012
4 / 30
Bsqueda Heurstica
Heursticos
H
A
H1=4
H2=14
C
G
B
F
Estado Inicial
H1=4
H2=28
H1=6
H2=21
E
D
H
A
C
B
H1=4
H2=16
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
5 / 30
Bsqueda Heurstica
Heursticos
Heursticos
2
Estado Inicial
3
4
Estado Final
Inteligencia Artificial
Curso 2011/2012
6 / 30
Bsqueda Heurstica
Heursticos
Costes
ni
nj
Coste de un arco
nj
ni
Coste de un camino
c(ni , nj ) > 0
C=
Pj1
x =i
c(nx , nx +1 )
C1
ni
C2
nj
...
Cl
Si
Si
Si
Si
l
K (ni , nj ) = mink=1
Ck
nj es un nodo terminal
ni es un nodo inicial
existen varios nodos terminales T = {t1 , . . . , tl }
existen varios nodos iniciales S = {s1 , . . . , sl }
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
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 )
Curso 2011/2012
7 / 30
Bsqueda Heurstica
Bsqueda A
Bsqueda A
La funcin de evaluacin tiene dos componentes:
1
Inteligencia Artificial
Curso 2011/2012
8 / 30
Bsqueda Heurstica
Bsqueda A
Bsqueda A
g(n)
n
f(n)=g(n)+h(n)
n
c b e a (LSI-FIB-UPC)
h(n)
Inteligencia Artificial
Curso 2011/2012
9 / 30
Bsqueda Heurstica
Bsqueda A
Bsqueda A
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
10 / 30
Bsqueda Heurstica
Bsqueda A
El algoritmo A
Algoritmo: A*
Est_abiertos.insertar(Estado inicial)
Actual Est_abiertos.primero()
mientras no es_final?(Actual) y no Est_abiertos.vaca?() hacer
Est_abiertos.borrar_primero()
Est_cerrados.insertar(Actual)
hijos generar_sucesores (Actual)
hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos)
Est_abiertos.insertar(Hijos)
Actual Est_abiertos.primero()
fin
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 Artificial
Curso 2011/2012
11 / 30
Bsqueda Heurstica
Bsqueda A
Tratamiento de repetidos
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
12 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
Abiertos
0+2
Cerrados
0+2
1+1
1+1
1+3
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 Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
1+1
0+2
0+2
0+2
1+1
1+1
1+1
1+3
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)
1+3
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
0+2
1+1
2+1
1+1
0+2
2
1+1
1+1
1+3
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)
1+3
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
0+2
1+1
2+1
1+1
1+3
1+1
0+2
2
3
1+1
1+1
1+3
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 Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
0+2
1+1
2+1
3+1
1+1
1+3
1+1
0+2
2
3
1+1
1+1
1+3
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
2+1
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
3+1
0+2
1+1
2+1
3+1
1+1
1+3
1+1
0+2
2
3
1+1
1+1
1+3
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
2+1
c b e a (LSI-FIB-UPC)
2+1
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
3+1
0+2
1+1
2+1
3+1
1+3
1+1
1+3
4+1
1+1
0+2
2
3
1+1
1+1
1+3
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
2+1
2+1
3+1
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
3+1
1+3
0+2
1+1
2+1
3+1
1+3
4+1
1+1
1+3
4+1
1+1
0+2
2
3
1+1
1+1
1+3
2+1
2+2
2+1
5
2+1
2+1
3+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 Artificial
3+1
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
3+1
1+3
2+2
0+2
1+1
2+1
3+1
1+3
4+1
1+1
1+3
4+1
1+1
0+2
2
3
1+1
8
1+1
1+3
2+1
2+2
2+1
5
2+1
2+1
3+1
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
3+1
1+3
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
1+3
2+2
3+1
0+2
1+1
2+1
3+1
1+3
4+1
1+1
1+3
4+1
3+2
1+1
0+2
2
3
1+1
8
1+1
5
2+1
1+3
2+1
9
2+1
2+2
2+1
3+1
3+1
3+1
3+2
4+1
4+1 3+1
4+1
5+0
4+0
5+0
3+1
1+3
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
2+2
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
1
Abiertos
Cerrados
0+2
1+1
2+1
1+3
2+2
3+1
4+0
0+2
1+1
2+1
3+1
1+3
4+1
1+1
1+3
4+1
3+2
1+1
0+2
2
3
1+1
8
1+1
5
2+1
1+3
2+1
9
2+1
2+2
2+1
3+1
6
3+1
3+1
3+2
4+1
10
4+1 3+1
4+1
5+0
4+0
5+0
3+1
1+3
2+2
3+1
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Bsqueda A
A Ejemplo
Abiertos
Cerrados
0+2
1+1
2+1
1+3
2+2
3+1
4+0
4+1
0+2
1+1
2+1
3+1
1+3
4+1
3+2
1+1
1+3
4+1
3+2
1+1
1
0+2
2
3
1+1
8
1+1
1+3
2+1
4
5
2+1
9
2+1
2+1
2+2
3+1
7
6
3+1
3+1
4+1
10
4+1 3+1
3+2
3+1
1+3
4+1
2+2
3+1
5+0
11
4+0
c b e a (LSI-FIB-UPC)
5+0
Inteligencia Artificial
4+0
Curso 2011/2012
13 / 30
Bsqueda Heurstica
Admisibilidad
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
14 / 30
Bsqueda Heurstica
A
2
A
5
(1+2)
(1+3)
(1+5)
(1+2)
(1+4)
(1+5)
3
E
(2+2)
(2+2)
3
E
(2+2)
(2+0)
(3+1)
(3+1)
4
F
(3+1)
8
(4+1)
Objetivo
5
G
(4+0)
(4+0)
Objetivo
Objetivo
h subestima h
h sobreestima h
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
15 / 30
Bsqueda Heurstica
Condicin de Consistencia
h (ni ) = coste mnimo desde ni a t
ni
k(n i,nj )
nj
h*(n i)
c b e a (LSI-FIB-UPC)
h*(n j)
Inteligencia Artificial
Curso 2011/2012
16 / 30
Bsqueda Heurstica
Utilidad de la consistencia
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
17 / 30
Bsqueda Heurstica
Algoritmos ms informados
Dado un problema, existen tantos A para resolverlo como estimadores
podamos definir.
Ms informado
Para h1 y h2 admisibles, si se cumple
n 6= final 0 h2 (n) < h1 (n) h (n)
Entonces A1 es ms informado que A2
Si A1 es ms informado que A2 entonces si el nodo n es expandido
por A1 = n es expandido por A2 (pero no al revs)
Eso quiere decir que A1 expande menor nmero de nodos que A2
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
18 / 30
Bsqueda Heurstica
Algoritmos ms informados
Nmero de reexpansiones
A1 puede que reexpanda ms nodos que A2
Pero si A1 es consistente seguro que no lo har
Perdida de admisibilidad
Puede interesar trabajar con no admisibles para ganar rapidez
Algoritmos A (-admisibilidad)
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
19 / 30
Bsqueda Heurstica
3
4
h0
h0 (n) = 0
h1
h1 (n) = #piezas mal colocadas
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
20 / 30
Bsqueda Heurstica
i[1,8] di
di
h2 (n) =
h3
P
P
h3 (n) = i[1,8] di + 3 S(n) ; con S(n) = i[1,8] si
Inteligencia Artificial
Curso 2011/2012
21 / 30
Bsqueda Heurstica
Inteligencia Artificial
Curso 2011/2012
22 / 30
Bsqueda Heurstica
Bsqueda IDA
0+2
(1,3,8)
(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
(15)
Objetivo
5+0
Objetivo
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
23 / 30
Bsqueda Heurstica
Algoritmo IDA
Algoritmo: IDA* (limite entero)
prof f (Estado inicial)
Actual Estado inicial
mientras no es_final?(Actual) y prof<limite hacer
Est_abiertos.incializa()
Est_abiertos.insertar(Estado inicial)
Actual Est_abiertos.primero()
mientras no es_final?(Actual) y no Est_abiertos.vaca?() hacer
Est_abiertos.borrar_primero()
Est_cerrados.insertar(Actual)
Hijos generar_sucesores (Actual, prof)
Hijos tratar_repetidos (Hijos, Est_cerrados, Est_abiertos)
Est_abiertos.insertar(Hijos)
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 Artificial
Curso 2011/2012
24 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
25 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
26 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
27 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
18
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
12
Curso 2011/2012
28 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
18
12
18
11
19
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
2
18
12
3
18
11
17
c b e a (LSI-FIB-UPC)
19
20
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
2
18
12
3
18
c b e a (LSI-FIB-UPC)
17
Inteligencia Artificial
19
Curso 2011/2012
28 / 30
Bsqueda Heurstica
2
18
c b e a (LSI-FIB-UPC)
17
Inteligencia Artificial
12
Curso 2011/2012
28 / 30
Bsqueda Heurstica
2
18
17
4
12
20
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
21
Curso 2011/2012
28 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
18
17
20
18
17
19
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
5
18
17
20
6
18
17
17
c b e a (LSI-FIB-UPC)
19
20
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
5
18
17
20
6
18
17
19
7
17
20
17
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
5
18
17
20
6
18
17
19
7
17
20
8
17
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
28 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
29 / 30
Bsqueda Heurstica
c b e a (LSI-FIB-UPC)
Inteligencia Artificial
Curso 2011/2012
30 / 30