CNF neden DNF yerine SAT için kullanılıyor?


22

Neredeyse tüm SAT çözümleyicilerinin neden DNF yerine CNF kullandığını anlamıyorum. Bana öyle geliyor ki, SAT çözümünü DNF kullanarak daha kolay. Ne de olsa, yalnızca bir dizi kümesi taramanız ve bunlardan birinin hem değişken hem de olumsuzlama içermediğini kontrol etmeniz gerekir. CNF için böyle basit bir prosedür yoktur.


5
Tüm kısıtlayıcı çözücüleri girdi olarak CNF kullanmaz. Bazıları tercih etmiyor, çünkü orijinal kısıtlama kümesinin yapısı korunuyor.
Dave Clarke

1
Bu sorunun yanlış bir öncülü vardır ve şu anda ifade edilen kadar yüksek bir puanı hakettiğini düşünmeyin. SAT, CNF formüllerinin çözümü olarak tanımlanmaktadır . DNF'leri çözme problemi var ( tatmin edici ödevler bulmak bile diyebilirsin ), ancak CS'de / rumuzlu SAT olarak adlandırılmıyor. Bu da cs.se'ye geçmelidir ... başka bir not-- CNF'yi DNF'ye dönüştürmek ve bunun tersi aslında bazı durumlarda kötü bir şekilde başarısız olan bir sıkıştırma algoritmasına benzemektedir ya da benzer bir şekilde görülebilir, (üstel patlamaya neden olan) boyutunda)
vzn

10
@vzn: aslında, "SAT" bazen herhangi bir boole formülü için tatmin edici bir atama bulma problemine atıfta bulunmak için kullanılır . CNF-SAT sadece en ilginç özel durumdur, bu nedenle CNF-SAT'ı özellikle bir tür senkodok olarak adlandırmak için "SAT" kullanma eğilimindeyiz. Elbette, DNF-SAT, CNF-TAUTOLOGY'nin verimli bir şekilde çözülebilir olduğu gibi verimli bir şekilde çözülebilir. Sorunun bunun farkına varılmaması üzerine kurulu olduğu görülüyor.
Niel de Beaudrap

Yanıtlar:


56

Nedeniyle Karp için 3SAT için SAT gelen ders kitabı azaltılması, rasgele bir Boole formül dönüştüren bir “eşdeğer” CNF boole formülü içine cp ' polinom boyutta olacağı şekilde, Φ , ancak ve ancak, eğer karşılanabilir olduğunu Φ ' karşılanabilir olduğu. (Açıkçası, bu iki formül eşdeğer değildir, çünkü Φ ek değişkenlere sahiptir, ancak Φ değeri aslında bu yeni değişkenlere bağlı değildir.)ΦΦ ΦΦΦΦ

Rasgele boolean formüllerinden DNF formüllerine benzer bir azalma bilinmemektedir; Bilinen tüm dönüşümler, formülün boyutunu üssel olarak arttırır. Üstelik, P = NP olmadıkça, böyle bir indirim mümkün değildir!


