Об'єднання проти SAT-рішення


10

Я читав у Вікіпедії, що об’єднання - це процес вирішення проблеми задоволення.

У той же час я знаю, що такі розв'язувачі називаються "SAT solvers" або "SMT solvers". Отже, чи вони різні назви для однієї речі?

Якщо ви говорите, що вони різні, будь ласка, вкажіть на ваду мого звернення.


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

Відповіді:


12

Розв'язувачі SAT вирішують булеву задачу задоволеності . Це "проблема визначення того, чи можна змінні заданої булевої формули призначати таким чином, щоб змусити формулу оцінювати як ІСТИЧНУ".

Прикладом є пошук присвоєння значень істинності змінним таким, що ( a b c ) ( ¬ a ¬ b c ) ( a ¬ b ¬ c ) ( ¬ a b ¬ c ) вірно. Розв'язувач SAT може повернути такий розчин, як a = t r u e ,а,б,c(абc)(¬а¬бc)(а¬б¬c)(¬аб¬c)а=тrуе , c = t r u e .б=тrуеc=тrуе

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

Наприклад, задані введені змінні і y : i n t і f : i n t i n t , запитує, чи є наступним f ( x + 2 ) f ( y - 1 ) x = ( y - 4 ) задовольняється. Розв'язувач SMT відповів би так, з рішенням x = - 2 , yх:iнтy:intf:intintf(x+2)f(y1)x=(y4)x=2 , f ( 0 ) = 1 і f ( 1 ) = 3 .y=2f(0)=1f(1)=3

Об'єднання - це специфічна методика, яка займає два терміни і знаходить підміну, яка зробила б умови рівними. Наприклад, з урахуванням термінів та b o o k ( D. ~ Smith , y , 2010 ) об'єднання призведе до заміни { x D. Smith , y "Fishing" } . Уніфікація, ймовірно, використовується всередині SMT-розв'язувачів.book(x,"Fishing",2010)book(D.~Smith,y,2010){xD. Smith,y"Fishing"}


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

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