Главная arrow Логика arrow Определенные выражения
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Определенные выражения Печать

Определенные выражения в логике первого порядка весьма напоминают определенные выражения в пропозициональной логике: они представляют собой дизъюнкции литералов, среди которых положительным является один и только один. Определенное выражение либо является атомарным, либо представляет собой импликацию, антецедентом (предпосылкой) которой служит конъюнкция положительных литералов, а консеквентом (следствием) — единственный положительный литерал. Ниже приведены примеры определенных выражений в логике первого порядка.

Kingix) ^ Greedy (х) => Evil(x)

King{John)

Greedy{у)

В отличие от пропозициональных литералов, литералы первого порядка могут включать переменные, и в таком случае предполагается, что на эти переменные распространяется квантор всеобщности. (Как правило, при написании определенных выражений кванторы всеобщности исключаются.) Определенные выражения представляют собой подходящую нормальную форму для использования в обобщенном правиле отделения.

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

Закон гласит, что продажа оружия недружественным странам, осуществляемая любым американским гражданином, считается преступлением. В государстве Ноуноу, враждебном по отношению к Америке, имеются некоторые ракеты, и все ракеты этого государства были проданы ему полковником Уэстом, который является американским гражданином.

Мы должны доказать, что полковник Уэст совершил преступление. Вначале все имеющиеся факты будут представлены в виде определенных выражений в логике первого порядка, а в следующем разделе будет показано, как решить эту задачу с помощью алгоритма прямого логического вывода.

  • "...продажа оружия враждебным странам, осуществляемая любым американским гражданином, является преступлением": American (х) л Weapon (у) л Sells{x,y, z) л Hostile{z) => Criminal(х)
  • "...продажа оружия враждебным странам, осуществляемая любым американским гражданином, является преступлением": American (х) л Weapon (у) л Sells{x,y, z) л Hostile{z) => Criminal(х)
  • "... все ракеты этого государства были проданы ему полковником Уэстом": Missile{x) л Owns {Nono, х) => Sells {West, х, Nono) Нам необходимо также знать, что ракеты — оружие: Missile{x) => Weapon{x) Кроме того, мы должны знать, что государство, враждебное по отношению к Америке, рассматривается как "недружественное": Enemy{х,America) => Hostile{x)
  • "... полковником Уэстом, который является американским гражданином":
  • Ameriсап{West)
  • "В государстве Ноуноу, враждебном по отношению к Америке...": Enemy{Nono,America)

Эта база знаний не содержит функциональных символов и поэтому может служить примером класса баз знаний языка Datalog, т.е. примером множества определенных выражений в логике первого порядка без функциональных символов. Ниже будет показано, что при отсутствии функциональных символов логический вывод становится намного проще.