Satu minggu di kelas teori kompleksitas saya di perguruan tinggi, masalah pekerjaan rumah kami satu-satunya adalah untuk membuktikan bahwa # 2-SAT adalah # P-lengkap, dengan mengurangi dari #BIPARTITE PERFECT MATCHING. Tidak ada yang bisa menyelesaikannya, bahkan ketika kita semua akhirnya bersatu untuk mengerjakannya.
Kelas berikutnya, profesor terkejut melihat betapa sulitnya kita semua menemukannya dan memberikan buktinya. Itu salah. Untungnya, satu cookie pintar mampu memberikan pengurangan yang benar, yang benar-benar gila dan rumit menjijikkan. Ngomong-ngomong, profesor memiliki Penghargaan Turing :)
Ngomong-ngomong, sementara saya dan teman-teman sekelas saya tidak bisa menyelesaikan masalah itu, kami dapat memecahkan masalah yang lebih mudah yaitu dari #BIPARTITE MATCHING menjadi # 2-SAT, jadi inilah bukti yang saya buat beberapa tahun yang lalu.
Dalil. #BIPARTITE MENCOCOK # 2-SAT.≤p
Bukti . Biarkan menjadi turunan dari #BIPARTITE MATCHING. Biarkan set partisi menjadi
(jadi dan ) .A = { a i ∣ i ∈ [ n ] } ,G=(V,E)| A | = n | B | = m
A={ai∣i∈[n]},B={bi∣i∈[m]}
|A|=n|B|=m
Sekarang kita mengurangi menjadi rumus 2SAT , sehingga setiap penugasan yang memuaskan adalah kecocokan , dan sebaliknya. Untuk memulai, untuk setiap sisi membuat variabel . Idenya adalah bahwa menyetel variabel ke TRUE sesuai dengan edge berada dalam pencocokan. Untuk setiap simpul , buat ekspresi 2SAT
Agar dipenuhi, semua kecuali satu dari harus salah. Untuk melihat ini, asumsikan keduanyaGφφGaibj∈Exijxijaibji
Ai=⋀j<k(¬xij∨¬xik),Bi:=⋀j<k(¬xji∨¬xki)
Aixijxijdan benar. Maka salah, dan begitu juga . Hal yang sama berlaku untuk . Membiarkan
kita memiliki yang puas jika dan hanya jika setiap simpul dalam adalah insiden paling banyak satu sisi yang kita pilih, dan dengan demikian ujung-ujungnya membentuk pencocokan.
xik(¬xij∨¬xik)AiBiC=⋀i=1nAi∧⋀i=1mBi
CG