#SAT Solver завантажити


21

Чи міг би хтось вказати на один або кілька веб-сайтів, де можна завантажити робочу реалізацію вирішувача #SAT? Мене цікавлять ті, хто повертає точний підрахунок рішення, а не наближення.


2
Вітаю, Вальтере, ваше питання близьке до меж того, що було б офіційно "на тему" для цього сайту. Однак якщо вам більше нікуди не задавати це питання, і ми можемо відповісти на нього, можливо, це не так вже й погано ... (Оскільки сайт все ще знаходиться на стадії розробки, я думаю, що ми відкритіші, ніж інші сайти.) Будьте впевнені що суть цього коментаря не в тому, щоб "лаяти" або "попереджати", це просто дружнє повідомлення.
Райан Вільямс

Привіт, Райан, дякую за ваше повідомлення. Вибачте, якщо це питання близько до кордону. Я шукав в Інтернеті, і нічого не знайшов: лише деякі вирішувачі SAT, але немає вирішувачів # SAT. Ось чому я тут запитав. Звичайно, я знаю, що можу написати власний код, який використовує SAT-розв'язувач як двигун для підрахунку рішень, але я шукав щось вже зроблене та готове до використання.
Джорджіо Камерані

12
Я хотів би не погодитися. Я думаю, що такі питання знаходяться в межах, і повинні бути!
Суреш Венкат

погодити його в обсязі. fyi / imho - це не надто практично, щоб створити #SAT-вирішувач із SAT-рішення, якщо у вас немає вихідного коду, і навіть у такому випадку не настільки практичний, за винятком дуже малих формул, через дуже поганий показник експоненції. зазвичай потрібні спеціальні методи, унікальні для #SAT, а не SAT ...
vzn

Відповіді:



16

Ви також можете спробувати вирішувач #SAT "sharSAT" ( веб-сайт , github ) для підрахунку кількості задовольняючих завдань формул CNF.


11

Один із варіантів - використовувати бібліотеку BDD, наприклад, JavaBDD . Усі такі бібліотеки або мають функцію, яка швидко підраховує рішення, або, принаймні, вони полегшують запис такої функції. Недоліком, однак, є те, що побудова BDD у багатьох випадках буде повільною і може зажадати багато пам'яті.

mnO(mn)m+n


7

Пов'язана тема: Кращий SAT Solver .


1
Дякую Садеку. Тема, яку ви вказали, здається, теоретично орієнтована. У ньому перераховано кілька робіт про зменшення верхньої межі. Це дуже цікаво, але я шукав готову до використання робочу реалізацію.
Джорджіо Камерані

2
Ти найбільш бажаний. Серед посилань, що цитуються там, було одне із практичних: satcomcharge.org . Я думаю, ви можете знайти там дуже хороші реалізації.
MS Dousti


7

MBound Solver, наведений тут http://www.cs.cornell.edu/~sabhar/, може давати підрахунки моделі з імовірнісними гарантіями. Це набагато швидше, ніж перераховувати всі рішення.


5

Я написав невелику модель / основний імплікатор . Це вже можна використовувати для підрахунку моделі з перерахуванням моделі, але це не дуже практично. Якщо когось цікавить, я можу продовжити це, щоб він рахував моделі від головних прихильників.


2

Веб-сайт BeyondNP містить хороший опис існуючих інструментів для вирішення #SAT (та інших пов'язаних з цим важких проблем у формулах CNF). Ви також можете знайти список інструментів для приблизного підрахунку моделі та складання знань (завдання перетворення CNF у сподіванусь стильну структуру даних, яка часто підтримує поліноміальний підрахунок моделі часу).

Ви також можете знайти список інструментів для попередньої обробки формул CNF, які можуть бути корисними для покращення продуктивності лічильників моделей та різних еталонів .



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.