Підрахунок у загальному випадку
Проблема, яка вас цікавить, відома як #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.3247н)О ( 1.6894н)О ( 1,6423н)
Як і в характері проблеми, якщо ви хочете вирішити екземпляри на практиці, багато що залежить від розміру та структури ваших примірників. Чим більше ви знаєте, тим більш здібними ви у виборі правильного методу.
[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.