Семантика стійких моделей

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Поняття стійко́ї моде́лі (англ. stable model), або набору відповідей, застосовується для визначення декларативних семантик для логічних програм із запереченням як відмовою. Це один із декількох стандартних підходів до значення заперечення в логічному програмуванні, поряд із повнотою програми та добре обґрунтованими семантиками[en]. Семантики стійких моделей є основою програмування наборами відповідей.

Обґрунтування[ред. | ред. код]

Дослідження декларативних семантик заперечення в логічному програмуванні спонукав той факт, що поведінка ВЛВЗВ-резолюції, — узагальнення ВЛВ-резолюції, застосовуваного Прологом, — за наявності заперечень у тілах правил не повністю відповідає таблицям істинності, знайомим із класичної логіки висловлень. Розгляньмо, наприклад, програму

За цієї програми запит досягне успіху, оскільки програма включає як факт; запит зазнає невдачі, оскільки він не зустрічається в голові жодного з правил. Запит також зазнає невдачі, оскільки єдине правило з у голові містить підціль у своєму тілі; як ми вже бачили, ця підціль зазнає невдачі. Нарешті, запит досягає успіху, оскільки досягає успіху кожна з його підцілей та . (Остання досягає успіху, оскільки відповідна ствердна ціль зазнає невдачі.) У підсумку, поведінку ВЛВЗВ-резолюції даної програми може бути представлено таким приписуванням істинності:

T F F T.

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

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

T T T F.

Таким чином, одна з моделей даної програми є особливою в тому сенсі, що вона правильно представляє поведінку ВЛВЗВ-резолюції. Якими є математичні властивості такої моделі, що роблять її особливою? Відповідь на це питання дає визначення стійкої моделі.

Зв'язок із немонотонною логікою[ред. | ред. код]

Значення заперечення в логічних програмах тісно пов'язане з двома теоріями немонотонного міркування — автоепістемною логікою[en] та логікою замовчувань[en]. Відкриття цих зв'язків стало ключовим кроком до винаходження семантик стійких моделей.

Синтаксис автоепістемної логіки використовує модальний оператор[en], який дозволяє розрізняти, що є істинним, а чому вірять. Майкл Гельфонд[en] 1987 року запропонував[1] читати в тілі правила як « немає віри», і розуміти правило із запереченням як відповідну формулу автоепістемної логіки. Семантика стійких моделей в її найпростішому вигляді може розглядатися як переформулювання цієї ідеї, що уникає явних посилань на автоепістемну логіку.

В логіці замовчувань замовчування подібне до правила висновування, за виключенням того, що воно, крім своїх передумов та висновку, включає перелік формул, що називаються підтвердженнями (англ. justifications). Замовчування може використовуватися для виведення його висновків за припущення, що його підтвердження узгоджуються з поточними переконаннями. Ніколь Бідуа та Крістін Фруадво 1987 року запропонували[2] розглядати заперечні атоми[en] в тілах правил як підтвердження. Наприклад, правило

можна розуміти як замовчування, що дозволяє нам виводити із за припущення, що є узгодженим. Семантика стійких моделей використовує таку ж ідею, але не посилається явно на логіку замовчувань.

Стійкі моделі[ред. | ред. код]

Наведене нижче визначення стійкої моделі[3] використовує дві умови. По-перше, приписування істинності ототожнюється з набором атомів[en], що набувають значення T. Наприклад, приписування істинності

T F F T.

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

По-друге, логічна програма зі змінними розглядається як скорочений запис набору всіх замкнених примірників її правил, тобто результату підставлення вільних від змінних термів[en] замість змінних до правил цієї програми всіма можливими способами. Наприклад, визначення парних (англ. even) чисел засобами логічного програмування

розглядається як результат заміни у цій програмі замкненими термами

всіма можливими способами. Результатом є нескінченна замкнена програма

Визначення[ред. | ред. код]

