Berapa banyak jarak terpendek berubah saat menambahkan tepi ke grafik?

22

Biarkan menjadi beberapa grafik lengkap, tertimbang, tidak terarah. Kami membuat grafik kedua dengan menambahkan tepi satu per satu dari ke . Kami menambahkan tepi ke secara total.G = ( V , E ) E E Θ ( | V | ) G G=(V,E)G=(V,E)EEΘ(|V|)G

Setiap kali kita menambahkan satu sisi ke , kami mempertimbangkan jarak terpendek antara semua pasangan dalam dan . Kami menghitung berapa banyak dari jarak terpendek ini telah berubah sebagai konsekuensi dari penambahan . Biarkan menjadi jumlah jarak terpendek yang berubah ketika kita menambahkan tepi ke- , dan biarkan menjadi jumlah tepi yang kita tambahkan secara total.E ( V , E ) ( V , E { ( u , v ) } ) ( u , v ) C i i n(u,v)E(V,E)(V,E{(u,v)})(u,v)Ciin

Seberapa besar ?C=iCin

Sebagai , juga. Bisakah ikatan ini ditingkatkan? Perhatikan bahwa saya mendefinisikan sebagai rata-rata di semua tepi yang ditambahkan, jadi satu putaran di mana banyak perubahan jarak tidak begitu menarik, meskipun itu membuktikan bahwa .C = O ( n 2 ) C C = Ω ( n )Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

Saya memiliki algoritme untuk menghitung geometri t-spanner dengan rakus yang bekerja pada waktu , jadi jika adalah , algoritme saya lebih cepat daripada algoritma serakah asli, dan jika adalah sangat kecil, berpotensi lebih cepat dari algoritma yang paling dikenal (meskipun saya ragu itu).C o ( n 2 ) CHAI(Cnlogn)CHai(n2)C

Beberapa sifat khusus masalah yang mungkin membantu dengan ikatan yang baik: tepi yang ditambahkan selalu memiliki bobot lebih besar dari tepi mana pun yang sudah ada dalam grafik (tidak harus benar-benar lebih besar). Selanjutnya, beratnya lebih pendek dari jalur terpendek antara dan .u v(kamu,v)kamuv

Anda dapat mengasumsikan bahwa simpul sesuai dengan titik-titik dalam bidang 2d dan jarak antara simpul adalah jarak Euclidian antara titik-titik ini. Yaitu, setiap titik sesuai dengan beberapa titik di pesawat, dan untuk tepi beratnya sama dengan( x , y ) ( u , v ) = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) ) v(x,y)(kamu,v)=((x1,y1),(x2,y2))(x2-x1)2+(y2-y1)2.

Alex ten Brink
sumber
2
Ambil dua klik yang terhubung oleh jalur dengan dua tepi. Menambahkan satu sisi langsung di antara klik-klik mempersingkat dari jalur terpendek. Ω(n2)
Louis
1
@ Louis: ya, ada contoh di mana tepi tunggal menyebabkan banyak jarak berubah, tetapi apakah ada grafik di mana itu terjadi untuk setiap tepi yang Anda tambahkan, atau setidaknya untuk banyak dari mereka? Inilah sebabnya saya mendefinisikan sebagai rata-rata di semua sisi :)C
Alex ten Brink
1
Sebagian besar tepi dalam grafik ini yang dapat ditambahkan adalah dari tipe yang saya jelaskan ...
Louis
@ Louis Benar. Cli mengandung edge, yang lebih dari yang pernah saya tambahkan ke grafik saya. O(n2)
Alex ten Brink
Saya memiliki masalah yang sama sebelumnya, tetapi grafik saya adalah jenis grafik yang jarang dengan dan saya harus membuktikan perubahan rata-rata adalah O (1) tapi saya tidak bisa melakukannya :-). Tetapi untuk kasus Anda, saya pikir jika Anda menemukan hubungan antara ini dan solusi APSP Anda bisa mendapatkan beberapa hasil. |E|=HAI(|V|)

Jawaban:

19

Pertimbangkan rantai linear berikut dengan node, n edge dan bobot yang dipilih dengan kejam:n+1n

contoh
[ sumber ]

Jelas, ujung-ujungnya bisa ditambahkan dalam urutan bobotnya dan ada dari mereka. Menambahkan tepi putus-putus (yang legal) menciptakan jalur yang lebih pendek untuk semua pasangan ( u i , b j ) dengan i , j = 1 , , k . Sebagai k nnO(|V|)(kamusaya,bj)saya,j=1,...,k dan dengan asumsi bahwanΘ(|V|), baik baris pertama dan terakhir mengandungΘ(|V|)masing-masing banyak node dan penambahan menyebabkanΘ(|V|2)banyak perubahan jalur terpendek.kn4nΘ(|V|)Θ(|V|)Θ(|V|2)

Kita sekarang dapat memindahkan "ke luar" sekarang, yaitu menambahkan tepi berikutnya dengan bobot antara u k - 1 dan b k - 1 dan seterusnya; jika kita melanjutkan ini ke ( u 1 , b 1 ) , kita menyebabkan total perubahan jalur terpendek Θ ( | V | 3 ) .n+2kamuk-1bk-1(kamu1,b1)Θ(|V|3)

Jika ini tidak meyakinkan Anda, perhatikan bahwa Anda sebenarnya dapat memulai "proses" ini dengan dan bekerja keluar dari sana; dengan cara ini Anda menambahkan n tepi yang menyebabkan total n i = 1 i 2Θ ( n 3 ) = Θ ( | V | 3 ) banyak perubahan jalur terpendek --- ini hanya mustahil untuk menggambar agar sesuai pada satu layar.(c1,c2)nsaya=1nsaya2Θ(n3)=Θ(|V|3)

Raphael
sumber
1
Ini memang berhasil, dan lebih jauh lagi, contoh Anda dapat diubah sedikit menjadi Euclidian. Terima kasih :)
Alex ten Brink