#SAT Çözücü indir


21

Birisi lütfen #SAT çözücüsünün çalışan bir uygulamasını indirmek için mümkün olan bir veya daha fazla web sitesine işaret edebilir mi? Yaklaşıma değil, tam çözüm sayısını geri dönenlere ilgi duyuyorum.


2
Merhaba Walter, sorunuz bu site için resmen "konuyla" olanın sınırına yakın. Ancak, bu soruyu soracak başka yeriniz yoksa ve bunu cevaplayabilirsek, belki de o kadar da kötü değil ... (Site hala geliştirilme aşamasında olduğundan, diğer sitelerin olabileceğinden daha açık olduğumuzu düşünüyorum.) Bu yorumun amacı "azarlamak" veya "uyarmak" değildir, bu sadece arkadaşça bir nottur.
Ryan Williams

Merhaba Ryan, haberin için teşekkürler. Bu soru sınıra yakınsa özür dilerim. Web’de arama yaptım ve hiçbir şey bulamadım: yalnızca bazı SAT çözücüleri, ancak #SAT çözücüleri yok. Bu yüzden burada sordum. Tabii ki, çözümleri saymak için bir motor olarak SAT çözücü kullanan kendi kodumu yazabileceğimi biliyorum, ama zaten hazır ve kullanıma hazır bir şey arıyordum.
Giorgio Camerani

12
Katılmıyorum istiyorum Bence bu tür sorular kapsam dahilinde ve olmalı!
Suresh Venkat

kapsamı dahilinde katılıyorum. fyi / imho, kaynak koduna sahip olmadığı sürece SAT çözücüsünden bir #SAT çözücüsü oluşturmak için çok pratik değildir, bu durumda çok kötü bir üstel patlamadan dolayı çok küçük formüller haricinde çok pratik değildir. genellikle #SAT'a özgü ve SAT'a özgü olmayan özel teknikler gerekli olur ...
vzn

Yanıtlar:



16

Ayrıca CNF formüllerinin tatmin edici atama sayısını saymak için #SAT çözücü "sharpSAT" ( web sitesi , github ) deneyebilirsiniz .


11

Seçeneklerden biri, JavaBDD gibi bir BDD kitaplığı kullanmaktır . Bu kütüphanelerin tümü ya çözümleri hızlı bir şekilde sayan bir işleve sahiptir ya da en azından böyle bir işlevi yazmayı kolaylaştırır. Ancak dezavantajı, BDD'yi inşa etmenin birçok durumda yavaş olması ve çok fazla hafıza gerektirmesidir.

Girişinizin CNF’de olması durumunda, BDD’nin yapımını hızlandıran basit bir buluşsal yöntem aşağıdaki gibidir. İlk olarak, her bir madde için küçük bir BDD oluşturun ve bunları, kökü en küçük BDD olan öncelik sırasına koyun. İkincisi, iki BDD açın, aralarında VE'yi hesaplayın ve sonucu öncelik sırasına itin. İşte fikir: boyutu hesaplama yana VE arasındaki BDDs ve sürer teoride ama pratikte, çalışma zamanını minimize bir Huffman kod bulma aynıdır.mnO(mn)m+n


7

İlgili konu: En İyi SAT Çözücü .


1
Sadeq teşekkürler. Belirttiğiniz konu teorik odaklı görünüyor. Üst sınırın azaltılması ile ilgili birkaç makale listelenmiştir. Çok ilginç, ama kullanıma hazır bir çalışma uygulaması arıyordum.
Giorgio Camerani

2
Rica ederim. Orada belirtilen bağlantılar arasında, tamamen pratik olan bir tane vardı: satcompetition.org . Bence orada çok iyi uygulamalar bulabilirsin.
MS Dousti



5

Küçük bir model / asal örtülü numaralandırıcı yazdım . Bu zaten model numaralandırma ile model sayımı için kullanılabilir, ancak bu pek pratik değil. Herhangi biri ilgileniyorsa, onu uzatabilirim, böylece asıl ima edenlerin modellerini sayar.


2

BeyondNP web sitesi #SAT (ve CNF formüllerindeki diğer ilgili zor problemleri) çözmek için mevcut araçların iyi bir envanterini içeriyor. Yaklaşık model sayımı ve bilgi derlemesi için bir araç listesi de bulabilirsiniz (CNF'yi genellikle polinom zaman modeli sayımını destekleyen umut verici derecede özlü bir veri yapısına dönüştürmek görevi).

Ayrıca , model sayaçlarının ve çeşitli kıyaslamaların performansını geliştirmek için faydalı olabilecek CNF formüllerinin ön işleme tabi tutulması için araçların bir listesini de bulabilirsiniz .



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.