Kompleksitas st-Konektivitas Unik

11

Saya ingin tahu apakah masalah berikut dapat dipecahkan dalam (nondeterministic logspace):NL

Diberikan grafik terarah dengan dua simpul dibedakan dan , apakah ada jalur unik dari ke di ?s t s t GGststG

Saya merasa bahwa itu kemungkinan ada di karena kita dapat memutuskan apakah ada - --path dan jika tidak ada jalan seperti itu. Namun, menghitung jumlah jalur tersebut adalah -hard (Valiant, 1979). s t PNLstP

Jadi pertanyaan saya: Apakah Anda punya referensi tentang ini? Apakah sudah jelas bahwa itu ada di ? Atau itu tidak ada di ?N LNLNL

Bruno
sumber
5
Apakah maksud Anda jalur sederhana? Tidak jelas itu sama dalam konteks ini.
Lance Fortnow
1
Poin bagus, maksud saya memang jalur sederhana.
Bruno

Jawaban:

16

Tampaknya masalah Anda ada di . Berikut ini adalah algoritma.NL

Pertama, secara nondeterministis menebak jalur dari ke . Jika Anda salah menebak, tolak . Sebut algoritma ini .t AstA

Pertimbangkan algoritma nondeterministic berikut , yang menentukan apakah setidaknya ada dua jalur. Diberikan grafik dan , untuk semua pasangan tepi yang berbeda , tebak jalur dari ke yang mencakup tetapi bukan , lalu tebak jalur dari ke yang mencakup tetapi tidak . Jika tebakannya benar, terima . Jika tidak ada penerimaan untuk semua pilihan dan , tolak . Catatan dapat diterapkan di ruang log nondeterministic.s , t e , f s t e f s t f e e f BBs,te,fstefstfeefB

Sekarang, himpunan adalah himpunan grafik - dengan setidaknya dua jalur dari ke . Karena , komplemen juga dalam , yaitu, kita dapat menentukan apakah dan memiliki kurang dari dua jalur, dalam ruang log nondeterministic.s t s t N L = c o N L B N L s tL(B)ststNL=coNLBNLst

Algoritma terakhir adalah: "Jalankan Jika menerima, maka jalankan pelengkap dan output jawabannya."A BAAB

Saya tidak tahu referensi.

PEMBARUAN: Jika Anda benar-benar menginginkan referensi, lihat paragraf pertama Bagian 3 dari makalah ini . Tapi ini mungkin hanya satu dari banyak referensi yang mengutip konsekuensi ini. Akan lebih masuk akal untuk menyebut hasilnya "cerita rakyat" daripada mengutip makalah yang menyebutkannya.

UPDATE 2: Anggaplah Anda ingin menentukan apakah ada jalur sederhana yang unik. Dalam hal ini, algoritma tidak harus berubah: jika ada jalur sama sekali maka ada jalur sederhana. Saya percaya modifikasi berikut akan bekerja untuk algoritma .BAB

Kami ingin menulis ulang algoritme sehingga menerima jika ada setidaknya dua jalur sederhana.B

Pertama-tama pertimbangkan algoritma waktu polinomial berikut untuk masalahnya. Temukan jalur terpendek dari ke . Untuk setiap tepi dalam , periksa apakah ada jalur - yang tidak melalui . Jika Anda menemukan jalan seperti itu maka terima . Jika Anda tidak pernah menemukan jalan lain, tolak . Karena paling pendek, ia tidak memiliki siklus, dan jika ada jalur lain yang tidak menggunakan tepi , maka ada jalur lain yang sederhana dan tidak menggunakan tepis t e P s t e P P PPstePstePPP. (Algoritma ini digunakan untuk masalah "jalur terpendek kedua").

Kami akan mengimplementasikan algoritma ini dalam . Jika kami memiliki algoritme untuk menanyakan tepi dalam jalur tetap , kami dapat mengimplementasikan hal tersebut di dalam nondeterministic logspace: iterasi melalui semua tepi dalam , tebak - path dan periksa bahwa untuk setiap tepi yang dikunjungi sepanjang jalan , tidak satupun dari mereka yang sama dengan .N L e P e P s t eNLNLePePste

Jadi yang kita butuhkan adalah "jalur oracle", sebuah algoritma dengan properti: diberikan , dalam setiap jalur perhitungan algoritma baik melaporkan tepi ke- pada jalur - tetap tertentu , atau menolak . Kita bisa mendapatkan jalur oracle dengan menggunakan untuk mengisolasi jalur leksikografis pertama.i = 1 , , n i s t N L = c o N LNLi=1,,nistNL=coNL

Berikut ini adalah sketsa jalur oracle.

Temukan , panjang jalur terpendek dari ke , dengan mencoba semua dan menggunakan .s t k = 1 , , n N L = c o N Lkstk=1,,nNL=coNL

Setel variabel , , .x : = 1 j : = ku:=sx:=1j:=k

Untuk semua tetangga dari agar leksikografis,uvu

Tentukan apakah ada jalur dari ke dengan panjang (menggunakan hasil ). Lebih tepatnya, jalankan algoritma nondeterministic untuk konektivitas - (dengan panjang ) dan algoritma untuk komplemennya, secara bersamaan. Ketika salah satu dari mereka menerima, lanjutkan dengan jawabannya (itu pasti benar; keduanya tidak dapat menerima). Jika keduanya menolak maka tolak .t j - 1 N L = c o N L s t j - 1vtj1NL=coNLstj1

Jika tidak ada jalan, lanjutkan ke tetangga berikutnya. Jika Anda sudah kehabisan semua tetangga maka tolak .

Jika ada jalur, maka jika , output sebagai tepi ke- di jalur dari ke . Jika tidak, tambahkan , turunkan , atur , dan mulai for-loop lagi jika .( u , v ) i s t x j u : = v v tx=i(u,v)istxju:=vvt

Jika setelah mencapai output bad (yang diberikan terlalu besar).t i ix<itii

Diberikan , algoritma ini menghasilkan tepi ke- pada jalur pendek tersingkat secara leksikografis dari ke , atau menolak.i P s tiiPst

Ryan Williams
sumber
Saya pikir sesuatu yang serupa tetapi menggunakan ruang linear. Terima kasih atas jawaban anda!
Bruno
5
Saya setuju itu benar-benar cerita rakyat. Ini adalah konsekuensi langsung dari runtuhnya hierarki . Juga, masalah penghitungan tidak lengkap. Itu di #L, yang pada gilirannya diN C 2NLNC2
V Vinay
2
Ya, seperti yang saya nyatakan di atas, algoritma tidak membedakan antara jalur sederhana dan jalur dengan siklus.
Ryan Williams
1
@V Vinay: Dalam makalah ini , penulis merujuk pada makalah Valiant . Kompleksitas masalah enumerasi dan reliabilitas sebagai pembuktian masalah. Saya baru saja memeriksa koran Valiant , dan ini adalah masalah 14 (hal414). Apakah saya salah mengerti sesuatu? Mungkin Anda berbicara tentang jalur yang tidak sederhana, dan kompleksitasnya berubah secara dramatis dalam kasus ini? Terima kasih! P
Bruno
1
Btw, komentar oleh Allender & Lange cukup untuk langsung menyimpulkan.
Bruno