Dalam teori komputasi dan kompleksitas (dan mungkin bidang lainnya), reduksi ada di mana-mana. Ada banyak jenis, tetapi prinsipnya tetap sama: menunjukkan bahwa satu masalah setidaknya sekeras beberapa masalah lainnya dengan memetakan contoh dari ke yang setara dengan solusi di . Pada dasarnya, kami menunjukkan bahwa setiap solver untuk juga dapat menyelesaikan jika kami mengizinkannya menggunakan fungsi reduksi sebagai preprosesor.
Saya telah melakukan bagian pengurangan selama bertahun-tahun, dan sesuatu terus menggangguku. Sementara setiap pengurangan baru membutuhkan (lebih atau kurang) konstruksi kreatif, tugas itu bisa terasa berulang. Apakah ada kumpulan metode kanonik?
Apa saja teknik, pola, dan trik yang dapat digunakan secara berkala untuk membangun fungsi reduksi?
Ini seharusnya menjadi pertanyaan referensi . Oleh karena itu, harap berhati-hati untuk memberikan jawaban umum, yang disajikan secara didaktis yang diilustrasikan oleh setidaknya satu contoh tetapi tetap mencakup banyak situasi. Terima kasih!
Jawaban:
Kasus Khusus
Asumsikan kita ingin menunjukkan sehubungan dengan beberapa gagasan tentang pengurangan . Jika L_1 adalah kasus khusus dari L_2 , yang cukup sepele: kita pada dasarnya dapat menggunakan fungsi identitas. Intuisi di balik ini jelas: kasus umum setidaknya sekeras kasus khusus.L.1≤RL.2 R L.1 L.2
Dalam "latihan", kami diberikan dan terjebak dengan masalah memilih mitra reduksi yang baik , yaitu menemukan kasus khusus yang telah terbukti -hard.L 1 L 2 RL.2 L.1 L.2 R
Contoh sederhana
Asumsikan kita ingin menunjukkan bahwa KNAPSACK adalah NP-hard. Untungnya, kita tahu bahwa SUBSET-SUM adalah NP-complete, dan ini memang merupakan kasus khusus KNAPSACK. Pengurangan
cukup; adalah instance KNAPSACK yang menanyakan apakah kita dapat mencapai setidaknya nilai dengan nilai item di sehingga bobot yang sesuai dari tetap di bawah total . Kami tidak memerlukan batasan berat untuk mensimulasikan SUBSET-SUM, jadi kami hanya mengaturnya ke nilai tautologis.v V W w( V, W, v , w ) v V W w
Masalah olahraga sederhana
Pertimbangkan masalah MAX-3SAT: diberi rumus proposisional dan integer , putuskan apakah ada interpretasi yang memenuhi setidaknya klausa. Tunjukkan bahwa NP-hard.kφ k kφ k
Contoh
Asumsikan kita sedang menyelidiki masalah SUBSET-SUM dan ingin menunjukkan bahwa itu NP-hard.
Kami beruntung dan tahu bahwa masalah PARTISI adalah NP-complete. Kami mengonfirmasikan bahwa ini memang kasus khusus SUBSET-SUM dan dirumuskan
di mana adalah himpunan input PARTISI, dan adalah sebuah instance untuk SUBSET-SUM yang menanyakan setelah subset dari penjumlahan ke . Di sini, kita harus mengurus kasus bahwa tidak ada yang cocok ; dalam hal ini, kami memberikan contoh tidak layak yang sewenang-wenang.( A , k ) A k kA (A,k) A k k
Masalah Latihan
Pertimbangkan masalah LONGEST-PATH: diberi grafik diarahkan , node dari dan integer , putuskan apakah ada jalur sederhana dari ke di dengan panjang setidaknya .s , t G k s tG s,t G k s t G k
Tunjukkan bahwa LAMA-PATH adalah NP-keras.
sumber
Memanfaatkan masalah terdekat yang diketahui
Ketika dihadapkan dengan masalah yang terasa sulit, sering kali merupakan ide yang baik untuk mencoba mencari masalah serupa yang sudah terbukti sulit. Atau, mungkin Anda dapat langsung melihat bahwa masalah sangat mirip dengan masalah yang diketahui.
Contoh masalah
Pertimbangkan suatu masalah
yang ingin kami tampilkan adalah -complete. Kami dengan cepat mencatat bahwa itu sangat dekat dengan masalah yang sudah kita tahu sulit, yaitu masalah kepuasan (SAT) .NP
Keanggotaan untuk mudah untuk ditampilkan. Sertifikatnya adalah dua tugas. Jelas, itu dapat diperiksa dalam waktu polinomial apakah tugas memenuhi formula.NP
SAT φ v ( v ∨ ¬ v ) φ v = ⊥ v = ⊤ φ φNP -kekuatan mengikuti dari pengurangan dari . Diberikan rumus , kami memodifikasinya dengan memperkenalkan variabel baru . Kami menambahkan klausa baru ke rumus. Sekarang, jika memuaskan, itu akan memuaskan dengan dan . Karenanya, memiliki setidaknya 2 tugas yang memuaskan. Di sisi lain, jika tidak memuaskan, itu pasti tidak akan memuaskan terlepas dari nilai .SAT φ v (v∨¬v) φ v=⊥ v=⊤ φ φ v
Maka adalah -complete, yang ingin kami perlihatkan.N PDOUBLE-SAT NP
Menemukan masalah terdekat
Mengurangi masalah adalah semacam seni, dan pengalaman serta kecerdasan sering dibutuhkan. Untungnya, banyak masalah sulit sudah diketahui . Komputer dan Ketertarikan Garey dan Johnson: Panduan untuk Teori NP-Completeness adalah buku klasik dengan apendiksnya yang memuat banyak masalah. Google Cendekia juga seorang teman.
sumber
Dalam komputasi, kami sering menyelidiki set mesin Turing. Yaitu, objek kami adalah fungsi dan kami memiliki akses ke penomoran Gödel . Itu hebat karena kita dapat melakukan hampir semua yang kita inginkan dengan fungsi input, selama kita tetap dapat dihitung.
Asumsikan kita ingin menunjukkan bahwa tidak dapat memutuskan. Tujuan kami adalah mencapai kesetaraan azabL
dengan masalah penghentian (atau bahasa / masalah lain yang tidak dapat dipastikan).K={⟨M⟩∣M(⟨M⟩) halts}
Maka, kita perlu membuat pemetaan computable¹ pemetaan sehingga selalu dapat dihitung. Ini adalah tindakan kreatif yang diinformasikan oleh kesetaraan azab. Lihat beberapa contoh untuk mendapatkan ide tentang cara kerjanya:f M⟨M⟩↦⟨fM⟩ fM
Pekerjaan yang sama untuk menunjukkan bahwa tidak semi-decidable dengan memilih bahasa yang tidak semi-decidable sebagai mitra reduksi, misalnya :¯ KL K¯¯¯¯¯
sumber
itu tergantung pada kelas kompleksitas yang terlibat, dan apakah seseorang ingin mengurangi dari diberikan ke tidak diketahui , atau tidak diketahui menjadi diberikan . skenario yang umum adalah untuk membuktikan masalah NP Hard atau NP Complete. teknik umum adalah membuat "gadget" di satu domain yang berperilaku dengan cara tertentu, meniru perilaku domain lain. misalnya untuk mengonversi SAT ke penutup titik, seseorang membuat "gadget" di penutup titik yang berperilaku mirip dengan klausa SAT, misalnya dalam peragaan slide berikut: NP Pengurangan lengkap oleh Krishnamoorthy (juga dengan contoh untuk jalur Hamilton).B B AA B B A
strategi yang berguna adalah bekerja dari kompilasi besar masalah dari kelas kompleksitas yang dimaksud dan menemukan "masalah terdekat yang nyata" hingga masalah yang dipelajari. referensi yang sangat baik di sepanjang baris ini adalah Komputer dan Intractability, panduan untuk teori kelengkapan NP, Garey dan Johnson diorganisir oleh berbagai jenis masalah.
sumber