Нехай буде набором правил вигляду

де є замкненими атомами. Якщо не містить заперечення ( у кожному з правил програми), тоді, за визначенням, єдиною стійкою моделлю є його модель, яка є мінімальною відносно включення правил.[4] (Будь-яка програма без заперечення має рівно одну мінімальну модель.) Для розширення цього визначення на випадок програм із запереченням нам потрібне додаткове поняття збіднення (англ. reduct), визначене наступним чином.

Для будь-якого набору замкнених атомів збідненням (англ. reduct) відносно є набір правил без заперечення, отриманий з спершу виключенням кожного такого правила, в якому щонайменше один із атомів в його тілі

належить до , а потім виключенням частин з тіл усіх правил, що лишилися.

Кажуть, що є стійкою моделлю , якщо є стійкою моделлю збіднення відносно . (Оскільки збіднення не містить заперечення, його стійку модель вже було визначено.) Як підказує термін «стійка модель», кожна стійка модель є моделлю .

Приклад[ред. | ред. код]

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

Збідненням цієї програми відносно є

(Справді, оскільки , збіднення отримується з програми виключенням частини ) Стійкою моделлю збіднення є . (Справді, цей набір атомів задовольняє кожне правило збіднення, і не має власного включення із такою ж властивістю.) Таким чином, після обчислення стійкої моделі збіднення ми повернулися до того ж самого набору , з якого й починали. Отже, цей набір і є стійкою моделлю.

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

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

Програми без унікальної стійкої моделі[ред. | ред. код]

Програма з запереченням може мати багато стійких моделей, та не мати їх взагалі. Наприклад, програма

має дві стійкі моделі, та . Програма з одного правила

не має стійких моделей.

Якщо ми думаємо про семантику стійких моделей як про опис поведінки Прологу в присутності заперечення, то програми без унікальної стійкої моделі можуть розцінюватися як незадовільні: вони не забезпечують недвозначного визначення для надавання відповідей на запити в стилі Прологу. Наприклад, наведені вище дві програми як Прологові програми є нерозумними — ВЛВЗВ-резолюція на них не добігає кінця.

Але застосування стійких моделей в програмуванні наборами відповідей пропонує таким програмам іншу перспективу. В цій парадигмі програмування дана задача пошуку представляється такою логічною програмою, стійкі моделі якої відповідають розв'язкам. Тоді програми з багатьма стійкими моделями відповідають задачам з багатьма розв'язками, а програми без стійких моделей відповідають нерозв'язним задачам. Наприклад, задача про вісім ферзів має 92 розв'язки; щоби розв'язати її із застосуванням програмування наборами відповідей, ми кодуємо її логічною програмою з 92 стійкими моделями. З цієї точки зору логічні програми з рівно однією стійкою моделлю в програмуванні наборами відповідей є радше особливими, як многочлени з рівно одним коренем в алгебрі.

Властивості семантики стійких моделей[ред. | ред. код]

В цьому розділі, як і в визначенні стійкої моделі вище, під логічною програмою ми розуміємо набір правил вигляду

де є замкненими атомами.

Атоми голів (англ. head atoms): Якщо атом належить до стійкої моделі логічної програми , то є головою одного з правил .

Мінімальність (англ. minimality): Будь-яка стійка модель логічної програми є мінімальною серед моделей відносно включення до набору.

Антиланцюгова властивість (англ. the antichain property): Якщо та є стійкими моделями однієї й тієї ж логічної програми, то не є власним включенням . Іншими словами, набір стійких моделей програми є антиланцюгом.

NP-повнота: Перевірка того, чи має скінченна замкнена логічна програма стійку модель, є NP-повною.

Зв'язок з іншими теоріями заперечення як відмови[ред. | ред. код]

Повнота програми[ред. | ред. код]

Будь-яка стійка модель скінченної замкненої програми є моделлю не лише самої програми, а й її повної програми.[5] Обернене твердження, проте, не є вірним. Наприклад, повною програмою для програми з одного правила

