Чи існує іноді ефективний алгоритм вирішення #SAT?


24

Нехай - булева формула, що складається із звичайних операторів AND, OR або NOT, а також деяких змінних. Я хотів би, щоб підрахувати число задовольняють призначень для . Тобто, я хочу знайти кількість різних присвоєнь значень істини змінним для яких приймає справжнє значення. Наприклад, формула має три задовольняючі завдання; має чотири. Це проблема #SAT .B B B a b ( a b ) ( c ¬ b )BBBBab(ab)(c¬b)

Очевидно, що ефективне рішення цієї проблеми передбачає ефективне рішення SAT, що малоймовірно, і насправді ця проблема є # P-повною, і тому цілком може бути важче, ніж SAT. Тому я не чекаю гарантовано ефективного рішення.

Але загальновідомо, що існує досить мало дійсно складних випадків самого SAT. (Див., Наприклад, " Cheeseman 1991", "Де справді важкі проблеми" . Методи вирішення, хоча експоненціальні в гіршому випадку, на практиці ще ефективніші.

Моє запитання:

Чи відомі якісь алгоритми, які можуть швидко підрахувати кількість задовольняючих задань типової булевої формули, навіть якщо такі алгоритми потребують експоненціального часу в загальному випадку? Чи є щось помітно краще, ніж перераховувати кожне можливе завдання?


1
Я намагався додати тег для # p-повноти, але програмному забезпеченню Stack Exchange не подобається знак #.
Марк Домінус

Я б з обережністю стверджував, що "є порівняно небагато дійсно складних випадків самого SAT". Я вважаю, що документ, на який ви посилаєтесь, насправді говорить про випадковий -SAT. Крім того, явище фазового переходу стосується лише випадкових випадків. Є багато дійсно жорстких ручних, промислових тощо прикладів SAT. k
Juho

Спасибі. Чи вважаєте ви, що це робить моє питання менш зрозумілим? Ви розумієте, про що я прошу?
Марк Домінус

Мені це зрозуміло. Важливо лише пам’ятати, які екземпляри демонструють фазовий перехід :)
Juho

Відповіді:


21

Підрахунок у загальному випадку

Проблема, яка вас цікавить, відома як #SAT або підрахунок моделі. У певному сенсі це класична проблема # P-завершення. Підрахунок моделі важкий, навіть для SAT! Не дивно, що точні методи можуть обробляти лише випадки з сотнями змінних. Приблизні методи існують і вони можуть обробляти екземпляри з приблизно 1000 змінними.2

Точні методи підрахунку часто засновані на вичерпному пошуку в стилі DPLL або на певному зібранні знань. Орієнтовні методи зазвичай класифікуються як методи, що дають швидкі оцінки без будь-яких гарантій та методи, що забезпечують нижню або верхню межу гарантією правильності. Існують також інші методи, які можуть не відповідати категоріям, наприклад, виявлення на задньому плані або методи, які наполягають на певних структурних властивостях, щоб утримати формули (або їх графік обмежень).

Там є практичні втілення. Деякі точні лічильники моделей - CDP, Relsat, Cachet, sharSAT і c2d. Основними методами, якими користуються точні розв'язувачі, є часткові підрахунки, аналіз компонентів (графіку обмеження, що лежить в основі), формулювання та кешування компонентів та розумне міркування на кожному вузлі. Інший метод, заснований на компіляції знань, перетворює вхідну формулу CNF в іншу логічну форму. З цієї форми можна легко вивести кількість моделей (поліноміальний час у розмірі щойно створеної формули). Наприклад, можна перетворити формулу у двійкову діаграму рішення (BDD). Тоді можна було б перейти BDD від листа "1" назад до кореня. Або для іншого прикладу, c2d використовує компілятор, який перетворює формули CNF у детерміновану нормальну форму негативного розкладу (d-DNNF).

Якщо ваші екземпляри збільшуються або ви не переймаєтесь точністю, існують і приблизні методи. Орієнтовними методами ми дбаємо і враховуємо якість оцінки та впевненість у правильності, пов’язані з оцінкою, повідомленою нашим алгоритмом. Один із підходів Вей та Селмана [2] використовує вибірку MCMC для обчислення наближення справжнього підрахунку моделі для вхідної формули. Метод заснований на тому, що якщо можна вибирати (майже) рівномірно з набору рішення формули , то можна обчислити хорошу оцінку кількості рішень .ϕϕϕ

Гогейт і Дехтер [3] використовують техніку підрахунку моделі, відому як SampleMinisat. Він заснований на вибірці з простого пошуку простору булевої формули. Методика ґрунтується на ідеї важливості повторного відбору проб, використовуючи SAT-рішення на основі DPLL, щоб побудувати вільний простір пошуку. Це може бути зроблено повністю або до наближення. Вибірка для оцінок з гарантіями також можлива. Спираючись на [2], Gomes та ін. [4] показало, що за допомогою вибірки з модифікованою рандомізованою стратегією можна отримати доказові нижчі межі загального підрахунку моделі з високими імовірнісними гарантіями правильності.

Є також робота, яка спирається на поширення віри (ВР). Див. Kroc та ін. [5] та BPCount, який вони запроваджують. У цьому ж документі автори дають другий метод під назвою MiniCount, щоб забезпечити верхні межі для кількості моделей. Існує також статистична основа, яка дозволяє обчислювати верхні межі під певними статистичними припущеннями.

Алгоритми для №2-САТ і №3-САТ

Якщо ви обмежите свою увагу на # 2-SAT або # 3-SAT, для цих проблем існують алгоритми, які працюють в і [1]. Існують невеликі вдосконалення для цих алгоритмів. Наприклад, Куцков [6] покращився на верхній межі [1] для # 3-SAT за допомогою алгоритму, який працює в часі .O ( 1.6894 n ) O ( 1.6423 n )O(1.3247n)O(1.6894n)O(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: П'ята міжнародна конференція з інтеграції методів інтелектуального і сповіщення в галузі обмеженого програмування, том 5015 конспектів лекцій з інформатики, 127–141, 2008.

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


8

Окрім статей, перелічених Юхо, ось деякі інші, що описують роботу над цією темою, особливо щодо наближення кількості рішень:

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