#SAT'ı çözmek için bazen verimli bir algoritma var mı?


24

normal AND, OR ve NOT işleçlerinden ve bazı değişkenlerden oluşan bir boolean formülü olsun . B için tatmin edici atamaların sayısını saymak istiyorum . Olduğunu, ben değişkenlere gerçeği değerlerinin farklı atamaları sayısını bulmak istediğiniz B kendisi için B gerçek değerini varsayar. Örneğin, a b formülü üç tatmin edici atamaya sahiptir; ( a b ) ( c ¬ b ) dört tanedir . Bu #SAT problemidir .BBBBab(ab)(c¬b)

Açıkçası, bu soruna etkili bir çözüm olması muhtemel olmayan SAT için verimli bir çözüm anlamına gelir ve aslında bu sorun # P-tamamlandı ve bu yüzden SAT'dan kesinlikle daha zor olabilir. Bu yüzden garantili verimli bir çözüm beklemiyorum.

Fakat SAT'ın kendisinin göreceli olarak gerçekten zor birkaç örneği olduğu iyi bilinmektedir. (Bkz. Örneğin Cheeseman 1991, " Gerçekten zor sorunların olduğu yer" .) Sıradan budanmış arama, en kötü durumda üstel olmasına rağmen, birçok vakayı verimli bir şekilde çözebilir; Çözünürlük yöntemleri, en kötü durumda üstel olmasına rağmen, uygulamada daha verimlidir.

Sorum şu:

Tipik bir boolean formülünün tatmin edici atamalarının sayısını hızlı bir şekilde sayabilen bilinen bir algoritma var mı? Her olası ödevi numaralandırmaktan belirgin bir şekilde daha iyi bir şey var mı?


1
# P-eksiksizliği için bir etiket eklemeye çalıştım, ancak Stack Exchange yazılımı # işaretini sevmiyor.
Mark Dominus

"SAT'ın kendisinin göreceli olarak gerçekten zor birkaç örneği vardır" iddiasında bulunurdum. Bağladığınız makalenin rastgele -SAT hakkında konuştuğuna inanıyorum . Ayrıca, faz geçiş olayı yalnızca rastgele durumlar için geçerlidir. SAT'da gerçekten çok sert el işi, endüstriyel vb. Durumlar var. k
Juho

Teşekkürler. Bunun sorumu daha az net hale getirme eğiliminde olduğunu mu düşünüyorsun? Ne istediğimi anlıyor musun?
Mark Dominus

Bana açık. Sadece örneklerin faz geçişini sergilediğini hatırlamak önemlidir :)
Juho

Yanıtlar:


21

Genel durumda sayma

2

Kesin sayım yöntemleri genellikle DPLL tarzı ayrıntılı arama veya bir tür bilgi derlemesine dayanır. Yaklaşık yöntemler genellikle herhangi bir garanti vermeden hızlı tahminler veren yöntemler ve bir doğruluk garantisi ile alt veya üst sınırlar sağlayan yöntemler olarak kategorize edilir. Ayrıca, arka kapıları keşfetme gibi kategorilere uymayan diğer yöntemler veya formüllerde (veya bunların kısıtlama grafiklerini) tutmak için belirli yapısal özelliklerde ısrar eden yöntemler de vardır.

Orada pratik uygulamalar var. Bazı kesin model sayaçları CDP, Relsat, Cachet, sharpSAT ve c2d'dir. Kesin çözücüler tarafından kullanılan ana tekniklerin türü kısmi sayımlar, bileşen analizi (underying kısıtlama grafiğinin), formül ve bileşen önbellekleme ve her düğümde akıllı muhakemedir. Bilgi derlemesine dayanan bir başka yöntem, giriş CNF formülünü başka bir mantıksal forma dönüştürür. Bu formdan, model sayımı kolayca çıkarılabilir (yeni üretilen formülün boyutunda polinom süresi). Örneğin, biri formülü bir ikili karar diyagramına (BDD) dönüştürebilir. Biri BDD'yi "1" yaprağından köke geri getirebilir. Veya başka bir örnek için, c2d, CNF formüllerini deterministik ayrışabilir olumsuzlama normal şekline (d-DNNF) dönüştüren bir derleyici kullanır.

