B squeda heur stica II

Anuncio
Inteligencia Artificial
Búsqueda Heurística
(2ª parte)
Ingeniería Informática, 4º
Curso académico: 2011/2012
Profesores: Ramón Hermoso y Matteo Vasirani
–1–
Inteligencia Artificial
4º Ing. Sup. Inf
Tema 2: Agentes basados en Búsqueda
Resumen:
2. Agentes basados en búsqueda
2.1. Búsqueda en espacios de estados
2.2 Búsqueda no-informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
2.5. Búsqueda con espacios estructurados
–2–
Inteligencia Artificial
4º Ing. Sup. Inf
Búsqueda heurística
Funciones heurísticas:
•  h *(n): estimación del coste real del plan (camino) de mínimo coste que lleva de n
a un nodo meta
•  f *(n) = g(n)+h*(n): estimación del coste real del plan (camino) de mínimo coste
que lleva del estado inicial a un nodo meta pasando por n
Algoritmo A* :
•  entre las hojas del árbol de búsqueda, elegir el nodo de valor f * mínimo
•  óptimo para funciones heurísticas h * consistentes
Problema :
•  ¿ Es óptimo también para funciones heurísticas h * optimistas ?
•  ¿ Cuales son las condiciones para que el algoritmo A* sea completo ?
–3–
Inteligencia Artificial
4º Ing. Sup. Inf
Cota de f * con función heurística optimista
Lema 2: Sea camino_a(nm) el conjunto de nodos en el camino desde la raíz a un
un nodo meta nm cualquiera. Si h* es optimista, entonces para todos los
nodos nj∈camino_a (nm) se verifica que
f *(nj ) ≤ f *(nm )
Prueba:
f*(nm) = g(nm)+h*(nm) = g(nm)
(dado que h* es optimista)
= c(ni,n2)+...+c(nj-1,nj)+c(nj,nj+1)+...+c(nm-1,nm) (definición de g)
f*(nm) ≥ c(n1,n2)+...+c(nj-1,nj)+h(nj)
(definición de h)
f*(nm) ≥ c(n1,n2)+...+c(nj-1,nj)+h*(nj)
(dado que h* es optimista)
f*(nm) ≥ g(nj)+h*(nj)
(definición de g y f *)
f*(nm) ≥ f*(nj).
–4–
Inteligencia Artificial
4º Ing. Sup. Inf
Valores de f * en árboles de búsqueda A*
f*
f*
(a) variable
f *(nj)
(b) acotado por f *(nm)
f *(nm)
n1
nj
h* optimista
(nodos cualesquiera)
f*
(c) monótono creciente
f *(nj)
n1
h* optimista
(nodos meta)
nj
nj
n1
h* consistente
Corolario 2: Sea nm el mejor nodo meta, y camino_a(ni) el conjunto de nodos
nj en el camino desde la raíz a un nodo ni cualquiera (ni incluido). Si h* es
optimista, entonces el algoritmo A * expande todos los nodos ni tal que
∀nj ∈camino_a (ni). f *(nj ) ≤ f *(nm )
–5–
Inteligencia Artificial
4º Ing. Sup. Inf
Optimalidad de A*
Teorema 1: Si h* es optimista, entonces el método A* es óptimo
Prueba:
Sean nm1 y nm2 dos nodos meta cualesquiera distintos, y nm1 el nodo meta de menor coste
(es decir: g(nm1)<g(nm2)).
1.  f*(nm1) = g(nm1)+h*(nm1) =g(nm1)+0 y
f*(nm2) = g(nm2)+h*(nm2) =g(nm2)+0
Con la suposición se sigue que f*(nm1) < f*(nm2)
(por las definiciones de f* y g
y dado que h* es optimista)
2.  Supongamos que nm2 se encuentra antes que nm1. Puesto que el algoritmo A* expande los
nodos del árbol por valores crecientes de f *, debe existir un nodo ni ∈ camino_a(nm1)
tal que f*(nm2) ≤ f*(ni) .
3.  Pero por el lema 2 y (1) sabemos que ∀ nj ∈ camino_a(nm1). f*(nj) ≤ f*(nm1) < f*(nm2).
Contradicción (no puede existir el nodo ni de (2))
4. Por tanto, para cualesquiera dos nodos meta, A* encuentra el de menor coste antes,
lo que implica que es óptimo.
–6–
Inteligencia Artificial
4º Ing. Sup. Inf
Completitud de A*
Teorema 2: El método A* es completo
Prueba:
•  sea nm un nodo meta y camino_a(nm) el conjunto de nodos en el camino de
la raíz a nm. Suponga que nm no es encontrado por el método A*
–  ya que el número de sucesores de un nodo es finito, debe haber un camino
infinito p, tal que se expanden todos los nodos ni de p antes de nm
–  la secuencia de valores de g a lo largo de p aumenta estrictamente (el coste de
los operadores es > 0) y dado que por definición h *(n) ≥ 0, existe algún nk en
p con f * (nk ) = g (nk ) + h* (nk ) >
[ f * (n j )]
max
n j ∈ca min o _ a ( nm )
–  el algoritmo expande los nodos sucesivamente por valores de f * crecientes,
por lo que todos los nodos en el camino a nm (incluido nm) son expandidos
antes que el nodo nk
•  contradicción; en consecuencia, el método A* encuentra el nodo meta ng
–7–
Inteligencia Artificial
4º Ing. Sup. Inf
Encontrar Funciones Heurísticas: Aprendizaje
Idea: generar información heurística sobre la marcha
•  realizar varias búsquedas (ligeramente diferentes) en el mismo dominio
(p.e. siempre a Bucarest, pero desde diferentes ciudades iniciales)
•  En cada paso de una búsqueda, usar el coste real de un paso parar mejorar el valor de h*
•  En la próxima búsqueda se utilizan los valores de h* actualizadas
Método:
•  Inicialmente, se realiza una búsqueda con h*(n) = 0 para todos los nodos n
*
•  En cada paso de ni a nj: h (ni ) ←
min
n j ∈expandir ( ni )
[h (n ) + c(n , n )]
*
j
i
j
•  Al visitar un nodo por segunda vez, se utilizan los valores de h* actualizadas
Problema:
•  Hay que almacenar los valores h* de todos los nodos en una tabla (memoria!)
–8–
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: A* con Aprendizaje de una Función Heurística
A
140
S
75
118
fL * = 140+0
= 140
fL * = 118+0
= 118
80
151
140
R
fL*=220+0
=220
80
S
+75 fL*= 291
+0
+142
= 355
= 433
291
97
fL*=300
+80
=380
Z
75
71
A
Ff * = 239+0 L
L
fL * = 75+0
= 75
118
111
99
AfL*= 280O
Ejemplo: ir de A a L
Inicialmente hL*(n) = 0 para todo nodo n
fL * = 0+0
=0
fL *=229+0 fL
=229
=311
= 239
71
146
P
O
*=236+75
Z
fL*=317
fL*=366
C
+0
+0
=317
=366
fL*=217
+71
=288
fL*=146+0 fL * = 150+75
= 146 A
= 225
140
151
S
fL*=297
+80
=377
S
118
75
fL*=290
fL*=225
fL*=268
+80 Z
+71 T
+111
=370
=296
=379
n
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
U
V
Z
hL*
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 0 0 0
97 80 111
0
0
75
146
142
–9–
S
T
71
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: A* con Aprendizaje de una Función Heurística
Ejemplo: ir de Z a L
Inicialmente hL*(n) aprendido anteriormente
fL * = 0+71
= 71
Z
71
75
A
fL * = 75+146
= 221
140
S
80
R
fL*=295+97
=392
140
A
fL * = 71+142
= 213
75
118
fL * = 215+80
= 295
Z
F
fL*= 355 fL*= 366 fL* = 314+0
= 314
+220
+231
= 575
= 597
fL*=142
+213
=355
118
111
151
151
71
fL * = 193+111
Z fL * ==150+213
= 304
363
99
O
O
L
A
S
*=222
ffLL*=222
+99
+80
=321
=302
fL *=304+0 fL *=311+220
=304
=531
n
A
B C
D
E
F
G
H
I
L M N O
P R
S
hL*
146
0 0
0
0
0
0
0
0
0 0
0
80 111
220
0 142
231
– 10 –
97
T
99 111
U V Z
0 0
71
213
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: A* con Aprendizaje de una Función Heurística
Ejemplo: ir de A a L
Inicialmente hL*(n) aprendido anteriormente
A
fL * = 0+220
= 220
140
75
118
S
fL * = 140+99
= 239
fL * = 118+111
fL * = 75+213
Z
= 229
= 288
118
111
L
A
fL *=229+0 fL *=236+229
=229
=465
n
A
B C
D
E
F
G
H
I
L M N O
P R
S
hL*
220
0 0
0
0
0
0
0
0
0 0
0
99 111
229
0 231
97
T
U V Z
0 0 213
111
– 11 –
Inteligencia Artificial
4º Ing. Sup. Inf
Encontrar de Funciones Heurísticas: Diseño
El problema del 8-puzzle:
Estado inicial
•  Estados:
–  posición de cada una de las piezas
•  Operadores:
–  mover pieza adyacente a la posición
del hueco
–  de 2 a 4 operadores aplicables,
según el estado
2
7
3
1
8
4
6
Estado meta
1
•  Coste:
–  La aplicación de cada operador vale
una unidad
– 12 –
5
2
8
7
3
4
6
5
Inteligencia Artificial
4º Ing. Sup. Inf
Encontrar de Funciones Heurísticas: Diseño
Estado inicial
2
7
3
1
8
4
6
5
Estado meta
1
2
3
•  Problemas relajados:
–  menos restricciones para cada operador
–  h*: distancia h exacta en el problema relajado
•  8 Puzzle: una pieza puede moverse de A a B...
a) siempre
b) si B está vació
c) si A es adyacente a B
•  Funciones heurísticas:
a) número de piezas descolocadas
–  ha*(s0) = 5
8
7
4
6
5
b) suma de saltos necesarios
–  hb*(s0) = 5
c) suma de las distancias de Manhattan
–  hc*(s0) = 1+1+1+3+1=7
– 13 –
Inteligencia Artificial
4º Ing. Sup. Inf
Calidad de las Funciones Heurísticas
Definición:
Sean h1* y h2* dos funciones heurísticas optimistas.
h1* es más informada que h2*, si para todo nodo n se cumple que
h1*(n ) ≥ h2*(n )
Ejemplo:
•  en el 8-puzzle, hc* es más informada que ha*
–  las piezas bien colocadas no cuenta en ha* ni en hc*
–  la distancia Manhattan de cada pieza descolocada es al menos 1
–  en consecuencia, en toda posible configuración n del 8-puzzle la suma de
las distancias es igual o mayor que la suma de piezas descolocadas
–  para todas las configuraciones n se cumple hc*(n ) ≥ ha*(n )
– 14 –
Inteligencia Artificial
4º Ing. Sup. Inf
Calidad de las Funciones Heurísticas
Teorema: Sean h1* y h2* dos funciones heurísticas optimistas. Si h1* es más informada
que h2*, entonces A*(h2* ) expande al menos tantos nodos como A*(h1* )
Prueba:
!
1. Para el mejor nodo meta nm se cumple que f *(nm) = f1*(nm) = f2*(nm)
2. Ya que h1* es más informada que h2*, para todos los nodos n se cumple que
h1*(n ) ≥ h2*(n ), y por tanto f1*(n ) ≥ f2*(n )
3. Por (1) y el corolario 2 se sigue que
– 
– 
A*(h1* ) expande todos los nodos ni tal que ∀nj ∈camino_a(ni). f1*(nj ) ≤ f *(nm )
A*(h2* ) expande todos los nodos ni tal que ∀nj ∈camino_a(ni). f2*(nj ) ≤ f *(nm )
4.  Por (2), se verifica que f1*(nj ) ≤ f *(nm ) → f2*(nj ) ≤ f *(nm )
5. Por (3) y (4) se concluye que cualquier nodo expandido por A*(h1*) también
será expandido por A*(h2* )
Conclusión:
•  preferir grandes valores de h*, siempre que se mantenga optimista
•  si hay varias funciones heurísticas optimistas:
h* (n) = max h1* (n), h2* (n),…, hm* (n)
(
)
– 15 –
Inteligencia Artificial
4º Ing. Sup. Inf
Complejidad de A*
El número de nodos expandidos por A* depende de la precisión de h*:
•  si h*(n) = h(n) para todos los nodos n:
–  información completa: complejidad lineal (sin contar la complejidad de computar h*!)
–  calcular h*(n) suele equivaler a resolver el problema completo
•  si h*(n) = 0 para todos los nodos n:
–  A* degenera a la búsqueda de coste uniforme
•  resultados generales (véase [Russell y Norvig, 2003]):
–  en el peor caso, A* es lineal sólo si para todos los nodos n,
| h (n) – h*(n) | ≤ O(c)
–  en el peor caso, A* es polinomial sólo si para todos los nodos n,
| h (n) – h*(n) | ≤ O(log h(n))
–  en escenarios reales, el error heurístico |h (n) – h*(n) | crece, al menos, de forma
proporcional al coste h (n)
–  aún así, suele haber una mejora notable en comparación con métodos no informados
– 16 –
Inteligencia Artificial
4º Ing. Sup. Inf
Resultados experimentales
Comparación experimental:
•  número de nodos expandidos en el problema del 8-puzzle
•  varias profundidades d de la solución
•  media sobre 100 instancias del problema
d
prof. iterativa
2
4
6
8
10
12
14
16
18
20
22
24
10
112
680
6.384
47.127
3.644.035
—
—
—
—
—
—
A*(ha)
6
13
20
39
93
227
539
1.301
3.056
7.276
18.094
39.135
– 17 –
A*(hc)
6
12
18
25
39
73
113
211
363
676
1.219
1.641
Inteligencia Artificial
4º Ing. Sup. Inf
Mejoras de A*
Mejoras respetando la optimalidad:
•  atacar el problema de la complejidad en memoria de A*
•  transferir ideas de la búsqueda de profundización iterativa, equilibrando
expansión repetida de nodos y almacenamiento de nodos en memoria
–  Korf (1985): IDA* (Iterative Deepening A* )
[Russell y Norvig (1ª ed.), Nilsson, pág.138]
–  Russell (1992): SMA* (Simplified Memory-bounded A* )
[Russell y Norvig, pág.104]
–  Korf (1992): RBFS (Recursive Best First Search)
[Nilsson, pág.139; Russell y Norvig, págs.101-103]
– 18 –
Inteligencia Artificial
4º Ing. Sup. Inf
Mejoras de A*
Mejoras usando heurísticas fuertes:
•  idea: acotar el espacio de búsqueda con información heurística
•  búsqueda guiada por subobjetivos (island-driven search):
–  elegir estados (subobjetivos, islas ) i1,…,in por los que se supone que una
solución ha de pasar (p.e. puertos)
–  realizar búsquedas A* del estado inicial n0 a i1, de i1 a i2,…,
y de in a la meta ng
•  búsqueda jerárquica:
–  macro-operadores representan acciones complejas y ficticias
(p.e. ir de puerto a puerto )
–  realizar búsqueda A* a meta-nivel con macro-operadores: los estados de la
solución son los subobjetivos
–  refinar la solución anterior en base a la búsqueda guiada por subobjetivos
– 19 –
Inteligencia Artificial
4º Ing. Sup. Inf
Búsqueda en línea
Búsqueda en línea (online search):
•  engranar búsqueda (elección de acciones) y acción/percepción
•  necesario cuando:
–  el espacio de búsqueda es demasiado grande para buscar hasta la
solución (y no se puede aplicar las técnicas anteriores)
–  no es realista usar un modelo determinista de los efectos de acciones
•  por frecuentes contingencias (p.e.: a veces el brazo deja caer un bloque)
•  porque no se dispone de un modelo del entorno (p.e.: un mapa )
•  medida de eficiencia:
–  en general, no se puede asegurar optimalidad ni completitud
del camino real del agente
–  minimizar el índice competitivo = CosteCoste
del camino óptimo
–  el índice competitivo puede ser infinito, particularmente cuando hay
acciones que no son reversibles
– 20 –
Inteligencia Artificial
4º Ing. Sup. Inf
Búsqueda con horizonte
Búsqueda con horizonte (limited-horizon search):
•  Idea subyacente:
–  la primera acción de un plan que lleva a un nodo con una evaluación heurística
óptima, tiene una buena probabilidad de pertenecer al camino (óptimo) al objetivo
•  Algoritmo:
–  Percibir el estado actual s
–  Aplicar búsqueda en profundidad limitada por el nivel k y nodos metas.
Sea H el conjunto de hojas del árbol de búsqueda correspondiente.
–  Determinar el nodo hoja n* de menor valor de f *: n* ← arg min f * (n)
n∈H
–  Ejecutar la primera acción a* en el camino que lleva a n*
–  Repetir hasta que el agente se encuentra en un estado meta
[
]
•  Optimización mediante podas α (para h* consistente)
–  Sea H el conjunto de hojas del árbol de búsqueda desarrollado hasta el momento.
Mantener un valor de corte α tal que α ← min[ f * (n)]
n∈H ʹ′
–  Abandonar cualquier rama a partir de un nodo n con f *(n) > α
– 21 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Búsqueda con horizonte
estado actual s = A
horizonte k = 3
filtrando ciclos simples
A
S
F
f* =
= 393
O
f * = 0+366
= 366
140+253
T
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
R
f * = 239+178 f * = 291+380
= 417
= 671
k=3
α = 413
– 22 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Búsqueda con horizonte
estado actual s = S
horizonte k = 3
filtrando ciclos simples
A
T
f * = 140+366
= 506
f * = 258+329
= 587
Z
f * = 215+374
= 589
S
F
f * = 0+253
= 253
f * = 99+178
= 277
O
f * = 151+380
= 531
C
B
R
f * = 226+160
= 386
f * = 80+193
= 273
P
f * = 177+98
= 275
f * = 310+0
= 310
k=3
α = 587
α = 310
– 23 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Búsqueda con horizonte
estado actual s = R
horizonte k = 3
filtrando ciclos simples
R
C
D
f* =
= 306
f * = 0+193
= 193
146+160
P
P
f * = 266+242 f * = 284+98
= 508
= 382
f * = 97+98
= 195
B
f
*=
198+0
= 198
S
f * = 80+253
= 333
C
f * = 235+160
= 395
k=3
α = 382
α = 198
– 24 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Búsqueda con horizonte
estado actual s = R
horizonte k = 3
filtrando ciclos simples
P
B
f* =
101+0
= 101
f * = 0+98
= 98
C
f * = 138+160
= 298
R
f * = 97+193
= 290
k=3
– 25 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejercicio 4.1
Estado inicial
1
2
6
4
8
7
3
5
Estado meta
1
2
8
7
3
4
6
5
Heurísticas A* :
Considere el 8-puzzle cuyo estado inicial y
estado meta se muestran al lado:
a)desarrolle el árbol de búsqueda del
algoritmo A* usando la heurística ha*
(número de piezas descolocadas)
b)desarrolle el árbol de búsqueda del
algoritmo A* usando la heurística hc*
(suma de distancias Manhattan)
c)¿Cuál de las heurística expande menos
nodos? ¿Por qué? ¿Puede sacar una
conclusión general con respecto a la
calidad de la funciones heurísticas?
– 26 –
Inteligencia Artificial
4º Ing. Sup. Inf
Descargar