Пусть - булева формула, состоящая из обычных операторов AND, OR, NOT и некоторых переменных. Я хотел бы, чтобы подсчитать число удовлетворяющих назначений для B . То есть я хочу найти количество различных назначений значений истинности для переменных для которых принимает истинное значение. Например, формула имеет три удовлетворяющих назначения; имеет четыре. Это проблема #SAT .
Очевидно, что эффективное решение этой проблемы будет означать эффективное решение SAT, что маловероятно, и на самом деле эта проблема является # P-полной, и поэтому вполне может быть строго сложнее, чем SAT. Поэтому я не ожидаю гарантированного эффективного решения.
Но общеизвестно, что действительно мало действительно сложных примеров самого SAT. (См., Например, Cheeseman 1991, «Там, где действительно сложные проблемы» .) Обычный обрезанный поиск, хотя в худшем случае экспоненциальный, может эффективно разрешить многие случаи; методы разрешения, хотя в худшем случае экспоненциальные, на практике еще более эффективны.
Мой вопрос:
Известны ли какие-либо алгоритмы, которые могут быстро подсчитать количество удовлетворяющих присвоений типичной логической формулы, даже если такие алгоритмы требуют экспоненциального времени в общем случае? Есть ли что-нибудь заметно лучше, чем перечислять все возможные задания?
источник
Ответы:
Подсчет в общем случае
Интересующая вас проблема известна как #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] Вильгельм Дальеф, Питер Йонссон и Магнус Вальстрём. Подсчет удовлетворяющих заданий в 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.
источник
В дополнение к работам, перечисленным Юхо, вот некоторые другие, которые описывают работу по этой теме, особенно по приближению числа решений:
Подсчет моделей . Карла П. Гомес, Ашиш Сабхарвал, Справочник по удовлетворенности Барт Селман, IOS Press. Редакторы: Армин Биере, Марин Хеуле, Ханс ван Маарен и Тоби Уолш. Глава 20, стр. 633-654, 2009.
Почти равномерная выборка комбинаторных пространств с использованием ограничений XOR . Карла П. Гомес, Ашиш Сабхарвал, Барт Сельман. NIPS-06. 20-я ежегодная конференция по нейронным системам обработки информации, стр. 481-488, Ванкувер, Британская Колумбия, Канада, декабрь 2006 г.
Короткие XOR для подсчета моделей: от теории к практике . Карла П. Гомес, Йорг Хоффманн, Ашиш Сабхарвал, Барт Сельман SAT-07. 10-я Международная конференция по теории и применениям тестирования удовлетворенности, LNCS том 4501, стр. 100-106, Лиссабон, Португалия, май 2007 г.
Использование распространения убеждений, поиска по задним ходам и статистики для подсчета моделей . Лукас Крок, Ашиш Сабхарвал, Барт Сельман ANOR-2011. Анналы исследования операций, том 184, № 1, с. 209-231, 2011.
Эвристика для быстрого точного подсчета моделей . Тян Санг, Пол Бим и Генри Каутц. Теория и приложения тестирования удовлетворенности (SAT 2005), стр. 226-240.
источник