ภาพถ่ายระนาบย่อยที่หนักที่สุด


9

พิจารณาปัญหาต่อไปนี้

ป.ร. ให้ไว้: กราฟที่สมบูรณ์ที่มีน้ำหนักที่ไม่เป็นลบจริงบนขอบ

ภารกิจ: ค้นหากราฟย่อยของน้ำหนักสูงสุด ("สูงสุด" ในบรรดากราฟย่อยระนาบที่เป็นไปได้ทั้งหมด)

หมายเหตุ: กราฟย่อยน้ำหนักสูงสุดจะเป็นรูปสามเหลี่ยม ถ้ากราฟทั้งหมดเปิดอยู่n จุดยอดก็จะมี ม.=3n-6 ขอบ

คำถาม: อัลกอริทึมที่ดีที่สุดสำหรับปัญหานี้คืออะไร ความซับซ้อนของเวลาคืออะไร

คำตอบ:


6

นี่คือ NP-hard แม้สำหรับกราฟที่สมบูรณ์แบบถ่วงน้ำหนัก สำหรับอัลกอริธึมที่ง่ายคุณสามารถคำนวณทรีสแปนนิ่งน้ำหนักสูงสุดลบล้างน้ำหนักขอบและเรียกใช้อัลกอริทึมของ Kruskal สิ่งนี้จะให้อัตราส่วนประสิทธิภาพเท่ากับ 1/3 (แผนภูมิทอด)n-1 ขอบและอย่างที่คุณทราบกราฟย่อยสูงสุดจะมีได้ไม่เกิน 3n-6ขอบ) เท่าที่ฉันรู้อัลกอริทึมใน [1] ซึ่งมีอัตราส่วนประสิทธิภาพอย่างน้อย 25/72 และที่มากที่สุด 5/12 ยังไม่ได้รับการปรับปรุงให้ดีขึ้นอย่างมาก (แต่ดูเอกสารใหม่ที่อ้างอิงได้)

สำหรับกราฟที่สมบูรณ์ซึ่งน้ำหนักของขอบเป็นไปตามความไม่เสมอภาคของสามเหลี่ยมอัตราส่วนประสิทธิภาพของอัลกอริทึมใน [1] อย่างน้อย 3/8 ฉันคิดว่าอัลกอริทึมค่อนข้างเกี่ยวข้องและสามารถทำให้ทำงานได้O(ม.3/2nเข้าสู่ระบบ6n)เวลาบนกราฟทั่วไป มีตัวแปรที่เรียบง่ายบางอย่างที่ผู้เขียนนำเสนอเช่นกันกับอัตราส่วนประสิทธิภาพที่แตกต่างกันและอาจจะดีกว่า runtimes


[1] Calinescu, G. , Fernandes, CG, Karloff, H. , & Zelikovsky, A. (2003) อัลกอริทึมการประมาณใหม่สำหรับการค้นหากราฟิคย่อยหนัก อัลกอริทึม, 36 (2), 179-205

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