Книга рецептів для кодування SAT?


17

Розв'язувачі SAT стають все більш ефективними у вирішенні великих примірників і використовуються як допоміжні в різних контекстах. Кожен раз, коли хтось хоче використовувати їх для вирішення проблеми в певній галузі, він / вона мусить придумати спеціальне кодування, яке не тільки має правильний набір рішень, але і ставить обмеження (навіть зайві) у форму що допомагає евристиці вирішувачів швидше знаходити рішення.

Багато таких кодувань, як мені здається, були дуже поширеними, наприклад: твердження, що кінцевий набір вузлів пов'язаний як дерево, або як DAG, або список сортується ...

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


1. Це питання виглядає дуже корисним, але також потенційно за кордоном. Я думаю, що це може бути кращим питанням, якщо зосередити його на одному домені (так, це може включати кілька запитань, по одному на домен, - але обов'язково проведіть деякі дослідження, перш ніж запитати і показати нам, що ви зробили).
DW

2. Також які дослідження ви провели? Ви подивилися на передні частини SAT, такі як STP, Alloy та Minion? Ви подивилися на cs.stackexchange.com/q/12087/755 , cs.stackexchange.com/q/13188/755 , cs.stackexchange.com/a/6522/755 , cs.stackexchange.com/a/12153/ 755 ? на питання позначений сат-решателей або здійсненність ?
DW

Так, питання може бути трохи широким. @DW дякую за посилання, деякі з них мають безпосереднє значення. Я мав би зазначити, що я не зацікавлений у вирішенні конкретної проблеми, а також у загальних методах для більш ефективного кодування; вираз "кращі практики", який я використав, ймовірно, вводить в оману, я відредагую. Мене цікавить книга рецептів =)
Bordaigorl

Щодо домену, я б сказав (гіпер) теорія графів, але це, мабуть, все ще дуже широко ...
Bordaigorl

Дивіться також пов'язане питання cs.stackexchange.com/q/12087
Андраш Саламон

Відповіді:


9

Кілька років тому я прочитав опитувальний документ, який видається актуальним, " Успішні методи кодування SAT " Магнуса Бьорка.

Анотація:

Ця стаття визначає добрі практики кодування SAT шляхом аналізу інтерв'ю з низкою відомих експертів SAT. Мета полягає як у визначенні довіри до різних стратегій кодування, аналізуючи, чи існує консенсус серед експертів чи ні, а також виведення прихованих знань користувачам SAT.

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

У статті описано ряд стратегій, які є корисними в різних ситуаціях, такі як різні способи представлення чисел та способи використання приросту.


4

Завжди корисно спершу ознайомитись з Посібником про задоволення [1] (я думаю, це не у вільному доступі, вибачте). Тут глава 2 має назву "Кодування CNF". Принаймні, книга містить літературні довідки про найсучасніші моменти часу написання, і ви можете розширити пошук через них.

Крім того, тут і ось два останні слайди про попередню обробку SAT. Слайди дають стислий огляд методів попередньої обробки, а також подальші посилання. Ідея полягає в тому, що замість того, щоб намагатися «вручну» моделювати проблему ефективно, ви просто моделюєте її найпростішим способом, натискаєте «go», а програмне забезпечення дає вам ефективне кодування.


[1] Бієр, Армін, Марійн Хейле та Ганс ван Маарен, ред. Довідник із задоволеності. Вип. 185. IOS Press, 2009.


3

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

  • Теорії модуля задоволеності : закуска / Леонардо де Моура та Микола Бьорнер

    Модулі теорій задоволення (SMT) - це перевірка відповідності логічних формул для однієї або декількох теорій. Проблема полягає в поєднанні деяких найбільш фундаментальних областей інформатики. Він поєднує проблему булевої задоволеності з такими доменами, як, наприклад, ті, що вивчаються в результаті опуклої оптимізації та термінового маніпулювання символічними системами. Він також звертається до найбільш плідних проблем символічної логіки минулого століття: проблеми рішення, повноти та незавершеності логічних теорій і, нарешті, теорії складності. Проблема модульного поєднання алгоритмів спеціального призначення для кожного домену є настільки ж глибокою та інтригуючою, як пошук нових алгоритмів, які особливо добре працюють у контексті комбінації. SMT також грає дуже корисну роль у розробці програмного забезпечення. Сучасне програмне забезпечення, апаратний аналіз та інструменти на основі моделей стають все більш складними та багатогранними програмними системами. Однак в основі їх незмінно є складовою, що використовує символічну логіку для опису станів і перетворень між ними. Добре налаштований SMT-вирішувач, який враховує найсучасніші прориви, зазвичай масштабує на порядок більше, ніж спеціальні спеціальні рішення.


Це дуже вдалий момент. Але навіть коли ви використовуєте SMT-розв'язувач, є пошук на основі суто SAT, який може отримати користь від успішних "рецептів" ...
Bordaigorl

не зовсім точно сказати є "пошуком на основі суто SAT", тому що (як було сказано / як я розумію) він використовує в своїй евристиці спеціальну відому / побудовану структуру створених екземплярів, яку не вирішив би "ванільний" "визнати". Іншими словами, це (тобто комбінація ) не "приводиться в дію / розділяється" на складові частини (тобто кодер плюс розв'язувач) або просто інша стандартизована система кодування.
vzn

Я бачу. Я прочитаю більше про це спасибі!
Bordaigorl

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