Проблема задоволення обмеженнями (CSP) проти теорії модуля задоволеності (SMT); з кодом на програмування обмежень


30

Хтось наважиться спробувати уточнити, яке відношення до цих галузей дослідження чи, можливо, навіть дати більш конкретну відповідь на рівні проблем? Як і те, що включає, що передбачає деякі широко прийняті формулювання. Якщо я це зрозумів правильно, коли ви переходите від SAT до SMT, ви в основному входите в поле CSP; навпаки, якщо ви обмежите CSP булевими, ви в основному говорите про SAT і, можливо, про декілька пов'язаних з цим проблем, таких як #SAT. Я думаю, що це дуже зрозуміло (наприклад, див. Розділ Колаїта та Варді "Логічний підхід до задоволення обмежень" у Теорії скінченних моделей та її застосуванняхвід Grädel та ін.), але що мені менш зрозуміле - це коли обмеження "є теорією теорії", а коли ні? Чи означає, що ЗПТ завжди передбачає, що теорія використовує лише обмеження рівності, а нерівності завжди знаходяться в більш широкому полі ССП? Наскільки я можу сказати, часто можна вводити слабкі змінні , тому відмінність [якщо вона існує] є менш ніж очевидною.

Порівняно недавній «Посібник із задоволення» (IOP Press 2009) збирає проблеми SMT та CSP під його широким парасолькою «задоволеності», але, з огляду на те, як він структурований (глави, написані різними авторами), насправді не допомагає мені з’ясувати це .

Я би сподівався, що термінологія стає менш заплутаною, коли ви говорите про програмування обмежень , яка (за аналогією з терміном "математичне програмування"), я сподіваюся, передбачає мінімізацію / максимізацію деякої об'єктивної функції. Стаття у Вікіпедії про програмування обмежень на жаль настільки розпливчаста, що я не можу реально сказати, чи все ж таке обрамлення трапляється. Те, що я можу зібрати з програм програмування обмежень Фрухвірта та Абденнадхера (стор. 56), - це те, що «вирішувач обмежень» зазвичай забезпечує більше, ніж просто перевірку на відповідність, спрощення тощо є важливим на практиці.

Хоча це навряд чи актуальне дослідницьке питання CS-теорії, я не чекаю хороших відповідей на це на сайті студентів CS.SE з огляду на те, що я бачив на https://cs.stackexchange.com/questions/14946/distinguish- рішення-процедура-vs-smt-solver-vs-теорема-prover-vs-constraint-sol (яка містить багато слів, але не те, що я вважав би справжньою відповіддю, на жаль).


додати до цього ASP. SMT / ASP щодо останніх подій. попередньо окремі поля змішуються. див., наприклад, гібридні засоби автоматизованого обґрунтування: від чорної скриньки до прозорої інтеграції / Бальдуккіні, Ліллер, як грубе нещодавнє опитування.
vzn

Відповіді:


47

SAT, CP, SMT, (значна частина) ASP мають справу з одним і тим же набором комбінаторної оптимізації. Однак вони стикаються з цими проблемами з різних сторін і з різними наборами інструментів. Ці відмінності значною мірою полягають у тому, як кожен підхід структурує інформацію про дослідження простору пошуку. Моя робоча аналогія полягає в тому, що SAT є машинним кодом, а інші - мовами вищого рівня.

х1х2¯х3{(х1,0),(х2,1),(х3,0)}х1х3х2х1х2¯х3х4х1х2¯х3х4¯х5

Наближення структури застережень зберігається, щоб звузити набір рішень і допомогти визначити, чи порожній цей набір. Під час пошуку деякі часткові призначення можуть виявитися такими, що не містяться в жодному рішенні (навіть якщо вони індивідуально задовольняють кожному з обмежень в екземплярі). Вони відомі як nogoods , термін, введений ("Містер GNU") Столлманом і Суссманомх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 стає своєрідним «машинним кодом», орієнтованим на низькорівневу модель дослідження пунктів у структурі пропозицій. Абстрактні парадигми стають все більше схожими на комп'ютерні мови вищого рівня, з власними чіткими методологіями та програмами, які вони добре вирішують. Нарешті, все більш щільна колекція зв’язків між цими різними шарами починає нагадувати екосистему оптимізації компілятора.


Ткс для цієї дуже корисної відповіді.
Ксав'є Лабузе

2
Примітка: у спільноті FOCS / STOC використовується більш вузьке визначення CSP. Ці CSP мають форму CSP (L), "всі екземпляри CSP, які можна виразити за допомогою фіксованого набору L відносин обмеження". По-різному обмеження не вписуються в цю рамку, а також проблеми, що мають деревоподібну структуру.
Андраш Саламон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.