Bisakah min cut lebih mudah daripada aliran jaringan?


18

Berkat teorema min-cut max-flow, kami tahu bahwa kami dapat menggunakan algoritma apa pun untuk menghitung aliran maksimum dalam grafik jaringan untuk menghitung a -min-cut. Oleh karena itu, kompleksitas penghitungan potongan minimum ( s , t ) tidak lebih dari kompleksitas penghitungan aliran maksimum ( s , t ) .(s,t)(s,t)(s,t)

Mungkinkah itu kurang? Mungkinkah ada algoritma untuk menghitung potongan minimum yang lebih cepat daripada algoritma max-flow?(s,t)

Saya mencoba menemukan pengurangan untuk mengurangi masalah ) -max-flow ke masalah ( s , t ) -min-cut, tapi saya tidak dapat menemukannya. Pikiran pertama saya adalah menggunakan algoritma divide-and-menaklukkan: pertama-tama menemukan sebuah min-cut, yang memisahkan grafik menjadi dua bagian; sekarang secara rekursif temukan aliran maksimum untuk bagian kiri dan aliran maksimum untuk bagian kanan, dan gabungkan keduanya dengan semua ujung yang memotong potongan. Ini memang akan bekerja untuk menghasilkan aliran maksimum, tetapi waktu berjalan terburuk mungkin sebanyak O ( | V | ) kali lebih besar dari waktu berjalan dari algoritma min-cut. Apakah ada pengurangan yang lebih baik?(s,t(s,t)O(|V|)

Saya menyadari teorema min-cut max-flow menunjukkan bahwa kompleksitas menghitung nilai max-flow sama dengan kompleksitas menghitung kapasitas min-cut, tetapi bukan itu yang saya tanyakan. Saya bertanya tentang masalah menemukan aliran maksimum dan menemukan pemotongan minimum (secara eksplisit).

Ini sangat terkait dengan Hitung aliran maksimum dari pemotongan minimum , kecuali: (1) Saya bersedia mengizinkan pengurangan Cook (pengurangan Turing), bukan hanya pengurangan Karp (banyak-satu reduksi), dan (2) mungkin dengan diberikan kita dapat menemukan beberapa grafik G sedemikian sehingga min-cut G membuatnya mudah untuk menghitung aliran maksimum G , yang merupakan sesuatu yang berada di luar ruang lingkup untuk pertanyaan lainnya.GGGG


2
@AshkanKzme, saya tidak mengikuti Anda; bisakah kamu menguraikan? Seperti yang saya nyatakan dalam paragraf ke 4 dari pertanyaan, teorema min-cut max-flow menunjukkan bahwa nilai max-flow sama dengan kapasitas min-cut. Saya menduga ini adalah apa yang Anda pikirkan. Namun, mengetahui nilai max-flow tidak memberi tahu Anda max-flow itu sendiri (misalnya, berapa banyak yang harus dikirim pada setiap sisi tertentu). Pertanyaan ini menanyakan tentang kompleksitas komputasi max-flow itu sendiri, vs komputasi min-cut itu sendiri. Pertanyaan saya persis seperti yang disebutkan dalam paragraf ke-2 dari pertanyaan itu.
DW

2
@AshkanKzme, Tidak, saya tidak membuat asumsi yang salah. Anda secara implisit berasumsi bahwa Ford-Fulkerson adalah algoritma tercepat yang memungkinkan untuk menemukan potongan minimum ... tetapi sejauh yang saya tahu, tidak ada yang pernah membuktikannya, dan kami tidak tahu apakah itu benar atau tidak. Kedengarannya bagi saya seperti Anda membuat kesalahan rookie standar dengan bukti batas bawah: "Saya tidak bisa melihat cara untuk menyelesaikan masalah ini lebih cepat, jadi pasti tidak mungkin". (PS Kau memberitahuku hal-hal buku teks standar tentang max-flow min-cut. Aku menghargai upayamu untuk membantu, tapi aku sudah terbiasa dengan itu ...)
DW

1
Sejauh pernyataan Anda "Saya pikir dapat dibuktikan bahwa jika Anda hanya memiliki min-cut, Anda bisa mendapatkan aliran maksimum", well, saya mendorong Anda untuk menulis jawaban dengan bukti itu - karena pada dasarnya itulah yang pertanyaan saya bertanya. Saya belum pernah melihat buktinya, tetapi jika sudah, saya harap Anda akan menuliskannya!
DW

1
@DW saya pikir saya mendapatkan pertanyaan yang sedikit lebih baik sekarang Saya pikir saya tidak setuju dengan fakta bahwa Anda memberikan pengurangan turing polinomial. Tidakkah Anda membutuhkan pengurangan turing konstan untuk membuktikan , sementara bahkan membuktikan tidak ada pengurangan seperti itu mungkin tidak membuktikannya? f(n)=Θ(g(n))
Thomas Bosman

1
@ Thomasomasman, ya, itu benar. [Maaf telah membuatmu bingung. Pengurangan yang saya berikan dalam pertanyaan membuktikan bahwa , yang merupakan batas bawah yang sangat lemah. Saya berharap mungkin ada pengurangan yang membuktikan bahwa f ( n ) = Ω ( g ( n ) ) , tetapi saya tidak tahu bagaimana membangun hal seperti itu.]f(n)=Ω(g(n)/n)f(n)=Ω(g(n))
DW

Jawaban:


-1

Berikut adalah pendekatan yang mungkin:

StVStfStAijijbAf=bf|V|3

|E||V|

Af=b|V|3


f|V||E||E|>|V|

|V|bf

Af=b

Omong kosong itu benar. Anda bisa menambahkan kendala (atas dan bawah), yang Anda tahu memiliki solusinya, tetapi kemudian Anda memiliki | V | +2 | E | baris sehingga akan lebih lambat maka hanya menghitung aliran maks secara langsung.
Thomas Bosman

Masalah lainnya adalah bahwa kendala kapasitas adalah ketidaksetaraan (bukan persamaan), jadi Anda tidak dapat menggunakan eliminasi Gaussian: Anda harus menggunakan pemrograman linier, yang seperti yang Anda katakan sepertinya tidak akan lebih cepat daripada hanya menghitung aliran maks langsung.
DW
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.