มีข้อแม้ขนาดใหญ่เมื่อใช้ D *, D * -Lite หรืออัลกอริธึมที่เพิ่มขึ้นใด ๆ ในหมวดหมู่นี้ (และเป็นที่น่าสังเกตว่าคำเตือนนี้ไม่ค่อยได้กล่าวถึงในวรรณคดี) อัลกอริทึมประเภทนี้ใช้การค้นหาแบบย้อนกลับ นั่นคือพวกเขาคำนวณค่าใช้จ่ายภายนอกจากโหนดเป้าหมายเช่นระลอกกระจายออกไปด้านนอก เมื่อค่าใช้จ่ายของการเปลี่ยนแปลงขอบ (เช่นคุณเพิ่มหรือลบกำแพงในตัวอย่างของคุณ) พวกเขาทั้งหมดมีกลยุทธ์ที่มีประสิทธิภาพมากมายสำหรับการอัปเดตชุดย่อยของโหนดสำรวจ (aka 'เยี่ยมชม') ที่ได้รับผลกระทบจากการเปลี่ยนแปลง
ข้อแม้ขนาดใหญ่คือที่ตั้งของการเปลี่ยนแปลงเหล่านี้ด้วยความเคารพต่อสถานที่เป้าหมายสร้างความแตกต่างอย่างมากต่อประสิทธิภาพของอัลกอริทึม ฉันแสดงในเอกสารต่าง ๆ และวิทยานิพนธ์ของฉันว่ามันเป็นไปได้ทั้งหมดสำหรับประสิทธิภาพกรณีที่เลวร้ายที่สุดของอัลกอริธึมที่เพิ่มขึ้นใด ๆ เหล่านี้จะแย่กว่าการทิ้งข้อมูลทั้งหมดและเริ่มใหม่ด้วยสิ่งที่ไม่เพิ่มขึ้นเช่น
เมื่อข้อมูลค่าใช้จ่ายที่เปลี่ยนแปลงอยู่ใกล้กับขอบเขตของส่วนขยายการค้นหา (ภูมิภาค 'เข้าเยี่ยมชม') จะต้องเปลี่ยนเส้นทางบางเส้นทางและการปรับปรุงแบบเพิ่มหน่วยจะรวดเร็ว ตัวอย่างที่เกี่ยวข้องคือหุ่นยนต์เคลื่อนที่ที่มีเซ็นเซอร์ติดอยู่กับร่างกาย เซ็นเซอร์มองเห็นโลกใกล้กับหุ่นยนต์เท่านั้นดังนั้นการเปลี่ยนแปลงจึงอยู่ในภูมิภาคนี้ ภูมิภาคนี้เป็นจุดเริ่มต้นของการค้นหาไม่ใช่เป้าหมายดังนั้นทุกอย่างทำงานได้ดีและอัลกอริทึมมีประสิทธิภาพมากในการปรับปรุงเส้นทางที่เหมาะสมที่สุดเพื่อแก้ไขการเปลี่ยนแปลง
เมื่อข้อมูลค่าใช้จ่ายที่เปลี่ยนแปลงอยู่ใกล้กับเป้าหมายของการค้นหา (หรือสถานการณ์ของคุณเห็นตำแหน่งการเปลี่ยนแปลงเป้าหมายไม่ใช่เพียงแค่จุดเริ่มต้น) อัลกอริทึมเหล่านี้จะประสบกับการชะลอตัวของภัยพิบัติ ในสถานการณ์สมมตินี้ข้อมูลที่บันทึกไว้เกือบทั้งหมดต้องได้รับการอัปเดตเนื่องจากภูมิภาคที่เปลี่ยนแปลงอยู่ใกล้กับเป้าหมายที่เส้นทางที่คำนวณไว้ล่วงหน้าเกือบทั้งหมดผ่านการเปลี่ยนแปลงและต้องได้รับการประเมินอีกครั้ง เนื่องจากมีค่าใช้จ่ายในการจัดเก็บข้อมูลพิเศษและการคำนวณเพื่อทำการปรับปรุงเพิ่มเติมการประเมินซ้ำในระดับนี้ช้ากว่าการเริ่มต้นใหม่
เนื่องจากสถานการณ์ตัวอย่างของคุณปรากฏขึ้นเพื่อให้ผู้ใช้ย้ายกำแพงที่ต้องการคุณจะประสบปัญหานี้หากคุณใช้ D *, D * -Lite, LPA * เป็นต้นประสิทธิภาพเวลาของอัลกอริทึมของคุณจะแปรผันตามผู้ใช้ อินพุต โดยทั่วไป "นี่คือสิ่งที่ไม่ดี" ...
ตัวอย่างเช่นกลุ่มของ Alonzo Kelly ที่ CMU มีโปรแกรมที่ยอดเยี่ยมชื่อ PerceptOR ซึ่งพยายามรวมหุ่นยนต์ภาคพื้นดินกับหุ่นยนต์ทางอากาศข้อมูลการแบ่งปันการรับรู้ทั้งหมดแบบเรียลไทม์ เมื่อพวกเขาพยายามที่จะใช้เฮลิคอปเตอร์เพื่อแจ้งราคาต้นทุนแบบเรียลไทม์กับระบบการวางแผนของยานพาหนะภาคพื้นดินพวกเขาประสบกับปัญหานี้เพราะเฮลิคอปเตอร์สามารถบินไปข้างหน้าของยานพาหนะภาคพื้นดินได้เห็นการเปลี่ยนแปลงราคาใกล้เป้าหมาย อัลกอริทึมของพวกเขาลง พวกเขาอภิปรายการสังเกตที่น่าสนใจนี้หรือไม่? ไม่ได้ในที่สุดสิ่งที่ดีที่สุดที่พวกเขาทำได้คือให้เฮลิคอปเตอร์บินเหนือพื้นดินโดยตรงทำให้เป็นเสาเซ็นเซอร์ที่แพงที่สุดในโลก แน่นอนว่าฉันเป็นคนขี้โกง แต่มันเป็นปัญหาใหญ่ที่ไม่มีใครอยากพูดถึง - และพวกเขาควร
มีเพียงไม่กี่เอกสารที่พูดถึงเรื่องนี้ส่วนใหญ่โดยฉัน จากบทความที่เขียนโดยผู้เขียนหรือนักเรียนของผู้เขียนเอกสารต้นฉบับที่ระบุไว้ในคำถามนี้ฉันสามารถคิดได้ว่ามีเพียงหนึ่งเดียวที่กล่าวถึงปัญหานี้จริง ๆ Likhachev และ Ferguson ขอแนะนำให้พยายามประเมินขนาดของการอัปเดตที่จำเป็นและล้างข้อมูลที่เก็บไว้หากการอัปเดตที่เพิ่มขึ้นคาดว่าจะใช้เวลานานกว่าการเริ่มต้นใหม่ นี่เป็นวิธีแก้ปัญหาที่สมเหตุสมผล แต่มีคนอื่นด้วย ปริญญาเอกของฉันพูดถึงแนวทางที่คล้ายกันในปัญหาการคำนวณที่หลากหลายและอยู่เหนือขอบเขตของคำถามนี้อย่างไรก็ตามคุณอาจพบว่าการอ้างอิงมีประโยชน์เนื่องจากมีภาพรวมโดยละเอียดของอัลกอริธึมเหล่านี้และอื่น ๆ ดูhttp://db.acfr.usyd.edu.au/download.php/Allen2011_Thesis.pdf?id=2364 สำหรับรายละเอียด