ϕϕ

Gogate ve Dechter [3], SampleMinisat olarak bilinen model sayma tekniğini kullanır. Boole formülünün geriye dönüşsüz arama alanından gelen örneklemeye dayanır. Teknik, geri dönüşsüz arama alanını inşa etmek için DPLL tabanlı SAT çözücüler kullanarak yeniden örneklemenin önemi üzerine kuruludur. Bu tamamen ya da bir yaklaşıma kadar yapılabilir. Garantili tahminler için örnekleme de mümkündür. [2] üzerine inşa, Gomes ve ark. [4], modifiye edilmiş randomize stratejili bir örneklemenin kullanılmasının, yüksek olasılıklı doğruluk garantileriyle toplam model üzerinde kanıtlanabilir daha düşük sınırlar elde edebileceğini göstermiştir.

İnanç yayılımı (BP) üzerine kurulu çalışmalar da var. Bakınız Kroc ve diğ. [5] ve sundukları BPCount. Aynı makalede yazarlar, model sayımında üst sınırlar sağlamak için MiniCount adlı ikinci bir yöntem sunar. Birinin belirli istatistiksel varsayımlar altında üst sınırları hesaplamasına izin veren istatistiksel bir çerçeve de vardır.

# 2-SAT ve # 3-SAT algoritmaları

O(1.3247n)O(1.6894n)O(1.6423n)

Sorunun mahiyetinde olduğu gibi, pratikte örnekleri çözmek istiyorsanız, örneklerin boyutuna ve yapısına çok şey bağlıdır. Ne kadar çok bilirseniz, doğru yöntemi seçme konusunda o kadar yeteneklisiniz.


[1] Vilhelm Dahllöf, Peter Jonsson ve Magnus Wahlström. 2-SAT ve 3-SAT'daki Tatmin Edici Ödemeleri Sayma. 8. Yıllık Uluslararası Bilgi İşlem ve Kombinatorik Konferansı Bildirilerinde (COCOON-2002), 535-543, 2002.

[2] W. Wei ve B. Selman. Model Saymaya Yeni Bir Yaklaşım. SAT05: 8. Uluslararası Memnuniyet Testi Teorisi ve Uygulamaları Konferansı, Bilgisayar Bilimi Ders Notları Cilt 3569, 324-339, 2005.

[3] R. Gogate ve R. Dechter. Backtrack-Free Arama Alanını Örnekleyerek Yaklaşık Sayma. AAAI-07: 22. Ulusal Yapay Zeka Konferansı, 198–203, Vancouver, 2007.

[4] CP Gomes, J. Hoffmann, A. Sabharwal ve B. Selman. Örneklemeden Model Sayımına. IJCAI-07: 20. Uluslararası Yapay Zeka Ortak Konferansı, 2293–2299, 2007.

[5] L. Kroc, A. Sabharwal ve B. Selman. Model Sayma için İnanç İlerlemesinin, Geriye Dönük Araştırmanın ve İstatistiklerin Geliştirilmesi. CPAIOR-08: 5. Uluslararası AI ve OR Tekniklerinin Kısıtlama Programcılığına Entegrasyonu Konferansı, 5015 Sayılı Bilgisayar Bilimleri Ders Notları, 127-141, 2008.

[6] K. Kutzkov. 3 SAT sorunu için yeni üst sınır. Bilgi İşlem Mektupları 105 (1), 1-5, 2007.


8

Juho tarafından listelenen makalelere ek olarak, burada, özellikle çözümlerin sayısına yaklaşmak konusunda bu konuyla ilgili çalışmaları tanımlayan başkaları da var:

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.