Saya perlu bantuan untuk memahami algoritma Triangle A * (TA *) yang dijelaskan oleh Demyen dalam makalahnya Pathfinding Berbasis Triangulasi Efisien , pada halaman 76-81.
Dia menjelaskan bagaimana mengadaptasi algoritma A * biasa untuk triangulasi, untuk mencari jalur lain yang mungkin lebih optimal, bahkan setelah simpul terakhir tercapai / diperluas. Reguler A * berhenti ketika simpul terakhir diperluas, tetapi ini tidak selalu jalur terbaik ketika digunakan dalam grafik triangulasi. Inilah masalah yang saya alami.
Masalahnya diilustrasikan pada halaman 78, Gambar 5.4:
Saya mengerti bagaimana cara menghitung nilai g dan h yang disajikan dalam makalah (halaman 80).
Dan saya pikir syarat berhenti pencarian adalah:
if (currentNode.fCost > shortestDistanceFound)
{
// stop
break;
}
di mana currentNode adalah simpul pencarian yang muncul dari daftar terbuka (antrian prioritas), yang memiliki skor-f terendah. shortestDistanceFound adalah jarak sebenarnya dari jalur terpendek yang ditemukan sejauh ini.
Tetapi bagaimana cara mengecualikan jalur yang ditemukan sebelumnya dari pencarian di masa depan? Karena jika saya melakukan pencarian lagi, itu pasti akan menemukan jalan yang sama. Apakah saya mereset daftar tertutup? Saya perlu memodifikasi sesuatu, tetapi saya tidak tahu apa yang harus saya ubah. Makalah ini tidak memiliki kodesemu, sehingga akan sangat membantu.
sumber