อัลกอริธึมการหาเส้นทางแบบสามเหลี่ยม A * (TA *)


11

ฉันต้องการความช่วยเหลือในการทำความเข้าใจอัลกอริทึม Triangle A * (TA *) ที่อธิบายโดย Demyen ในการหาเส้นทางแบบอิงสามเหลี่ยมที่มีประสิทธิภาพของกระดาษในหน้า 76-81

เขาอธิบายถึงวิธีการปรับอัลกอริทึม A * ปกติสำหรับการหาสมการเพื่อค้นหาเส้นทางที่เหมาะสมที่สุดที่อาจเป็นไปได้แม้หลังจากที่ถึง / ขยายโหนดสุดท้ายแล้ว ปกติ A *จะหยุดเมื่อโหนดสุดท้ายถูกขยาย แต่นี่ไม่ใช่เส้นทางที่ดีที่สุดเสมอเมื่อใช้ในกราฟที่วิเคราะห์ตำแหน่ง นี่คือปัญหาที่ฉันมี

ปัญหานี้แสดงไว้ในหน้า 78 รูปที่ 5.4: ป้อนคำอธิบายรูปภาพที่นี่

ฉันเข้าใจวิธีการคำนวณค่า g และ h ที่แสดงในกระดาษ (หน้า 80)

และฉันคิดว่าเงื่อนไขการหยุดการค้นหาคือ:

if (currentNode.fCost > shortestDistanceFound)
{
    // stop
    break;
}

โดย currentNode คือโหนดการค้นหาที่ผุดจากรายการที่เปิด (ลำดับความสำคัญคิว) ซึ่งมีคะแนน f ต่ำสุด shortestDistanceFound เป็นระยะทางที่แท้จริงของเส้นทางที่สั้นที่สุดที่พบ

แต่ฉันจะแยกเส้นทางที่พบก่อนหน้านี้ออกจากการค้นหาในอนาคตได้อย่างไร เพราะถ้าฉันค้นหาอีกครั้งมันจะพบเส้นทางเดียวกันอย่างชัดเจน ฉันจะรีเซ็ตรายการที่ปิดหรือไม่ ฉันต้องการแก้ไขบางอย่าง แต่ไม่รู้ว่าต้องเปลี่ยนอะไร กระดาษขาด pseudocode ดังนั้นมันจะมีประโยชน์

คำตอบ:


3

ฉันยังไม่ได้ใช้งาน แต่เมื่อฉันอ่านฉันคิดว่าคุณจะทำสิ่งนี้:

shortestDistance = infinity
do A* with modified g cost
    if node.fCost > shortestDistance (section 5.5)
        don't open node
    if node.isGoal()
        run funnel algorithm (string pulling)
        update shortestDistance

ความแตกต่างคือว่าแม้ว่าคุณจะพบเส้นทางไปยังเป้าหมายที่มันไม่จำเป็นต้องเป็นที่สั้นที่สุดเส้นทาง แต่คุณจะปรับปรุงขอบเขตบนของเส้นทางที่สั้นที่สุดซึ่งหมายความว่าคุณจะไม่ต้องเปิดโหนดทั้งหมด ในที่สุดชุดที่เปิดของคุณควรว่างเปล่าและเส้นทางที่ดีที่สุดที่คุณพบจนถึงตอนนี้ควรสั้นที่สุด

ค่า g ที่ปรับเปลี่ยนซึ่งเขาอธิบายดูเหมือนจะดูถูกดูแคลนขนาดใหญ่ดังนั้นฉันจึงสงสัยเกี่ยวกับวิธีการทำงานที่ดีในทางปฏิบัติ


อืมฉันอาจจะผิด แต่ฉันตีความว่าเป็นเงื่อนไขการหยุดแทนที่จะเป็นเงื่อนไขสำหรับการเพิ่มในรายการเปิด ฟังก์ชั่นดังต่อไปนี้ดูเหมือนจะเป็นเงื่อนไขสำหรับการเพิ่มลงในรายการที่เปิดอยู่: "ในฐานะที่เป็นหมายเหตุด้านข้างลูกของสถานะการค้นหาจะไม่ถูกสร้างขึ้นสำหรับรูปสามเหลี่ยมที่อยู่ติดกันโดยเฉพาะถ้ารัฐที่สอดคล้องกับรูปสามเหลี่ยมนั้นเป็นบรรพบุรุษของรัฐนั้น การยกเว้นสามารถทำได้เพราะจะไม่กำจัดเส้นทางที่ดีที่สุดเพียงอันเดียวที่อาจสั้นลงได้โดยการเอาส่วนหนึ่งของมันออกตามที่ระบุไว้ในทฤษฎีบท 4.3.4 "
Morrowless
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.