In che modo un euristico ammissibile garantisce una soluzione ottimale?


16

Quando si utilizza A * (o qualsiasi altro algoritmo di individuazione del percorso migliore), si dice che l'euristico usato dovrebbe essere ammissibile , cioè non dovrebbe mai sopravvalutare la lunghezza (o le mosse) del percorso della soluzione effettiva.

In che modo un euristico ammissibile garantisce una soluzione ottimale? Preferibilmente sto cercando una spiegazione intuitiva.

Se vuoi puoi spiegare usando l' euristica a distanza di Manhattan dell'8-puzzle.


2
@Ashwin Intuitivamente perché quando l'algoritmo trova un percorso di lunghezza , ha già provato ogni altro percorso che può essere di lunghezza al massimo k . Ecco perché la tua funzione euristica non deve mai sopravvalutare il costo per l'obiettivo. Provalo tu stesso facendo una funzione euristica che potrebbe sopravvalutare. kk
Pål GD,

Risposte:


7

Mentre la risposta di Anton è assolutamente perfetta, lasciami provare a fornire una risposta alternativa: essere ammissibili significa che l'euristica non sopravvaluta lo sforzo per raggiungere l'obiettivo, vale a dire per tutte le n nello spazio degli stati (nell'8 puzzle, questo significa solo per ogni permutazione delle tessere e l'obiettivo che stai prendendo in considerazione) dove h ( n ) è il costo ottimale per raggiungere l'obiettivo.h(n)h(n)nh(n)

Penso che la risposta più logica per capire perché fornisca soluzioni ottimali se h ( n ) è ammissibile è perché ordina tutti i nodi in APERTO in ordine crescente di f ( n ) = g ( nAh(n) e, inoltre , perché non si ferma quando si genera l'obiettivo ma quando lo si espande:f(n)=g(n)+h(n)

  1. Poiché i nodi sono espansi in ordine crescente di , sai che nessun altro nodo è più promettente di quello attuale. Ricorda: h ( n )f(n)h(n) è ammissibile in modo che avere la più bassa significhi che ha l'opportunità di raggiungere l'obiettivo attraverso un percorso più economico che gli altri nodi in OPEN non hanno. E questo è vero a meno che non sia possibile dimostrare il contrario, ovvero espandendo il nodo corrente.f(n)
  2. Dato che ferma solo quando procede ad espandere il nodo obiettivo (al contrario di fermarsi quando lo genera) sei sicuro (dal primo punto sopra) che nessun altro nodo conduce attraverso un percorso più economico verso di esso.A

E questo è essenzialmente tutto ciò che troverete nella prova originale di Nilsson et al.

Spero che sia di aiuto,


3
Grazie. Ha aiutato. Ti riferivi ad alcune prove di Nilsson et al. Chi è quello? E dove posso trovare la prova?
Ashwin,

1
@Ashwin Vedi il libro " Principles of Artificial Intelligence " (pagina 80 circa) di Nils J. Nilsson (1982).
nbro,

11

Se la funzione euristica non è ammissibile, allora possiamo avere una stima che è maggiore del costo del percorso effettivo da un nodo a un nodo obiettivo. Se questa stima del costo del percorso più elevato si trova sul percorso più economico (che stiamo cercando), l'algoritmo non lo esplorerà e potrebbe trovare un altro (non ultimo costo) percorso verso l'obiettivo.

Guarda questo semplice esempio.

inserisci qui la descrizione dell'immagine

Sia e G rispettivamente i nodi iniziale e obiettivo . Sia h ( N ) una stima della lunghezza del percorso dal nodo N a G , N nel grafico. Inoltre, sia c ( N , X i ) la funzione di costo del passaggio dal nodo N al suo vicino X i , N e i = 1 .. m , dove mAGh(N)NGNc(N,Xi)NXiNi=1..mmè il numero di vicini di (ovvero una funzione che restituisce il costo del bordo tra il nodo N e uno dei suoi vicini).NN

Lascia che sia l'euristica

  • h(B)=3

  • h(C)=4

Questa funzione euristica non è ammissibile, perché h ( C ) = 4 > c ( C , G ) = 2H

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

AABGABG4ACG3


1
Ok. Ma in che modo un euristico ammissibile garantisce una soluzione ottimale?
Ashwin,

Può succedere che - h (b) <h (c) sia h (b) che h (c) siano ammissibili, ma actual_cost (b)> actual_cost (c) giusto? Quindi b sarà scelto come il prossimo percorso dove come nella realtà c avrebbe dato il percorso migliore.
Ashwin,

Per il primo commento: l'euristica ammissibile assicura di trovare il percorso più breve. La soluzione stessa è ottimale se l'euristica è coerente .
Anton,

Per il secondo commento: se l'euristica è ammissibile, A-> B può essere scelto per espandere il nodo successivo, ma successivamente A * sceglierà A-> C e non A-> B-> G. E alla fine finirà con A-> C-> G.
Anton,

1
Perché A * funziona così. Espande il nodo con la somma minima di distanza a quel nodo + stima euristica da quel nodo. d (A, G) + h (G) = 4 + 0 = 4 e d (A, C) + h (C) = 1 + qualcosa <= 2 (perché è ammissibile). Quindi C ha una somma inferiore e A * lo sceglierà. Allo stesso modo, allora espandere G e trovare il percorso minimo.
Anton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.