句で3CNFを考えるとの変数上のx 1、... 、X nは。両方が仮定xはI及び¯は、xはiは高々ための式に現れるのk i個のそれぞれの時間。ϕ1、… 、ϕkバツ1、… 、xnバツ私バツ私¯¯¯¯¯k私
頂点が3つの部分で構成される色付きのDAG を設計します。G
- "割り当て"頂点はとˉ V I(J )、1 ≤ I ≤ nは、1 ≤ jは≤ k個のI。カラーV I(J )、 "色"とは、xはI(J )、およびˉ V I(J )と¯ X I(J )。v私(j )v¯私(j )1つの≤ I ≤ N1 ≤ J ≤ K私v私(j )バツ私(j )v¯私(j )バツ私¯¯¯¯¯(j )
- "句"頂点、1 ≤ I ' ≤ K、J ' = 1 、2 、3。色W I '(J ')の色でxはI(J )(または¯ X I(jで)場合)¯ xはI(またはxはiは、RESPは。)であり、J 'w私′(j′)1 ≤ I′≤ Kj′= 1 、2 、3w私′(j′)バツ私(j )バツ私¯¯¯¯¯(j )バツ私¯¯¯¯¯バツ私j′番目のリテラル句の、そして、それはだJこのリテラルを含む番目の句。ϕ私′j
- "カット"頂点。上記とは異なる明確な色でそれらを着色します。s = s0、s1、… 、sn、sn + 1、… sn + k= t
エッジは次のとおりです。
- 、 V I(J )、V I(J + 1 )、 V iは(kはiは)だI。si − 1v私(1 )v私(j )v私(j + 1 )v私(k私)s私
- 、 ˉ V I(J )ˉ V I(J + 1 )、 ˉ V iが(kはiは)だI。si − 1v¯私(1 )v¯私(j )v¯私(j + 1 )v¯私(k私)s私
- そして、wはI '(J ')のN + I '。sn + i′− 1w私′(j′)w私′(j′)sn + i′
例えば、3CNFから
以下のグラフが構築される(エッジ方向が左から右にあります)。
(x1∨ X2∨ X3¯¯¯¯¯)∧ (x1∨ X2¯¯¯¯¯∨ X3)
Gに異なる頂点カラーを持つ - tパスがある場合にのみ、元の3CNFが満足できることを確認するのは難しくありません。stG
(ところで、色付きDAGの異なる頂点カラーを持つ - tパスの存在はNP困難であることが副産物です。計算の観点からこの問題に関する多くの文献は見つかりませんでした。コメント!)stNP-hard
それでは、とOPの問題の関係は何ですか?直観的には、マトリックスhを設計して、各色が行(人)にマッピングされ、エッジが連続した列(タイムスロット)にマッピングされるようにします。したがって、基本的にマトリックス内で左から右に向かう最大スケジューリングは、s - tパスに対応します。Ghst
行列は、インデックスが0から始まる2 n + 1 + ∑ i 2 k i + k列があります。以下constrcutionのにX Y二つの値を満足している1 « X « Y。比率X / 1 、Y / Xはkとnの大きなべき乗になる可能性があります。レッツK 私は = 2 I + 2 Σ I jはh2n+1+∑i2ki+k0XY1≪X≪YX/1,Y/Xkn。Ki=2i+2∑ij=1ki
- 毎、0 ≤ I ≤ N、聞かせてH (sはiは、K 、I)= H (sはI、KはI - kはiは - 1 )= H (sはiは、K iが + kをI + 1 + 1 )= Y(座標が存在する場合、以下と同じ)。si0≤i≤nh(si,Ki)=h(si,Ki−ki−1)=h(si,Ki+ki+1+1)=Y
- 各について、h (x i(j )、K i − 1 + j )= X ; 毎¯ X I(J )、聞かせてH (¯ X I(J )、K I - 1 + kはI + 1 + J )= X。xi(j)h(xi(j),Ki−1+j)=Xxi¯¯¯¯¯(j)h(xi¯¯¯¯¯(j),Ki−1+ki+1+j)=X
- それぞれについて、、1 ≤ I ' ≤ KとリテラルX句におけるφ I '、聞かせてH (X 、K 、N + I ')= 1。ϕi′1≤i′≤kxϕi′h(x,Kn+i′)=1
- 他のすべてのエントリは0です。
たとえば、上のグラフの例では、対応する行列は
ここで、最大値が場合にのみ、元の3CNFが満たされると主張します。(2n+1)Y+∑ikiX+k
最大値を達成するスケジューリングを検討してください。hにはYを含む正確な列があるため、すべてカバーする必要があります。Yの 2つの選択肢がある列K i + k i + 1について、スケジューリングがそれをs iに割り当てると仮定します。コラム以来K 私はに割り当てる必要がありますsの私は、連続性により、私たちは列を失うする必要がK I + 1にK I + K(2n+1)hYKi+ki+1YsiKisiKi+1。スケジューリングが列 K i + k i + 1を s i + 1に割り当てる場合も同じことが起こります。Ki+kiKi+ki+1si+1
したがって、値を持つためには、変数の割り当てに対応する、マトリックス内の残りの利用可能なXをすべて選択する必要があります。したがって、kの残りの値は、割り当てがすべての句を満たす場合にのみ実現可能です。∑ikiXXk
結論として、法的スケジューリングの最大値の決定はます。これが、アルゴリズムを見つけるための以前の試みがすべて失敗した理由かもしれません。NP-hard