Відповіді:
Пошук роздільної здатності (просто застосування правила роздільної здатності з хорошою евристикою) - ще одна можлива стратегія для вирішення проблем SAT. Теоретично це експоненціально потужніше (тобто існують проблеми, для яких він має експоненціальні короткі докази), ніж DPLL (що дозволяє просто вирішити дерево, хоча ви можете доповнити його з недобрим навчанням, щоб збільшити його потужність - чи це робить його настільки потужним, як загальна роздільна здатність досі відкрити, наскільки я знаю), але я не знаю реальної реалізації, яка працює краще.
Якщо ви не обмежуєте себе в завершенні пошуку, то WalkSat - це локальний вирішувач пошуку, який у багатьох випадках можна використовувати для пошуку задоволених рішень та перевершує пошук на основі DPLL. Не можна використовувати його, щоб довести незадовільність, якщо тільки не кешувати всі завдання, які не виконали, що означало б експоненціальні вимоги до пам'яті.
Редагувати: забути додати - Різання площин також можна використовувати (зменшивши SAT до цілої програми). Зокрема, скорочень Гоморі достатньо для вирішення будь-якої цілої програми для оптимальності. Знову в гіршому випадку може знадобитися експоненціальна кількість. Я думаю, що в книзі «Обчислювальна складність Arora & Barak» є ще кілька прикладів систем доказів, які можна теоретично використати для чогось подібного до рішення SAT. Знову ж таки, я насправді не бачив швидкої реалізації нічого, крім методів, заснованих на DPLL або локальних пошуках.
Поширення опитування - ще один алгоритм, який успішно застосовується для деяких видів проблем SAT, зокрема випадкових випадків SAT. Як і WalkSAT, його не можна використовувати для доказу незадовільності, але він заснований на дуже різних ідеях (алгоритмах передачі повідомлень) від WalkSAT.
Є розв'язки SAT на основі локального пошуку. Дивіться, наприклад, цей документ для експозиції.
Ви також можете сказати, що всі розв'язувачі CSP також є розв'язниками SAT. Наскільки я знаю два методи, використовувані в CSP:
Monte Carlo Tree Search (MCTS) останнім часом досяг вражаючих результатів у таких іграх, як Go. Приблизною базовою ідеєю є переплетення випадкового моделювання з пошуком дерева. Він легкий і простий у здійсненні, сторінка центру дослідження, з якою я пов’язана, містить також багато прикладів, робіт та код.
Previti et al. [1] провів попереднє розслідування MCTS, застосованого до SAT. Вони називають алгоритм пошуку на основі MCTS UCTSAT ("якщо ви хочете, верхні межі довіри, застосовані до дерев SAT"). Вони порівнювали продуктивність DPLL та UCTSAT на екземплярах із сховища SATLIB, з ціллю перевірити, чи UCTSAT створить значно менші дерева пошуку, ніж DPLL.
Для рівномірних випадкових випадків фарбування 3-SAT та плоских графіків різного розміру не було суттєвих відмінностей. Однак UCTSAT виступив краще для реальних випадків. Середні розміри дерев (у перерахунку на кількість вузлів) для чотирьох різних випадків аналізу несправностей ланцюга SSA були в декількох тисячах для DPLL, тоді як для UCTSAT завжди менше 200.
DPLL не вказує строго впорядкування змінних відвідувань, і існує багато цікавих досліджень, що розглядають оптимальні стратегії впорядкування змінних впорядковань. частина цього включена до логіки вибору змінної в алгоритмах SAT. в певному сенсі деякі з цих досліджень є попередніми, оскільки вони показують, що різні мінливі порядки атаки призводять до різної послідовної обмеженості (яка сильно корелює з твердістю екземпляра), і розробка найбільш ефективної евристики або стратегій для використання цього, очевидно, ключового розуміння, здається, на ранніх стадіях досліджень.