วิธีการใช้อัลกอริทึม AO *


16

ฉันสังเกตเห็นว่ามีการใช้โครงสร้างข้อมูลที่แตกต่างกันเมื่อเราใช้อัลกอริทึมการค้นหา ตัวอย่างเช่นเราใช้คิวเพื่อดำเนินการค้นหาอย่างกว้างแรกวางซ้อนเพื่อใช้การค้นหาเชิงลึกครั้งแรกและ min-heaps เพื่อใช้อัลกอริทึม A *อัลกอริทึม ในกรณีเหล่านี้เราไม่จำเป็นต้องสร้างแผนผังการค้นหาอย่างชัดเจน

แต่ฉันไม่สามารถหาโครงสร้างข้อมูลที่ง่ายต่อการจำลองขั้นตอนการค้นหาของAO * อัลกอริทึม ฉันอยากรู้ว่าการสร้างแผนผังการค้นหาเป็นวิธีเดียวที่จะใช้อัลกอริทึม AO * หรือไม่ ใครช่วยให้ฉันมีการใช้งานที่มีประสิทธิภาพ?


3
ยินดีต้อนรับ! โปรดอย่าลืมรวมการอ้างอิงถึงเนื้อหาที่ไม่ได้มาตรฐานที่คุณใช้ เนื่องจาก AO * ไม่มีบทความ Wikipedia จึงมีการเชื่อมโยงอย่างแน่นอน ฉันหวังว่าฉันจะพบสิ่งที่ดีโปรดตรวจสอบ
กราฟิลส์

1
ไม่ใช่แค่กราฟ (ด้วยฟังก์ชั่นที่อนุญาตให้หนึ่งย้ายไปยังโหนด "ถัดไป")
soandos

มันจะช่วยได้ถ้ามีคนวาดภาพว่า AO * แตกต่างจากอัลกอริธึม A * อย่างไร ไม่สามารถหาคำตอบได้จากลิงค์ สำหรับการนำไปใช้นั้นโครงสร้างใด ๆ ของต้นไม้นั้นสมเหตุสมผล ...
vzn

คำตอบ:


1

เกี่ยวกับบทความนี้ทุกครั้งที่คุณขยายโหนดในอัลกอริทึม AO * คุณต้องย้อนกลับเพื่ออัปเดตค่าใช้จ่ายโดยประมาณของรุ่นก่อนทั้งหมด

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

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


0

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

http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree


2
และคุณสามารถทำสิ่งนี้ได้หรือไม่
กราฟิลส์

มันไม่ชัดเจนสำหรับฉันว่า BST จะใช้อย่างไรเนื่องจาก BST มีดัชนีตัวเลขสำหรับแต่ละโหนดและใช้เพื่อวาง ดัชนีตัวเลขที่ใช้คืออะไร
vzn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.