- •Глава 7. Представление суждений, правила вывода, принцип резолюций.
- •7.1. Формальные языки
- •С предприятием «Гран» не может быть заключен новый контракт.
- •7.2. Интерпретация выражений языка исчисления предикатов
- •7.3. Логические выводы в формальной системе исчисления предикатов первого порядка
- •Предприятие ао «Изотоп» подлежит процедуре санации.
- •7.4. Логические выводы на основе принципа резолюции
- •7.5. Немонотонные выводы
- •7.6. Логика веры и знания
С предприятием «Гран» не может быть заключен новый контракт.
Отношение логического следования между посылками и заключением предполагает связь между посылками по содержанию. Если суждения не связаны по содержанию, то вывод из них не возможен.
В зависимости от строгости правил вывода различают два вида умозаключений: демонстративные (необходимые) и недемонстративные (правдоподобные). Демонстративные умозаключения характеризуются тем, что заключение в них с необходимостью следует из посылок. В недемонстративных умозаключениях правила вывода обеспечивают лишь вероятное следование заключения из посылок. Различают дедуктивные (от общего знания к частному) выводы, индуктивные (от частного к общему), умозаключения по аналогии — абдуктивные (от частного к частному).
Сложным называют суждение, состоящее из нескольких простых, связанных логическими связками. В соответствии с дедукциями логических связей различают следующие виды сложных суждений: (1) соединительные, (2) разделительные, (3) условные, (4) эквивалентные. Истинность данных сложных суждений определяется истинностью составляющих их простых.
Соединительным или конъюнктивным называют суждение, состоящее из нескольких простых, связанных логической связкой «И».
Например: «Овощи и фрукты продаются в этом магазине». В естественном языке конъюнктивная связка может быть представлена такими выражениями, как: «а», «но», «а также», «как и», «хотя», «однако», «несмотря на», «но», «одновременно» и другими.
Соединительное суждение истинно при истинности всех составляющих его конъюнктов и ложно при ложности хотя бы одного из них.
Разделительные (дизъюнктивные) суждения. Разделительным, или дизъюнктивным, называют суждение, состоящее из нескольких простых, связанных логической связкой «ИЛИ».
Например: суждение «Договор купли-продажи может быть заключен в устной или письменной форме» является разделительным суждением, состоящим из двух простых: «Договор купли-продажи может быть заключен в устной форме»; «Договор купли-продажи может быть заключен в письменной форме».
Следует различать: нестрогую (слабую) дизъюнкцию и строгую (сильную) дизъюнкцию.
Нестрогая дизъюнкция — суждение, в котором связка «ИЛИ» употребляется в соединительно-разделительном значении.
Например: «Магазин торгует овощами или фруктами». «В магазине всегда имеются в наличии овощи или фрукты».
(2) строгая дизъюнкция — суждение, в котором связка «ИЛИ» употребляется в разделительном значении.
Например: «Деяние может быть умышленным или неосторожным.
Разделительная связка в языке обычно выражается с помощью союзов «или», «либо». Поскольку в грамматике отсутствуют однозначные союзы для нестрогого и строгого разделения, то вопрос о типе дизъюнкции в юридических и других действиях должен решаться содержательным анализом соответствующих суждений.
Условным или импликативным называют суждение, состоящее из двух простых, связанных логической связкой «если..., то...». Например: «если сделка признана неудачной, то потерпевшему возвращается другой стороной все полученные ею по сделке». Первое суждение называют антецедентом (предшествующим), второе консеквентом (последующим) импликативное суждение записывается формально в виде р q или в виде р q .
Истинность импликации объясняется следующим образом: истинность антецедента достаточна для признания истинности консеквента.
В естественном языке в условных суждениях используется не только союз «если..., то ...», но и другие союзы: «там..., где...», «тогда..., когда...», «постольку..., поскольку...» и т.п.
В форме условных суждений в языке могут быть представлены другие виды объективных связей, как причинные, функциональные, пространственные, временные, правовые, семантические, логические и другие зависимости.
В текстах естественного языка в форме условных суждений нередко фиксируют правовые предписания: разрешения, запрещения, обязывания. Грамматическими показателями импликации могут служить помимо союза «если..., то...», такие словосочетания, как «при наличии... следует...», «в форме... следует...», «при условии... наступает...» и другие.
Например: «В случаях, когда своевременно направленное извещение об акцепте получено с опозданием, акцепт не считается опоздавшим, если сторона, направившая оферту, не уведомит другую сторону о получении акцепта с опозданием».
В условном суждении антецедент выполняет функцию фактического или логического основания, обусловливающего принятие в консеквенте соответствующего следствия.
Эквивалентным называют суждение, включающее в качестве составных два суждения, связанные двойной (прямой и обратной) условной зависимостью, выраженной логической связкой «если и только если..., то...».
В естественном языке, в том числе и в нормативных актах, для выражения эквивалентных суждений используют союзы: «лишь при условии, что... то...», «в том случае и только в том случае, когда..., тогда...», «только тогда, когда..., то... и другие».
Например:
«Меры по санации предприятия могут быть приняты только при наличии достаточных оснований».
Для того, чтобы иметь возможность в ИИС оперировать с знаниями и фактами, подобно тому, как это делает человек в соответствии с законами формальной логики, необходимо переложить правила и законы логики на строгий математический язык. Такой формальный язык должен быть свободен от нестрогости и неоднозначности естественного языка. Формализованный язык должен позволять пользователю ИИС обращаться с запросами к базе данных.
В формализованных языках имеются четкие и эффективные правила построения форм высказываний, причем каждое правильно построенное выражение этого языка имеет единственно возможную смысловую интерпретацию. В основе формализованного языка лежит исчисление предикатов. Для построения формализованного языка мы, прежде всего, должны определить его алфавит. В соответствии с разработанной концептуальной схемой базы данных выделяется фиксированное множество объектов (записей), отношений (предикатов) и функторов, отображающих объекты на объекты. С помощью предикатов, функторов, индивидных переменных, индивидных констант, используя допустимые правила комбинирования в соответствии с формальным синтаксисом, мы формируем последовательности знаков.
Общая схема построения такого формализованного языка состоит в следующем:
Сначала задается его алфавит — совокупность простейших исходных символов, из которых строятся выражения языка. В алфавит включаются логические символы — специальные знаки для логических терминов, нелогические символы — параметры, предназначенные для замещения простых высказываний или нелогических терминов различных категорий, технические символы, например скобки. Далее определяются правила образования из исходных символов различных типов выражений данного языка, в частности, задается класс формул, посредством которых фиксируются логические формы высказываний.
В рамках формализованного языка ^строятся логические теории, решающие следующие задачи:
выделяют во множестве формул языка класс формул, представляющих собой логические законы;
определяют правила логического вывода от совокупности формул F1 , F2, …., Fm (посылок) к формуле Fn ( заключению).
Основную компоненту логической теории называют машиной вывода. С одной стороны, знание должно храниться в компьютере в некоторой удобной форме представления; с другой стороны, системе необходимы средства навигации и манипулирования знаниями.
Функтор задает отображение области D в некоторую область R, заметим, что m-местный функтор может быть заменен m + 1-местным предикатом, но не наоборот. Например, вес (станка) — 5т, цена (книги) = 10 р. — примеры одноместных функторов, которые можно заменить двухместными предикатами: вес (станок, 5т), цена (книга, 10 р.). Функтор имеет интенсионал и экстенсионал. Интенсионал относится к тому, что обозначается или заключено в самом функторе, т.е. касается оператора в левой части. Вся левая сторона называется выражением функтора. Экстенсионал в каждом случае — значение правых частей.
Алфавит формализованного языка содержит множество свободных индивидных переменных (переменные при их интерпретации в качестве элементов отношений могут пробегать значения строк отношения «строковые переменные», либо значения строк в одном столбце (домене) отношения «срез строковой переменной»).
Переменные могут относиться к различным отношениям или типам, так как они могут пробегать значения из разных отношений.
Множество типов составляет следующую группу символов. Примерами типов могут быть: страна, город, вид изделия.
Y — множество связанных индивидных переменных;
Фт— множество m-местных функторов; т = 0, 1, 2...;
Рт — множество m-местных предикатов;
L — множество связок, состоящее из символов
Q — множество символов кванторов, куда входят квантор существования , которому в естественном языке соответствует термин «существует» и универсальный квантор или квантор общности , которому соответствует термин «для всякого». Вообще говоря, состав кванторов может быть шире, например: «по крайней мере и», «ни один», «самое большее и», «точно и», «п процентов», «никакой», «только п».
В состав языка включаются также скобки { () }. Объединение всех этих множеств называется множеством знаков алфавита. С помощью предикатов, индивидных констант, используя допустимые правила комбинирования, мы формируем последовательности знаков, называемых термами. В общем случае терм соответствует определению новых переменных, производных от индивидных, задаваемых преобразованиями, которые определяются функторами. В случае языка прикладного исчисления предикатов термами исчислениями являются константы и переменные (в отсутствие функторов). Различаются первичные (примитивные) термы, которыми являются свободные переменные, константы и выражения вида (х1, х2, ..., хт), где — знакт-местного функтора, х1, х2, ..., хт — свободные переменные и составные термы, т.е. термы, в состав которых входят другие термы.
Следующий уровень языка связан с формированием пропозициональных функций, в которых переменные пробегают некоторое фиксированное множество объектов. Если в пропозициональную функцию подставить конкретные значения переменных, то получим предложение (суждение). Предложение может быть истинным или ложным по отношению к такой подстановке. Можно рассматривать суждения как частный случай пропозициональных функций с пустым множеством переменных. Элементарные формулы можно рассматривать как переменные высказывания или предложения, утверждающие, что выраженные предикатами отношения справедливы для объектов, соответствующих термам. С помощью пропозициональных связок, кванторов, символов предикатов, используя элементарные формулы, можно формировать более сложные пропозициональные функции, которые называются просто формулами. Примитивной формулой называют в отсутствие функторов цепочку символов вида (x1, x2, ..., хn), где —n-местный предикат (реляционный оператор), x1, х2,..., хn — свободные индивидные переменные. Заметим, что при интерпретации элементарная; формула определяет элементарное условие запроса, если интерпретировать предикаты как отношения базы данных, переменные — как пробегающие значения доменов или строк этих отношений.
Более точно, множеством примитивных термов, образованных из знаков алфавита, называется наименьшее множество Т (конечных последовательностей знаков из А), такое, что все свободные индивидные переменные и все нульместные функторы принадлежат Т.
Если t-примитивный терм со свободными индивидными переменными х1, х2, ..., хт и t1, t2 >….., > tm принадлежит T, то результат подстановки t1, t2, ..., tm соответственно х1, х2, ..., хт в t также принадлежит Т. Если в А нет функторов, то множество всех термов Т совпадает с множеством свободных индивидных переменных. Под примитивной формулой мы будем понимать любую конечную последовательность знаков из А вида Р(х1, х2, ..., хт), записанную в виде Р(Х), где Р — m-местный предикат (т = 1,2,...), а х1, х2, ..., хт — свободные индивидные переменные. Дадим более точное определение формулы.
Множеством формул, образованных из знаков алфавита А, называется наименьшее множество F конечных последовательностей знаков из А, такое, что:
если — примитивная формула со свободными переменными хь х2,..., хт, a t1, t2, ..., tm — термы, то результат подстановки термов t1, t2, ..., tm вместо х1, х2,..., хт в принадлежитF;
если принадлежитF и 0 — знак какой-нибудь унарной пропозициональной связки (отрицания), то 0 также принадлежит F:
если и принадлежатF и 0 — знак какой-нибудь бинарной пропозициональной связки (), то (0 ) также принадлежит F;
если (Х), где X — обозначает некоторую свободную индивидную переменную и принадлежит F, то при любой связанной индивидной переменной, которая не встречается в (Х), выражение Y(y), (y), принадлежит F.
Система L = (А, Т, F) называется элементарным формализованным языком первого порядка, основанном на алфавите А.
Переменная X является свободной в формуле Р(Х), если Р(Х) содержит X и не содержит квантора, связывающего X. Если Р(Х) содержит X и X не свободен в Р(Х), тогда X — связан в Р(Х). Переменные, свободные для всей формулы, называются свободными. Заметим, что семантика кванторов определяется соотношениями:
хР(х)=Р(с1)Р(с2) ...Р(сm),
где сi, 1 im — значения переменной
xP(x)=P(c1) P(c2) ...P(cm).
Таким образом, для проверки выполнения квантора общности требуется проверка значения предиката для всех значений переменной. Проверка выполнения условия, содержащегося в кванторе существования, производится до первого сравнения, т.е. первой строки отношения, для которой выполняется указанное условие.
При использовании языка, основанного на исчислении предикатов, мы хотим, чтобы пользователь лишь записал условия, связывающие переменные и целевой список переменных, в то же время преобразование этой формулы в последовательность операций над отношениями базы данных должно осуществляться автоматически.
Построение исчисления требует установления определенных отношений между формулами (эквивалентность, выводимость). Исчисление предикатов является частным случаем формальной системы.
Пусть L — формализованный язык, Во — множество формул. Определим операцию присоединения следствий к L, которая каждому множеству формул Ф в L сопоставляет множество С(Ф) всех конечных следствий из формул, принадлежащих L на основании понятия вывода. Для этой цели будет выбираться множество R логических аксиом, т.е. некоторых формул из L истинных в силу своего синтаксического строения и будут введены некоторые правила вывода. Формальная система представляет собой формализацию некоторой теории, образуя синтаксис последней. Теория же образует интерпретацию данной формальной системы.
Для произвольного множества формул Ф мы определяем С(Ф) как наименьшее множество формул, содержащее Ф и замкнутое относительно правил вывода (транзитивное замыкание отношения выводимости).
Любая пара D = {L, С}, где L — формализованный язык, а С — операция присоединения следствий в L, называется дедуктивной (формализованной) системой. Под формализованной системой мы будем понимать любую тройку S = {L, С, R}, {L, С} — некоторая формализованная система, R — множество аксиом этой теории. Операция присоединения следствий называется также логикой теории.
Для того чтобы преобразовать прикладное исчисление предикатов в язык запросов, необходимо придать интерпретацию свободным переменным, определить перечень доступных предикатов и связать исчисление с реляционной базой данных.
Будем интерпретировать функторы и предикаты как символы конкретных отображений и отношений. Сопоставим каждому m-местному функтору отображение уm у, т.е. сопоставим каждому функтору тип выполняемой операции, например, «сумма», «итого», «процент», max, min либо значение атрибута. Каждому m-местному предикату Р сопоставим m-местную у таблицу (отношение) с атрибутами (домены с соответствующими указателями роли) в у. Заметим, что в формализованном языке связанные переменные определяют условия поиска, а свободные переменные — условия выдачи.
Для того чтобы преобразовать прикладное исчисление предикатов в язык запросов, необходимо:
придать интерпретацию переменным;
определить конкретные виды доступных предикатов;
связать универсум исчисления с реляционной базой данных.
Чтобы представить целевой, т.е. подлежащий выдаче список объектов, исчисление интерпретируется следующим образом.
Формула, содержащая свободные переменные, получает значение истинности на кортежах реляционной таблицы, когда каждая переменная в ней поочередно заменяется элементом соответствующего кортежа. Например, {(x, y)│F(x, у)} обозначает множество тех пар элементов из универсума D, что формула F со свободными переменными истинна для каждой из пар, когда первый элемент пары замещает вхождение х в F, а второй элемент — вхождение у.
Семантика типового исчисления предикатов определяется как отображение D1х ... х Dn —> {истина, ложь}, в то время как семантика бестипового исчисления предикатов — как отображение Dn —> {истина, ложь}. Только те предикаты Р(А1/,..., Ап/)являются правильно построенными, для которых терм Ai,- имеет тип i. В зависимости от способа определения переменных и способа записи формул различают язык запросов, ориентированный на кортежи, и язык запросов, ориентированный на домены. Общение пользователей-непрограммистов с реляционной базой данных осуществляется с помощью языка запросов высокого уровня.
Основанные на непроцедурных системах языки запросов являются языками высокого уровня, они освобождают пользователя от необходимости определять состав операций для получения желаемого ответа. В основе логической обработки данных, использующей знания и применяющей правила дедуктивного вывода, лежит язык исчисления предикатов первого порядка.
Язык включает знаковые выражения нескольких видов: индивидные, функциональные, предикатные, логические технические.
Индивидные имена (константы) есть выражения, обозначающие объекты, индивиды. Например, завод «Красный пролетарий», фамилия «Иванов». Индивидные переменные — это выражения, которые сами по себе не обозначают объекты, но каждому из которых сопоставляется некоторая область (тип) объектов, что может записываться в следующем виде: x1/фирма, х2/изделие. Это означает, что переменная x1 пробегает область значений «фирма», а переменная х2 — область значений «изделие». В любом выражении, содержащем индивидную переменную, эту переменную можно заменить именами объектов из некоторой рассматриваемой области.
Функциональные символы — это выражения, которые именуют функции, сопоставляющие наборам из п индивидов некий индивид. Например, если область объектов составляют числа, то примером функции на этой области будет сложение — функция, сопоставляющая паре чисел некоторое число.
Предикатные символы — это выражения, обозначающие свойства и отношения. Предикаты могут быть одно-, двух- и вообще n-местными. Например, «завод Красный пролетарий» производит станки» — пример двухместного предиката, «фабрика «Заря» поставляет обувь универмагу «Москва» — пример трехместного предиката.
Логические связки или пропозициональные константы служат для образования из одних формальных выражений языка, атомарных или простых, других, более сложных выражений этого языка. Мы будем использовать обычные логические связки: — конъюнкция,— дизъюнкция,—импликация, — отрицание.
Кванторы — это знаки, которые в сочетании с переменными дают возможность выразить утверждения о том, что для всех или для некоторых индивидов выполняются определенные условия. Знак квантора всеобщности возник как сокращение слова Аll («все»), а знак квантора существования — как сокращение слова Exists («существует»). Последний тип знаков — технические знаки: скобки правая «)», левая «(« и запятая «,». С помощью знаков этого типа выражения однозначно расчленяются на составляющие части (подвыражения). С помощью индуктивного определения введем понятие терма:
индивидные константы и индивидные переменные суть термы;
если f есть k-местная функциональная константа и t1...,tkтермы, не обязательно различные, то P(t1...,tk) есть терм, никакое другое выражение, кроме указанных, не есть терм.
Теперь индуктивным путем введем понятие формулы.
Если Р есть k-местная предикатная константа, и t1...,tk_ термы, то P(t1,...,tk) есть атом.
Атом есть формула.
Если F и G — формулы, то F, FG,FG,FG и F G — формулы.
4. Если F — формула и х — связанная индивидная переменная, то xF и xF — формулы.
Формулы порождаются конечным числом применения правил 1—4.
Будем говорить, что вхождение некоторой переменной в формулу F находится в области действия квантора по х, если это есть вхождение в подформулу формулы вида xA или хА. Вхождение переменной х в формулу А будем называть свободным, если оно не находится в области действия квантора по х, и связанным — в противном случае.
Подстановкой вместо свободной переменной х терма t в выражение А будем называть замещение каждого вхождения свободной переменной х в А на терм t. Операцию подстановки будем обозначать FtA. Если формула не содержит свободных вхождений связанных переменных, то она называется замкнутой формулой или предложением. Правило импликации, записываемое в виде pq, выражает структуру логических рассуждений. Первый его операнд называется посылкой или антецедентом, и второй — заключением или консеквентом. Импликация, называемая также материальной импликацией, является основной связкой в математических рассуждениях. Она соединяет условие и утверждение в теореме. В таблице 7.1 представлены значения истинности для логических связок.
Таблица 7.1