1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin...
-
Upload
francisco-fosco -
Category
Documents
-
view
254 -
download
1
Transcript of 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin...
1
Búsqueda heurística
2
Búsqueda “mejor el primero”
Las estrategias de búsqueda sin información suelen ser muy ineficientes.
Búsqueda “mejor el primero”» Función de evaluación (eval-fn):
– Mide “lo deseable” de expandir un nodo
» Algoritmo: function BEST-FIRST-SEARCH(problem, eval-fn)
returns a solution sequence
inputs: problem, a problem
eval-fn, an evaluation function
queueing-fn <-- a function that orders by
increasing eval-fn
return
GENERAL-SEARCH(problem, queueing-fn)
3
Búsqueda avara, I
Es una búsqueda “mejor el primero” con eval-fn(nodo)=h(nodo). » Función heurística (h)
– Origen: exclamación de Arquímedes, “heureka”, tras el descubrimiento de su principio
» Algoritmo:function GREEDY-SEARCH(problem)
returns a solution or failure
return BEST-FIRST-SEARCH(problem, h)
h(nodo)=coste estimado del camino más corto desde un nodo hasta el objetivo.» Todas las funciones heurísticas deben
cumplir al menos: – h(n)>=0, para todo nodo n– h(n)=0, si “n” es un nodo objetivo
4
Búsqueda avara, II
Ejemplo: Mapa de carreteras– Viajar desde Arad hasta Bucarest– Solución obtenida por búsqueda avara:
Nodos expandidos Encuentra el camino » “Arad, Sibiu, Fagaras, Bucharest”,
No es óptima: Es más corto » “Arad, Sibiu, Rimnicu, Pitesti, Bucharest”
La búsqueda avara suele encontrar soluciones rápidamente » No suelen ser óptimas» No siempre se encuentran (ciclos)
– Ej. de situación anómala: Ir de Iasi a Fagaras. Si no eliminamos repeticiones se entra en un ciclo.
fig04_02.ps
IV
N I
5
Búsqueda avara, IV
En resumen:» No es óptimo ni completo.» En el peor caso:
– Complejidad temporal:
– Complejidad espacial: Se almacenan todos los nodos en memoria m=máxima profundidad del árbol de
búsqueda
)( mbO
)( mbO
6
Algoritmo A*, I
Algoritmo A*, combinación de: » Búsqueda avara:
– Reduce coste de búsqueda, pero no es óptima ni completa.
» Búsqueda de coste uniforme: – Es completa y óptima pero ineficiente.
Se define la función “f(n)”:» f(n)=g(n)+h(n)» f(n)=coste estimado de la solución de
menor coste que pasa por “n”
Algoritmo: function A*-SEARCH (problem)
returns a solution or failure
return BEST-FIRST-SEARCH(problem, g+h)
7
Algoritmo A*, II
Heurística admisible: » Una función heurística “h” es admisible si
en donde h*(n)=“mínima distancia desde n
hasta el objetivo”
Ejemplo: » En el mapa de carreteras, h es admisible.» Solución obtenida por A*:
– Orden de expansión: “A, S, R, P, F, B”– Encuentra la solución: “A, S, R, P, B”– Aplicación algoritmo (ver siguiente página)– Es la mejor solución.
Se va a tener el resultado: » Si h es admisible, A* es completo y
óptimo.
nnhnh ),(*)(
8
3
Algoritmo A*, III
A
S T Z
A F O
B
R
P
S C
RCB
S
f=0+366=366
f=140+253=393
f=300+253=553
f=220+193=413
f=75+374=449
f=418
f=291+380=671
f=118+329=447
f=591 f=450
f=607
f=366+160=526
f=615
f=239+178=417
f=317+98=415
1
2
4
5
6
9
Algoritmo A*, IV
Una heurística es monótona cuando:
Si h es monótona h admisible. » Dems:» Sea n un nodo, y sea un camino desde
n hasta el objetivo:
donde y es un nodo objetivo.
Por tanto
)(cos)()(, nmnm temhnh
n mnm
knnn ...10
nn 0 kn
)()(...)()()()()( 1100 kk nhnhnhnhnhnhnh
)(cos)(cos...)(cos110
tetetekk nnnn
nnhnhtenh ),(*)(),(cos)(
10
Algoritmo A*, V
h admisible monótona» Dems: Contraejemplo
Si h es una heurística
h monótona f creciente» En el problema del mapa, h es monótona
(“d” es la distancia en línea recta; “C” es el coste del arco)
» y f es creciente (ver gráfico del ejemplo)
A
B C
D
3
1
1
3
h=1
h=0
h=4
h=1
),(),()()( BACBAdBhAh
n mC(n,m)
h(m)h(n)
11
Propiedades de A*, I
A* es óptimo y completo si h es admisible» Grafos localmente finitos
– con factores de ramificación finitos– donde para todo operador:
Demostración (intuitiva):» Para el caso más sencillo de heurísticas
monótonas:– En el ejemplo del mapa de carreteras se tienen
conjuntos de nivel:
– En la búsqueda uniforme se tienen bandas circulares, mientras que si la heurística es más exacta (h --> h*), las bandas se dirigen más directamente al objetivo.
fig04_05.ps
,0)( C
12
Propiedades de A*, II
» A* es óptimo» Hipótesis
– (1) h es admisible– (2) G es óptimo con coste de camino f*– (3) G’ es objetivo subóptimo – Dems:
Sea n un estado en el camino óptimo a G y supongamos que el algoritmo selecciona para expandir G’ en lugar de G, entonces por (1) y (2)
Y si se ha escogido G’ para expandir
Por tanto
Es decir
que es una contradicción con (3). cqd.
* ( ) ( ') ( ') ( ') ( ') f f n f G g G h G g G
)'()( Gfnf
* ( ')f g G
*( ') g G f
* ( )f f n
13
Propiedades de A*, III
» A* es completo» Hipótesis:
– (1) heurísticas monótonas,– (2) factor de ramificación b,– (3) coste de operadores,– Dems: En algún momento se llegará a que
f=“coste de algún estado objetivo”, salvo que existan infinitos nodos con f(n)<f*, lo cual sucedería si:
Un nodo tuviera (¡!) Hubiera un camino de coste finito pero con
infinitos nodos. Esto significaría que, por (1) y (3)
Por tanto, el algoritmo debe acabar.Y si acaba, es que encuentra una solución. cqd.
,0)( C
b
b
*/ ( ) n f n f
14
Propiedades de A*, IV
Si h es monótona, y A* ha expandido un nodo n, entonces g(n)=g*(n)» Es consecuencia directa de que:
– Un subgrafo de una heurística monótona da lugar a una heurística monótona (que es, por tanto, admisible), considerando la nueva heurística h’=h-g(n)
– h admisible --> A* completo y óptimo
A* es óptimamente eficiente » Ningún otro algoritmo óptimo expandirá
menos nodos que A*» Si un algoritmo no expande todos los nodos
entre el origen y el contorno óptimo, corre el riesgo de perder la solución óptima.
– Dems: ver Dechter – Pearl (1985)
La búsqueda de coste uniforme es un caso particular de A* (h=0)
15
Propiedades de A*, V
» Complejidad (espacial y temporal):
Se puede demostrar que la complejidad del algoritmo sigue siendo exponencial si no ocurre que:
En casi todas las heurísticas, el error es al menos proporcional a h* y, por tanto, normalmente se tiene complejidad exponencial.
De todos modos, el uso de heurísticas produce enormes mejoras con respecto a la búsqueda no informada.
La complejidad espacial suele ser un mayor problema que la temporal.
tesvalorminimo
fdbO d
cos
*),(~~
~
d “profundidad” de la mejor solución
nnhOnhnh |,)(*(log|)(*)(|
16
Un ejemplo de A*, I
A
B C D
G
K
F EI
JH
L
h=6
1
4
2
h=0
h=2
h=5
h=1
h=5
h=2h=5
h=0
h=1h=4
h=42
4
3
2
4
1
6
6
1
5 1
3
5
17
Un ejemplo de A*, II
A
G Hf=10
f=9
7
B C
D
f=6
f=7
f=6f=6
1
Ef=7
6
5
K L f=10f=11
4
F E
f=11
f=9
2
IJ
Hf=6
f=10f=7
3
11
K f=11
8
f=14
K Lf=13
10f=9
G Hf=11
9
18
Un ejemplo de A*, III
Si hubiéramos considerado eliminación de estados repetidos, entonces:» Habríamos eliminado (B-->E), (E-->H) y
(G->K)
Al ser h monótona:– A* obtiene la mejor solución– Al eliminar estados repetidos, ya que:
» Si h es monótona, entonces si un nodo ha sido expandido --> g(n)=g*(n)
entonces, bastaría con:
1) Si está repetido en los nodos ya expandidos, eliminar directamente el “nodo nuevo”
2) Si está repetido en las hojas, quedarse con el mejor entre el nodo “viejo” y el “nuevo”
19
Un ejemplo de A*, IV
» Si eliminamos estados repetidos, en el caso de una h admisible pero no monótona, podemos eliminar un nodo peor ya expandido:
A
B C
D
3
1
1
3
h=1
h=0
h=1
A
B C
D
1
4
32
B
D5
f=1
f=3
f=6
f=5f=4
f=5
Se eliminaría
h=4
20
Problema del 8-puzle
En el problema del 8-puzle:» Una solución típica tiene unos 20 pasos» Factor de ramificación (b): » Por tanto:
– Si se lleva la cuenta de estados repetidos, el número de estados es 9!=362.880
» Funciones heurísticas: – h1=número de fichas mal colocadas– h2=suma de distancias de Manhattan de las
fichas a sus posiciones objetivo– Son heurísticas monótonas
estados920 10*5.33 3b
21
Exactitud de heurísticas, I
Factor efectivo de ramificación (b*):» N=número de nodos expandidos por A*
(incluido el nodo de la mejor solución)» d=profundidad de la solución obtenida por
A*» b*=factor de ramificación de un árbol de
profundidad d y N nodos.
» Resolución no algebraica, sino con métodos de cálculo numérico.
» Ejemplo: d=5, N=52 ---> b*=1.91» Normalmente, para una heurística h,
b*=constante en varias instancias del problema.
1*
1*)(*)(...*)(*1
12
b
bbbbN
dd
22
Exactitud de heurísticas, II
» Si h-->h*, entonces b*-->1. – Si h-->0 (búsqueda de coste uniforme), entonces
b*--> b (b = cantidad operadores)
» Ejemplo (heurísticas h1 y h2 en el problema del 8-puzle):
Si una heurística h2 domina a otra h1 (h2>=h1; suponemos h1 y h2 monótonas), entonces h1 expande al menos los mismos nodos que h2.» Idea intuitiva:
– Si f(n)<f*, entonces n se expande. Pero esto es equivalente a h(n)<f*-g(n). Por tanto, si ese nodo es expandido por h2, también lo es por h1
fig04_08.ps
23
Creación de funciones heurísticas
Método de relajación: » Problema inicial:
– Si A es adyacente a B y B es blanco, entonces mueve ficha desde A hasta B
» Relajando las condiciones, se obtienen nuevos problemas:
– 1) Si A es adyacente a B, entonces mueve ficha desde A hasta B
– 2) Si B es blanco, entonces mueve ficha desde A hasta B
– 3) mueve ficha desde A hasta B
» Entonces: – “h* para el problema 2)” = heurística h1– “h* para el problema 1)” = heurística h2
Otro método: » h1, h2, ...hn admisibles --> max{h1,
h2, ...hn} también es admisible
24
Algoritmo IDA*, I
Iterative-Deepening A*-search (h monótona).
Algoritmo: » s=nodo inicial» Se definen:
y para k>=1:
» El algoritmo realiza búsqueda en profundidad para los valores L=0,1,2,... en los conjuntos:
})(/{ LL CnfnK
)(0 sfC
})(/)({ 1 kn
k CnfnfminC
25
Algoritmo IDA*, II
Un ejemplo sencillo (h=0):
A
B C D E
F G H I J K L M
1 1 3 3
22214343
Se producen 4 iteraciones: f<=0, f<=1, f<=3, f<=4
26
Algoritmo IDA*, III, a
A
4JIH
B
EF
DC
LK
321
f=6
f=7
f=11 f=9
f=11 f=10
f=10 f=7
f=6
f=6
f=6
Ejemplo de aplicación de IDA*, iteración f<=6
27
Algoritmo IDA*, III, b
A
JIH
B
EF
DC
LK
3
21
f=6
f=7
f=11 f=9
f=11 f=10
f=10 f=7
f=6
f=6
f=7
Ejemplo de aplicación de A*, iteración f<=7
E
HGf=10f=9
f=64
5
6
Faltarían otras dos iteraciones: f<=9, f<=10
28
Algoritmo IDA*, IV
IDA* es completo y óptimo, pero al ser iterativo en profundidad, necesita menos memoria. Complejidad espacial:
Complejidad temporal: » En problemas como el mapa de carreteras,
cada iteración puede añadir sólo un nodo nuevo. Por tanto, si A* expande N nodos, IDA* necesitará N iteraciones y expandirá 1+2+...+N=
– Una solución a este problema podría ser discretizar los posibles valores de (múltiplos de ). Se tendrían heurísticas -admisibles. En tal caso, el número de
iteraciones sería:
tesvalorminimo
fddbO
cos
*),*(~~
~
d “profundidad” de la mejor solución
)( 2NO
*f
kC
29
Algoritmos de mejora iterativa, I
Ejemplo de las N damas:» Partiendo de N damas en el tablero,
moverlas hasta encontrar una solución.
Uso de funciones de evaluación (una heurística h es un ejemplo). » Búsqueda de máximos-mínimos.
Búsqueda con escalada:
» Si se puede elegir más de un sucesor que mejore el inicial (con el mismo valor de la función de evaluación), se elige al azar.
» Inconvenientes: – Máximos locales– Zonas llanas– Crestas
fig04_14.ps
30
Algoritmos de mejora iterativa, II
Enfriamiento simulado:» Simulated annealing» Annealing: “Proceso de enfriar lentamente
un líquido hasta que se congela”.– “Si la temperatura se reduce suficientemente
lentamente en un líquido, el material obtendrá su estado de más baja energía (ordenación perfecta)”.
» Algoritmo:
En problemas de satisfacción de restricciones como el de las N-damas:» Resolución de problema de 1.000.000 de
damas en menos de 50 pasos. – Minimización de conflictos (en una columna al
azar mover una dama a la casilla que cree menos conflictos)
Aplicados también a programación de observaciones en el telescopio Hubble.
fig04_15.ps