#SAT Solver скачать


21

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


2
Привет Уолтер, твой вопрос близок к тому, что будет официально "по теме" для этого сайта. Тем не менее, если вам некуда задать этот вопрос, и мы можем ответить на него, возможно, это не так уж и плохо ... (Поскольку сайт все еще находится в стадии разработки, я думаю, что мы более открыты, чем другие сайты). Будьте уверены, что смысл этого комментария не в том, чтобы «ругать» или «предупреждать», это просто дружеское замечание.
Райан Уильямс

Привет Райан, спасибо за ваше уведомление. Извините, если этот вопрос близок к границе. Я искал в Интернете и ничего не нашел: только некоторые решатели SAT, но не #SAT решатели. Вот почему я спросил здесь. Конечно, я знаю, что могу написать свой собственный код, который использует решатель SAT в качестве движка для подсчета решений, но я искал что-то уже готовое и готовое к использованию.
Джорджио Камерани

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

согласен его по объему. fyi / imho не слишком практично создавать решатель #SAT из решателя SAT, если только у него нет исходного кода и даже в этом случае, не очень практично, за исключением очень маленьких формул, из-за очень плохого экспоненциального увеличения. обычно требуются специальные методы, уникальные для #SAT, а не SAT ...
vzn

Ответы:



16

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


11

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

mnO(mn)m+n


7

Похожие темы: Лучший SAT Solver .


1
Спасибо Садек. Указанная вами тема кажется теоретически ориентированной. В нем перечислены несколько работ по уменьшению верхней границы. Это очень интересно, но я искал готовую рабочую реализацию.
Джорджио Камерани

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



5

Я написал небольшой модельный / простой имплицитный перечислитель . Это уже можно использовать для подсчета моделей с перечислением моделей, но это не очень практично. Если кому-то интересно, я могу расширить его, чтобы он считал модели из простых импликантов.


2

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

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



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.