є тавтологія . Модель цієї тавтології є стійкою моделлю , але інша її модель, , — ні. Франсуа Фаж 1994 року знайшов[6] синтаксичну умову для логічних програм, що усуває такі контрприклади, і гарантує стійкість кожної моделі повноти програми. Програми, які задовольняють цю умову, називаються цупкими (англ. tight).

Фанжен Лін та Ютін Жао 2004 року показали,[7] як робити повну програму нецупкої програми сильнішою, так що всі її нестійкі моделі буде усунено. Додаткові формули, які вони додають до повної програми, називаються цикловими формулами (англ. loop formulas).

Добре обґрунтована семантика[ред. | ред. код]

Добре обґрунтована модель[en] логічної програми поділяє всі замкнені атоми на три набори: істинні, хибні та невідомі. Якщо атом є істинним у добре обґрунтованій моделі програми , то він належить до кожної стійкої моделі . Зворотне, взагалі кажучи, не має місця. Наприклад, програма

має дві стійкі моделі, та . Навіть незважаючи на те, що належить до них обох, його значенням у добре обґрунтованій моделі є невідоме.

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

Сильне заперечення[ред. | ред. код]

Представлення неповної інформації[ред. | ред. код]

З точки зору представлення знань набір замкнених атомів може розглядатися як опис повного стану знань: про атоми, що належать до набору, відомо, що вони істинні, а про атоми, що не належать до набору, відомо, що вони хибні. Можливо неповний стан знання може бути описано із застосуванням несуперечливого, але можливо неповного набору літералів; якщо атом не належить до цього набору, і його заперечення також не належить до цього набору, то не відомо, чи є істинним.

В контексті логічного програмування ця ідея призводить до потреби розрізнювати два типи заперечення — заперечення як відмови, обговорюваного вище, та сильного заперечення (англ. strong negation), що позначається тут через .[прим. 1][8] Наступний приклад, який показує різницю між цими двома типами заперечення, належить Джонові Маккарті. Шкільний автобус може перетнути (англ. Cross) залізничну колію за умови, що не наближається потяг (англ. Train). Якщо ми не обов'язково знаємо, чи наближається потяг, то правило з використанням заперечення як відмови

не є адекватним представленням цієї ідеї: воно каже, що можна перетинати за відсутності інформації про потяг, що наближається. Слабше правило, яке використовує сильне заперечення у своєму тілі, є кращим:

Воно каже, що можна перетинати, якщо ми знаємо, що потяг не наближається.

Послідовні стійкі моделі[ред. | ред. код]

Щоби включити сильне заперечення до теорії стійких моделей, Гельфонд та Ліфшиць дозволили[8] кожному з виразів , та у правилі

бути або атомом, або атомом із префіксом у вигляді символу сильного заперечення. Замість стійких моделей це узагальнення використовує набори відповідей (англ. answer sets), які можуть включати як атоми, так і атоми з префіксом сильного заперечення.

Альтернативний підхід[9] розглядає сильне заперечення як частину атому, і не вимагає жодних змін у визначенні стійкої моделі. В цій теорії сильного заперечення ми розрізняємо атоми двох типів, ствердні (англ. positive) та заперечні (англ. negative), та припускаємо, що кожен заперечний атом є виразом вигляду , де є ствердним атомом. Набір атомів називається послідовним (англ. coherent), якщо він не містить «взаємодоповнювальних» пар атомів . Послідовні стійкі моделі програми є ідентичними її несуперечливим наборам відповідей у сенсі Гельфонда та Ліфшиця 1991 року.[8]

Наприклад, програма

має дві стійкі моделі, та . Перша модель є послідовною, а друга — ні, оскільки вона містить як атом , так і атом .

Припущення про замкненість світу[ред. | ред. код]