DNF'nin CNF'ye dönüştürülmesi ve bunun tersi durumun afaik olması, P ile NP ile tam olarak aynı değildir, ancak muhtemelen bazı önemli karmaşıklık sınıfı ayrımları ile ilgilidir (görünüşe göre NP'den daha büyük olan sınıflar için) ... boyutta üstel bir patlama ... ve her durumda CNF ile DNF arasındaki dönüşüm bir karar sorunu değil ... onu bir karar sorununa dönüştürmenin birden fazla yolu var ...
vzn

10
JeffE'nin amacı, DNF-SAT'nin P'de olduğudur, bu yüzden P = NP olmadıkça NP tamam olamaz.
Luke Mathieson

2
"bilinen tüm dönüşümler" mevcut bilgiler göz önüne alındığında doğru değildir, ne olursa olsun DNF vardır <=> CNF formülleri / dönüşümleri, algoritmadan bağımsız olarak üstel alanların genişletilmesini gerektiriyordu. Bu soruya ve bu cevaba işaret ediyor ... literatürde herhangi bir yerde kullanılan "DNF-SAT" kısaltması mı? kendim görmeyi hatırlamıyorum ... benim için kafa karıştırıcı görünüyor ... DNF tatmin edici bir karar problemi, DNF <-> CNF dönüşümü bir fonksiyon problemidir ve cevap bu ayrımı çok netleştirmez; harika bir cevap olurdu ...
vzn

@ Jɛ ff E: Burada "keyfi boole formülü" ile neyi kastediyorsunuz? Karp'ın makalesine bakıldığında , sayfa 92, CNF formüllerinde SATISFIABILITY tanımlanmıştır. Bu OP'nin sorusuna verdiğiniz cevabı etkilemez, ancak keyfi boolean formüller (yani, mutlaka CNF'de olmayan formüller) için genel sonuçlar bulunmadığından emin olmaya çalışıyorum. Thanks
lyes

22

Önemli şeylerin çoğu söylendi ama birkaç noktaya vurgu yapmak istiyorum.

  1. DNF formülünün tatmin edilebilirliği P'dir.
  2. bir CNF formülünün tatmin edilebilirliği NP'dir
  3. Bir CNF formülünün bir totoloji olup olmadığını test etme P
  4. DNF formülünün bir totoloji olup olmadığının test edilmesi coNP
  5. DNF'yi olumsuzlamak CNF'yi sağlar ve bunun tersi de geçerlidir.

Bu yüzden SAT çözücüler CNF'yi kullanırlar, çünkü bunlar tatmin edilebilirliği hedefler ve herhangi bir formül tatmin ediciliği lineer zamanda korurken bir CNF'ye çevrilebilir.



1
@TayfunPay yaptıklarını. Örneğin, . Aynı değişkeni içeren cümleleri iki kez yasaklarsanız, o zaman boş küme cümleleri olan bir totolojinin tek bir gösterimi vardır. {{¬xx}}
Mikolas

3
@Tayfun tanımların tipik olarak cümle içinde tekrar eden değişkenlere izin vermemesine izin verdiğimde, boş cümle setine izin vermeyecek bir tanım gördüğümü sanmıyorum. (Ve neden bunu yapmak istediğin açık değil)
Mikolas

2
@Tayfun 1) CNF'de hiçbir totolojinin olmadığını veya boş cümleciklerin CNF olmadığını söyleyen bir yayını işaret edebilir misiniz? 2) boş cümle grubuna izin vermemeniz durumunda, boş cümleyi de yasaklamalısınız ve CNF'de doğru ve / veya yanlış olmasına izin vermezseniz, her ikisini de yanlış temsil edemezsiniz. 3) Tüm Boolean fonksiyonları, neden bunu yapmak istiyorsun?
Mikolas

1
"Herhangi bir maddede değişkenlerin veya değişmezlerin tekrarı olmamalıdır." --- bu boş formülleri veya cümleleri yasaklamıyor. BTW Boş maddeye izin vermezseniz, otomatik muhakemenin oldukça önemli bir parçasını oluşturan çözümleme iadesi kanıtlarını artık yapamazsınız.
Mikolas

18

SAT çözücüleri CNF'yi "kullanmaz" - bunlar (genellikle) CNF'ye girdi olarak verilir ve verilen CNF'yi çözmek için ellerinden geleni yaparlar. Sorunuzda belirtildiği gibi, temsil her şeydir - bir DNF'nin aynı büyüklükteki bir CNF'den daha tatmin edici olup olmadığını söylemek çok kolaydır.

Bu, SAT çözücülerinin neden CNF'lerini DNF'ye dönüştüremediklerini ve sonuçta ortaya çıkan DNF'yi çözememeleri sorununa yol açıyor ve bunun denenmesi, temsil sorunlarının anlaşılması için iyi bir alıştırma.


11

7 inci Eylül 2013: Sayfanın Ayrıntılı cevap eklendi, çek dip


Temel olarak, bir DNF formülü cümlelerinin bir birleşimidir . . . C m, her bir maddesi, c i = L Madde i , 1. . . l i , k değişmezleri bir conjuction olduğunu. Diyelim bir madde diyoruz c ı bir edebi hem de içerir ancak ve ancak çelişkili l ve tersi ¬ l . Her çelişkili olmayan cümlenin sadece 2 n - k kodladığını görmek kolaydır.c1...cmci=li,1...li,kcil¬l2nkformülün çözümleri. Yani tüm DNF sadece bir çözüm sayımıdır. Bir formülün üssel olarak birçok çözümü olabilir, bu nedenle karşılık gelen DNF formülünün üssel olarak birçok cümlesi olabilir. Bu CNF formülünü dönüştürmeyi deneyin:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

Karşılık gelen DNF formülüne: çok fazla cümle alacaksınız. Bir kelimeyle: CNF kompakt, DNF ise; CNF açık, DNF açık ise.

Aşağıdaki sorun NP tamamlandı: bir DNF örneği verildiğinde, tüm cümleleri yanlışlayan değişkenlerin bir tahsisi var mı?


4
Doğru LaTeX formatını almak için, \ ve ve \ veya \ land ve \ lor (veya \ wedge ve \ vee) ile değiştirin.
Jeffε

