2009-05-28 11 views
6

Próbuję wymyślić dobrą i szybką heurystykę dla gry pacman z wyraźną mapą.Hierarchia heurystyczna *: Najkrótsza ścieżka przechodząca raz w wielu punktach.

Moja heurystyka próbuje obliczyć najmniejszą możliwą odległość, jaką pacman musi podróżować, aby przejść do każdego punktu z jedzeniem na mapie. Mój obecny algorytm to podstawowy MST dla Prim, który daje mi czas działania O (n logn), ale nie uwzględnia sytuacji, w których pacman musi podążać za krawędzią do zjedzenia, a powrót do poprzedniego wierzchołka ...

Czy jest coś lepszego?

Mówiąc w inny sposób: Jaki jest minimalny koszt połączenia kilku kropek bez podnoszenia pióra?

Dzięki

Odpowiedz

4

Po uruchomieniu algorytmu, par-najkrótszej ścieżki i określenie wierzchołków z jedzeniem, staje się traveling salesman problem. Nie można go rozwiązać skutecznie, ale można konstruować dowolnie dobre przybliżenia rozwiązania w czasie wielomianowym. Prawdopodobnie będziesz chciał użyć przybliżenia, chyba że możesz wstępnie obliczyć wszystko. Jeśli możesz wstępnie obliczyć rzeczy (lub w inny sposób zagwarantować, że masz wystarczająco dużo czasu, aby znaleźć dokładne rozwiązanie), po znalezieniu najkrótszych ścieżek wszystkich par, możesz po prostu znaleźć minimalną całkowitą długość spaceru nad wszystkimi możliwymi permutacje porządku, w którym jesz kawałki jedzenia. Ta metoda brutalnej siły może zostać nieco poprawiona, gdy patrzy się, kiedy najkrótsza droga między dwoma kawałkami jedzenia przechodzi przez inny kawałek jedzenia.

+0

Jaki byłby najłatwiejszy sposób przybliżenia rozwiązania do TSP? – Chetan

+0

W powyższej odpowiedzi jest błąd: aby uzyskać przybliżenie błędu ograniczonego, należy nieco zmienić wiązania. Najkrótsza ścieżka dla wszystkich par gwarantuje, że odległości są metryczne (kosztem ewentualnego ponownego przejścia do punktu), co pozwala na użycie algorytmu Christofidesa, aby osiągnąć 150% minimum. Jeśli możesz dodatkowo zagwarantować, że odległości są Euklidesowe (tj. Proste odległości w normalnej geometrii), możesz zbudować dowolnie dobre przybliżenia, ale zazwyczaj nie są one warte dodatkowych kłopotów. Zobacz artykuł wikipedia po więcej. – user57368

Powiązane problemy