Концепция стабильной модели , или набора ответов , используется для определения декларативной семантики для логических программ с отрицанием как неудачей . Это один из нескольких стандартных подходов к значению отрицания в логическом программировании, наряду с завершением программы и обоснованной семантикой . Стабильная семантика модели является основой программирования набора ответов .
Исследование декларативной семантики отрицания в логическом программировании было мотивировано тем фактом, что поведение разрешения SLDNF — обобщения разрешения SLD, используемого Прологом при наличии отрицания в телах правил — не полностью соответствует таблицам истинности, известным из классической пропозициональной логики . Рассмотрим, например, программу
При наличии этой программы запрос p будет успешным, потому что программа включает p как факт; запрос q потерпит неудачу, потому что он не встречается в заголовке ни одного из правил. Запрос r также потерпит неудачу, потому что единственное правило с r в заголовке содержит подцель q в своем теле; как мы видели, эта подцель терпит неудачу. Наконец, запрос s будет успешным, потому что каждая из подцелей p , успешна. (Последняя успешна, потому что соответствующая положительная цель q не успешна.) Подводя итог, можно сказать, что поведение разрешения SLDNF в данной программе можно представить следующим назначением истинности:
С другой стороны, правила данной программы можно рассматривать как пропозициональные формулы, если мы отождествим запятую с союзом , символ с отрицанием и согласимся рассматривать как импликацию, записанную наоборот. Например, последнее правило данной программы является, с этой точки зрения, альтернативной записью для пропозициональной формулы
Если мы вычислим значения истинности правил программы для задания истинности, показанного выше, то мы увидим, что каждое правило получает значение T. Другими словами, это задание является моделью программы. Но эта программа имеет и другие модели, например
Таким образом, одна из моделей данной программы является специальной в том смысле, что она правильно представляет поведение разрешения SLDNF. Каковы математические свойства этой модели, которые делают ее специальной? Ответ на этот вопрос дает определение стабильной модели.
Значение отрицания в логических программах тесно связано с двумя теориями немонотонных рассуждений — автоэпистемической логикой и логикой по умолчанию . Открытие этих отношений стало ключевым шагом на пути к изобретению стабильной модельной семантики.
Синтаксис автоэпистемической логики использует модальный оператор , который позволяет нам различать то, что истинно, и то, что известно. Майкл Гелфонд [1987] предложил читать текст правила как « неизвестно», а правило с отрицанием понимать как соответствующую формулу автоэпистемической логики. Семантика стабильной модели в ее базовой форме может рассматриваться как переформулировка этой идеи, которая избегает явных ссылок на автоэпистемическую логику.
В логике по умолчанию, умолчание похоже на правило вывода , за исключением того, что оно включает в себя, помимо своих предпосылок и заключения, список формул, называемых обоснованиями. Умолчание может быть использовано для вывода его заключения при условии, что его обоснования согласуются с тем, что известно в настоящее время. Николь Бидуа и Кристин Фруаво [1987] предложили рассматривать отрицаемые атомы в телах правил как обоснования. Например, правило
можно понимать как значение по умолчанию, которое позволяет нам выводить из предположения, что является последовательным. Семантика стабильной модели использует ту же идею, но она явно не ссылается на логику по умолчанию.
Определение стабильной модели ниже, воспроизведенное из [Gelfond and Lifschitz, 1988], использует два соглашения. Во-первых, истинностное назначение идентифицируется с набором атомов, которые получают значение T . Например, истинностное назначение
отождествляется с множеством . Это соглашение позволяет нам использовать отношение включения множества для сравнения истинностных назначений друг с другом. Наименьшее из всех истинностных назначений — это то, которое делает каждый атом ложным; наибольшее истинностное назначение делает каждый атом истинным.
Во-вторых, логическая программа с переменными рассматривается как сокращение для множества всех основных экземпляров ее правил, то есть для результата замены переменных в правилах программы на термины, свободные от переменных, всеми возможными способами. Например, определение четных чисел в логическом программировании
понимается как результат замены X в этой программе основными терминами
всеми возможными способами. Результатом является бесконечная программа заземления
Пусть P — набор правил вида
где — основные атомы. Если P не содержит отрицания ( в каждом правиле программы), то по определению единственной стабильной моделью P является его модель, минимальная относительно включения множеств. [1] (Любая программа без отрицания имеет ровно одну минимальную модель.) Чтобы распространить это определение на случай программ с отрицанием, нам понадобится вспомогательное понятие редукта, определяемое следующим образом.
Для любого набора I основных атомов сокращение P относительно I представляет собой набор правил без отрицания, полученный из P путем предварительного отбрасывания каждого правила, такого, что по крайней мере один из атомов в его теле
принадлежит I , а затем отбрасывая части из тел всех оставшихся правил.
Мы говорим, что I является стабильной моделью P , если I является стабильной моделью редукции P относительно I. (Поскольку редукция не содержит отрицания , ее стабильная модель уже определена.) Как предполагает термин «стабильная модель», каждая стабильная модель P является моделью P.
Чтобы проиллюстрировать эти определения, давайте проверим, является ли устойчивой модель программы.
Сокращение этой программы относительно равно
(Действительно, поскольку , редукт получается из программы путем отбрасывания части ) Стабильная модель редукта — . (Действительно, этот набор атомов удовлетворяет каждому правилу редукта, и у него нет собственных подмножеств с тем же свойством.) Таким образом, после вычисления стабильной модели редукта мы пришли к тому же набору, с которого начинали. Следовательно, этот набор является стабильной моделью.
Проверка таким же образом остальных 15 наборов, состоящих из атомов, показывает, что эта программа не имеет других устойчивых моделей. Например, сокращение программы относительно равно
Стабильная модель редукции — это , которая отличается от набора , с которого мы начали.
Программа с отрицанием может иметь много устойчивых моделей или не иметь устойчивых моделей. Например, программа
имеет две стабильные модели , . Программа с одним правилом
не имеет стабильных моделей.
Если мы думаем о стабильной семантике модели как об описании поведения Пролога в присутствии отрицания, то программы без уникальной стабильной модели можно считать неудовлетворительными: они не предоставляют однозначной спецификации для ответа на запросы в стиле Пролога. Например, две программы выше не являются разумными в качестве программ Пролога — разрешение SLDNF на них не заканчивается.
Но использование стабильных моделей в программировании наборов ответов дает иную перспективу для таких программ. В этой парадигме программирования заданная задача поиска представлена логической программой, так что стабильные модели программы соответствуют решениям. Тогда программы со многими стабильными моделями соответствуют задачам со многими решениями, а программы без стабильных моделей соответствуют неразрешимым задачам. Например, головоломка с восемью королевами имеет 92 решения; чтобы решить ее с помощью программирования наборов ответов, мы кодируем ее логической программой с 92 стабильными моделями. С этой точки зрения логические программы с ровно одной стабильной моделью являются довольно специальными в программировании наборов ответов, как многочлены с ровно одним корнем в алгебре.
В этом разделе, как и в определении устойчивой модели выше, под логической программой мы подразумеваем набор правил вида
где находятся основные атомы.
Любая стабильная модель конечной базовой программы является не только моделью самой программы, но и моделью ее завершения [Marek and Subrahmanian, 1989]. Обратное, однако, неверно. Например, завершение программы с одним правилом
является тавтология . Модель этой тавтологии является стабильной моделью , но другая ее модель — нет. Франсуа Фагес [1994] нашел синтаксическое условие для логических программ, которое устраняет такие контрпримеры и гарантирует стабильность каждой модели завершения программы. Программы, которые удовлетворяют его условию, называются плотными .
Фанчжэнь Линь и Ютин Чжао [2004] показали, как сделать завершение нежесткой программы более сильным, так что все ее нестабильные модели будут устранены. Дополнительные формулы, которые они добавляют к завершению, называются формулами цикла .
Хорошо обоснованная модель логической программы разбивает все основные атомы на три множества: истинные, ложные и неизвестные. Если атом является истинным в хорошо обоснованной модели , то он принадлежит каждой стабильной модели . Обратное, как правило, не выполняется. Например, программа
имеет две устойчивые модели, и . Хотя принадлежит обеим из них, его значение в обоснованной модели неизвестно .
Более того, если атом ложен в хорошо обоснованной модели программы, то он не принадлежит ни одной из ее стабильных моделей. Таким образом, хорошо обоснованная модель логической программы обеспечивает нижнюю границу пересечения ее стабильных моделей и верхнюю границу их объединения.
С точки зрения представления знаний , набор основных атомов можно рассматривать как описание полного состояния знаний: известно, что атомы, которые принадлежат набору, являются истинными, а атомы, которые не принадлежат набору, являются ложными. Возможно неполное состояние знаний можно описать с помощью последовательного, но, возможно, неполного набора литералов; если атом не принадлежит набору и его отрицание также не принадлежит набору, то неизвестно, является ли он истинным или ложным.
В контексте логического программирования эта идея приводит к необходимости различать два вида отрицания — отрицание как неудачу , обсуждавшееся выше, и сильное отрицание , которое здесь обозначается как . [2] Следующий пример, иллюстрирующий разницу между двумя видами отрицания, принадлежит Джону Маккарти . Школьный автобус может пересекать железнодорожные пути при условии, что нет приближающегося поезда. Если мы не обязательно знаем, приближается ли поезд, то правило, использующее отрицание как неудачу
не является адекватным представлением этой идеи: оно говорит, что можно переходить дорогу при отсутствии информации о приближающемся поезде. Более слабое правило, которое использует сильное отрицание в теле, предпочтительнее:
Там говорится, что переходить дорогу можно, если мы знаем , что поезд не приближается.
Чтобы включить сильное отрицание в теорию устойчивых моделей, Гельфонд и Лифшиц [1991] разрешили каждое из выражений , , в правиле
быть либо атомом, либо атомом с префиксом сильного отрицания. Вместо стабильных моделей это обобщение использует наборы ответов , которые могут включать как атомы, так и атомы с префиксом сильного отрицания.
Альтернативный подход [Феррарис и Лифшиц, 2005] рассматривает сильное отрицание как часть атома, и он не требует никаких изменений в определении стабильной модели. В этой теории сильного отрицания мы различаем атомы двух видов, положительные и отрицательные , и предполагаем, что каждый отрицательный атом является выражением вида , где — положительный атом. Набор атомов называется когерентным, если он не содержит «комплементарных» пар атомов . Когерентные стабильные модели программы идентичны ее согласованным наборам ответов в смысле [Гельфонд и Лифшиц, 1991].
Например, программа
имеет две устойчивые модели, и . Первая модель является когерентной; вторая — нет, поскольку содержит как атом, так и атом .
Согласно [Гельфонду и Лифшицу, 1991], предположение о замкнутости мира для предиката можно выразить правилом
(отношение не выполняется для кортежа, если нет доказательств, что оно выполняется). Например, стабильная модель программы
состоит из 2 положительных атомов
и 14 отрицательных атомов
т.е. сильные отрицания всех других положительных основных атомов, образованных из .
Логическая программа с сильным отрицанием может включать правила предположения замкнутого мира для некоторых своих предикатов и оставлять другие предикаты в области предположения открытого мира .
Семантика стабильной модели была обобщена на многие виды логических программ, отличные от наборов «традиционных» правил, обсуждавшихся выше — правил вида
где атомы. Одно простое расширение позволяет программам содержать ограничения — правила с пустой головой:
Напомним, что традиционное правило можно рассматривать как альтернативную запись для пропозициональной формулы, если мы отождествляем запятую с союзом , символ с отрицанием и соглашаемся рассматривать как импликацию, записанную наоборот. Чтобы распространить это соглашение на ограничения, мы отождествляем ограничение с отрицанием формулы, соответствующей ее телу:
Теперь мы можем расширить определение стабильной модели на программы с ограничениями. Как и в случае с традиционными программами, для определения стабильных моделей мы начинаем с программ, не содержащих отрицания. Такая программа может быть несогласованной; тогда мы говорим, что у нее нет стабильных моделей. Если такая программа непротиворечива, то у нее есть уникальная минимальная модель, и эта модель считается единственной стабильной моделью .
Далее, стабильные модели произвольных программ с ограничениями определяются с помощью редуктов, сформированных так же, как и в случае традиционных программ (см. определение стабильной модели выше). Набор атомов является стабильной моделью программы с ограничениями, если редукт относительно имеет стабильную модель, и эта стабильная модель равна .
Свойства стабильной семантики модели, изложенные выше для традиционных программ, сохраняются и при наличии ограничений.
Ограничения играют важную роль в программировании набора ответов , поскольку добавление ограничения в логическую программу влияет на набор стабильных моделей очень простым способом: оно устраняет стабильные модели, которые нарушают ограничение. Другими словами, для любой программы с ограничениями и любым ограничением стабильные модели можно охарактеризовать как стабильные модели, которые удовлетворяют .
В дизъюнктивном правиле голова может быть дизъюнкцией нескольких атомов:
(точка с запятой рассматривается как альтернативная нотация для дизъюнкции ). Традиционные правила соответствуют , а ограничения — . Чтобы расширить семантику стабильной модели на дизъюнктивные программы [Гельфонд и Лифшиц, 1991], мы сначала определяем, что при отсутствии отрицания ( в каждом правиле) стабильные модели программы являются ее минимальными моделями. Определение редукции для дизъюнктивных программ остается таким же, как и прежде. Набор атомов является стабильной моделью , если является стабильной моделью редукции относительно .
Например, множество является устойчивой моделью дизъюнктивной программы
потому что это одна из двух минимальных моделей редукции
В приведенной выше программе есть еще одна стабильная модель: .
Как и в случае традиционных программ, каждый элемент любой стабильной модели дизъюнктивной программы является головным атомом , в том смысле, что он встречается в голове одного из правил . Как и в традиционном случае, стабильные модели дизъюнктивной программы минимальны и образуют антицепь. Проверка того, имеет ли конечная дизъюнктивная программа стабильную модель, является -полной [Eiter and Gottlob, 1993].
Правила, и даже дизъюнктивные правила, имеют довольно специальную синтаксическую форму по сравнению с произвольными пропозициональными формулами . Каждое дизъюнктивное правило по сути является импликацией, такой что его антецедент (тело правила) является конъюнкцией литералов , а его консеквент (голова) является дизъюнкцией атомов. Дэвид Пирс [1997] и Паоло Феррарис [2005] показали, как расширить определение стабильной модели на наборы произвольных пропозициональных формул. Это обобщение имеет приложения для ответа на программирование множеств .
Формулировка Пирса выглядит совсем не так, как изначальное определение стабильной модели. Вместо редуктов она ссылается на равновесную логику — систему немонотонной логики , основанную на моделях Крипке . Формулировка Феррариса, с другой стороны, основана на редуктах, хотя процесс построения редукта, который она использует, отличается от описанного выше. Два подхода к определению стабильных моделей для наборов пропозициональных формул эквивалентны друг другу.
Согласно [Ferraris, 2005], редукция пропозициональной формулы относительно набора атомов — это формула, полученная из заменой каждой максимальной подформулы, которая не удовлетворяется с помощью логической константы (ложь). Редукция набора пропозициональных формул относительно состоит из редукций всех формул из относительно . Как и в случае дизъюнктных программ, мы говорим, что набор атомов является устойчивой моделью , если является минимальным (относительно включения множеств) среди моделей редукции относительно .
Например, сокращение множества
относительно есть
Так как является моделью редукта, а собственные подмножества этого множества не являются моделями редукта, то является устойчивой моделью данного набора формул.
Мы видели, что также является стабильной моделью той же формулы, записанной в нотации логического программирования, в смысле исходного определения. Это пример общего факта: в применении к набору (формул, соответствующих) традиционных правил определение стабильной модели по Феррарису эквивалентно исходному определению. То же самое верно, в более общем смысле, для программ с ограничениями и для дизъюнктивных программ.
Теорема, утверждающая, что все элементы любой стабильной модели программы являются головными атомами, может быть распространена на наборы пропозициональных формул, если мы определим головные атомы следующим образом. Атом является головным атомом набора пропозициональных формул, если хотя бы одно вхождение в формуле из не находится ни в области отрицания, ни в антецеденте импликации. (Мы предполагаем здесь, что эквивалентность рассматривается как сокращение, а не примитивная связка.)
Минимальность и свойство антицепи стабильных моделей традиционной программы не выполняются в общем случае. Например, (синглтон-множество, состоящее из) формулы
имеет две стабильные модели, и . Последняя не является минимальной, и является надлежащим надмножеством первой.
Проверка того, имеет ли конечный набор пропозициональных формул стабильную модель, является -полной , как и в случае дизъюнктных программ.