Demyen tarafından Verimli Üçgenleme Tabanlı Yol Bulma adlı makalesinde 76-81. Sayfalarda açıklanan Üçgen A * (TA *) algoritmasını anlamak için yardıma ihtiyacım var .
Nihai düğüme ulaşıldıktan / genişletildikten sonra bile normal A * algoritmasının üçgenleme için nasıl ayarlanacağını, diğer olası en uygun yolları nasıl arayacağını açıklar. Son düğüm genişletildiğinde normal A * durur, ancak üçgenleştirilmiş bir grafikte kullanıldığında bu her zaman en iyi yol değildir. Bu tam olarak yaşadığım problem.
Sorun sayfa 78, Şekil 5.4'te gösterilmiştir:
Makalede sunulan g ve h değerlerinin nasıl hesaplanacağını anlıyorum (sayfa 80).
Bence arama durdurma koşulu:
if (currentNode.fCost > shortestDistanceFound)
{
// stop
break;
}
currentNode, en düşük f-puanına sahip olan açık listeden (öncelik sırası) açılan arama düğümüdür. shortestDistanceFound, şu ana kadar bulunan en kısa yolun gerçek mesafesidir.
Ancak önceden bulunan yolları gelecekteki aramalardan nasıl hariç tutabilirim? Çünkü aramayı tekrar yaparsam aynı yolu bulacaktır. Kapalı listeyi sıfırlayabilir miyim? Bir şeyi değiştirmem gerekiyor, ama neyi değiştirmem gerektiğini bilmiyorum. Kağıt sahte koddan yoksundur, bu yüzden bu yardımcı olacaktır.