ให้เป็นกราฟที่สมบูรณ์, มีน้ำหนัก, ไม่ระบุทิศทาง เราสร้างกราฟสองG ' = ( V , E ' )โดยการเพิ่มขอบหนึ่งโดยหนึ่งจากEไปE ' เราเพิ่มขอบΘ ( | V | )ลงในG ′ทั้งหมด
ทุกครั้งที่เราเพิ่มอีกหนึ่งขอบเพื่อE 'เราจะพิจารณาในระยะทางที่สั้นที่สุดระหว่างคู่ทั้งหมดใน( V , E ' )และ( V , E ' ∪ { ( U , V ) } ) เรานับจำนวนของระยะทางที่สั้นที่สุดเหล่านี้มีการเปลี่ยนแปลงเป็นผลมาจากการเพิ่ม( U , V ) ให้C iเป็นระยะทางที่สั้นที่สุดที่เปลี่ยนไปเมื่อเราเพิ่มiขอบที่หนึ่งและให้เป็นจำนวนของขอบที่เราเพิ่มเข้าไปทั้งหมด
C = ∑ i C iใหญ่แค่ไหน ?
เช่นเดียวกับ , C = O ( n 2 )เช่นกัน ขอบเขตนี้สามารถปรับปรุงได้หรือไม่? โปรดทราบว่าฉันกำหนดCจะเป็นเฉลี่ยมากกว่าขอบทั้งหมดที่ถูกเพิ่มเพื่อรอบเดียวซึ่งในจำนวนมากของการเปลี่ยนแปลงในระยะทางไม่ได้เป็นที่น่าสนใจแม้ว่ามันจะพิสูจน์ให้เห็นว่าC = Ω ( n )
ฉันมีอัลกอริทึมสำหรับคำนวณเรขาคณิต t-spanner อย่างตะกละตะกลามซึ่งทำงานในเวลาดังนั้นถ้าCคือo ( n 2 )อัลกอริทึมของฉันเร็วกว่าอัลกอริทึมโลภดั้งเดิมและถ้าCมีขนาดเล็กจริงๆ อาจเร็วกว่าอัลกอริทึมที่รู้จักกันดีที่สุด (แม้ว่าฉันจะสงสัยก็ตาม)
คุณสมบัติเฉพาะปัญหาที่อาจช่วยให้เกิดขอบเขตที่ดี: edge ที่เพิ่มเข้ามานั้นจะมีน้ำหนักที่ใหญ่กว่าขอบใด ๆ ที่อยู่ในกราฟอยู่เสมอ นอกจากนี้น้ำหนักของมันสั้นกว่าเส้นทางที่สั้นที่สุดระหว่าง UและV
คุณอาจสมมติว่าจุดยอดที่สอดคล้องกับจุดในระนาบ 2d และระยะห่างระหว่างจุดยอดคือระยะทางแบบยุคลิดระหว่างจุดเหล่านี้ นั่นคือทุกจุดยอดตรงกับบางจุด( x , y )ในระนาบและสำหรับขอบ( u , v ) = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) )น้ำหนักของมันจะเท่ากัน ถึง√