最適な付加チェーンを見つけるのは難しいですか?


20

またチェーンが正の整数のシーケンスであるここと各インデックス、我々有するいくつかのインデックスの。加算チェーンの長さはです。ターゲット加算チェーンのです。(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<inxn

次の問題の複雑さについて知られていること:整数与えられた場合、ターゲットがである最短の加算チェーンの長さは?NPハードですか?NN

ウィキペディアは、次の関連問題がNP困難であることを証明するダウニー、レオン、およびセティによる1981年の論文を指しています。数人の著者は、この論文が単一ターゲットの問題がNP困難であることを証明していると主張しているようですが、そうではありません。


2
二つの質問:私が想定バイナリ形式で与えられ、そしてでき及び同じであることは、(もしそうであれば、常に長さログNバイナリ拡張を介しての配列があります)Njk
スレシュヴェンカト

がバイナリで与えられていると仮定しましょう。ただし、が単項であっても、ポリタイムアルゴリズムについては知りません。そして、はい、自分自身に追加することは許可されています-実際、地面から降りるのに必要です。128の最短チェーンは(1、2、4、8、16、32、64、128)です。NNN
ジェフ

回答:


11

この問題は、2002年のEric Lehmanの博士論文「文法ベースのデータ圧縮のための近似アルゴリズム」で未解決であると述べられています。論文のp35から:

「それにもかかわらず、付加連鎖問題の正確な解決策は奇妙にとらえどころのないままです。M-aryメソッドは時間polylog(n)で実行され、1 + o(1)近似を与えます。 n)、正確なアルゴリズムは不明です。」



1

多項式時間アルゴリズムに向けて、これまでのところ有望なように思われた、部分的な進歩を文書化したいと思います。更新:@Davidが指摘した不具合を説明するための詳細を追加しました(ありがとう!)。

アプローチは、これをMIN-ONES EVEN-3 CSP(MOEC)のインスタンスに減らすことです。これは、たまたま多項式時間で解決可能な問題です。削減の証拠は少しあいまいですが、存在することを期待しています!

MOECのインスタンスは、変数のユニバースのサイズのサブセットと整数kのファミリーです。質問は、重量の満足割り当てが最大であるかどうかであるK割り当てが宇宙への関数である、{ 0 1 }、割り当ての重量は、それが1つを割り当てる変数の数であり、割り当てがあります変数{ x y z }のすべてのサブセットに対して、代入(たとえばf)が次の特性を持つ場合、3kk{0,1}{x,y,z}f

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

これを充足可能性の異なる概念で3-SATとして視覚化することができます-どれも選択しないか、2つを選択します。通常のサブセット、含意、長さ2の選言、および制約x = 1 )を除いて、MOEC のインスタンスについて少しゆるくなります。これらの単純な加算により、問題の多項式時間が維持されると思います。3(x=1)

加算連鎖問題を減らしているとしましょう。この削減のために設定される変数は次のとおりです。n

すべてのための、変数N I。変数N nNとして書き直します。すべてのペアのためにI J、その結果1 I J kは、変数を導入PのIのJQ I jは1inNiNnNi,j1i,jkPijQij

k = i + jとなるようにすべてのについて次のサブセットを導入します。i,j,kk=i+j

{Pij,Qij,Nk}

そして、次の意味:

P I JN JPijNiPijNj

および次の制約:

(N1=1),(N=1)

最後に、「対応する」N変数(表記法の乱用を許す)が割り当てられたときに、変数の少なくとも1つが選択されることを保証する制約を追加する必要があります。これは、i + jが問題のN変数に加算されるように、すべてのP i jに通常のOR制約を追加することで実行できます。ただし、これをMOECフレームワークで再エンコードする方法を見つける必要があります。PNPiji+jN

だから、変数のセットが与えられた場合の一般的な言い方を概説しましょう:

(X,l1,l2,,lt)

「割り当てが満足でを1に設定する場合、l iの1つを割り当てによって1に設定する必要がある」という制約は、MOEC構文でエンコードできます。これは要件を満たすのに十分であり、単に制約を導入することに注意してください。Xli

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

エンコードは次のように行われます。してみましょう上根ざし完全なバイナリツリーもトンの葉。新しい変数の導入のT D Iのためのすべての1 D ログT1 I LD Ldはのノード数意味T Xの深さでdはTXtTdi1dlogt1iL(d)L(d)TXd

すべてのノードについて、pqがツリーの子である場合、EVEN-3制約を導入します。Tdipq

{Tdi,p,q}

つまり、ノードに対応する変数がtrueに設定されている場合、その子の1つもtrueに設定する必要があります。次に、意味を追加します。

