Cümlecikleri ile 3CNF Verilen ϕ 1 , … , ϕ kϕ1,…,ϕk değişkenlerine x 1 , … , x nx1,…,xn . Her iki varsayalım x benxi ve ¯ x benxi¯¯¯¯¯ en formül görünür k iki kez sırasıyla.
Köşeleri üç parçadan oluşan renkli bir DAG G tasarlıyoruz G,G:
- "Atama" köşeleri v i ( j )vi(j) ve ˉ v i(j)v¯i(j) , 1 ≤ i ≤ n1≤i≤n , 1 ≤ j ≤ k i1≤j≤ki . Renkli " v i ( j )vi(j) " renkli " x i ( j )xi(j) ve ˉ v i(j)v¯i(j) , ¯ x i (j)xi¯¯¯¯¯(j) .
- "Clause" köşeleri w i ′ ( j ′ )wi′(j′) , 1 ≤ i ′ ≤ k1≤i′≤k , j ′ = 1 , 2 , 3j′=1,2,3 . Renk w_ {i '} (j') x_i (j)w i ′ ( j ′ )wi′(j′) rengiyle (veya \ overline {x_i} (j) ), eğer \ overline {x_i} (veya x_i , resp.) Cümlesinin j ' harfidir. \ phi_ {i '} ve bu değişmezi içeren j -th yan tümcesi.x i ( j )xi(j)¯ x i (j)xi¯¯¯¯¯(j)¯ x benxi¯¯¯¯¯x benxij ′j′ϕ ben ′ϕi′jj
- "Kes" köşeleri s = s 0 , s 1 , … , s n , s n + 1 , … s n + k = ts=s0,s1,…,sn,sn+1,…sn+k=t . Yukarıdan farklı renklerle onları renklendirin.
Kenarlar şunları içerir:
- s i - 1 v i ( 1 )si−1vi(1) , v i ( j ) v i ( j + 1 )vi(j)vi(j+1) , v i ( k i ) s ivi(ki)si ;
- s i - 1 ˉ v ı ( 1 )si−1v¯i(1) , , ;ˉ v i(j) ˉ v i(j+1) ˉ v i(ki)siv¯i(j)v¯i(j+1)v¯i(ki)si
- ve , .sn+i′−1wi′(j′)sn+i′−1wi′(j′)wi′(j′)sn+i′wi′(j′)sn+i′
Örneğin, 3CNF'den x_2
'den aşağıdaki grafik oluşturulur (kenar yönleri soldan sağa).
(x1∨x2∨¯x3)∧(x1∨¯x2∨x3)(x1∨x2∨x3¯¯¯¯¯)∧(x1∨x2¯¯¯¯¯∨x3)
Şimdi bir olduğunu ve ancak eğer orijinal 3CNF karşılanabilir olduğunu görmek zor değil - farklı köşe renklerle yolu .ssttGG
(Bu arada, renkli farklı köşe renkleri olan - yolunun olduğu bir yan . Bu sorunla ilgili pek çok literatürü hesaplama perspektifinde bulamadım. bilirsin, lütfen yorum yap!)ssttNP-hardNP-hard
Öyleyse, ve OP'nin sorunu arasındaki ilişki nedir? Sezgisel olarak yapacağımız şey, bir matris tasarlamaktır , böylece her renk bir sıraya (bir kişi) eşlenir ve kenarlar ardışık sütunlara (zaman dilimleri) eşlenir. Dolayısıyla matristeki temel olarak soldan sağa giden bir maksimum programlama - yoluna karşılık gelir .GGhhsstt
Bizim matris sahip endeksleri başlayarak, sütun . Aşağıdaki konstrüksiyonda ve , değerlerini sağlayan iki değerdir . oranları büyük ve güçleri olabilir . Let .hh2n+1+∑i2ki+k2n+1+∑i2ki+k00XXYY1≪X≪Y1≪X≪YX/1,Y/XX/1,Y/XkknnKi=2i+2∑ij=1kiKi=2i+2∑ij=1ki
- Her , , (eğer Koordinat var, aşağıda aynı).sisi0≤i≤n0≤i≤nh(si,Ki)=h(si,Ki−ki−1)=h(si,Ki+ki+1+1)=Yh(si,Ki)=h(si,Ki−ki−1)=h(si,Ki+ki+1+1)=Y
- Her , ; Her biri için , izin .xi(j)xi(j)h(xi(j),Ki−1+j)=Xh(xi(j),Ki−1+j)=X¯xi(j)xi¯¯¯¯¯(j)h(¯xi(j),Ki−1+ki+1+j)=Xh(xi¯¯¯¯¯(j),Ki−1+ki+1+j)=X
- Her biri için , ve değişmez bir maddesi içinde , izin .ϕi′ϕi′1≤i′≤k1≤i′≤kxxϕi′ϕi′h(x,Kn+i′)=1h(x,Kn+i′)=1
- Diğer tüm girişler 0.
Örneğin, yukarıdaki örnek grafik için karşılık gelen matris
Şimdi iddia ediyoruz: orijinal 3CNF, yalnızca ve eğer maksimum değer .(2n+1)Y+∑ikiX+k(2n+1)Y+∑ikiX+k
Çizelgelemeyi, azami değer elde etmeyi düşünün. içeren içinde tam olarak sütunlar bulunduğundan , bunların tümü örtülmelidir. İki seçeneğine sahip sütunu için, zamanlamanın atadığını varsayalım . Sütun yana atanmalıdır , ardışıklığın biz sütunları kaybetmek zorunda için . Sütununda atama planlaması eğer aynı şeyler olur için .(2n+1)(2n+1)hhYYKi+ki+1Ki+ki+1YYsisiKiKisisiKi+1Ki+1Ki+kiKi+kiKi+ki+1Ki+ki+1si+1si+1
Bu nedenle, değerine sahip olması amacıyla , tüm geri kalan mevcut seçilmelidir ', matris içinde s değişkenler üzerindeki bir atamaya olan karşılık gelir. Dolayısıyla, geri kalan değeri, sadece ödevin her maddeyi yerine getirmesi durumunda mümkündür.∑ikiX∑ikiXXXkk
Sonuç olarak, yasal zamanlamanın maksimum değerine karar vermek . Belki de bu nedenle önceki tüm algoritma bulma girişimlerimiz başarısız olmuştur.NP-hardNP-hard