多項式時間アルゴリズムに向けて、これまでのところ有望なように思われた、部分的な進歩を文書化したいと思います。更新:@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 nをNとして書き直します。すべてのペアのためにI 、J、その結果1 ≤ I 、J ≤ kは、変数を導入PのIのJとQ I jは。 1≤i≤nNiNnNi,j1≤i,j≤kPijQij
k = i + jとなるように、すべてのについて次のサブセットを導入します。i,j,kk=i+j
{Pij,Qij,Nk}
そして、次の意味:
と
P I J ⇒ N JPij⇒NiPij⇒Nj
および次の制約:
。(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 ≤ ログTと1 ≤ I ≤ L(D )、L(dは)のノード数意味T Xの深さでdは。TXtTdi1≤d≤logt1≤i≤L(d)L(d)TXd
すべてのノードについて、pとqがツリーの子である場合、EVEN-3制約を導入します。Tdipq
{Tdi,p,q}
つまり、ノードに対応する変数がtrueに設定されている場合、その子の1つもtrueに設定する必要があります。次に、意味を追加します。
及び
(DのログT 、J)⇒ LのJ(明確にするためにカンマ)。(X⇒T11)(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 k、j kをi 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)i≠ikj≠jki+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とにかく長いチェーンで発生し、残りは有利に比較されます。しかし、私はこれを注意深く書き留める必要があります。そして、私はポストミッドナイトシンドロームからのものを見ているかもしれません!