Optimal ilave zincirleri bulmak zor mu?


20

Bir ekleme zinciri ve pozitif bir tamsayı dizisidir burada ve her bir indeks , elimizdeki bazı göstergeler için . Uzunluğu ekleme zinciri olduğu ; Hedef ekleme zinciri olan .x 1 = 1 i 2 x i = x j + x k 1 j , k < i n x n(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<inxn

Aşağıdaki sorunun karmaşıklığı hakkında bilinenler: Bir tamsayı verildiğinde , hedefi olan en kısa toplama zincirinin uzunluğu nedir? NP zor mu?NNN

Wikipedia , Downey, Leong ve Sethi'nin 1981 tarihli bir makalesine işaret ederek, aşağıdaki ilgili sorunun NP-zor olduğunu kanıtlıyor: Bir tamsayı kümesi verildiğinde, tüm seti içeren bir ekleme zincirinin minimum uzunluğu nedir? Bazı yazarlar, bu yazının tek hedef sorunun NP-zor olduğunu kanıtladığını iddia ediyorlar, ancak değil.


2
iki soru: varsayıyorum ikili formda verilir ve ve aynı olabilir (eğer öyleyse, her zaman ikili genişleme yoluyla bir uzunluk dizisi n sırası vardır)j kNjk
Suresh Venkat

ikili olarak verildiğini varsayalım , ancak tekli olduğunda bile bir poli-zaman algoritması bilmiyorum . Ve evet, kendinize eklemeye izin verilir - aslında, yerden çıkmak için gereklidir. 128 için en kısa zincir (1, 2, 4, 8, 16, 32, 64, 128) 'dir. NNN
Jeffε

Yanıtlar:


11

Problemin 2002'de Eric Lehman'ın "Dilbilgisi tabanlı veri sıkıştırması için yaklaşım algoritmaları" adlı doktora tezinde açık olduğu belirtiliyor.

"Bununla birlikte, ilave zinciri problemine kesin bir çözüm garip bir şekilde anlaşılması zor. M-ary yöntemi zaman polilogunda (n) çalışır ve 1 + o (1) yaklaşımı verir. Bununla birlikte, katlanarak daha fazla zamana izin verilse bile, poli ( n), kesin bir algoritma bilinmemektedir. "



1

Polinom zaman algoritmasına yönelik - şimdiye kadar umut vaat eden - bazı kısmi ilerlemeleri belgelemek istiyorum. GÜNCELLEME : @David tarafından işaret edilen bir aksaklığı açıklamak için bazı ayrıntılar eklendi (teşekkürler!).

Yaklaşım bunu, polinom zamanla çözülebilen bir sorun olan MIN-ONES EVEN-3 CSP (MOEC) örneğine indirmektir. Düşüşün kanıtı biraz bulanık, ancak var olduğunu umuyorum!

MOEC örneği, bir değişkenler evreninin boyutlu alt kümelerinin bir ailesi ve k tamsayısıdır . Soru, en çok k'da tatmin edici bir ağırlık ataması olup olmadığıdır , burada bir ödev evrenden { 0 , 1 } ' e bir işlevdir , bir ödevin ağırlığı bir atadığı değişken sayısıdır ve bir ödev eğer değişkenlerin her alt-grup için, tatmin edici , atama (ki ) özelliği bu var3kk{0,1}f{x,y,z}f

f(x)+f(y)+f(z)=0(mod  2) .

Bunu 3-SAT olarak farklı bir memnuniyet derecesi ile görselleştirebilirsiniz - hiçbirini veya ikisini seçin. Her zamanki kümeleri, çıkarımları, iki uzunluktaki kopuklukları ve kısıtlamaları dışında izin vereceğim MOEC örneği hakkında biraz gevşek olacağım . Bu basit eklemelerin problemin polinom zamanını koruyacağına inanıyorum.( x = 1 )3(x=1)

Diyelim ki sayısı için ekleme zinciri problemini azaltıyoruz . Bu azaltma için ayarlanan değişken şu şekildedir:n

Her , değişkeni . değişkenini olarak yeniden yazacağım . Her çift , , ve değişkenlerini . N i N n N i , j 1 i , j k P i j Q i j1inNiNnNi,j1i,jkPijQij

Her için şekilde aşağıdaki altkümeleri tanıtın :k = i + ji,j,kk=i+j

{Pij,Qij,Nk}

ve aşağıdaki çıkarımlar:

P i jN jPijNi ve PijNj

ve aşağıdaki kısıtlamalar:

(N1=1),(N=1) .

Son olarak, "karşılık gelen" bir değişkenli (gösterimin kötüye kullanımını affedin) atandığında değişkenlerinden en az birinin seçilmesini sağlayan kısıtlamalar eklememiz gerekir . Bu, tüm üzerine olağan OR kısıtlaması eklenerek yapılabilir, böylece toplamı söz konusu değişkenine toplanır. Ancak bunu MOEC çerçevesinde yeniden kodlamanın bir yolunu bulmalıyız.N P i j i + j NPNPiji+jN

Öyleyse bir dizi değişken verildiğinde genel bir söylem yöntemini özetleyeyim:

(X,l1,l2,,lt) ,

"bir atama tatmin ederse ve bire , o zaman ' birinin tam olarak atama tarafından bire ayarlanması gerekiyorsa" kısıtlaması MOEC sözdizimi ile kodlanabilir. Bunun gereksinimlerimiz için yeterli olduğunu unutmayın, sadece kısıtlamaları sunuyoruz:l iXli

(Nk,{Pij | i+j=k}) .

Kodlama aşağıdaki gibi yapılır. Bırakın , yapraklarındaki köklü tam ikili ağaç olsun . Yeni bir değişken tanıtmak Tüm ve , düğümleri sayısını belirtmektedir derinlikte . t T d i 1 d günlük t 1 i L ( d ) L ( d ) T X dTXtTdi1dlogt1iL(d)L(d)TXd

Her düğüm , eğer ve ağaçtaki çocuklarıysa, EVEN-3 kısıtlamasını uygulayın: p qTdipq

{Tdi,p,q}

Başka bir deyişle, bir düğüme karşılık gelen bir değişken true değerine ayarlanırsa, alt öğelerinden biri de true değerine ayarlanmalıdır. Şimdi çıkarımları ekleyin:

( d günlüğü t , j ) l j(XT11) ve (açıklık için virgül).(dlogt,j)lj

Bu EVEN-3 kısıtlamaları ve çıkarımlarının kombinasyonu, kodlamak istediğimiz kısıtlamaya eşdeğerdir.

Sezgisel olarak, son iki kısıtlamanın bir ilave zinciri oluşturmak için gereken reaksiyonları tam olarak tetiklemesi. Özellikle, tatmin edici bir görevle atanan bakalım - iddia, için bir ek zincir oluşturacaklarıdır : atama, bire ayarlamak zorunda kaldığı için , en az bir tane olmalıdır. ayarlanmış olan ve sonuçları ve bir tane zorlar ve bu tamamen aşağı iner (eminim bu seviyede indüksiyonla resmileştirilebilirim, ancak ayrıntı). Atananların sayısından en iyi olan satsifying atamanın ayarlanmayacağını unutmayın N N P i j N i N j P i j ( r , s ) ( r , s ) P Q N i P i jNiNNPijNiNjPij , iki değişken ve için doğrudur , çünkü değişkenlerinin ek ek bagajı ile birlikte gelmesi ve değişkenlerinin ( EVEN-3 sağlamak için - doğru olduğu ve doğru olmadığı bir maddede, yine de bu maddeyi karşılamak için bir şeyler gerekiyor ve görmesi kolay nedenlerden dolayı, bu tek bir evrensel değişken olamaz hükümler arasında).(r,s)(r,s)PQNiPij

Bu yüzden bir ekleme zincirinin tatmin edici bir göreve karşılık geldiğine inanıyorum. Bunun bir kısmını resmi olarak tarif edeyim: bir ekleme zinciri verildiğinde tatmin edici bir görevi yaparız . Başlamak için, tüm 'leri bir diğerine ve diğer ' i sıfıra . Ayrıca, ekleme zincirinde özellikleri varsa , her bir , zincirindeki elemanlar olsun, böylece . Daha sonra setleri (ve bir ila sıfıra) ve tüm olacak şekildef N i N i k N k i k , j k i k + j k = j f P i k j k Q i k j k ( i , j ) i i k j j k i + j = k f Q i j P i j k i , jffNiNikNkik,jkik+jk=jfPikjkQikjk(i,j)iik ve ve , i bire (ve sıfıra) ayarlar . Tüm için tüm, ekleme zinciri sahip olmayan , öyle ki , belirtilen tüm ve kıvam aslında aşağıdaki sıfır (önceden bu iki sayı tek bir şekilde toplayın). bir içeren tüm yan karşılanır, çünkü buna karşılık gelen bir P değişkeni veya Q değişkeni bire ayarlanmıştır (ve bunların herhangi birinin herhangi bir çift için bire ayarlandığına dikkat edin.jjki+j=kfQijPijki,ji+j=kQijPijNi(i,j)). Diğer tüm maddeler için her şey sıfıra ayarlanmıştır. Etkileri kontrol etmek kolaydır.

Belirsiz olan kısım şudur: çünkü toplama zincirinde seçilen her eleman için atama ağırlığına neden olur (tüm değişkenleri bire ayarlandığı için). Bu nedenle, daha uzun bir ek zincirin daha ucuz bir atamaya karşılık gelmesi olasılığı vardır, ancak aşağıdaki satırlardaki bir kanıt nedeniyle bunun gerçekleşmeyeceğinden eminim: en uygun ekleme zincirini düşünün ve daha uzun bir zincir olduğunu varsayalım. buna karşılık gelen daha küçük ağırlıklı tatmin edici bir ödev. Açıkçası, daha uzun zincirin elemanları en az birini daha kısa olandan hariç tutar - bu öğenin olmasına izin verin . ile yapılan maliyetinttQxxzaten daha uzun zincirde meydana gelir ve geri kalanı da olumlu bir şekilde karşılaştırılır. Bununla birlikte, bunu dikkatlice yazmalıyım ve gece yarısı sendromundan bir şeyler görüyor olabilirim!


1
Bu işe yararsa, değişken sayısı polilog (N) yerine N ^ 2 ile orantılı olduğu için hala üstel zaman (N ikili olarak ifade edildiğinde) gibi görünmektedir.
David Eppstein

Ah evet, bunu vurgulamalıydım. Ben düşünüyordum bile belli değil ki JeffE beyanatından @ tekli aşağıda. Örnek boyutunu daha da azaltmayı düşünmeyi planlıyorum, ancak şu anda bunun iyi olmasını sağlamaya daha hevesliyim. Eğer öyleyse, iyileştirmek için bolca yer olduğunu düşünüyorum. Bu arada, yaklaşımı umut verici bulur musunuz? N
Neeldhara

Tanımladığınız kısıtlamaların bir çözümü nasıl geçerli olmaya zorladığını görmüyorum. Sizi tüm i + j = n için P_ij = 0 ve Q_ij = 1 ve diğer tüm i, j için P_ij = Q_ij = 0 olarak ayarlamanıza engel olan nedir?
David Eppstein

Solduğunuz için teşekkürler! Ve evet, oldukça haklısın; herhangi birinin ilgili ' birini ima ettiğini söyleyen bir kısıtlama eklemek , ancak örneğin karmaşıklığını Hitting Set alanına üflediğini fark ettim ve düzeltmek istedim, Sanırım onun yerine unuttum. Cevabı olası bir düzeltmeyle güncelledim, sadece biraz sıkıcı (ama basit) bir yapı. NiPij
Neeldhara
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.