Есть ли иногда эффективный алгоритм для решения #SAT?

24

Пусть - булева формула, состоящая из обычных операторов AND, OR, NOT и некоторых переменных. Я хотел бы, чтобы подсчитать число удовлетворяющих назначений для B . То есть я хочу найти количество различных назначений значений истинности для переменных для которых принимает истинное значение. Например, формула имеет три удовлетворяющих назначения; имеет четыре. Это проблема #SAT .ВВВВaб(aб)(с¬б)

Очевидно, что эффективное решение этой проблемы будет означать эффективное решение SAT, что маловероятно, и на самом деле эта проблема является # P-полной, и поэтому вполне может быть строго сложнее, чем SAT. Поэтому я не ожидаю гарантированного эффективного решения.

Но общеизвестно, что действительно мало действительно сложных примеров самого SAT. (См., Например, Cheeseman 1991, «Там, где действительно сложные проблемы» .) Обычный обрезанный поиск, хотя в худшем случае экспоненциальный, может эффективно разрешить многие случаи; методы разрешения, хотя в худшем случае экспоненциальные, на практике еще более эффективны.

Мой вопрос:

Известны ли какие-либо алгоритмы, которые могут быстро подсчитать количество удовлетворяющих присвоений типичной логической формулы, даже если такие алгоритмы требуют экспоненциального времени в общем случае? Есть ли что-нибудь заметно лучше, чем перечислять все возможные задания?

Марк Доминус
источник
1
Я пытался добавить тег для # p-полноты, но программе Stack Exchange не нравится знак #.
Марк Доминус
Я был бы осторожен с утверждением, что «существует относительно немного действительно сложных примеров самого SAT». Я полагаю, что статья, на которую вы ссылаетесь, на самом деле говорит о случайном -SAT. Кроме того, явление фазового перехода относится только к случайным случаям. Есть много действительно тяжелых, изготовленных вручную, промышленных и т. Д. Экземпляров SAT. К
Юхо
Спасибо. Как вы думаете, это делает мой вопрос менее ясным? Вы понимаете, о чем я прошу?
Марк Доминус
Это для меня понятно. Важно только помнить, какие экземпляры демонстрируют фазовый переход :)
Juho

Ответы:

21

Подсчет в общем случае

Интересующая вас проблема известна как #SAT или подсчет моделей. В каком-то смысле это классическая # P-полная задача. Считать модели сложно даже для SAT! Не удивительно, что точные методы могут обрабатывать только экземпляры с сотнями переменных. Существуют также приблизительные методы, и они могут обрабатывать экземпляры с около 1000 переменных.2

Точные методы подсчета часто основаны на исчерпывающем поиске в стиле DPLL или какой-то компиляции знаний. Приближенные методы обычно классифицируются как методы, которые дают быстрые оценки без каких-либо гарантий, и методы, которые обеспечивают нижние или верхние границы с гарантией корректности. Существуют также другие методы, которые могут не соответствовать категориям, такие как обнаружение бэкдоров, или методы, которые настаивают на определенных структурных свойствах для формул (или их графа ограничений).

Есть практические реализации там. Некоторыми точными счетчиками моделей являются CDP, Relsat, Cachet, sharpSAT и c2d. Основными методами, используемыми точными решателями, являются частичные подсчеты, анализ компонентов (базового графа ограничений), кэширование формул и компонентов, а также интеллектуальные рассуждения на каждом узле. Другой метод, основанный на компиляции знаний, преобразует входную формулу CNF в другую логическую форму. Из этой формы можно легко определить количество моделей (полиномиальное время в размере вновь созданной формулы). Например, можно преобразовать формулу в диаграмму двоичного решения (BDD). Затем можно пройти BDD от листа «1» обратно к корню. Или для другого примера, c2d использует компилятор, который превращает формулы CNF в детерминированную разложимую нормальную форму отрицания (d-DNNF).

φφ

Гогейт и Дехтер [3] используют метод подсчета моделей, известный как SampleMinisat. Он основан на выборке из пространства поиска без обратной последовательности булевой формулы. Этот метод основан на идее повторной выборки по важности, используя основанные на DPLL решатели SAT для построения пространства поиска без возврата. Это может быть сделано либо полностью, либо с приближением. Выборка для оценок с гарантиями также возможна. Опираясь на [2], Gomes et al. [4] показали, что, используя выборку с модифицированной рандомизированной стратегией, можно получить доказуемые нижние границы общего количества моделей с высокими вероятностными гарантиями правильности.

Существует также работа, основанная на распространении убеждений (БП). Смотри Kroc et al. [5] и BPCount они вводят. В той же статье авторы приводят второй метод, называемый MiniCount, для обеспечения верхних границ для количества моделей. Существует также статистическая структура, которая позволяет вычислять верхние границы при определенных статистических допущениях.

Алгоритмы для # 2-SAT и # 3-SAT

О(1,3247N)О(1,6894N)О(1,6423N)

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


[1] Вильгельм Дальеф, Питер Йонссон и Магнус Вальстрём. Подсчет удовлетворяющих заданий в 2-SAT и 3-SAT. В материалах 8-й ежегодной международной вычислительной и комбинаторной конференции (COCOON-2002), 535-543, 2002.

[2] В. Вэй и Б. Сельман. Новый подход к подсчету моделей. В материалах SAT05: 8-я Международная конференция по теории и применениям тестирования удовлетворенности, том 3569 лекций по информатике, 324-339, 2005.

[3] Р. Гогейт и Р. Дехтер. Приблизительный подсчет путем выборки из пространства поиска без возврата. В материалах AAAI-07: 22-я Национальная конференция по искусственному интеллекту, 198–203, Ванкувер, 2007.

[4] CP Gomes, J. Hoffmann, A. Sabharwal и B. Selman. От выборки до подсчета моделей. В материалах IJCAI-07: 20-я Международная объединенная конференция по искусственному интеллекту, 2293–2299, 2007.

[5] Л. Крок, А. Сабхарвал и Б. Сельман. Использование распространения убеждений, поиска по задним ходам и статистики для подсчета моделей. В CPAIOR-08: 5-я Международная конференция по интеграции методов ИИ и ИЛИ в программирование с ограничениями, том 5015 «Лекционных заметок по информатике», 127–141, 2008.

[6] К. Куцков. Новая верхняя граница для задачи # 3-SAT. Письма обработки информации 105 (1), 1-5, 2007.

Юхо
источник
8

В дополнение к работам, перечисленным Юхо, вот некоторые другие, которые описывают работу по этой теме, особенно по приближению числа решений:

DW
источник