2
Düzenli CNF'ye dönüşüm konusunda doğası gereği daha kompakt bir şey yoktur, OP sorusunun asıl anahtarı bu "eşitlenemez" CNF işlevlerini yardımcı değişkenlerle oluşturabileceğiniz gerçeğidir. Muhtemelen tatmin edilebilirlik testi yapmak yerine farklı bir sorunu çözmek için DNF ile yapabileceğiniz benzer bir yaklaşım vardır. (eşit-tatminsizlik işlevleri? ...)
dividebyzero

1
Giorgio Camerani'nin bu görüşü iyi değil. Bir şeyi CNF'ye dönüştürürseniz, madde sayısındaki aynı üstel artış da olabilir. Aynı örneği seçin ve "ve" s ile "veya" s'yi değiştirin. Bu küçük DNF ifadesinden CNF'ye dönüşüm aynı şekilde çok büyük olacaktır. Onlarla bir miktar ying-yang ilişkisi var.
dividebyzero

@dividebyzero: Yorumlarınızı ele almak için ayrı bir cevap verdim.
Giorgio Camerani

6

Yeni bir şey daha farkettim, umarım ayrı bir cevabı hak eder. Sorunun varsayımı tam olarak doğru değil. İkili bir karar diyagramı (BDD) DNF'nin kompakt / rafine bir gösterimi olarak görülebilir. BDD'leri kullanan bazı SAT çözücüleri var, ancak artık görünmediklerini düşünüyorum.

Darwiche ve Marquis tarafından , Boolean fonksiyonlarının çeşitli temsillerinin farklı özelliklerini inceleyen güzel bir makale var .


4

Bu daha fazla cevap, dividebyzero'nun önceki cevabımdaki yorumuna bir geri bildirim olarak ifade edildi.

Dividebyzero'nun dediği gibi, CNF ve DNF'nin aynı madalyonun iki yüzü olduğu kesinlikle doğru.

Eğer bir tatmin atama bulmak zorunda olduğunda, DNF o manifestedly gösterildiği gibi açık olan onun tatmin atamaları (DNF Gerçeklenebilirlik aittir ) o sarar ve gözlerinden onun tatmin atamaları gizlemek rüzgarları gibi CNF oysa örtülü olduğu (CNF Gerçeklenebilirlik olan N p - c o m p l e t e ). Herhangi bir CNF formülünü katlanarak çözülebilen ve katlanarak boyutlandırılamayan bazı dengelenebilir DNF formüllerine çözebilen herhangi bir prosedür bilmiyoruz. Bu benim önceki cevabımın noktasıydı (ki bu örnek, üstel patlamayı göstermek içindir, bununla birlikte, bu tür bir örnek mümkün olan en iyi seçenek değildi).PNPcomplete

Bir tahrif atama bulmak zorunda bunun tersi olarak, CNF o manifestedly gösterildiği gibi açık olan onun tahrif atamaları (CNF Yanlışlanabilirlik aittir ) o sarar ve gözlerinden onun tahrif atamaları gizlemek rüzgarları olarak, DNF oysa örtülü olduğu (DNF Yanlışlanabilirlik bir N p - c o m p l e t e ). Herhangi bir DNF formülünü, üssel olarak ölçülemeyen bazı eşitlenebilir CNF formüllerine çevirip açabilen herhangi bir prosedür bilmiyoruz.PNPcomplete

Bir uçta, çelişkilerimiz var, yani tatmin edilemeyen formüller. Karşı ekstremitede Tatolojiler var, yani yanlışlanamayan formüller. Ortada, hem tatmin edici hem de yanlışlanabilir formüllere sahibiz.

değişkenli bir CNF formülünde , k uzunluğundaki her bir cümle açıkça 2 n - k tahrif edici ödevi kodlar .nk2nk

değişkenli herhangi bir DNF formülünde , k'nin her bir uzunluğu açıkça 2 n - k tatmin edici ödevleri gösterir.nk2nk

Maddeleri olmayan bir CNF formülü bir Tautology'dir, çünkü herhangi bir tahrif edici atama yoktur. Boş maddeyi (diğer tüm maddelere hükmeden) içeren bir CNF formülü bir çelişkidir, çünkü boş madde ( ) tüm 2 n atamalarının yanlış olduğunu gösterir . Başka bir CNF formülü ya bir çelişki veya ortadan formüllerden biridir (ve bunun N P - C o m p l e t e , bu 2 durumu ayırt etmek).k=02nNPcomplete

k=02nNPcomplete

2n

2n

