Monoton boolean formülünün tatmin edilebilirliğine karar vermenin NP tamlığını kanıtlayın


12

Bu sorunu çözmeye çalışıyorum ve gerçekten mücadele ediyorum.

Bir monoton boole formül tümü değişmezdir pozitif önermeler mantık bir formüldür. Örneğin,

(x1x2)(x1x3)(x3x4x5)

monoton bir boolean fonksiyonudur. Öte yandan,

(x1x2x3)(¬x1x3)(¬x1x5)

monoton bir boole işlevi değildir.

Bu sorun için NP tamlığını nasıl kanıtlayabilirim:

Eğer bir monoton boole fonksiyonu karşılanabilir olup olmadığını belirleme değişkenleri veya daha az olarak ayarlanır ?1k1

Açıkçası, tüm değişkenler sadece pozitif olarak ayarlanabilir ve bu önemsizdir, bu yüzden pozitif olarak ayarlanmış değişkenlerin kısıtlaması vardır .k

SAT'dan monoton boolean formülüne bir azalma denedim. Denediğim bir şey, her negatif değişmez yerine kukla bir değişken koymaktır. Örneğin, yerine denedim ve sonra ve farklı değerler olmaya . Yine de bunu işe yarayamadım.z 1 x 1 z 1¬x1z1x1z1


Hoşgeldiniz! Lütfen dil ve biçimlendirmeye daha fazla özen gösterin.
Raphael

Yanıtlar:


12

Bakmakta olduğunuz sorunun "üst öğesi" bazen Ağırlıklı Memnuniyet (WSAT, özellikle parametrelenmiş karmaşıklıkta) veya Min-Ones (normalde bir optimizasyon sürümü olmasına rağmen yeterince yakın) olarak adlandırılır. Bu sorunlar , tanımlayıcı özellikleri olarak "en fazla değişkeni true olarak ayarlanmış" kısıtlamasına sahiptir.k

Monoton formüllere kısıtlama aslında sertlik göstermek için şaşırtıcı derecede kolaydır, sadece bir an için tatmin edilebilirlik sorunlarının dışında bir şey yapmanız gerekir. Bir SAT örneğini değiştirmeye çalışmak yerine, bunun yerine Dominating Set (DS) ile başlarız.

Bakalım oradan alabilir misin? Daha fazlası spoilerde, parçalara ayrılmış, ancak mümkünse kaçının. NP üyeliğini göstermeyeceğim, bununla bir problemin olmamalı.

Bir örneğini göz önüne alındığında DS (yani o en çok büyüklükte bir görünen dizi isteyen k için G ), Ayrıca bir örnek gerçekleştirebilmesi ( φ , k ) formül WSAT ait φ monoton bir CNF formülü aşağıdaki gibidir:(G,k)kG(ϕ,k)ϕ

Temel yapı:

Her biri için bir değişken vardır v 'var ( φ ) , her biri için v V ( G ) bir maddesi olan c v = U N- ( v ) u ' .vV(G)vvar(ϕ)vV(G)cv=uN(v)u

İspatın bir taslağı:

Biz bulabilirse ya sahip her köşe böylece, hakim sette olmak, ya da bir komşumuz olduğu için hakim seti oluşturan köşeleri, gelen k değişkenleri doğru olarak ayarlanabilir cp ve her hükmü en azından içermelidir onlardan biri. Bir kilo var Benzer şekilde eğer k tatmin atama, gerçek değişkenler biz hakim kümesinde yer köşeler karşılık - her fıkra c v Her böylece, en azından birine sahip olmalıdır v (kendi başına veya başka bir şekilde) hakimdir.kkϕkcvv


Vay canına, bu çok daha mantıklı, teşekkürler! Bence SAT'ı monoton boolean formülüne indirmeye çalışırken kesinlikle yakalandım.
nat

Ayrıca tepe örtüsünü monoton boolean formülüne kadar azaltabileceğimizi de görüyorum.
nat

1
@ natnat, köşe kapağından gitmek de güzel çünkü 2CNF'de bir formül verir, bu da 2-SAT'ın P olması ilginçtir, ancak 2CNF formüllü monoton WSAT NP-tamamlanmıştır. Tesadüfen, Clique / Independent kümesinden antimonoton sonuçları da alabilirsiniz (her değişkenin reddedildiği, ancak en azından gerçek değişkenleri istediğiniz ). Özellikle meraklıysanız, bu tür tatmin edilebilirlik sorunlarının merkezi rol oynadığı Parametreli Karmaşıklığa bakmak isteyebilirsiniz. k
Luke Mathieson

Bence aynı yaklaşım verticle kapsamı için de geçerli.
Haskell Fun

@HaskellFun, bunu da düşündüm. Tepe noktası monoton Min-W2SAT ile aynıdır.
rus9384

2

SAT'dan basit bir azalma var. ¬ x i'yi temsil etmek için yeni bir değişkeni ekleyin . Bir formül verilen cp , yeni bir formül oluşturmak cp ' her oluşumunu değiştirerek ¬ x i ile Z i , ve de ekleme x iz i , her bir değişken için. K'yi orijinal değişkenlerin sayısı olarak ayarladık . Yeni ϕ formülü monotondur ve en fazla k değişkeni true değerine ayarlanmışsa ve yalnızca ϕ tatmin edilebiliyorsa tatmin edilebilir. (Bunun nedeni kzi¬xiϕϕ¬xizixizikϕϕkayrık cümle , ϕ için en az k değişkeninin True değerine sahip olması için tatmin edici bir tahminde bulunur ; ancak daha sonra en fazla k'ye sahip olmanın tek yolu, her bir çift için {x_i, z_i} tam olarak bir tanesinin true değerine ayarlanmış olmasıdır.)xiziϕkk

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.