Mengurangi penggunaan ruang konektivitas-st dengan banyak lintasan?

20

Misalkan grafik dengan n simpul disajikan sebagai aliran tepi m , tetapi beberapa lintasan diizinkan melewati aliran.Gnm

Monika Rauch Henzinger, Prabhakar Raghavan, dan Sridar Rajagopalan mengamati bahwa ruang diperlukan untuk menentukan apakah ada jalur antara dua simpul yang diberikan dalam G , jika k pass diizinkan pada data. (Lihat juga versi laporan teknis .) Namun, mereka tidak menyediakan algoritma untuk benar-benar mencapai batas ini. Saya berasumsi bahwa algoritma optimal sebenarnya akan mengambil O ( ( nΩ(n/k)Gk ruang dalam model komputasi realistis, karena kita harus membedakan n simpul yang berbeda jika seseorang tidak dapat mengindeks memori menggunakan pointer ukuran konstan.O((nlogn)/k)n

Bagaimana seseorang dapat memutuskan konektivitas grafik dengan pass menggunakan O ( ( nk ruang?O((nlogn)/k)

Jika hanya satu lintasan diperbolehkan, data input dapat disimpan sebagai partisi dari set simpul, menggabungkan set jika tepi terlihat antara simpul dalam dua set berbeda. Ini jelas membutuhkan paling banyak ruang. Pertanyaan saya adalah tentang k > 1 : bagaimana cara menggunakan lebih banyak pass untuk mengurangi ruang yang dibutuhkan?O(nlogn)k>1

(Untuk menghindari hal-hal sepele, adalah parameter yang tidak dapat dibatasi apriori oleh konstanta, dan batas ruang adalah ekspresi yang melibatkan fungsi n dan k .)knk


Pembaruan: bahkan untuk akan sangat berguna untuk memiliki cara untuk menyimpan hanya n / 2 simpul. Atau ada sebenarnya lebih kuat batas bawah c n untuk beberapa konstan c , terlepas dari k ?k=2n/2cnck

András Salamon
sumber
Bagaimana pun ? Jika bisa sangat besar, maka st-konektivitas dapat diselesaikan dalam ruang O ( log 2 n ) , sehingga ada peluang untuk suatu algoritma, tetapi seperti yang ditunjukkan oleh azotlichid, mungkin tidak dalam O ( n log n / k ) . kO(log2n)O(nlogn/k)
domotorp
Perhatikan bahwa eliminasi pass Guha dan McGregor untuk algoritma acak bekerja dalam arah yang berlawanan, menggunakan lebih banyak ruang untuk memungkinkan lebih sedikit pass (meskipun ruang tambahan besar jika kesalahan yang diinginkan kecil). Pertanyaan ini menanyakan apakah dengan menggunakan lebih banyak lintasan, seseorang dapat mengurangi penggunaan ruang.
András Salamon

Jawaban:

8

Ini adalah masalah terbuka yang lama untuk menemukan algoritma untuk st-konektivitas yang berjalan secara simultan dalam ruang sub-linear dan waktu polinomial, tugas yang lebih mudah daripada apa yang Anda tuju. Algoritma semacam itu dikenal untuk versi yang tidak diarahkan , tetapi bahkan ini membutuhkan waktu polinomial yang besar (daripada waktu O (km) yang akan tersirat oleh algoritma k-pass). Lihat terutama referensi ke kertas Tompa tentang mengapa kasus yang diarahkan tampaknya sulit.

Noam
sumber
1
M. Tompa, Dua algoritma penutupan transitif yang dikenal yang tidak mengakui waktu polinomial, implementasi ruang sublinear , SIAM J. Comput. 11 (1), 130–137. dx.doi.org/10.1137/0211010
András Salamon
Makalah ini memberikan "suatu algoritma untuk st-konektivitas yang berjalan secara bersamaansub-linear ruang dan waktu polinomial".
4

Ini bukan jawaban, tapi saya hanya ingin menunjukkan bahwa jika Anda dapat menyelesaikan masalah ini untuk , maka Anda memecahkan st-konektivitas dalam ruang O ( log n ) dan waktu O ( n m ) (yang dalam kasus offline, Anda dapat melakukannya dengan probabilitas> 1/2 dengan melakukan jalan acak; tetapi tampaknya sedikit lebih sulit ketika tepiannya berasal dari aliran). Pertanyaan yang sangat menarik, IMO.k=Θ(n)O(logn)O(nm)

zotachidil
sumber
3

Yossi Shiloach, Uzi Vishkin. Algoritma Konektivitas Paralel O (log n). J. Algorithms, 1982: 57 ~ 67 - Salah satu makalah favorit saya. Akan menarik jika Anda bisa melakukannya di ruang O ((nlogn / k) / p) dengan prosesor p di putaran di mana setiap putaran masing-masing prosesor hanya diperbolehkan membaca di O (n / p) pada tepiannya.k

Chad Brewbaker
sumber
Terima kasih untuk penunjuknya, ini adalah makalah yang menarik. Prosesor memiliki akses umum ke struktur data yang setidaknya sebesar grafik, jadi ini tidak membantu mengurangi penggunaan ruang. Memang akan menarik jika ada cara untuk mengurangi penggunaan ruang dengan mengeksploitasi jumlah putaran serta jumlah prosesor.
András Salamon
2

Namun jawaban lain: ada beberapa makalah tentang algoritma gaya mapreduce yang beroperasi pada grafik besar. Tujuannya adalah untuk mencapai ruang per-mesin o (m) untuk grafik padat, tetapi biasanya membutuhkan O (n) ruang per mesin.

theory.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf

Martin Pál
sumber
1

O(nlogn/k)kn/kstn/kn/kst

domotorp
sumber