Búsqueda ``greedy'' minimiza reduciendo la búsqueda,
pero no es ni óptima ni completa. Búsqueda de costo uniforme
minimiza el costo acumulado
y es completa y óptima, pero
puede ser muy ineficiente.
Se pueden combinar las dos sumandolas, usando para cada nodo la
siguiente heurística:
.
La estrategia se puede probar que es completa y óptima si
nunca sobre-estima el costo. Tal función se le conoce como una
heurística admisible.
Breadth-first se puede ver como un caso especial de A si
y
para todos sus sucesores (el costo de ir de un nodo
padre a un nodo hijo).
Si es admisible,
nunca hace sobrestimaciones. Una función
es admisible si
.
Propiedades de A:
Una heurística se dice consistente si:
Cualquier heurística consistente es también admisible.
Una heurística se dice monotona si:
Se puede probar que una heurística es monotónica si obedece la desigualdad del triangulo, osea que la suma de sus lados no pueden ser menores a el otro lado.
De hecho, las dos propiedades son equivalentes.
Si tenemos heurísticas no monotónicas, podemos usar el costo del
padre para garantizar que el costo nunca decrece:
. Esto se llama
.
Si nunca decrece al recorrer los caminos, se pueden ``dibujar''
contornos (``curvas de nivel'').
Si (costo uniforme) las bandas con ``circulares'' alrededor
del estado inicial.
Con heurísticas más precisas, las bandas tienen a alargarse hacia las metas.
A va expandiendo todos los nodos en estos contornos hasta llegar
al contorno de la meta, en donde posiblemente expanda algunos antes de
llegar a la solución.
Básicamente si no se expanden todos los nodos de un contorno se puede perder la solución óptima.
A es completo, óptimo y eficientemente óptimo (ningún otro
algoritmo óptimo garantiza expander menor nodos que A
).
Sin embargo, el número de nodos normalmente crece exponencialmente con la longitud de la solución, a menos que el error en la solución no cresca más rápido que el logaritmo del costo actual del camino.
Generalmente A se queda sin espacio (antes de consumir el tiempo).
Si se conoce un estimado del costo óptimo, se pueden podar ciertos nodos. Por ejemplo, si un depth-first encuentra una meta, ésta nos puede servir para eliminar nodos con costos mayores.
Usualmente el factor de arborecencia efectivo de una heurística se mantiene más o menos constante sobre una gran variadad de instancias del problema, por lo que medidas experimentales en pequeñas conjuntos pueden dar una guía adecuada de lo útil de la heurística.
Idealmente la heurísitca se debe de acercar a 1.
Una heurística () se dice que domina a otra (
) si
expande en promedio menos nodos que
.
A expande todos los nodos con
expande todos
los nodos que cumplan
. Como
es por lo menos
tan grande que
para todos los nodos, todo nodo expandido por
también es expandido por
(quien posiblemente expande
otros).
Por lo que siempre es mejor usar la heurística que de valores más grandes, siempre y cuando no sobre-estime.
Costo de búsqueda | Arborecencia | |||||
efetiva | ||||||
d | IDS | A![]() |
A![]() |
IDS | A![]() |
A![]() |
2 | 10 | 6 | 6 | 2.45 | 1.79 | 1.79 |
4 | 112 | 13 | 12 | 2.87 | 1.48 | 1.45 |
6 | 680 | 20 | 18 | 2.73 | 1.34 | 1.30 |
8 | 6384 | 39 | 25 | 2.80 | 1.33 | 1.24 |
10 | 47127 | 93 | 39 | 2.79 | 1.38 | 1.22 |
12 | 364404 | 227 | 73 | 2.78 | 1.42 | 1.24 |
14 | 3473941 | 539 | 113 | 2.83 | 1.44 | 1.23 |
16 | ![]() |
1301 | 211 | ![]() |
1.45 | 1.25 |
18 | ![]() |
3056 | 363 | ![]() |
1.46 | 1.26 |
20 | ![]() |
7276 | 676 | ![]() |
1.47 | 1.27 |
22 | ![]() |
18094 | 1219 | ![]() |
1.48 | 1.28 |
24 | ![]() |
39135 | 1641 | ![]() |
1.48 | 1.26 |