Відповідно до Гельфонда та Ліфшиця 1991 року,[8] припущення про замкненість світу[en] для предикату може бути виражено правилом

(відношення не виконується для кортежу , якщо немає свідчення, що воно виконується). Наприклад, стійка модель програми

складається із 2 ствердних атомів

та 14 заперечних атомів

тобто, сильних заперечень всіх інших ствердних атомів, утворених із .

Логічна програма із сильним запереченням може включати правила припущення замкненості світу для деяких її предикатів, і залишати інші предикати у сфері припущення про відкритість світу[en].

Програми з обмеженнями[ред. | ред. код]

Семантику стійких моделей було узагальнено на багато типів логічних програм, крім збірок обговорених вище «традиційних» правил — правил вигляду

де є атомами. Одне з простих розширень дозволяє програмам містити обмеження (англ. constraints) — правила з порожньою головою:

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

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

Далі, стійкі моделі довільних програм із запереченнями визначаються із застосуванням збіднень, утворених таким же самим чином, як і у випадку традиційних програм (див. визначення стійкої моделі вище). Набір атомів є стійкою моделлю програми з обмеженнями, якщо збіднення відносно має стійку модель, і ця стійка модель дорівнює .

Зазначені вище властивості семантики стійких моделей для традиційних програм мають місце також і в присутності обмежень.

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

Диз'юнктивні програми[ред. | ред. код]

У диз'юнктивному правилі (англ. disjunctive rule) голова може бути диз'юнкцією декількох атомів:

