Saya memiliki tugas pekerjaan rumah yang selama ini saya anggap bertentangan, dan saya akan menghargai setiap petunjuk. Ini adalah tentang memilih masalah yang diketahui, NP-kelengkapan yang terbukti, dan membangun pengurangan dari masalah itu ke masalah berikut saya akan memanggil DGD (diagnosis grafik diarahkan).
Masalah
Sebuah contoh dari DGD terdiri dari simpul V = I . ∪ O . ∪ B , tepi terarah E dan bilangan bulat positif k . Ada tiga jenis simpul: simpul dengan hanya tepi masuk saya , simpul dengan hanya keluar tepi O dan simpul dengan baik masuk dan tepi keluar B . Mari lanjut D = O × aku .
Sekarang, masalahnya adalah apakah kita dapat menutup semua node dengan paling banyak elemen D , yaitu
di mana berarti ada jalur yang diarahkan dari a ke b .
Saya berpikir bahwa masalah Dominating Set adalah salah satu yang harus saya kurangi, karena ini juga khawatir tentang menutupi subset node dengan subset lain. Saya mencoba membuat instance DGD dengan terlebih dahulu membuat dua node untuk setiap elemen set yang mendominasi, menyalin semua tepi, dan kemudian menetapkan dari instance DGD sama dengan instance DS.
Misalkan DS-instance sederhana dengan node , 2 dan 3 dan edge ( 1 , 2 ) dan ( 1 , 3 ) . Ini adalah contoh-ya dengan k = 1 ; set yang mendominasi dalam hal ini hanya terdiri dari simpul 1 . Mengurangi dengan metode yang baru saja dijelaskan, ini akan mengarah ke instance DGD dengan dua jalur ( 1 → 2 → 1 ′ ) dan ( 1 → 3 → 1 ′ ); untuk menutup semua node, cukup satu pasangan sudah cukup. Ini akan bekerja dengan sempurna, jika bukan karena set dominasi DS-instance tentu saja tidak dapat ditentukan dalam waktu polinomial, yang merupakan persyaratan di sini.
Saya telah menemukan bahwa ada banyak cara yang bagus untuk mengubah tepi dan simpul ketika mengurangi, tetapi masalah saya entah bagaimana mengekspresikan DGD dalam hal k DS . Dominating Set sepertinya merupakan masalah yang pas untuk dikurangi, tetapi karena ini saya pikir mungkin saya harus mencoba mengurangi dari masalah yang tidak memiliki k ?
sumber
Jawaban:
Mengurangi dari NP-complete SET-COVER sebagai gantinya.
Misalkan dengan k ∈ N merupakan instance dari set cover. Definisikan instance ( V , E , k ′ ) dari DGD seperti ini:S1, ... , Sm⊆ { 1 , ... , n } k ∈ N ( V, E, k′)
Mudah untuk melihat bahwa instance DGD yang dibangun memiliki jawaban positif jika dan hanya jika instance cover yang diberikan memiliki jawaban positif. Secara khusus, semua pasangan ( s i , o i ) harus dipilih tidak peduli apa untuk menutupi semua o i ; maka k dari m pasangan ( s i , o ) harus mencakup semua e j , dan komponen pertama dari mereka yang terpilih adalah solusi dari contoh SET-TUTUP. Jika tidak ada pilihan seperti itu mungkin, instance SET-COVER tidak memiliki solusi juga.m ( ssaya, osaya) Haisaya k m ( ssaya, o ) ej
Karena konstruksi dimungkinkan dalam waktu polinomial, ini membuktikan SET-COVER DGD.≤hal
Sebagai contoh, perhatikan contoh set cover instance yang diberikan di Wikipedia , yaitu dan set S = { { 1 , 2 , 3 } , { 2 , 4 } , { 3 , 4 } , { 4 , 5 } } . Ini diterjemahkan ke dalam grafik berikut:{ 1 , 2 , 3 , 4 , 5 } S= { { 1 , 2 , 3 } , { 2 , 4 } , { 3 , 4 } , { 4 , 5 } }
[ sumber ]
sumber