Apakah sulit menemukan rantai tambahan yang optimal?

20

Sebuah rantai Selain merupakan urutan bilangan bulat positif di mana dan masing-masing indeks , kita memiliki untuk beberapa indeks . The panjang rantai Selain adalah ; yang sasaran dari rantai samping adalah .x 1 = 1 i 2 x i = x j + x k 1 j , k < i(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<inxn

Apa yang diketahui tentang kerumitan masalah berikut: Diberikan bilangan bulat , berapa panjang rantai penambahan terpendek yang targetnya adalah ? Apakah ini NP-hard?NNN

Wikipedia menunjuk ke sebuah makalah tahun 1981 oleh Downey, Leong, dan Sethi yang membuktikan masalah terkait berikut adalah NP-hard: Diberikan satu set bilangan bulat berapa panjang minimum rantai tambahan yang mencakup seluruh set? Beberapa penulis rupanya mengklaim bahwa makalah ini membuktikan masalah target tunggal adalah NP-hard, tetapi tidak.

Jeffε
sumber
2
dua pertanyaan: diberikan dalam bentuk biner yang saya asumsikan, dan dapatkah dan identik (jika demikian, maka selalu ada urutan panjang log n melalui ekspansi biner)j kNjk
Suresh Venkat
Mari kita asumsikan N diberikan dalam biner, meskipun saya tidak tahu algoritma poly-time bahkan ketika N adalah unary. Dan ya, menambahkan ke diri sendiri diperbolehkan - pada kenyataannya, diperlukan untuk turun tanah. Rantai terpendek untuk 128 adalah (1, 2, 4, 8, 16, 32, 64, 128).
Jeffε

Jawaban:

11

Masalahnya disebutkan sebagai terbuka dalam tesis Eric Eric Lehman "Algoritma pendekatan untuk kompresi data berbasis tata bahasa" pada tahun 2002. Dari p35 tesis:

"Namun demikian, solusi yang tepat untuk masalah rantai penambahan tetap anehnya sulit dipahami. Metode M-ary berjalan dalam waktu polylog (n) dan memberikan perkiraan 1 + o (1). Namun, bahkan jika secara eksponensial lebih banyak waktu diperbolehkan, poli ( n), tidak ada algoritma pasti yang diketahui. "

Andrew W.
sumber
2

Dan pada makalah utama dari tesis Lehman, ada tinjauan yang baik tentang masalah (bagian VB) dengan referensi.

mgalle
sumber
1

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 . 1inNiNnNi,j1i,jkPijQij

Perkenalkan himpunan bagian berikut, untuk setiap sedemikian rupa sehingga k = i + j :i,j,kk=i+j

{Pij,Qij,Nk}

dan implikasi berikut:

dan P i jN jPijNiPijNj

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.PNPiji+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 .tTdi1dlogt1iL(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).(XT11)(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)iikjjki+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!

Neeldhara
sumber
1
Jika ini berhasil, tampaknya masih akan menjadi waktu eksponensial (ketika N diekspresikan dalam biner) karena jumlah variabel sebanding dengan N ^ 2 daripada polylog (N).
David Eppstein
N
Saya tidak melihat bagaimana kendala yang Anda uraikan memaksa solusi menjadi valid. Apa yang menghentikan Anda dari pengaturan P_ij = 0 dan Q_ij = 1 untuk semua i + j = n, dan P_ij = Q_ij = 0 untuk semua i, j?
David Eppstein
NiPij