Отрицание как неудача
Отрицание как неудача ( NAF сокращенно ) — это немонотонное правило вывода в логическом программировании , используемое для вывода (т.е. что предполагается, что оно не выполняется) из-за невозможности вывести . Обратите внимание, что может отличаться от утверждения логического отрицания , в зависимости от полноты алгоритма вывода и, следовательно, от формальной логической системы.
Отрицание как неудача было важной особенностью логического программирования с самых первых дней существования Planner и Prolog . В Прологе это обычно реализуется с использованием экстралогических конструкций Пролога.
В более общем смысле этот вид отрицания известен как слабое отрицание . [1] [2] в отличие от сильного (т.е. явного, доказуемого) отрицания.
Семантика планировщика
[ редактировать ]В Planner отрицание как неудачу можно реализовать следующим образом:
if (not (goal p)), then (assert ¬p)
который говорит, что если исчерпывающий поиск, чтобы доказать p
терпит неудачу, тогда утверждайте ¬p
. [3] Здесь говорится, что предложение p
при любой последующей обработке будет считаться «неверным». Однако, поскольку Planner не основан на логической модели, логическая интерпретация предыдущего остается неясной.
Семантика Пролога
[ редактировать ]В чистом Прологе литералы NAF вида может встречаться в теле предложений и использоваться для получения других литералов NAF. Например, учитывая только четыре пункта
НАФ выводит , и а также и .
Семантика завершения
[ редактировать ]Семантика NAF оставалась открытым вопросом до 1978 года, когда Кейт Кларк показал, что она корректна в отношении завершения логической программы, где, грубо говоря, «только» и интерпретируются как «тогда и только если», пишутся как «iff» или « ".
Например, завершение четырех пунктов выше
Правило вывода NAF явно моделирует рассуждения с завершением, где обе стороны эквивалентности отрицаются, а отрицание в правой части распространяется вплоть до атомарных формул . Например, чтобы показать , NAF имитирует рассуждения с эквивалентностями
В непропозициональном случае пополнение необходимо дополнить аксиомами равенства, чтобы формализовать предположение о том, что люди с разными именами различны. НАФ имитирует это неудачей унификации. Например, учитывая только два предложения
НАФ выводит .
Завершение программы является
дополнен аксиомами уникальных имен и аксиомами закрытия доменов.
Семантика завершения тесно связана как с ограничением, так и с предположением о закрытости мира .
Аутоэпистемическая семантика
[ редактировать ]Семантика завершения оправдывает интерпретацию результата вывода NAF как классического отрицания из . Однако в 1987 году Михаил Гельфонд показал, что интерпретировать можно и буквально как " показать нельзя", " неизвестно» или « не верят», как в аутоэпистемической логике . Аутоэпистемическая интерпретация была развита далее Гельфондом и Лифшицем в 1988 году и является основой программирования множества ответов .
Автоэпистемическая семантика чистой программы P на Прологе с литералами NAF получается путем «расширения» P набором основных (без переменных) литералов NAF Δ, которые стабильны в том смысле, что
- Δ знак равно {не р | p не подразумевается из P ∪ ∆}
Другими словами, набор предположений Δ о том, что не может быть показано, устойчив тогда и только тогда, когда Δ представляет собой набор всех предложений, которые действительно не могут быть показаны из программы P, расширенной с помощью Δ. Здесь, из-за простого синтаксиса программ на чистом Прологе, «подразумеваемое» можно очень просто понимать как выводимость с использованием только modus ponens и универсального создания экземпляров.
Программа может иметь ноль, одно или несколько стабильных расширений. Например,
не имеет устойчивых расширений.
имеет ровно одно устойчивое разложение Δ = {not q }
имеет ровно два устойчивых разложения ∆ 1 = {not p } и ∆ 2 = {not q }.
Аутоэпистемическая интерпретация NAF может сочетаться с классическим отрицанием, как в расширенном логическом программировании и программировании множества ответов . Объединив два отрицания, можно выразить, например,
- (предположение о закрытом мире) и
- ( сохраняется по умолчанию).
Сноски
[ редактировать ]- ^ Билкова, М.; Колачито, А. (2020). «Теория доказательств положительной логики со слабым отрицанием» . Студия Логика . 108 (4): 649–686. arXiv : 1907.05411 . дои : 10.1007/s11225-019-09869-y . S2CID 195886568 .
- ^ Вагнер, Г. (2003). «Веб-правилам нужны два вида отрицания» (PDF) . В Бри, Ф.; Хенце, Н.; Малушинский Дж. (ред.). Принципы и практика семантического веб-рассуждения. ППСВ3 2003 . Конспекты лекций по информатике. Том. 2901. Конспекты лекций по информатике: Springer. стр. 33–50. дои : 10.1007/978-3-540-24572-8_3 . ISBN 978-3-540-24572-8 .
- ^ Кларк, Кейт (1978). «Отрицание как неудача» (PDF) . Логика и базы данных . Спрингер-Верлаг . стр. 293–322. дои : 10.1007/978-1-4684-3384-5_11 . ISBN 978-1-4684-3384-5 .
Ссылки
[ редактировать ]- Кларк, К. (1987) [1978]. «Отрицание как неудача» . В Гинзберге, М.Л. (ред.). Чтения в немонотонных рассуждениях . Морган Кауфманн. стр. 311–325. ISBN 978-0-934613-45-3 .
- Гельфонд, М. (1987). «О стратифицированных автоэпистемических теориях» (PDF) . AAAI'87: Материалы шестой Национальной конференции по искусственному интеллекту . АААИ Пресс. стр. 207–211. ISBN 978-0-934613-42-2 .
- Гельфонд, М.; Лифшиц, В. (1988). «Семантика стабильной модели для логического программирования». В Ковальском, Р.; Боуэн, К. (ред.). Учеб. 5-я Международная конференция и симпозиум по логическому программированию . МТИ Пресс. стр. 1070–80. CiteSeerX 10.1.1.24.6050 . ISBN 978-0-262-61054-4 .
- Шепердсон, Дж. К. (1984). «Отрицание как неудача: сравнение завершенной базы данных Кларка и предположения о закрытом мире Райтера». Журнал логического программирования . 1 : 51–81. дои : 10.1016/0743-1066(84)90023-2 .
- Шепердсон, Дж. К. (1985). «Отрицание как неудача II». Журнал логического программирования . 2 (3): 185–202. дои : 10.1016/0743-1066(85)90018-4 .
Внешние ссылки
[ редактировать ]- Отчет о семинаре W3C по языкам правил для взаимодействия. Включает примечания по NAF и SNAF (отрицание области действия как сбой).