Wie stellt eine zulässige Heuristik eine optimale Lösung sicher?

16

Bei Verwendung von A * (oder eines anderen Algorithmus zur Ermittlung des besten Pfades) sollte die verwendete Heuristik zulässig sein , dh die tatsächliche Länge des Lösungspfades (oder der Bewegungen) sollte niemals überschätzt werden.

Wie stellt eine zulässige Heuristik eine optimale Lösung sicher? Ich suche vorzugsweise eine intuitive Erklärung.

Wenn Sie möchten, können Sie dies anhand der Manhattan- Entfernungsheuristik des 8-Puzzles erklären .

Ashwin
quelle
2
@Ashwin Intuitiv, weil der Algorithmus, wenn er einen Pfad der Länge , bereits jeden anderen Pfad ausprobiert hat, der möglicherweise höchstens . Deshalb darf Ihre heuristische Funktion die Kosten für das Ziel niemals überschätzen . Probieren Sie es selbst aus, indem Sie eine heuristische Funktion erstellen, die möglicherweise überschätzt wird. kkk
Pål GD

Antworten:

7

Während Antons Antwort absolut perfekt ist, möchte ich versuchen, eine alternative Antwort zu liefern: Zulässig zu sein, bedeutet, dass die Heuristik den Aufwand zum Erreichen des Ziels nicht überschätzt, dh für alle in der Zustandsraum (im 8-Puzzle bedeutet dies nur für jede Permutation der Kacheln und des Ziels, das Sie gerade betrachten), wobei die optimalen Kosten sind, um das Ziel zu erreichen.n h * ( n )h(n)h(n)nh(n)

Ich denke, die logischste Antwort, um zu sehen, warum optimale Lösungen liefert, wenn zulässig ist, ist, weil es alle Knoten in OFFEN in aufsteigender Reihenfolge von sortiert und auch, weil es beim Erzeugen des Ziels nicht aufhört, sondern beim Erweitern: h ( n ) f ( n ) = g ( n ) + h ( n )Ah(n)f(n)=g(n)+h(n)

  1. Da Knoten in aufsteigender Reihenfolge von , wissen Sie, dass kein anderer Knoten vielversprechender ist als der aktuelle. Denken Sie daran: ist zulässig, sodass das niedrigste bedeutet, dass es die Möglichkeit bietet, das Ziel auf einem günstigeren Weg zu erreichen, als die anderen Knoten in OPEN dies nicht haben. Dies gilt nur, wenn Sie das Gegenteil beweisen können, dh indem Sie den aktuellen Knoten erweitern.h ( n ) f ( n )f(n)h(n)f(n)
  2. Da nur stoppt, wenn der Zielknoten erweitert wird (im Gegensatz zu Stop beim Generieren), sind Sie sicher (ab dem ersten Punkt oben), dass kein anderer Knoten einen billigeren Weg dorthin führt.A

Und das ist im Wesentlichen alles, was Sie im Originalbeweis von Nilsson et al. Finden.

Hoffe das hilft,

Carlos Linares López
quelle
3
Vielen Dank. Es half. Sie haben sich auf einen Beweis von Nilsson et al. Wer ist das? Und wo finde ich den Beweis?
Ashwin
1
@Ashwin Siehe das Buch " Principles of Artificial Intelligence " (um Seite 80) von Nils J. Nilsson (1982).
nbro
11

Wenn die heuristische Funktion nicht zulässig ist, können wir eine Schätzung haben, die größer ist als die tatsächlichen Pfadkosten von einem Knoten zu einem Zielknoten. Befindet sich diese Schätzung der höheren Pfadkosten auf dem Pfad mit den geringsten Kosten (den wir suchen), untersucht der Algorithmus diesen Pfad nicht und findet möglicherweise einen anderen Pfad (nicht die geringsten Kosten) zum Ziel.

Schauen Sie sich dieses einfache Beispiel an.

Bildbeschreibung hier eingeben

AGh(N)NGNc(N,Xi)NXiNi=1..mmNN

Lass die Heuristik sein

  • h(B)=3

  • h(C)=4

H

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

AABGABG4ACG3

Anton
quelle
In Ordnung. Aber wie stellt eine zulässige Heuristik eine optimale Lösung sicher?
Ashwin
Es kann vorkommen, dass - h (b) <h (c) ist, wobei sowohl h (b) als auch h (c) zulässig sind, aber actual_cost (b)> actual_cost (c) richtig? Also wird b als nächster Weg gewählt, wo c wie in Wirklichkeit den besten Weg gegeben hätte.
Ashwin
Zum ersten Kommentar: Die zulässige Heuristik stellt sicher, dass der kürzeste Weg gefunden wird. Die Lösung selbst ist optimal, wenn die Heuristik konsistent ist .
Anton
Für den 2. Kommentar: Wenn die Heuristik zulässig ist, kann A-> B für den nächsten zu erweiternden Knoten ausgewählt werden. Danach wählt A * A-> C und nicht A-> B-> G. Und am Ende wird es mit A-> C-> G enden.
Anton
1
Weil A * so funktioniert. Es erweitert den Knoten mit der geringsten Summe aus Abstand zu diesem Knoten und heuristischer Schätzung von diesem Knoten. d (A, G) + h (G) = 4 + 0 = 4 und d (A, C) + h (C) = 1 + etwas <= 2 (weil es zulässig ist). Also hat C eine niedrigere Summe und das A * wird sie wählen. Genauso wird es G erweitern und den geringsten Pfad finden.
Anton