Apa kompleksitas dari masalah berikut ini?
Masukan :
- a jalur Hamilton di
- subset pasangan simpul
- bilangan bulat positif
Pertanyaan : apakah ada cocok sehingga untuk setiap , ?
(di mana )( v , u ) ∈ R
Saya telah berdiskusi dengan seorang teman tentang masalah ini. Teman saya berpikir masalahnya ada di waktu polinomial. Saya pikir itu NP-lengkap.
Jawaban:
Jawaban ini salah .
Temanmu benar. Masalah Anda (seperti yang ditafsirkan oleh Sasho) tidak menempatkan batasan apapun pada kardinalitas pencocokan . Oleh karena itu, memilih C menjadi pencocokan antara pasangan dalam R . Kemudian untuk bilangan bulat positif k , jarak antara setiap pasangan dalam R kurang dari k .C C R k R k
Masalah Anda menjadi menarik jika Anda memaksa jalur mengandung tepi dari kedua pencocokan dan jalur P .C P
sumber
UPDATE: jawaban di bawah ini tidak benar, karena saya salah berasumsi bahwa jalur Hamilton adalah dalam grafik arbitrer, bukan dalam . Saya membiarkannya tidak terhapus, mungkin saya akan bisa memperbaikinya atau itu akan memberikan beberapa petunjuk untuk jawaban lain.Kn
Saya pikir ini NP-lengkap. Ini adalah ide pengurangan yang sangat informal / cepat dari 3SAT
Untuk setiap variabel tambahkan "gadget variabel" dengan:xi
Tambahkan node sumber dan hubungkan ke semua variabel X i .S Xi
Untuk setiap klausul menambahkan node C j dan menghubungkannya dengan variabel yang sesuai + X i atau - X i bahwa bentuk klausa.Cj Cj +Xi −Xi
Gambar berikut menunjukkan:(+x1∨−x2∨−x3)∧(−x2∨x3∨x4)
Set (node yang harus dihubungkan) mengandung ( S , C 1 ) , ( S , C 2 ) , . . .R (S,C1),(S,C2),...
Jalur sederhana harus mencakup semua tepi "BIRU" kecuali tepi variabel ( X i , + X i ) dan ( X i , - X i ) (pada gambar di atas tepi biru mewakili tepi yang kami sertakan dalam P ).P (Xi,+Xi) (Xi,−Xi) P
Pada titik ini, rumus awal adalah satisfiable jika dan hanya jika jalur terpendek dari ke setiap klausul simpul C j tidak lebih besar dari tiga. Memang untuk mencapai klausa dari S dalam tiga langkah, kita harus melintasi setidaknya satu variabel X i : S → X i → ± X i → C j . Jadi kita harus melintasi salah satu dari dua tepi: X i → + X i atau X i → - X i ) dan memasukkannya ke dalam CS Cj S Xi S→Xi→±Xi→Cj Xi→+Xi Xi→−Xi) C (karena dengan konstruksi itu bukan bagian dari ). Tetapi keduanya tidak dapat dimasukkan, karena mereka berbagi titik.P
Tetapi kami tidak yakin bahwa kami dapat membangun jalur P sederhana yang mencakup semua tepi biru karena beberapa node memiliki lebih dari satu insiden tepi biru.P
Untuk memperbaikinya, kami mengganti setiap node dengan beberapa tepi biru insiden, dengan pohon yang hanya berisi pasangan tepi biru insiden yang akan dimasukkan dalam dan tepi yang memisahkannya dan yang harus disertakan dalam C untuk mencapai node klausa:P C
Grafik asli menjadi:
sumber