ฉันต้องการความช่วยเหลือในการทำความเข้าใจอัลกอริทึม Triangle A * (TA *) ที่อธิบายโดย Demyen ในการหาเส้นทางแบบอิงสามเหลี่ยมที่มีประสิทธิภาพของกระดาษในหน้า 76-81
เขาอธิบายถึงวิธีการปรับอัลกอริทึม A * ปกติสำหรับการหาสมการเพื่อค้นหาเส้นทางที่เหมาะสมที่สุดที่อาจเป็นไปได้แม้หลังจากที่ถึง / ขยายโหนดสุดท้ายแล้ว ปกติ A *จะหยุดเมื่อโหนดสุดท้ายถูกขยาย แต่นี่ไม่ใช่เส้นทางที่ดีที่สุดเสมอเมื่อใช้ในกราฟที่วิเคราะห์ตำแหน่ง นี่คือปัญหาที่ฉันมี
ปัญหานี้แสดงไว้ในหน้า 78 รูปที่ 5.4:
ฉันเข้าใจวิธีการคำนวณค่า g และ h ที่แสดงในกระดาษ (หน้า 80)
และฉันคิดว่าเงื่อนไขการหยุดการค้นหาคือ:
if (currentNode.fCost > shortestDistanceFound)
{
// stop
break;
}
โดย currentNode คือโหนดการค้นหาที่ผุดจากรายการที่เปิด (ลำดับความสำคัญคิว) ซึ่งมีคะแนน f ต่ำสุด shortestDistanceFound เป็นระยะทางที่แท้จริงของเส้นทางที่สั้นที่สุดที่พบ
แต่ฉันจะแยกเส้นทางที่พบก่อนหน้านี้ออกจากการค้นหาในอนาคตได้อย่างไร เพราะถ้าฉันค้นหาอีกครั้งมันจะพบเส้นทางเดียวกันอย่างชัดเจน ฉันจะรีเซ็ตรายการที่ปิดหรือไม่ ฉันต้องการแก้ไขบางอย่าง แต่ไม่รู้ว่าต้องเปลี่ยนอะไร กระดาษขาด pseudocode ดังนั้นมันจะมีประโยชน์