¿Cómo una heurística admisible garantiza una solución óptima?

16

Cuando se utiliza A * (o cualquier otro algoritmo de búsqueda de mejor ruta), decimos que la heurística utilizada debe ser admisible , es decir, nunca debe sobrestimar la longitud (o movimientos) reales de la ruta de solución.

¿Cómo una heurística admisible garantiza una solución óptima? Preferiblemente estoy buscando una explicación intuitiva.

Si lo desea, puede explicarlo utilizando la heurística de distancia de Manhattan del 8 rompecabezas.

Ashwin
fuente
2
@Ashwin Intuitivamente porque cuando el algoritmo encuentra una ruta de longitud , ya ha intentado cualquier otra ruta que posiblemente pueda tener longitud como máximo k . Es por eso que su función heurística nunca debe sobreestimar el costo de la meta. Pruébelo usted mismo haciendo una función heurística que pueda sobrestimar. kk
Pål GD

Respuestas:

7

Si bien la respuesta de Anton es absolutamente perfecta, permítame intentar proporcionar una respuesta alternativa: ser admisible significa que la heurística no sobreestima el esfuerzo para alcanzar la meta, es decir, para todos los n en el espacio de estado (en el 8 rompecabezas, esto significa solo para cualquier permutación de las fichas y el objetivo que está considerando actualmente) donde h ( n ) es el costo óptimo para alcanzar el objetivo.h(n)h(n)nh(n)

Creo que la respuesta más lógica para ver por qué proporciona soluciones óptimas si h ( n ) es admisible es porque clasifica todos los nodos en ABIERTO en orden ascendente de f ( n ) = g ( n ) + h ( n ) y, también , porque no se detiene al generar el objetivo sino al expandirlo:Ah(n)f(n)=g(n)+h(n)

  1. Como los nodos se expanden en orden ascendente de , sabe que ningún otro nodo es más prometedor que el actual. Recuerde: h ( n ) es admisible, de modo que tener la f ( n ) más baja significa que tiene la oportunidad de alcanzar la meta a través de una ruta más barata que los otros nodos en OPEN no tienen. Y esto es cierto a menos que pueda demostrar lo contrario, es decir, expandiendo el nodo actual.f(n)h(n)f(n)
  2. Dado que detiene solo cuando procede a expandir el nodo objetivo (en oposición a detenerse al generarlo), está seguro (desde el primer punto anterior) de que ningún otro nodo conduce a través de un camino más barato.A

Y esto es, esencialmente, todo lo que encontrará en la prueba original de Nilsson et al.

Espero que esto ayude,

Carlos Linares López
fuente
3
Gracias. Eso ayudo. Se refería a alguna prueba de Nilsson et al. ¿Quién es ese? ¿Y dónde puedo encontrar la prueba?
Ashwin
1
@Ashwin Vea el libro " Principios de Inteligencia Artificial " (alrededor de la página 80) de Nils J. Nilsson (1982).
nbro
11

Si la función heurística no es admisible, entonces podemos tener una estimación que es mayor que el costo real de la ruta de un nodo a un nodo objetivo. Si esta estimación de costo de ruta más alta se encuentra en la ruta de menor costo (que estamos buscando), el algoritmo no la explorará y puede encontrar otra ruta (no menos costosa) hacia la meta.

Mira este sencillo ejemplo.

enter image description here

Deje que y G sean respectivamente los nodos inicial y objetivo . Sea h ( N ) una estimación de la longitud de la ruta desde el nodo N a G , N en el gráfico. Además, sea c ( N , X i ) la función de costo escalonado desde el nodo N hasta su vecino X i , N e i = 1 .. m , donde mAGh(N)NGNc(N,Xi)NXiNi=1..mmes el número de vecinos de (es decir, una función que devuelve el costo del borde entre el nodo N y uno de sus vecinos).NN

Deja que la heurística sea

  • h(B)=3

  • h(C)=4

Esta función heurística no es admisible, porque h ( C ) = 4 > c ( C , G ) = 2H

h(C)=4>c(C,G)=2

AABGABG4ACG3

Anton
fuente
1
Okay. Pero, ¿cómo garantiza una heurística admisible una solución óptima?
Ashwin
Puede suceder que - h (b) <h (c) con h (b) y h (c) admisibles, pero actual_cost (b)> actual_cost (c) ¿verdad? Entonces b será elegido como el próximo camino donde, como en realidad, c habría dado el mejor camino.
Ashwin
Para el primer comentario: la heurística admisible asegura encontrar el camino más corto. La solución en sí misma es óptima si la heurística es consistente .
Anton
Para el segundo comentario: si la heurística es admisible, se puede elegir A-> B para que se expanda el siguiente nodo, pero después de eso, A * elegirá A-> C y no A-> B-> G. Y al final terminará con A-> C-> G.
Anton
1
Porque A * funciona así. Expande el nodo con la menor suma de distancia a ese nodo + estimación heurística de ese nodo. d (A, G) + h (G) = 4 + 0 = 4 yd (A, C) + h (C) = 1 + algo <= 2 (porque es admisible). Entonces C tiene una suma menor y A * la elegirá. De la misma manera que expandirá G y encontrará la menor ruta.
Anton