SAT, CP, SMT, (значна частина) ASP мають справу з одним і тим же набором комбінаторної оптимізації. Однак вони стикаються з цими проблемами з різних сторін і з різними наборами інструментів. Ці відмінності значною мірою полягають у тому, як кожен підхід структурує інформацію про дослідження простору пошуку. Моя робоча аналогія полягає в тому, що SAT є машинним кодом, а інші - мовами вищого рівня.
х1∨ x2¯¯¯¯¯∨ x3{ ( х1, 0 ) , ( х2, 1 ) , ( х3, 0 ) }х1х3х2х1∨ x2¯¯¯¯¯∨ x3∨ x4х1∨ x2¯¯¯¯¯∨ x3∨ x4¯¯¯¯¯∨ x5
Наближення структури застережень зберігається, щоб звузити набір рішень і допомогти визначити, чи порожній цей набір. Під час пошуку деякі часткові призначення можуть виявитися такими, що не містяться в жодному рішенні (навіть якщо вони індивідуально задовольняють кожному з обмежень в екземплярі). Вони відомі як nogoods , термін, введений ("Містер GNU") Столлманом і Суссманомx ≤ 5х = 5. Отже, не існує єдиної загальної структури пропозицій, а такої, що пов'язана з кожним вибором представлення, залежно від того, що представляють синглони (літерали) структури пропозицій.
Програмування обмежень (CP) традиційно було дисципліною AI, з акцентом на проблеми планування, розкладу часу та комбінаторних проблем, і тому відіграє центральну роль для змінних, які можуть приймати більше двох значень (але, як правило, лише безліч). CP підкреслив ефективний пошук і, мотивований традиційними додатками, відводив центральну роль all-different
обмеженню (інжективність), але також розробив ефективні пропагатори для багатьох інших видів обмежень. Офіційні визначення КП існують приблизно з часу принаймні у 1974 р. " Мережі обмежень" у Монтанарі, попередники повертаються ще раніше. Ця вагомість історії, можливо, сприяла відставанню від КП у порівнянні з іншими підходами в роботі в останньому десятилітті. CP класично підтримує наближення доповнення структури пункту через набір активних доменів для змінних. Метою є усунення значень з активних доменів, вивчення структури пропозицій, намагаючись присвоїти значенню-кандидату змінні та при необхідності зворотного відстеження.
Модулі теорій задоволення (SMT) вийшли із спільноти верифікації. Кожна теорія вирішувача SMT утворює неявне представлення потенційно нескінченно багатьох пропозицій SAT. Теорії, що використовуються з SMT, та обмеження, що застосовуються в CP, відображають їх різні історичні сфери застосування. Більшість теорій, які SMT вважає, стосуються цілочислових індексованих масивів, реальних закритих полів, лінійних порядків тощо; вони виникають при статичному аналізі програм (за допомогою комп'ютерної перевірки) або при формалізації математичних доказів (в автоматизованих міркуваннях). На відміну від цього, у графіку та плануванні обмеження ін'єктивності є центральним, і хоча стандартна мова SMTLIB мала обмеження щодо ін'єктивності з моменту створення в 2003 році (черезdistinct
символ ), до 2010 року SMT вирішувачі реалізовані лишеdistinct
за допомогою наївного алгоритму. На цьому етапі відповідна техніка зі стандартного розповсюджувача CP all-different
була перенесена поперек, щоб мати великий ефект при застосуванні до великих списків змінних; див . Рішення обмеження Alldifferent у SMT від Banković та Marić, SMT 2010. Більше того, більшість розповсюджувачів CP розроблені для проблем з кінцевими доменами, тоді як стандартні теорії SMT стосуються нескінченних доменів (цілих чисел та нещодавніх повторних дій) поза коробкою. SMT використовує екземпляр SAT як апроксимацію структури зауважень, вилучаючи з теорій невідповідні пропозиції із теорій. Приємний огляд - теорії
модуля задоволеності : вступ та застосування Де Мору та Бьорнера, дой: 10.1145 / 1995376.1995394.
Програмування набору відповідей (ASP) вийшло з логічного програмування. Завдяки зосередженості на вирішенні загальної проблеми пошуку стабільної моделі, а також тому, що вона дозволяє універсальне, а також екзистенціальне кількісне визначення, ASP протягом багатьох років не конкурував із CP або SMT.
Формально SAT - це CSP для булевих доменів, але у центрі уваги SAT на вивченні клаузуля, хорошій евристиці для виявлення конфліктів та швидких способах зворотного відстеження сильно відрізняються від традиційного фокусу CSP на пропагаторах, встановлення послідовності та евристики для впорядкованих змін. Зазвичай SAT є надзвичайно ефективним, але для багатьох проблем потрібні величезні зусилля, щоб спочатку висловити проблему як екземпляр SAT. Використання парадигми вищого рівня, як CP, може дозволити більш природне вираження проблеми, і тоді або екземпляр CP може бути переведений в SAT вручну, або інструмент може подбати про переклад. Приємний огляд гайок і болтів SAT представлений на сучасних рішеннях про відповідність клаузуванню Pipatsrisawat та Darwiche, doi: 10.1007 / s10817-009-9156-3 .
Тепер перейдемо від загальних до сучасних особливостей.
За останнє десятиліття деякі люди в КП почали зосереджуватись на формуванні ледачих клауз (LCG). Це, по суті, спосіб поєднати пропагатори CP разом, використовуючи більш гнучкі SMT-подібні методи, а не досить жорсткі абстракції активних доменів. Це корисно, оскільки існує багаторічна історія опублікованих розповсюджувачів CP для ефективного представлення та вирішення багатьох видів проблем. (Зрозуміло, подібний ефект був би досягнутий узгодженими зусиллями щодо впровадження нових теорій для вирішення SMT.) LCG має продуктивність, яка часто є конкурентоспроможною для SMT, і в деяких проблемах вона може бути вищою. Короткий огляд наведено в документі Стейкея CPAIOR 2010 Lazy Clause Generation: Поєднання потужності SAT і CP (і MIP?) Для вирішення , doi: 10.1007 / 978-3-642-13520-0_3. Варто також прочитати документ про позицію Garcia de la Banda, Stuckey, Van Hentenryck і Wallace, який малює бачення майбутнього оптимізаційних технологій , орієнтованих на CP , doi: 10.1007 / s10601-013-9149-z .
Наскільки я можу сказати, здається, що значна частина останніх досліджень SMT перейшла до застосувань у формальних методах та формалізованій математиці. Прикладом є реконструкція доказів, знайдених вирішувачами SMT всередині систем доказів, таких як Isabelle / HOL, шляхом побудови тактики Isabelle / HOL для відображення правил виводу у слідах підтвердження SMT; див. швидку реконструкцію доказів у стилі LCF для Z3 від Böhmer and Weber на ITP 2010.
Провідні рішення ASP протягом останніх кількох років були розроблені, щоб стати конкурентоспроможними для вирішувачів CP, SMT та SAT. Я лише розпливчасто знайомий з деталями реалізації, які дозволили вирішити такі проблеми, як clasp
конкурентоспроможні, тому не можу насправді порівняти їх із SMT та CP, але застібка явно рекламує свою спрямованість на навчання нехорошим.
Перерізання традиційних кордонів між цими формалізмами є перекладом з більш абстрактних представлень проблем на більш низькорівневі ефективні формалізми. Деякі найпопулярніші розв'язувачі ASP та CP тепер явно переводять свій вхід у екземпляр SAT, який потім вирішується за допомогою позаштатного SAT-рішення. У CP помічник моделювання обмежень Savile Row використовує методи проектування компілятора для перекладу проблем, виражених на мові середнього рівня Essence ', у формалізм нижчого рівня, придатний для введення до вирішувачів CP, таких як Minion або MiniZinc . Savile Row спочатку працював із представленням CP як формалізм низького рівня, але ввів SAT як ціль у версії 1.6.2. Більше того, ще більш високий рівень мови Сутністьтепер може бути автоматично переведений в Essence ' інструментом Conjure . У той же час, низькорівневі розв'язувачі, що містять лише SAT, як Lingeling, продовжують удосконалюватися щороку, останнім часом шляхом чергування фаз навчання та переробки статей; дивіться короткий огляд Що є гарячим на змаганнях SAT та ASP від Heule та Schaub в AAAI 2015.
Тому аналогія з історією мов програмування здається доречною. SAT стає своєрідним «машинним кодом», орієнтованим на низькорівневу модель дослідження пунктів у структурі пропозицій. Абстрактні парадигми стають все більше схожими на комп'ютерні мови вищого рівня, з власними чіткими методологіями та програмами, які вони добре вирішують. Нарешті, все більш щільна колекція зв’язків між цими різними шарами починає нагадувати екосистему оптимізації компілятора.