Полностью описать мир задач чрезвычайно сложно. Например, знание «птицы летают» — верное, однако встречаются и нелетающие птицы, т. е. это неполное значение. В области искусственного интеллекта изучают задачу «миссионер и туземцы» — это задача о переправе через реку на одной лодке. Но если вдруг нет весел или на дне лодки дыра, задача становится неразрешимой. Подобных причин может быть множество, а раз так, то полностью описать их невозможно. Исходя из здравого смысла, считают, что раз существует лодка, то ею можно пользоваться.
Другой пример: можно перечислить все предметы, которые находятся в комнате, но того, чего в ней нет, перечислить невозможно, поскольку это бесчисленное множество предметов. Точно так же можно перечислить верные знания (в некоторой проблемной области), но перечислить неверные знания и разумно их определить невозможно. Поэтому удобно в базе знаний определять исключительно верные знания, а все, что не определено, считать заведомо неверным. Утверждения, которые не упомянуты ни как истинные, ни как ложные, принято относить к ложным. Это называют гипотезой закрытого мира. Предикат not в языке Пролог принимает значение «истина», если среди его аргументов нет решения, и его выполнение основано на гипотезе закрытого мира. Эта же гипотеза нередко применяется для неопределенных знаний (разновидности неполных знаний). Классическая логика исходит из предпосылки, что набор определенных в ней аксиом (знаний) полон, и правильный вывод не меняется, даже если впоследствии добавлена новая аксиома. Такое свойство называется монотонностью. Если допустить, что в базу знаний добавлено такое знание: «как правило, птицы летают (за некоторым исключением)», то обнаружится свойство немонотонных выводов. А именно, при добавлении новой аксиомы иногда возможно отрицание вывода, который считался верным в некоторой системе аксиом (базе знаний).
Введем обозначение М, а Мр будет означать, что «логическая формула р непротиворечива (по отношению к другим знаниям)» (другими словами, «Мр истинно, если из других знаний не получается вывод ┐ р»). При этом знание «как правило, птицы летают (за некоторым исключением)» можно представить в виде следующей логической формулы:
(х) птица (х) / М летает (х) É летает (х).
{смысл: х — птица, х летает, если летать не противоречит (другим
знаниям)}
Теперь рассмотрим систему аксиом, состоящую из следующих знаний:
(х) птица (х) / М летает (х) É летает (х).
(x) пингвин (х) É ┐ летает (х).
птица (Пикколо).
Из этой системы аксиом можно сделать вывод «летает (Пикколо)», то есть Пикколо (кличка пингвина) летает. Однако впоследствии получена более подробная информация, выяснилось, что Пикколо — это пингвин. И в систему аксиом внесено добавление Пингвин (Пикколо). Теперь вывод, полученный ранее «летает (Пикколо)», отрицается и делается новый вывод: «┐летает (Пикколо)». Это пример немонотонности выводов. Как средство формальной обработки неполных знаний, при которой необходимы немонотонные выводы, предложены и активно исследуются методы немонотонной логики. Типичные подходы: немонотонная логика Макдермотта и Доула (в которой вводятся условные логические операции), логика умолчания Рейтера, окружение (circumscription) (в смысле ограничения) Маккарти и др. Маккарти известен как создатель языка Лисп, он всячески подчеркивает, что в дополнение к знаниям, которые в настоящее время стали объектом обработки компьютеров, необходимо сделать скачок к тому, что мы называем здравым смыслом. По его словам, это самая большая проблема искусственного интеллекта, и в ней не обойтись без немонотонных выводов.
В немонотонной логике Макдермотта и Доула, логике умолчания Рейтера, как мы видим из примеров, введено логическое обозначение М, и Мр означает, что «логическая формула р не противоречива (по отношению к другим знаниям)». Основная проблема, которая возникает при включении подобных знаний, может быть сведена к следующему. Пусть в базе знаний (системе аксиом) существуют знания (логические формулы) {Мр É ┐ q, Mq É ┐ р}. Тогда для решения возникают две возможности: {решение, которое включает ┐р, но не включает ┐q, и решение, которое включает ┐q, но не включает ┐р, то есть решение определяется неоднозначно. При этом нельзя сделать вывод о том, может ли ┐р или ┐q являться решением. Как говорят, не определена неподвижная точка; исследования этой серьезной проблемы продолжаются.
Немонотонная логика еще полностью не изучена, но функции значений по умолчанию уже находят практическое применение, например, в представлении фреймов. В таких случаях используют метод, позволяющий однозначно определять значения в зависимости от способа вывода. Например, есть база фреймов, указанная на рис. 6.13, и задан вопрос «способен ли летать Пикколо?», но атрибут понятия «летать» не определен во фрейме ПИККОЛО, поэтому обратимся к фрейму ПИНГВИН, на который ссылает нас указатель IS-A. В нем есть определение «не летает», поэтому окончательный ответ «нет». Здесь же указатель IS-A отправляет нас к фрейму ПТИЦА, где по умолчанию определено значение «да», но предпочтение отдается значению в слоте фрейма ПИНГВИН, откуда была последняя ссылка.
К системам, связанным с неполными знаниями и управлением такими знаниями, относится система поддержания значений истинности. В базе знаний этой системы, неполной и содержащей противоречия, все знания делятся на достоверные и недостоверные, и предусмотрено упорядочение базы с целью устранения недостоверных знаний. В этой системе достоверно истинные знания относятся к классу «IN», а знания, истинность которых недостоверна либо в истинность которых нет повода верить, — к классу «OUT». Если при добавлении новых знаний возникает противоречие, то выполняется повторная проверка классов знаний. Аналогичные функции реализованы в системе
логического программирования, разработанной в ICOT, они названы функциями координации и поддержания равновесия знаний.
Логика умолчания
Несколько слов скажем и о логике умолчания Рейтера как примере немонотонной логики.
ПТИЦА
(ЛЕТАЕТ по умолчанию: да)
(ИМЕЕТ крылья)
ЛАСТОЧКА
(IS-A ПТИЦА)
ПИНГВИН
(IS-A ПТИЦА)
(ЛЕТАЕТ нет)
ПИККОЛО
(IS-A ПИНГВИН)
Формат фрейма приведен ниже, слот IS-A указывает фрейм верхнего уровня, из которого наследуются свойства.
Название фрейма
(Название слота (по умолчанию) значение слота)
Рис. 6.13. Пример базы фреймов, содержащей значения по умолчанию
Если в монотонной логике Макдермотта и Доула атомарные формулы со знаком М могут записываться в произвольном месте правильно построенных логических формул (ппф), то в логике умолчания Рейтера они используются только в предпосылках правил вывода.
Рассмотрим запись формулы
Птица (х): М летает (х)
летает (х)
Она означает: «птица (х) / М летает (х) É летает (х)», то есть «х — есть птица, х летает, если это не противоречит (другим знаниям)». Предпосылка правила записана над чертой, она делится знаком « : » на две части: формула без знака М и формула со знаком М. Таким образом вводится ограничение на расположение формул со знаком М. Как отмечалось выше, при этом возможно несколько решений и возникают ситуации, когда решение нельзя определить однозначно; соответствующее решение рассматривается как один из возможных миров и называется «вытяжкой» (extension) из системы аксиом. Переход от одного выбранного решения к другому рассматривается как переход между возможными мирами. Правила выводов со знаком М кратко называют правилами умолчания. Общая формула
.
Запись, в которой формула после знака М в предпосылке совпадает с формулой в выводе, называется нормальным умолчанием. В большинстве случаев знания по умолчанию можно представить в такой форме. Запись нормального умолчания, в которой не содержат свободных переменных, называется закрытым нормальным умолчанием. Если все умолчания — это закрытые нормальные умолчания, то можно показать, что такая система знаний имеет, по меньшей мере, одну вытяжку (возможный мир).
Рейтер определил процедуру доказательства того, включается ли некоторая формула в одну из вытяжек из системы, содержащей нормальные умолчания (существует ли теорема, которую можно вывести из этой системы). Приведем эту процедуру для логики высказываний. Пусть система, содержащая нормальные умолчания, определена так, как на рис. 6.14, где D - множество формул нормального умолчания, W — множество формул, не являющихся умолчанием, а сама система есть совокупность (D, W). Тогда рассмотрим доказательство: включается ли Е в одну из вытяжек.
Используем линейный вывод сверху — вниз по принципу от противного, допустим, что справедливо отрицание искомой формулы ┐Е, и придем к противоречию (если при методе приведения к абсурду приходят к противоречию, то, как логическое следствие, в данном случае считают, что Е включается в одну из вытяжек (возможный мир)). Запишем ниже основные этапы этого метода. Обозначим через ПРЕДПОСЫЛКИ (Di) (i = 0,1,2, ….k) логические формулы без знака М (слева от знака « : ») в предпосылках подмножеств Di умолчаний, а через ВЫВОДЫ (Di) — формулы в выводах Di.
Прежде всего, возьмем подмножество D0 множества D и множество W и докажем методом приведения к противоречию, что Е можно вывести из W È ВЫВОДЫ (D0).
Рис. 6.14. Пример системы, содержащей нормальные умолчания (определяется
как совокупность (D,W))
При этом должны быть справедливы ПРЕДПОСЫЛКИ (D0), поэтому возьмем подмножество D1 множества D и аналогично докажем тем же методом, что ПРЕДПОСЫЛКИ (D0) выводятся из W È ВЫВОДЫ (D1).
Далее докажем ПРЕДПОСЫЛКИ (D1) из W È ВЫВОДЫ (D2) и так далее и будем повторять доказательства до получения Dk = 0 (пустое множество).
В конце концов придем к заключению, что
удовлетворяет (не противоречит) допущению.
Но если это так, то можно доказать, что искомая формула включается в одну из вытяжек.
На рис. 6.15, а, б показаны два этапа доказательства с помощью данного метода, Е включается в вытяжку из системы на рис. 6.14.
Немонотонная логика, как и логика умолчания, еще содержит немало проблем, но она важна как логическое обоснование обработки неполных знаний, поэтому изучается очень активно.