Логическая модель основана на системе исчисления предикатов первого порядка. Знакомство с логикой предикатов начнем с исчисления высказываний.
Высказыванием называется предложение, смысл которого можно выразить значениями: истина (Т) или ложь (F).
Например, предложения «лебедь белый» и «лебедь черный» будут высказываниями. Из простых высказываний можно составить более сложные:
«лебедь белый или лебедь черный»,
«лебедь белый и лебедь черный»,
«если лебедь не белый, то лебедь черный».
В свою очередь, сложные высказывания можно разделить на частичные, которые связаны между собой с помощью слов: и, или, не, если — то. Элементарными называются высказывания, которые нельзя разделить на части. Логика высказываний оперирует логическими связями между высказываниями, т. е. она решает вопросы типа: «Можно ли на основе высказывания А получить высказывание?»; «Истинно ли В при истинности А?» и т.п. При этом семантика высказываний не имеет значения. Элементарные высказывания рассматриваются как переменные логического типа, над которыми разрешены следующие логические операции:
отрицание (унарная операция); конъюнкция (логическое умножение); дизъюнкция (логическое сложение); импликация (если — то); эквивалентность.
Операция импликации должна удовлетворять следующим требованиям.
1. Значение результата импликации зависит от двух операндов.
2. Если первый операнд (А) — истинный, то значение результата совпадает со значением второго операнда (В).
3. Операция импликации не коммутативна.
4.Результат импликации совпадает с результатом выражения
Значения результатов логических операций над переменными А и В, являющимися элементарными высказываниями.
Исчисление высказываний позволяет формализовать лишь малую часть множества рассуждений, поскольку этот аппарат не позволяет учитывать внутреннюю структуру высказывания, которая существует в естественных языках. Рассмотрим ставший классическим пример рассуждения о Сократе:
Р: «Все люди смертны» Q: «Сократ — человек» R: «Сократ — смертен»
Используя для обозначения высказываний логические переменные Р, Q, R, можно составить формулу: (.которая может быть интерпретирована как «Если все люди смертны и Сократ является человеком, то Сократ является смертным». Однако эта формула не является общезначимой, поскольку относится только к одному объекту (Сократу). Кроме того, высказывание R не выводится из Р и Q, т.е., если бы мы не сформулировали R заранее, мы не смогли бы записать приведенную выше формулу.
Чтобы осуществить этот примитивный логический вывод, высказывание Q следует разделить на две части: «Сократ» (субъект) и «человек» (свойство субъекта) и представить в виде отношения «субъект — свойство», которое можно записать с помощью функции человек (Сократ).
Очевидно, что свойство конкретного субъекта с именем «Сократ» быть «человеком» может быть присуще и ряду других субъектов, что позволяет заменить константу «Сократ» на некоторую переменную, например X. Тогда получим запись человек (X), которая обладает внутренней структурой, т.е. значение такого высказывания будет зависеть от его компонент. Записанная функция уже не является элементарным высказыванием, она называется предикатом.
Приведем объяснение понятия предиката, данное Д. А. Поспеловым: «Под предикатом будем понимать некоторую связь, которая задана на наборе из констант или переменных.
Пример предиката: «Р больше Q».
Если семантика Р и Q не задана, то о предикате сказать особенно нечего.
Пожалуй, только то, что он является антирефлексивным, антисимметричным и транзитивным. Но при задании семантики (т.е. областей определения переменных Р viQ) о предикате можно будет сказать существенно больше. Например, если Р и Q — площади городов в России и Японии, то при задании списков городов и подстановке значений из этих списков в переменные мы получим отношение между двумя сущностями и сможем судить о его истинности, например:
«Площадь Волгограда больше площади Хиросимы» =Т; «Площадь Вологды больше площади Токио»=Е
Иногда для утверждения об истинности или ложности предиката можно обойтись без подстановки. Например, если областью определения переменной Xявляются целые положительные числа, то предикат «Хбольше —5» будет тождественно истинен».
Основными синтаксическими единицами логики предикатов являются константы, переменные, функции, предикаты, кванторы и логические операторы. Формальный синтаксис исчисления предикатов первого порядка удобно представить в нормальной форме Бэкуса—Наура, которая традиционно применяется для записи грамматик языков программирования.
В данной записи любое имя в угловых скобках представляет собой тип синтаксического объекта. Определение каждого типа начинается с появления его имени в левой части каждой записи, т. е. слева от знака —>. В правой части каждой записи приводятся возможные способы организации синтаксически корректных объектов определяемого типа. Альтернативные варианты разделены знаком |, который можно интерпретировать как ИЛИ. Номера идентификаторов следует трактовать в том смысле, что идентификаторы, используемые для обозначения объектов разных типов, должны быть различимыми. Например, константы обозначаются именами , которые формируются из строчных букв, причем первым символом должен быть один из следующих: а, Ъ, с, d, e, к, l, т, п, х, у, z, v, w, и. Имена переменных должны начинаться, например, с заглавной буквы. Идентификаторы функций состоят из строчных букв, при этом первой является/ g, h, p или q. Имена предикатов должны состоять из прописных букв. Функции, как и предикаты, задают некоторую связь между переменными или константами. Но эта свять или отношение не характеризуются истинностным значением. С помощью функции можно представить сложный объект, например, функция fbook (Author, Tytle, Publisher, Year) представляет набор информации, характеризующей книгу. Предикат и функция отличаются также на синтаксическом уровне, а именно: функции могут являться аргументами предикатов (т.е. термами), а предикаты — нет. Следует заметить, что в логике предикатов более высоких порядков по сравнению с первым аргументами предикатов могут быть другие предикаты. Функции с нулевым числом мест (аргументов) являются аналогами констант. Предикат без аргументов эквивалентен высказыванию.
Кванторы в логике предикатов необходимы для определения области действия переменных. Так, в логическом выводе о Сократе высказывание «Все люди смертны» можно уточнить следующим образом:
«Для всех X, если X является человеком, то X является смертным».
Введя предикаты ЧЕЛОВЕК (X) и СМЕРТЕН (X), можем составить логическую формулу ЧЕЛОВЕК (X)->СМЕРТЕН (X). Чтобы показать справедливость этой формулы для любого X, используется квантор общности:
MX— «для любого X».
Тогда рассматриваемое утверждение запишется в видеОтрицание кванторных выражений выполняется в соответствии со следующими правилами: Кроме квантора общности в логике предикатов есть квантор существования: ЗХ — «существует хотя бы один такой X, что …» или «найдется хотя бы один X, такой, что …»
Переменные, находящиеся в сфере действия кванторов, называются связанными, остальные переменные в логических формулах называются свободными. Для того чтобы можно было говорить об истинности какого-либо утверждения без подстановки значений в переменные, все входящие в него переменные должны быть связаны кванторами.
Если в логическую формулу входит несколько кванторов, необходимо учитывать их взаимное расположение. Рассмотрим возможные интерпретации логической формулы с квантифицированными переменными. При этом существует несколько вариантов размещения кванторов, один из которых . Эту формулу можно интерпретировать двояко:
• для любого X существует хотя бы один человек Y, которого любит X;
• существует по крайней мере один человек Y, которого любят все X;
Для устранения этой неопределенности введем скобки и порядок применения кванторов — слева направо, тогда получим следующие формулы, соответствующие интерпретациям:
Рассмотрим остальные варианты расположения кванторов и их интерпретации.
— «Всеобщее человеколюбие».
— «Существует хотя бы один человек, который любит всех людей».
— «Каждого человека кто-нибудь любит».
— «Существует хотя бы один человек, который не утратил чувства любви».
В одной логической формуле не допускается применение разных кванторов к одной переменной, например выражение является недопустимым.
64
Справедливость приведенных выражений вытекает из смысла кванторов. Эти соотношения позволяют любую формулу в логике предикатов представить в виде предваренной нормальной формы (ПНФ), в которой сначала выписываются все кванторы, а затем — предикатные выражения.
Пример ПНФ:
В логике предикатов первого порядка не разрешается применение кванторов к предикатам (более высокие порядки это позволяют).
Формула, в которой все переменные связаны, называется предложением. Каждому предложению можно поставить в соответствие определенное значение — «истина» или «ложь».
Пример: пусть— функция, задающая отношение «отец»; Р(Х) — предикат, задающий отношение «человек». Тогда логическая формулабудет интерпретироваться как «Все
существа, отцом которых является человек, — люди».
Операции в логике предикатов имеют неодинаковые приоритеты. Самый высокий приоритет имеет квантор общности, самый низкий — операция эквивалентности.
убывание приоритета
Сложные формулы в логике предикатов получаются путем комбинирования атомарных формул с помощью логических операций. Такие формулы называются правильно построенными логическими формулами (ППФ). Интерпретация ППФ возможна только с учетом конкретной области интерпретации, которая представляет собой множество всех возможных значений термов, входящих в ППФ. Для представления знаний конкретной предметной области в виде ППФ необходимо прежде всего установить область интерпретации (мир Хербранда), т.е. выбрать константы, которые определяют объекты в данной области, а также функции и предикаты, которые определяют зависимости и отношения между объектами. После этого можно построить логические формулы, описывающие закономерности данной предметной области. Записать знания с помощью логической модели не удается в тех случаях, когда затруднен выбор указанных трех групп элементов (констант, функций и предикатов) или когда для описания этих знаний не хватает возможностей представления с помощью ППФ, например когда знания являются неполными, ненадежными, нечеткими и т.д.
Логическая модель применяется в основном в исследовательских системах, так как предъявляет очень высокие требования к качеству и полноте знаний предметной области.