Перерахуйте всі рішення проблеми SAT


11

Усі розв'язувачі #SAT, які я знаю, наприклад, RelSat, C2D, повертають лише кількість приємних екземплярів. Але я хочу знати кожен із цих випадків?

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

Дякую.


7
Це часто називають "все рішення SAT", але, здається, воно не доступне з полиці. У посиланнях я можу знайти розмови про зміни до MiniSAT та інших вирішувачів, як правило, додаючи блокуючі пропозиції, щоб виключити рішення, коли воно знайдено. З іншого боку, більшість вирішувачів обмежень підтримують генерування всіх рішень як стандартних.
Андрас Саламон

один підхід - це конвертація CNF → DNF, про яку є багато літератури
vzn

Відповіді:


13

Ви шукаєте ALL-SAT або всі рішення SAT-рішення. Це інша проблема від #SAT. Для їх підрахунку не потрібно перераховувати всі рішення.

Я не знаю про інструмент, який вирішує вашу проблему, тому що люди додають ці алгоритми поверх існуючих рішень SAT, але рідко, здається, випускають ці розширення. Нижче наведено два документи, які допоможуть вам змінити вирішувач CDCL для впровадження ALL-SAT.

Ефективні для пам’яті всі рішення Рішення SAT та його застосування до доступності , О. Грумберг, А. Шустер, А. Ядгар, FMCAD 2004

Ось недавня стаття, розміщена на arXiv.

Розширення сучасних рішень SAT для перерахунку всіх моделей , Саїд Джаббор, Лахдар Саїс, Якуб Сальхі, 2013

Ви можете спробувати зв’язатися з цими авторами для їх реалізації.


Для другого паперу вам просто потрібно натиснути першу версію v1, щоб побачити її.
Tayfun Pay

Цей недавній документ здається пов'язаний: homes.cs.washington.edu/~sudeepa/UAI2013-ModelCounting.pdf
Каве

1
@Kaveh, я вважаю, що ОП просить вирішити ALLSAT або спосіб перетворити вирішувач #SAT у вирішувач ALLSAT. Це документ про нижчі межі для #SAT. Я не впевнений, що це допомагає ОП.
Vijay D

2

На конференції VLSI я знайшов нещодавнішу (2014 р.) Статтю про All-SAT, тому вона, безумовно, орієнтована на практичну сторону (яка, здається, співзвучна питанню ОП тут, хоч і менше, ніж у cstheory.SE загалом):

  • "All-SAT з використанням мінімальних блокувальних застережень" Yinlei Yu, Pramod Subramanyan, Nestan Tsiskaridze, Sharad Malik, VLSI Design 2014. doi: 10.1109 / VLSID.2014.22 .

Для тих, хто не має підписки на IEEE, є безкоштовна копія на веб-сторінці Принстоняна в Принстоні . (Він використовує службу обміну файлами для зберігання / розповсюдження копій своїх робіт, і я не впевнений, наскільки стабільні ці URL-адреси, отже, це посилання на обхід.)

Суть цього документу, здається, полягає в:

Наш внесок, алгоритм Non-Disjoint-Dec, генерує надзвичайно короткі блокуючі пропозиції, які не містять жодної із мається на увазі змінних у solver. Зауважимо, що, як правило, мається на увазі більшість змінних у задовольняючому терміні. Короткі пункти блокування є дуже корисними для продуктивності вирішення, як це демонструє оцінка.

Їх реалізація базується на MiniSat. Схоже, вихідний код для їх розширення не є загальнодоступним. На жаль, це здається звичкою у галузі All-SAT, тому документи в цій області, які містять експериментальні результати, просто встановлюють якийсь більш-менш солом’яний простіший алгоритм, який можна обіграти, і його рідко можна порівняти безпосередньо (з точки зору експериментального результати) з будь-яким іншим опублікованим алгоритмом для All-SAT. Доповідь Jabbour et al. згаданий Віджай Д також є таким видом.

Як я не бачу, що це згадується в іншій відповіді (але лише в коментарі Андраша Саламона), [досить популярна] техніка блокування блокувань була введена в:

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