Bu ışık altında, CNF Satisfiability ve DNF Falsifiability'nin hesaplama sertliği açısından neden eşdeğer olduğu daha açık bir hale gelir. Çünkü bunlar aslında aynı problemdir, çünkü temel görev tamamen aynıdır: birkaç kümenin birleşmesinin tüm olasılıkların alanına eşit olup olmadığını söylemek . Bu görev bizi daha geniş bir sayım alanına götürüyor; alçakgönüllü görüşüme göre, bu sorunlarda önemsiz bir şekilde ilerleme kaydetmeyi ummak için hararetle keşfedilecek caddelerden biriydi Sonunda çığır açan teorik ilerlemeler getirebilirken, kesinlikle şaşırtıcı pratik ilerlemeler getirmeye devam eder).

Bu tür bir işin zorluğu, bu setlerin bir dahil etme - dışlama biçiminde çılgınca örtüşmeleridir.

Bu gibi üst üste binmenin mevcudiyeti, tam olarak saymanın sertliğinin bulunduğu yerdir. Dahası, bu setlerin üst üste binmesine izin vermemiz gerçeği, çözüm alanı yine de üssel olarak büyük olan kompakt formüllere sahip olmamıza izin veren sebep.


4

Bu konudaki tüm cevapları (özellikle Giorgio Camerani'nin yanıtı) güzel bir masaya dönüştürmeye karar verdim, böylece dualite bir bakışta görülebilir:

DNFCNFtotolojidir / unfalsifiabilitycoNP tamamlamaP(her fıkra bir çift P ve ¬P'ye sahiptir)satisfiabilityP(sat. ödevler açıktır)NP-tamyanlışlanabilirlikNP-tamP(fals. atamalar açıktır)unsatisfiabilityP(her fıkra bir çift P ve ¬P'ye sahiptir)coNP tamamlamanormal forma dönüştürme, denkliği koruyarak(*)(*)normal forma dönüşme, karşılanabilirliği koruyarak(**)FPnormal formata dönüştürme, yanlışlığı muhafaza etmeFP(**)

(*): Bu arama problemleri ve ayrıca DNF'den CNF'ye dönüşüm (veya bunun için tam tersi), çıktının büyüklüğü nedeniyle üssel zaman gerektirir. FPSPACE’tedirler; Aslında, polinom-zaman-bit-bit grafikli bir fonksiyonla çözülebilirler, üstel-boyut-çıkış fonksiyonu için mümkün olduğu kadar verimlidirler, ancak bu sınıfın bir isme sahip olduğunun farkında değilim. Çok zamanlı azaltma işlemlerinin olağan kavramları, yalnızca polinom büyüklüğü çıkışı olan işlevler için hassas bir şekilde çalışır; onları mevcut davaya kör bir şekilde uygulamak, tüm bu arama sorunlarını FEXP'nin tekrar çıktı boyutuna bağlı olarak tamamlamasını sağlayacaktır.

(**): Bu arama sorunları, olduğu gibi bir polinom-zaman bit grafikli bir üstel zaman fonksiyonu ile çözülebilir (*). Ancak, onlar da çözülebilirFPN-P[1]ve bunun tersine, çok zamanlı Turing azaltmaları altında NP zordur (bir çok azaltma, bir arama sorununu karar sorunuyla karşılaştırdığımız için burada bir anlam ifade etmez).

Soruya en kısa cevap: DNF aracılığıyla tatmin edilebilirliğin (SAT çözümü) gösterilmesi ancak yukarıdaki tabloya göre üstel bir zamanda yapılabilir.


1
"PL formülü" nedir ve "NF" ne anlama gelir?
Joshua Grochow

4
Burada birkaç sorun var. (1) "Yanlışlanamazlık" derken "tautology" demek istedin. (2) KNF, CNF olmalıdır.
Huck Bennett,

2
Yine de "NF (tatmin ediciliği koru)" ile neyi kastettiğinizi netleştirmeyin. Bu bir A algoritması anlamına mı geliyor?bir(φ) eğer tatmin edici φ , ancak φ o zaman tatmin edilemez bir(φ) tüm tatmin edici formüller için ya da daha fazlası olabilir φ, bir(φ)aynı çıktı var mı? Senin notundan düşünürdüm, ama bu sorun CNF'ler için P'de olmazdı. Peki ne demek istiyorsun?
Joshua Grochow

1
(1) "yüklem mantığı", "önerme mantığı" olmalıdır. (2) Normal formlara dönüşüm karar problemleri değil, fonksiyon problemleridir (veya "normal formlar" benzersiz olmadığı için arama problemleri değildir). Dolayısıyla, tabloda verilen karar sınıfları uygun değildir.
Emil Jeřábek, 8

1
Nedir Δ3P doing there?
Emil Jeřábek supports Monica
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.