13 Stimmen

A-Stern: Heuristik für mehrere Ziele

Betrachten wir ein einfaches Gitter, bei dem jeder Punkt mit höchstens 4 anderen Punkten verbunden ist (Nord-Ost-West-Süd-Nachbarschaft).

Ich muss ein Programm schreiben, das die minimale Route von einem ausgewählten Startpunkt zu cualquier von Zielpunkten, die miteinander verbunden sind (es gibt eine aus Zielpunkten bestehende Route zwischen zwei beliebigen Zielen). Natürlich kann es Hindernisse auf dem Gitter geben.

Meine Lösung ist ganz einfach: Ich verwende den A*-Algorithmus mit einer variablen heuristischen Funktion h(x) - der Manhattan-Distanz von x zum nächstgelegenen Zielpunkt. Um den nächstgelegenen Zielpunkt zu finden, muss ich eine lineare Suche durchführen (in O(n), wobei n die Anzahl der Zielpunkte ist). Meine Frage lautet: Gibt es eine effizientere Lösung (heuristische Funktion), um dynamisch den nächstgelegenen Zielpunkt zu finden (mit einer Zeit < O(n))?

Oder ist A* vielleicht kein guter Weg, um dieses Problem zu lösen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X