Все известные мне решатели #SAT, например RelSat, C2D, возвращают только количество выполнимых экземпляров. Но я хочу знать каждый из этих случаев?
Существует ли такой решатель #SAT или как мне изменить имеющийся решатель #SAT, чтобы сделать это?
Спасибо.
Ответы:
Вы ищете ALL-SAT или все решения SAT Solver. Это другая проблема от #SAT. Вам не нужно перечислять все решения для их подсчета.
Я не знаю инструмента, который решает вашу проблему, потому что люди добавляют эти алгоритмы поверх существующих решателей SAT, но, кажется, редко выпускают эти расширения. Ниже приведены две статьи, которые должны помочь вам в модификации решателя CDCL для реализации ALL-SAT.
SAT-решатель All-Solutions с эффективным использованием памяти и его применение к достижимости , О. Грумберг, А. Шустер, А. Ядгар, FMCAD 2004
Вот недавняя статья, опубликованная на arXiv.
Расширение современных SAT Solvers для перечисления всех моделей , Саид Джаббур, Лахдар Саис, Якуб Салихи, 2013
Вы можете попробовать связаться с этими авторами для их реализации.
источник
Я нашел более свежую (2014 г.) статью о All-SAT на конференции VLSI, так что она определенно ориентирована на практическую сторону (что, похоже, согласуется с вопросом OP здесь, хотя и с cstheory.SE в целом):
Для тех, у кого нет подписки IEEE, есть бесплатная копия на веб-странице Субраманяна в Принстоне . (Он использует файлообменный сервис для хранения / распространения копий своих статей, и я не уверен, насколько стабильны эти URL-адреса, отсюда и эта обходная ссылка.)
Суть этой статьи выглядит так:
Их реализация основана на MiniSat. Исходный код для их расширения, похоже, не является общедоступным. Увы, это, кажется, привычка в области All-SAT, поэтому статьи в этой области, которые содержат экспериментальные результаты, просто устанавливают какой-то более-менее простой алгоритм, который можно превзойти, и редко могут напрямую сравниваться (с точки зрения экспериментального результаты) с любым другим опубликованным алгоритмом для All-SAT. Бумага Jabbour et al. упомянутый Виджаем D тоже относится к этому виду.
Как я не вижу в упомянутом другом ответе (но только в комментарии Андраса Саламона), [довольно популярный] метод блокирующих предложений был представлен в:
источник