ปรับปรุง:
วิธีนี้ไม่ถูกต้อง
วิธีแก้ปัญหาคือน่าเสียดายจริง ๆ (และตรงไปตรง) สำหรับต้นไม้ การหาเส้นผ่านศูนย์กลางของต้นไม้ไม่ต้องการสิ่งนี้ ต่อไปนี้เป็นตัวอย่างตัวอย่างสำหรับกราฟ (เส้นผ่านศูนย์กลางคือ 4 อัลกอริทึมส่งคืน 3 หากคุณเลือก ):โวลต์
หากกราฟกำกับทิศทางสิ่งนี้ค่อนข้างซับซ้อนนี่คือกระดาษบางส่วนที่อ้างถึงผลลัพธ์ที่รวดเร็วกว่าในกรณีที่หนาแน่นกว่าการใช้อัลกอริทึมสำหรับเส้นทางที่สั้นที่สุดของคู่ทั้งหมด
อย่างไรก็ตามประเด็นหลักของฉันคือเกี่ยวกับกรณีที่กราฟไม่ได้กำกับและด้วยจุดที่ไม่เป็นลบฉันได้รับเคล็ดลับที่ดีหลายครั้ง:
- เลือกจุดยอดโวลต์
- หานั้นสูงสุดd ( v , u )ยูd( v , u )
- ค้นหาที่สูงสุดWd( คุณ, w )
- ส่งคืนd( u , w )
ความซับซ้อนของมันนั้นเหมือนกับการค้นหาแบบกว้างสองครั้งแรกที่ต่อเนื่องกัน¹นั่นคือหากเชื่อมต่อกราฟ²O ( | E| )
ดูเหมือนชาวบ้าน แต่ตอนนี้ฉันยังคงดิ้นรนเพื่อรับการอ้างอิงหรือเพื่อพิสูจน์การแก้ไข ฉันจะอัปเดตเมื่อฉันจะบรรลุเป้าหมายข้อใดข้อหนึ่งเหล่านี้ ดูเหมือนง่ายมากที่ฉันโพสต์คำตอบของฉันตอนนี้บางทีบางคนอาจจะได้เร็วขึ้น
¹ถ้ากราฟจะ weighted, วิกิพีเดียดูเหมือนว่าจะพูดแต่ฉันเป็นเพียงแน่ใจเกี่ยวกับ|)O ( | E| + | V| เข้าสู่ระบบ| V| )O ( | E| เข้าสู่ระบบ| V| )
²หากกราฟไม่ได้เชื่อมต่อคุณจะได้รับแต่คุณอาจต้องเพิ่มเพื่อเลือกองค์ประกอบหนึ่งจากแต่ละองค์ประกอบที่เชื่อมต่อ ฉันไม่แน่ใจว่าจำเป็นหรือไม่และคุณอาจตัดสินใจว่าเส้นผ่านศูนย์กลางไม่มีที่สิ้นสุดในกรณีนี้O ( | V| + | E| )O ( α ( | V| ))