Leksykon IT › Programowanie › Theta*

Theta*

Programowanie Svenska → Zaktualizowano: 2026-10-25

Wariant A*, który dopuszcza odcinki ścieżki pod dowolnym kątem, zamiast wymuszać ruch w ośmiu kierunkach siatki.

Zwykły A* na siatce potrafi robić kroki tylko co 45 stopni, więc najkrótsza trasa do celu pod nietypowym kątem wychodzi jako schodkowy zygzak, który trzeba potem wygładzać. Theta* rozwiązuje to już w trakcie wyszukiwania: przy rozwijaniu węzła sprawdza, czy z dziadka węzła do sąsiada prowadzi wolna linia widzenia, i jeśli tak, pomija krok pośredni. Powstałe ścieżki są krótsze i prostsze — takie, jakimi poszedłby człowiek.

Algorytm opisali Kenny Daniel, Alex Nash, Sven Koenig i Ariel Felner (JAIR 2010). Ceną są testy linii widzenia, droższe w przeliczeniu na węzeł niż zwykłe sprawdzenie sąsiadów w A*. Lazy Theta* odkłada je do chwili, gdy węzeł faktycznie zostaje zdjęty z listy otwartej, i eliminuje większość z nich.

← Wróć do leksykonu