(крапка з комою розглядається як альтернативний запис диз'юнкції ). Традиційні правила відповідають , а обмеження — . Для розширення семантики стійких моделей на диз'юнктивні програми[8] ми спершу визначаємо, що за відсутності заперечення ( у кожному з правил) стійкими моделями програми є її мінімальні моделі. Визначення збіднення для диз'юнктивних програм залишається таким самим, як і раніше. Набір атомів є стійкою моделлю , якщо є стійкою моделлю збіднення відносно .

Наприклад, набір є стійкою моделлю диз'юнктивної програми

оскільки він є однією з двох мінімальних моделей збіднення

Наведена вище програма має ще одну стійку модель, .

Як і у випадку традиційних програм, кожен елемент будь-якої стійкої моделі диз'юнктивної програми є атомом голови , в тому сенсі, що він трапляється в голові одного з правил . Як і у традиційному випадку, стійкі моделі диз'юнктивної програми є мінімальними, та утворюють антиланцюг. Перевірка того, чи має диз'юнктивна програма стійку модель, є -повною.[10]

Стійкі моделі наборів предикатів[ред. | ред. код]

Правила, і навіть диз'юнктивні правила, мають доволі особливий синтаксичний вигляд у порівнянні з довільними предикатами. Кожне диз'юнктивне правило є по суті імплікацією, такою що її посилка (тіло правила) є кон'юнкцією літералів, а її наслідок (голова) є диз'юнкцією атомів. Девід Пірс 1997 року[11] та Паоло Ферраріс 2005 року[12] показали, як розширити визначення стійкої моделі на набори довільних предикатів. Це узагальнення має застосування в програмуванні наборами відповідей.

Пірсове формулювання виглядає дуже відмінним від первинного визначення стійкої моделі. Замість збіднень воно посилається на рівноважну логіку (англ. equilibrium logic) — систему немонотонної логіки на основі моделей Кріпке. З іншого боку, формулювання Ферраріса ґрунтується на збідненнях, хоча застосовуваний процес побудови збіднення і відрізняється від описаного вище. Ці два підходи до визначення стійких моделей для наборів предикатів є рівнозначними.

Загальне визначення стійкої моделі[ред. | ред. код]

Згідно Ферраріса,[12] збідненням предикату відносно набору атомів є предикат, отриманий з заміною кожного максимального підпредикату, який не задовольняється , логічною сталою (хиба). Збіднення набору предикатів відносно складається зі збіднень усіх предикатів із відносно . Як і у випадку диз'юнктивних програм, ми кажемо, що набір атомів є стійкою моделлю , якщо є мінімальною (відносно входження до набору) серед моделей збіднення відносно .

Наприклад, збідненням набору

відносно є

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

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

Властивості загальної семантики стійких моделей[ред. | ред. код]

Теорему про те, що всі елементи будь-якої стійкої моделі програми є атомами голови , може бути розширено на набори предикатів, якщо ми визначимо атоми голови наступним чином. Атом є атомом голови набору предикатів , якщо щонайменше одне входження до предикату з є ані під запереченням, ані в посилці імплікації. (Тут ми припускаємо, що еквівалентність трактується як абревіатура, а не як первісний сполучник.)

Мінімальність та властивість антиланцюговості стійких моделей традиційних програм в загальному випадку не мають місця. Наприклад, (одноелементний набір, єдиним елементом якого є) предикат

має дві стійкі моделі, та . Друга не є мінімальною, вона є власною надмножиною першої.

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

Примітки[ред. | ред. код]

  1. Гельфонд та Ліфшиць у праці 1991 року називають друге заперечення класичним (англ. classical), і позначають його через .

Виноски[ред. | ред. код]

  1. M. Gelfond [1987] On stratified autoepistemic theories[недоступне посилання з травня 2019]. In: Proceedings of AAAI-87, pages 207—211. (англ.)
  2. N. Bidoit and C. Froidevaux [1987] Minimalism subsumes default logic and circumscription. In: Proceedings of LICS-87, pages 89–97. (англ.)
  3. M. Gelfond and V. Lifschitz [1988] The stable model semantics for logic programming. In: Proceedings of the Fifth International Conference on Logic Programming (ICLP), pages 1070—1080. (англ.)
  4. M. van Emden and R. Kowalski [1976] The semantics of predicate logic as a programming language. Journal of ACM, Vol. 23, pages 733—742. (англ.)
  5. V. Marek and V.S. Subrahmanian [1989] The relationship between logic program semantics and non-monotonic reasoning. In: Proceedings of ICLP-89, pages 600—617. (англ.)
  6. F. Fages [1994] Consistency of Clark's completion and existence of stable models. Journal of Methods of Logic in Computer Science, Vol. 1, pages 51–60. (англ.)
  7. F. Lin and Y. Zhao [2004] ASSAT: Computing answer sets of a logic program by SAT solvers. Artificial Intelligence, Vol. 157, pages 115—137. (англ.)
  8. а б в г д M. Gelfond and V. Lifschitz [1991] Classical negation in logic programs and disjunctive databases. New Generation Computing, Vol. 9, pages 365—385. (англ.)
  9. P. Ferraris and V. Lifschitz [2005] Mathematical foundations of answer set programming. In: We Will Show Them! Essays in Honour of Dov Gabbay, King's College Publications, pages 615—664. (англ.)
  10. T. Eiter and G. Gottlob [1993] Complexity results for disjunctive logic programming and application to nonmonotonic logics. In: Proceedings of ILPS-93, pages 266—278. (англ.)
  11. D. Pearce [1997] A new logical characterization of stable models and answer sets. In: Non-Monotonic Extensions of Logic Programming (Lecture Notes in Artificial Intelligence 1216), pages 57–70. (англ.)
  12. а б P. Ferraris [2005] Answer sets for propositional theories. In: Proceedings of LPNMR-05, pages 119—131. (англ.)

Література[ред. | ред. код]

  • S. Hanks and D. McDermott[en] [1987] Nonmonotonic logic and temporal projection. Artificial Intelligence, Vol. 33, pages 379—412. (англ.)
  • R. Reiter[en] [1980] A logic for default reasoning. Artificial Intelligence, Vol. 13, pages 81–132. (англ.)

Див. також[ред. | ред. код]