Saya ingin mendokumentasikan beberapa kemajuan parsial - yang tampaknya menjanjikan sejauh ini - menuju algoritma waktu polinomial. UPDATE : Menambahkan beberapa detail ke akun kesalahan yang ditunjukkan oleh @David (terima kasih!).
Pendekatannya adalah untuk mereduksi ini menjadi instance dari MIN-ONES EVEN-3 CSPs (MOEC), yang kebetulan merupakan masalah waktu terpecahkan polinomial. Bukti pengurangannya agak kabur, tapi saya berharap itu ada!
Sebuah instance dari MOEC adalah keluarga dari himpunan bagian ukuran dari semesta variabel, dan integer k . Pertanyaannya adalah apakah ada penugasan berat yang memuaskan paling banyak k , di mana penugasan adalah fungsi dari alam semesta ke { 0 , 1 } , bobot penugasan adalah jumlah variabel yang ditugasi satu, dan penugasan adalah memuaskan jika, untuk setiap subset variabel { x , y , z } , tugas (katakanlah f ) memiliki properti yang:3kk{0,1}{x,y,z}f
.f(x)+f(y)+f(z)=0(mod 2)
Anda dapat memvisualisasikan ini sebagai 3-SAT dengan gagasan kepuasan yang berbeda - pilih tidak ada atau pilih dua. Saya akan sedikit lalai tentang contoh MOEC di bahwa saya akan memungkinkan, terlepas dari subset biasa , implikasi, disjungsi panjang dua, dan kendala ( x = 1 ) . Saya percaya penambahan sederhana ini akan menjaga masalah waktu polinomial.3( x = 1 )
Katakanlah kita mengurangi masalah rantai penambahan untuk angka . Set variabel untuk pengurangan ini adalah sebagai berikut:n
Untuk setiap , variabel N i . Saya akan menulis ulang variabel N n sebagai N . Untuk setiap pasangan i , j sedemikian sehingga 1 ≤ i , j ≤ k , perkenalkan variabel P i j dan Q i j . 1 ≤ i ≤ nNsayaNnNsaya , j1 ≤ i , j ≤ kPsaya jQsaya j
Perkenalkan himpunan bagian berikut, untuk setiap sedemikian rupa sehingga k = i + j :saya , j , kk = i + j
{ Psaya j, Qsaya j, Nk}
dan implikasi berikut:
dan
P i j ⇒ N jPsaya j⇒ NsayaPsaya j⇒ Nj
dan batasan-batasan berikut:
.( N1= 1 ) , ( N= 1 )
Akhirnya, kita perlu menambahkan batasan yang memastikan bahwa setidaknya satu dari -variables diambil ketika "sesuai" N -variable (maafkan penyalahgunaan notasi) ditugaskan satu. Hal ini dapat dilakukan dengan menambahkan biasa OR kendala atas semua P i j sehingga saya + j sum ke N -variable yang bersangkutan. Namun, kita harus menemukan cara pengkodean ulang ini dalam kerangka kerja Kemdikbud.PNPsaya ji+jN
Jadi izinkan saya menjabarkan cara umum untuk mengatakan, dengan serangkaian variabel:
,(X,l1,l2,…,lt)
bagaimana kendala "jika suatu tugas memuaskan dan menetapkan ke satu, maka tepat salah satu dari l i harus diatur ke satu oleh penugasan", dapat dikodekan dengan sintaksis MOEC. Perhatikan bahwa ini sudah cukup untuk persyaratan kami, kami hanya memperkenalkan kendala:Xli
.(Nk,{Pij | i+j=k})
Pengkodean dilakukan sebagai berikut. Mari menjadi pohon lengkap berakar biner padaTX daun. Perkenalkan variabel baru T d i untuk semua 1 ≤ d ≤ log t dan 1 ≤ i ≤ L ( d ) , di mana L ( d ) menunjukkan jumlah node T X pada kedalaman d .tTdi1≤d≤logt1≤i≤L(d)L(d)TXd
Untuk setiap simpul , jika p dan q menjadi anak-anaknya di pohon, perkenalkan batasan EVEN-3:Tdipq
{Tdi,p,q}
Ini berarti bahwa jika suatu variabel yang berhubungan dengan sebuah simpul disetel ke true, maka tepat salah satu dari anak-anaknya juga harus disetel ke true. Sekarang tambahkan implikasinya:
dan
( d log t , j ) ⇒ l j (koma untuk kejelasan).(X⇒T11)(dlogt,j)⇒lj
Kombinasi batasan dan implikasi EVEN-3 ini setara dengan kendala yang ingin kami encode.
Secara intuitif, apa yang terjadi adalah bahwa dua kendala terakhir memicu reaksi yang dibutuhkan untuk membangun rantai tambahan. Secara khusus, mari kita lihat yang ditugaskan satu oleh penugasan yang memuaskan - klaimnya adalah bahwa mereka akan membentuk rantai tambahan untuk N : karena penugasan tersebut dipaksa untuk mengatur N ke satu, harus ada setidaknya satu P i j yang ditetapkan ke satu, dan implikasinya memaksa N i dan N jNiNNPijNiNjuntuk ditugaskan satu, dan ini berjalan jauh ke bawah (saya yakin ini dapat diformalkan dengan induksi, meskipun saya belum bekerja pada tingkat detail belum). Perhatikan bahwa tugas satsifying yang optimal dalam jumlah yang ditetapkan tidak akan mengatur benar untuk dua pasang ( r , s ) dan ( r ' , s ' ) , dengan alasan bahwa P -variables datang dengan tambahan bagasi implikasinya, dan Q- variabel tidak (mereka ada untuk memastikan BAHKAN-3 memuaskan - pada klausa di mana N i adalah true dan PPij(r,s)(r′,s′)PQNi tidak benar, kita masih perlu untuk mengambil sesuatu untuk memenuhi klausul itu, dan untuk alasan yang mudah untuk melihat, ini tidak dapat menjadi salah satu variabel yang universal di seluruh klausa).Pij
Jadi saya percaya rantai tambahan sesuai dengan tugas yang memuaskan dan sebaliknya. Mari saya jelaskan salah satu bagian dari ini agak resmi: diberi rantai Selain itu, kami membangun sebuah tugas yang memuaskan. Untuk mulai dengan, f menetapkan semua N iffNi 's yang fitur dalam rantai untuk satu, dan yang lainnya ' s ke nol. Selanjutnya, jika k fitur dalam rantai samping itu, maka untuk setiap N k , biarkan saya k , j k menjadi elemen dalam rantai sehingga saya k + j k = j . Kemudian f setNikNkik,jkik+jk=jf ke satu (dan Q i k j k ke nol), dan semua ( i , j ) sedemikian rupa sehingga saya ≠ i k dan j ≠ j k dan i + j = k , f set Q i j ke satu (dan P i j ke nol). Untuk semua k yang tidak ditampilkan dalam rantai tambahan, untuk semua i , j sedemikian rupa sehingga sayaPikjkQikjk(i,j)i≠ikj≠jki+j=kfQijPijki,j , tetapkan semua Q i j dan P i j ke nol (perhatikan bahwa konsistensi mengikuti dari fakta bahwa dua angka dijumlahkan hanya dalam satu cara). Setiap klausa yang melibatkan N i dalam rantai terpenuhi karena salah satu variabel-P atau variabel-Q yang terkait dengannya ditetapkan ke satu (dan perhatikan bahwa salah satu dari mereka diatur ke satu untuk setiap pasangan ( i , j ) ). Untuk setiap klausa lainnya, semuanya diatur ke nol. Implikasinya mudah untuk diperiksa.i+j=kQijPijNi(i,j)
Bagian yang tidak jelas adalah sebagai berikut: karena untuk setiap elemen dipilih dalam rantai penjumlahan, penugasan menimbulkan bobot t (karena semua Q- variabel disetel ke satu). Jadi ada kemungkinan bahwa rantai tambahan yang lebih panjang akan sesuai dengan penugasan yang lebih murah, tapi saya cukup yakin ini tidak terjadi karena bukti di sepanjang baris berikut: pertimbangkan rantai penambahan yang optimal dan anggap ada yang lebih panjang yang memiliki tugas memuaskan dengan bobot lebih kecil sesuai dengan itu. Jelas, elemen rantai yang lebih panjang mengecualikan setidaknya satu dari yang lebih pendek - biarkan elemen itu menjadi x . Saya ingin mengatakan bahwa biaya yang dikeluarkan xttQxxtetap terjadi dalam rantai yang lebih panjang, dan sisanya membandingkan dengan baik. Namun, saya harus menuliskan ini dengan hati-hati, dan saya mungkin hanya melihat sesuatu dari sindrom post-midnight!