及び DのログT JLのJ(明確にするためにカンマ)。(XT11)(dlogt,j)lj

EVEN-3制約と含意のこの組み合わせは、エンコードしたい制約と同等です。

直観的には、最後の2つの制約が追加チェーンを構築するために必要な反応を正確にトリガーするということです。特に、満足のいく割り当てによって1が割り当てられた見てみましょう-それらはNの追加チェーンを形成するという主張です:割り当てはNを1 に設定することを強制されるため、少なくとも1 に設定された1 つのP i j、およびその意味によりN iおよびN jが強制されるNiNNPijNiNj1つを割り当てると、これは完全に下になります(これは帰納法で正式化できると確信していますが、まだそのレベルの詳細を明らかにしていません)。割り当てられたものの数が最適であるsatsifying割り当てが設定されていないことに注意してください二対のために真のR S 及びR 'という理由から、Pの -変数を追加して来含意の手荷物、およびQ変数は、EVEN-3充足可能性を確保するために存在します-N iが真でPPij(r,s)(r,s)PQNiは真実ではありません。その節を満たすために何かを選択する必要があり、わかりやすい理由により、これは節をまたぐ1つの普遍的な変数になることはできません。Pij

したがって、追加チェーンは満足のいく割り当てに対応し、その逆も同じだと思います。これの一部を形式的に説明しましょう:加算チェーンが与えられると、満足できる代入を構築します。はじめに、fはチェーン内のすべてのN iを1に設定し、他のN iを0に設定します。さらに、kが追加チェーン内にある場合、各N kについて、i kj ki k + j k = jのようなチェーン内の要素とします。そして、FセットffNiNikNkik,jkik+jk=jfを1(および Q i k j k をゼロ)、および i i kおよび j j kかつ i + j = kであり f Q i jを1に設定するようなすべてi j (および P i jをゼロに)。すべてのためのkのすべてのために、また、チェーンに備わっていないjのようにPikjkQikjk(i,j)iikjjki+j=kfQijPijki,j、すべての Q i jおよび P i jをゼロに設定します(一貫性は、2つの数値が一方向にしか加算されないという事実から生じることに注意してください)。チェーン内の N iを含むすべての句は、それに対応するP変数またはQ変数のいずれかが1に設定されているため満たされます(そして、それらの正確に1つが任意のペアi j に対して1に設定されることに注意してください)。他のすべての句では、すべてがゼロに設定されます。影響が保持されていることを確認するのは簡単です。i+j=kQijPijNi(i,j)

不明な部分は次のとおりです。加算チェーンで選択されたすべての要素について、tの重みが発生します(すべてのQ変数が1に設定されているため)。したがって、より長い追加チェーンがより安価な割り当てに対応する可能性がありますが、次の行に沿った証明のためにこれは起こらないと確信しています:最適な追加チェーンを検討し、より長いものがあると仮定しますそれに対応するより小さな重みの充足割り当て。明らかに、長いチェーンの要素は短いものから少なくとも1つを除外します-その要素をxとします。私はxにかかった費用を言いたいttQxxとにかく長いチェーンで発生し、残りは有利に比較されます。しかし、私はこれを注意深く書き留める必要があります。そして、私はポストミッドナイトシンドロームからのものを見ているかもしれません!


1
これが機能する場合、変数の数はpolylog(N)ではなくN ^ 2に比例するため、まだ指数時間(Nがバイナリで表現される場合)であるようです。
デビッドエップシュタイン

ええ、私はそれを強調すべきでした。@JeffEの発言の後でも、単項でを考えていました。インスタンスのサイズをさらに削減することを検討する予定ですが、現時点ではこれが問題ないことを確認することにもっと熱心です。もしそうなら、改善の余地は十分にあると思います。ちなみに、このアプローチは有望だと思いますか?N
ニールダラ

あなたが説明する制約がソリューションを有効にする方法を私は知りません。すべてのi + j = nに対してP_ij = 0およびQ_ij = 1を設定し、他のすべてのi、jに対してP_ij = Q_ij = 0を設定することを妨げるものは何ですか?
デビッドエップシュタイン

それを歩いてくれてありがとう!そして、はい、あなたはまったく正しいです。のいずれかが関連するP i jのいずれかを暗示するという制約を追加するつもりでしたが、それがインスタンスの複雑さをHitting Setドメインに吹き飛ばし、それを修正するつもりだったことに気付きました。代わりにそれを忘れていたと思います。私は答えを可能な修正で更新しました、それはほんの少し退屈な(しかし単純な)構造です。NiPij
ニールダラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.