1. Понятия математической логики

advertisement
1
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Калининградский государственный технический университет»
Кафедра систем управления и вычислительной техники
Топоркова О.М.
КОНСПЕКТ ЛЕКЦИЙ И ПРАКТИЧЕСКИЕ ЗАДАНИЯ
ПО МАТЕМАТИЧЕСКОЙ ЛОГИКЕ
(по материалам учебного пособия проф. Пономарева В.Ф.
«Математическая логика»)
Калининград 2012
2
Оглавление
1. Понятия математической логики ................................................................................................................................ 4
2.
Логика высказываний ............................................................................................................................................... 6
2.1.
Алгебра высказываний ..................................................................................................................................... 7
2.1.1.
Основные понятия .................................................................................................................................... 7
2.1.1.1.
Практика по формальному представлению сложных высказываний ......................................... 8
2.1.2.
Таблицы истинности ............................................................................................................................... 11
2.1.3.
Законы алгебры высказываний ............................................................................................................. 14
2.1.4.
Эквивалентные преобразования формул............................................................................................. 15
2.1.4.1. Практика по эквивалентному преобразованию формул ................................................................... 15
2.1.5. Нормальные формы формул ....................................................................................................................... 17
2.1.5.1. Практика по преобразованию формул к нормальным формам ....................................................... 19
2.2.
Исчисление высказываний ............................................................................................................................ 21
2.2.1.
Аксиомы исчисления высказываний..................................................................................................... 22
2.2.2.
Метод дедуктивного вывода ................................................................................................................. 24
2.2.2.1.
2.2.3.
Практика по дедуктивному выводу .............................................................................................. 25
Метод резолюции ................................................................................................................................... 33
2.2.3.1. Практика по методу резолюции ........................................................................................................... 34
3.
Логика предикатов ................................................................................................................................................. 37
3.1.
Основные понятия .......................................................................................................................................... 37
3.1.1.
3.2.
Практика по представлению предикатов ............................................................................................. 39
Алгебра предикатов ....................................................................................................................................... 41
3.2.1.
Логические операции ............................................................................................................................. 42
3.2.1.1.
Практика по записи сложных предикатных формул ................................................................... 43
3.2.2.
Законы алгебры предикатов .................................................................................................................. 46
3.2.3.
Предварённая нормальная форма ....................................................................................................... 47
3.2.3.1.
3.2.4.
Сколемовская стандартная форма ........................................................................................................ 49
3.2.4.1.
3.3.
Практика по преобразованию предикатных формул к ПНФ ...................................................... 48
Практика по преобразованию предикатных формул к ССФ ....................................................... 50
Исчисление предикатов ................................................................................................................................. 53
3.3.1.
Аксиомы исчисления предикатов ......................................................................................................... 54
3.3.2.
Правила унификации предикатов ......................................................................................................... 55
3.3.3.
Метод дедуктивного вывода ................................................................................................................. 56
3
3.3.3.1.
3.3.4.
Практика по предикатному дедуктивному выводу ..................................................................... 56
Метод резолюции ................................................................................................................................... 60
3.3.4.1. Практика по предикатному методу резолюции ................................................................................. 61
4.
Логика реляционная ............................................................................................................................................... 63
4.1.
Основные понятия .......................................................................................................................................... 63
4.2.
Реляционная алгебра ..................................................................................................................................... 66
4.2.1.
Унарные операции.................................................................................................................................. 67
4.2.2.
Бинарные операции ............................................................................................................................... 71
4.2.3.
Правила реляционной алгебры ............................................................................................................. 74
4.2.4.
Практика по реляционной алгебре ....................................................................................................... 75
4.3.
Реляционное исчисление............................................................................................................................... 78
4.3.1.
5.
Операции реляционного исчисления ................................................................................................... 79
Нечёткая логика ...................................................................................................................................................... 84
5.1.
Нечёткие множества....................................................................................................................................... 84
5.2.
Нечёткая алгебра ............................................................................................................................................ 85
5.2.1.
Операции нечеткой алгебры ................................................................................................................. 86
5.2.2.
Нечеткие множества отображений ...................................................................................................... 88
5.2.2.1.
5.2.3.
Законы нечёткой алгебры ...................................................................................................................... 92
5.2.4.
Свойства нечетких отношений .............................................................................................................. 93
5.2.4.1.
5.3.
6.
7.
Практика по нечетким отображениям .......................................................................................... 89
Практика по свойствам нечетких отношений............................................................................... 94
Нечёткое исчисление...................................................................................................................................... 95
5.3.1.
Нечёткие высказывания ......................................................................................................................... 95
5.3.2.
Нечеткие предикаты, переменные и постоянные ............................................................................... 96
5.3.3.
Нечеткие формулы ................................................................................................................................. 97
5.3.4.
Нечёткие правила вывода...................................................................................................................... 97
Модальная логика .................................................................................................................................................. 99
6.1.
Структура современной модальной логики ................................................................................................. 99
6.2.
Модальная логика, использующая модальные понятия необходимости и возможности .................... 102
Темпоральная (или временнáя) логика .............................................................................................................. 103
8. Алгоритмическая логика ......................................................................................................................................... 105
8.1.
Пропозициональная динамическая логика ............................................................................................... 106
8.2.
Логика Хоара ................................................................................................................................................. 108
4
1. Понятия математической логики
Логика как наука впервые упоминается в трудах греческого философа Аристотеля (384322г. до н.э.). С тех времен эта наука учит, как надо правильно рассуждать, правильно делать
умозаключения и получать верные суждения. Поэтому было признано, что логика должна
содержать счетное и конечное множество правил рассуждения для вывода новых, но верных
высказываний. Основное правило, установленное еще в трудах Аристотеля, утверждает, что
из двух известных и правильных суждений можно получить новое и верное суждение. Это
правило получило название силлогизм.
Без серьезных изменений эта наука просуществовала более двадцати столетий.
Традиционную логику стали подвергать критике лишь в конце XVII века, когда немецкий
математик Г. Лейбниц (1646-1716) впервые ввел в логику математические символы и
некоторые математические правила. Это позволило заменить некоторые выводы
вычислениями. Дальнейшее развитие в логику внесли английский математик Д. Буль (18151864), американский математик Пост, немецкие математики Г. Фреге (1848-1925) и Д.
Гильберт (1862-1943), итальянский математик Д. Пеано (1858-1932) и многие другие. Так
возникла математическая логика как формальная система, носителем которой явились
символы и последовательности символов, а правила математики позволили дать точное и
удобное определение математического суждения.
Применение символов в логике позволило представить суждения философов в
компактной и удобной форме, а применение правил математики - дать простые алгоритмы
вывода суждений. Центральным понятием, введенным математикой, явилось доказательство:
из положенного с необходимостью вытекает нечто, отличное от положенного.
Во второй половине XX века резко возрос интерес к математической логике. При
решении любой задачи нужно, прежде всего, перевести ее смысл и содержание с
естественного языка на язык математической логики, с языка математической логики на язык
алгоритмов, с языка алгоритмов на язык программирования, а затем применить компьютер
для вывода заключения.
Таким образом, логика - это наука о том, как надо правильно рассуждать, оперируя
понятиями естественного языка, получая верные суждения и делая правильные
умозаключения, для чего логика должна содержать множество правил рассуждения для
вывода новых верных высказываний.
В данном определении использованы три ключевые концепта:
1) Понятие – выражение естественного языка, в котором находят отражение какиелибо признаки предмета, процедуры, события или связей между ними, например,
понятиями являются: «аудитория», «кафедра», «студент» и т.д.
2) Суждение – выражение естественного языка, в котором утверждается (или
отрицается) факт существования предмета, процедуры, события или связей между
ними. Над этими выражениями может быть задана логическая функция,
принимающая значения «истина» или «ложь». Например, выражение «компьютер
5
используется для обработки данных» является истинным суждением, а выражение
«принтер – это устройство для хранения данных» является ложным суждением.
3) Умозаключение – выражение естественного языка, которое позволяет делать
выводы о новых суждениях на основе известных. Например, выражение «если
компьютер используется для обработки данных, то он может решать
вычислительные задачи» выводит новый факт (суждение): «компьютер решает
вычислительные задачи»
Математическая логика вместо выражений на естественном языке использует
математические символы и математические правила, что позволило заменить правила
рассуждения вычислениями. Можно сказать, что этот математический аппарат позволяет
«научить» компьютер «рассуждать», имитируя рассуждения человека при решении
логических задач. Такие возможности компьютера используются на практике для
автоматизации трудно формализуемых задач управления, при решении которых недостаточно
или принципиально невозможно использовать традиционные подходы к алгоритмизации,
требующие знания входных и выходных параметров решения задачи, а также множества
правил (алгоритм) преобразования входных данных в выходные. Именно этот формализм
делает возможным создание систем искусственного интеллекта.
Структура математической логики:
1. Классическая логика. Является истиннозначной, т.е. любое суждение или
умозаключение должно иметь одно из значений – истина или ложь. Включает
разделы:
o Логика высказываний. Предмет исследования – естественно-языковые
предложения (фразы), целиком подвергающиеся анализу. Включает
подразделы: алгебра высказываний и исчисление высказываний;
o Логика предикатов. Предмет исследования – естественно-языковые
предложения (фразы), элементы (отдельные слова или словосочетания)
которых подвергаются анализу. Включает подразделы: алгебра предикатов и
исчисление предикатов;
o Реляционная логика. Предмет исследования - множества однородных
предложений, имеющих одинаковую структуру, каждое из которых
утверждает отдельный факт. Включает подразделы: реляционная алгебра и
реляционное исчисление.
2. Неклассическая логика. Допускает континуальное множество истинностных
значений высказываний. Включает разделы:
o Нечёткая логика (fuzzy logic) оперирует с высказываниями, истинность
которых может принимать любые рациональные значения на интервале [0, 1].
Даже неточные знания позволяют с помощью логической системы делать
достаточно близкие к истине заключения. Например, мнения экспертов при
формировании базы знаний экспертных систем могут быть противоречивыми,
6
но использование логической системы позволяет снять эти ограничения и
обеспечить пользователя нужными знаниями. Поэтому нечёткая логика
определила развитие экспертных систем и систем искусственного интеллекта.
Включает подразделы: нечеткая алгебра и нечеткое исчисление;
o Модальная логика (modal logic) оперирует с так называемыми кванторами
модальности высказываний (например, необходимо и возможно). Это
определило развитие темпоральной (или временнóй) и алгоритмической
логик:
 Темпоральная логика (temporal logic) исследует модальные связи
фактов во времени, описываемые в высказываниях: того, что «должно
быть», и того, что «может быть» в прошлом и/или будущем. Эти
знания позволяют с помощью логической системы организовать
упорядоченное взаимодействие двух или нескольких процессов во
времени. Например, параллельные вычисления на компьютере.
 Алгоритмическая логика (algorithmic logic) показывает, что и как
надо делать для достижения очередного результата. Это позволяет
организовывать доказательство правильности программ, используя
логическую систему и раскрывая семантику языка программирования.
2. Логика высказываний
Элемент для исследования – высказывание (элементарное высказывание, или атом), в
котором фиксируется некоторый факт. Каждое такое высказывание - пропозициональная
переменная (ПП) - оценивается как истинное или ложное с помощью значений из множества
{«истина» («и»), «ложь» («л»)}. Будучи оцененным таким образом, высказывание становится
суждением:
Обозначение
Пропозициональная
пропозициональной
Оценка ПП
переменная
переменной (ПП)
A
Компьютер – электронное вычислительное
истина
устройство
B
Компьютер используется для автоматизации
истина
информационных процессов
C
Винчестер – разновидность внешней памяти
истина
компьютера
D
Винчестер входит в состав компьютера
истина
E
Операционные системы – вид прикладного
ложь
программного обеспечения
F
Винчестер – это вид огнестрельного оружия
истина
Из элементарных высказываний строятся сложные высказывания с помощью
грамматических связок (в естественном языке) или с помощью логических связок – в
математической логике:
7
Грамматическая связка
не; нет; неверно
и; также; как…, так и …;
или
если…, то…;
тогда…, когда…;
поскольку…, постольку…;
при наличии… следует…;
из… следует…;
…влечет…
…тогда и только тогда, когда…;
для того, чтобы…, необходимо и достаточно, чтобы…;
…лишь при условии…;
…если и только если…
Логическая связка
обозначение
название
Отрицание

Конъюнкция
|
Дизъюнкция

Импликация


Эквивалентность
Логически связки имеют приоритет (от наиболее сильной к наиболее слабой): , , ,
, .
2.1.
Алгебра высказываний
2.1.1. Основные понятия
Алгебра высказываний позволяет определять истинность или ложность сложных
высказываний на основании истинности или ложности простых высказываний, входящих в их
состав.
Логические связки обозначают логические операции над высказываниями, а правила
исполнения таких операций формируют алгебру высказываний:
Авыск=<T, , {и, л}>,
где T={A, B, C, …} – множество ПП,

= {, , , , , } – множество логических операторов и отношений, причем 
- «равносильность», формирует отношение сравнения двух правильно построенных
выражений (формул) - .
Правила построения сложных высказываний в виде последовательности
пропозициональных переменных из множества Т, логических связок  и вспомогательных
символов (, ) определяют возможность формального описания суждений естественного языка.
Для этого сложные высказывания должны отвечать определенным синтаксическим правилам,
что позволяет их отнести к правильно построенным формулам – ППФ:
1. Любая ПП есть ППФ,
2. Если 1 и 2 – ППФ, то ППФ являются:
• (i), i{1,2};
8
•
•
•
•
•
•
3.
 i, i{1,2};
(1  2);
(1  2);
(1  2);
(1  2);
(1  2),
Никаких других ППФ в алгебре высказываний нет.
Примеры сложных высказываний
Пусть
ПП
Значение ПП
A Компьютер – электронное вычислительное устройство
B Компьютер используется для автоматизации информационных процессов
C Винчестер – разновидность внешней памяти компьютера
D Винчестер входит в состав компьютера
Тогда:
АВ:= «Компьютер – электронное вычислительное устройство, используемое для
автоматизации информационных процессов»
А:= «Компьютер не является электронным вычислительным устройством»
СD:= «Винчестер является разновидностью внешней памяти компьютера тогда и
только тогда, когда он входит в состав компьютера»
DC:= «Если винчестер входит в состав компьютера, то он является разновидностью
его внешней памяти»
2.1.1.1.
Практика по формальному представлению сложных высказываний
1. Даны ПП:
• А:=«Компьютер содержит основной процессор»
• В:=«Компьютер содержит оперативную память»
• С:=«Компьютер содержит контроллеры»
• D:=«Компьютер содержит порты ввода-вывода»
Задание: формально записать высказывание «Компьютер содержит основной процессор,
оперативную память, контроллеры, порты ввода-вывода»
Решение: =(АВСD)
9
2. Даны ПП:
• А:=«По проводнику протекает электрический ток»
• В:=«Вокруг проводника есть магнитное поле»
Задание: формально записать высказывание «Если по проводнику протекает электрический
ток, то вокруг проводника возникает магнитное поле»
Решение: =(АВ)
3. Даны ПП:
• А:=«Выполнить загрузку в компьютер операционной системы»
• В:=«Включить компьютер»
Задание: формально записать высказывание «Чтобы выполнить загрузку в компьютер
операционной системы, необходимо и достаточно его включить»
Решение: =(АВ)
4. Даны ПП:
 А:=«подготовка специалистов высокой квалификации»
 В:=«развитие вузовской науки»
 С:=«усиление связи вузовской, академической и отраслевой науки»
 D:=«обеспечение единства научной и учебной работы»
Задание: формально записать высказывание «Подготовка специалистов высокой
квалификации возможна лишь на базе всемерного развития вузовской науки, усиления
связи вузовской, академической и отраслевой науки, обеспечения единства научной и
учебной работы».
Решение: Ф=(B&C&DА).
5. Дано высказывание: «Хлеба уцелеют в различных погодных условиях тогда и только
тогда, когда будут выполнены все мелиоративные работы, а если хлеба не уцелеют,
то фермеры обанкротятся и оставят фермы».
Задание: дать его формальное описание.
Решение:
Введем обозначения:
 «хлеба уцелеют» – A1,
 «различные погодные условия» – A2,
 «выполнены все мелиоративные работы» – B,
 «фермеры обанкротятся» – С1,
 «фермеры оставят фермы» – C2.
Формальная запись высказывания имеет вид: Ф=(В(A1&A2))&(A1(C1&C2)).
6. Дано высказывание: «Если я поеду автобусом, и автобус опоздает, то я опоздаю на
работу. Если я опоздаю на работу, то я не сделаю в срок важную работу. Если я не
сделаю в срок важную работу, то я лишусь премии. Следовательно, если я не поеду
10
автобусом, то я сделаю в срок важную работу и не лишусь премии».
Задание: дать его формальное описание.
Решение:
Введем обозначения:
 «я поеду автобусом» – A,
 «автобус опоздает – B,
 «я опоздаю на работу» – C,
 «я лишусь премии» – D,
 «я сделаю в срок важную работу» – Е.
Данное высказывание является примером умозаключения. Формальный признак этого наличие слова «следовательно», что свидетельствует о некотором выводе на основании
определенные исходных данных. Тогда основание для вывода называется посылкой, а
результат вывода – заключением. Для записи высказывания такой структуры имеется
специальная форма в виде дроби, в которой вверху записывается посылка, а внизу –
заключение.
Формальная запись высказывания имеет вид:
Ф=
7. Дано высказывание: «Обвиняемый может быть либо исполнителем, либо
организатором совершенного преступления. Обвиняемый является организатором
преступления. Следовательно, он не является исполнителем преступления».
Задание: дать его формальное описание.
Решение:
Введем обозначения:
 «обвиняемый – исполнитель совершенного преступления» – A,
 «обвиняемый – организатор совершенного преступления» – В.
Поскольку в высказывании есть слово «следовательно», речь идет о умозаключении.
Посылками являются, с одной стороны некоторые правила о том, кем может быть
обвиняемый, а с другой – факт того, кем на самом деле является обвиняемый.
Постановка задачи провоцирует использовать для формализации первой посылки связку
«или»: АВ, что соответствует неисключающему «или», когда истинность сложного
высказывания определяется истинностью хотя бы одного из них. Однако по смыслу
высказывания в нем подразумевается исключающее «или», когда истинность сложного
высказывания определяется истинностью только одного высказываний, при этом второе
должно быть ложным. Тогда эту посылку можно перефразировать так: «Неверно, что
обвиняемый является исполнителем преступления тогда и только тогда, когда он является
его заказчиком».
Формальная запись высказывания имеет вид:
11
Ф= (A  B), B
A.
8. Даны высказывания:
 A:= «в компьютере применяют матричный принтер»,
 B:= «в компьютере применяют струйный принтер»,
 C:= «в компьютере применяют лазерный принтер».
Дана формула: Ф=(ABC).
Задание: какое высказывание представляет данная формула?
Решение: она представляет высказывание «В компьютере применяют матричный,
струйный или лазерный принтер».
9. Даны высказывания:
 A:= «на упругое тело оказывают влияние внешние силы»,
 B:=«в упругом теле возникают внутренние силы, препятствующие изменению
формы».
Дана формула Ф=(A→B).
Задание: какое высказывание представляет данная формула?
Решение: она представляет высказывание «Если на упругое тело оказывают влияние
внешней силы, то в нем возникают внутренние силы, препятствующие изменению
формы».
10. Даны высказывания:
 A:= «быть четным числом»
 B:= «число делится на два».
Дана формула Ф=(A ↔B)
Задание: какое высказывание представляет данная формула?
Решение: она представляет высказывание «Для того, чтобы число было четным,
необходимо и достаточно, чтобы оно делилось на два».
11. Даны высказывания:
 A:= «урожай будет стабильным ежегодно»
 B:= «выполнены все ирригационные работы».
Дана формула Ф=(A↔B)
Задание: какое высказывание представляет данная формула?
Решение: она представляет высказывание «Урожай будет стабильным ежегодно тогда и
только тогда, когда будут выполнены все ирригационные работы».
2.1.2. Таблицы истинности
Алгебра высказываний позволяет определить истинность или ложность сложного
высказывания на основе истинности или ложности высказываний, входящих в его состав. Для
этого используются таблицы истинности базовых логических операций:
12
1) Для отрицания
 
И Л
Л И
2) Для конъюнкции
1 2 12
Л
Л
И
И
Л
И
Л
И
Л
Л
Л
И
3) Для дизъюнкции
1 2 12
Л
Л
И
И
Л
И
Л
И
Л
И
И
И
4) Для импликации
1 2 12
Л
Л
И
И
Л
И
Л
И
И
И
Л
И
5) Для эквивалентности
1 2 12
Л
Л
И
И
Л
И
Л
И
И
Л
Л
И
Значение формулы полностью определяется значениями входящих в нее
пропозициональных переменных в соответствии с логическими связками, связывающими
простые и сложные высказывания.
Рассмотрим использование таблиц истинности для решения прикладных задач.
Пусть оценивается деятельность некоторого вуза во время его аккредитации. Работа
вуза регламентируется правилом: «Подготовка специалистов высокой квалификации
возможна лишь на базе всемерного развития вузовской науки, усиления связи вузовской,
академической и отраслевой науки, обеспечения единства научной и учебной работы».
13
Данное правило с помощью ПП:
 А:=«подготовка специалистов высокой квалификации»
 В:=«развитие вузовской науки»
 С:=«усиление связи вузовской, академической и отраслевой науки»
 D:=«обеспечение единства научной и учебной работы»
формально записано так: Ф=(B&C&DА).
Сформируем таблицу истинности для этого высказывания:
№ п/п
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
B
л
л
л
л
и
и
и
и
л
л
л
л
и
и
и
и
С
л
л
и
и
л
л
и
и
л
л
и
и
л
л
и
и
D
л
и
л
и
л
и
л
и
л
и
л
и
л
и
л
и
В&С&D
л
л
л
л
л
л
л
и
л
л
л
л
л
л
л
и
А
л
л
л
л
л
л
л
л
и
и
и
и
и
и
и
и
Ф
и
и
и
и
и
и
и
л
и
и
и
и
и
и
и
и
Проведем интерпретацию полученных результатов:
 Строки 1 – 7 определяют такую работу вуза, когда готовятся «плохие»
специалисты, поскольку А=л. Это оправдано тем, что не выполнялось одно из
требуемых условий (Ф1=л по разным причинам). С такими вузами надо
разбираться, прежде чем принимать решение.
 Строки 9 – 16 определяют такую работу вуза, когда готовятся «хорошие»
специалисты (А=и), причем для строк 9 – 15 это выполняется, несмотря на то,
что не все условия соблюдены (Ф1=л), в то время как в строке 16 такой результат
оправдан созданными условиями (Ф1=и). Аккредитация этих вузов продлевается
безусловно.
 Строка 8 соответствует такому вузу, который «нарушает» принятое правило
работы вузов (Ф=л): несмотря на созданные благоприятные условия, он готовит
«плохих» специалистов. Скорее всего, его аккредитация не будет продлена.
14
Можно предложить такую технологию работы с формализмом Ф=(B&C&DА) при
практическом решении поставленной задачи:
1) Некоторый транслятор преобразует данное правило в таблицу истинности, причем в
случае использования оптимизирующего транслятора останется только правило,
соответствующее строке 8.
2) Вводятся оценки работы некоторого вуза по критериям А, В, С, D, выставленные из
множества {и,л}.
3) По таблице истинности определяется «положение» вуза. Если это строка 8 –
аккредитация вузу не продлевается.
2.1.3. Законы алгебры высказываний
При определении значения сложной формулы используются законы алгебры
высказываний, которые включают как законы логики, так и специфические законы алгебры
высказываний:
1) Законы логики:
• Закон тождества – используемые понятия не должны ни изменяться, ни подменяться в
ходе одного и того же рассуждения;
• Закон непротиворечия – невозможно, чтобы одно и то же в одно и то же время было и
не было присуще одному и тому же в одном и том же отношении;
2) Специфические законы (аксиомы) алгебры высказываний - используют понятие
равносильности () формул:
 две формулы являются равносильными, если они имеют одинаковое значение при
одинаковых наборах ПП;
 если две формулы равносильны, то они эквивалентны между собой;
 если две формулы эквивалентны между собой, то они равносильны.
Специфические законы алгебры высказываний
Имя закона
Равносильные формулы
Коммутативности
(AB)  (BA), (AB)  (B A)
Ассоциативности
A(BC)  (AB)C,
A(BC)  (AB) C
Дистрибутивности
A(BC)  (AB) (AC),
A(BC)  (AB) (AC)
Идемпотентности
AA  A, AA  A
Исключения третьего
AA  и
Противоречия
AA  л
Де Моргана
(AB)  AB, (AB)  AB
Поглощения
A(AB)  A, A(AB)  A
Порецкого
A(AB)  (AB), A(AB)  (AB)
Обобщенного склеивания ABAB  ABABB
(AB)(AB)  (AB)(AB)B
15
Имя закона
Дополнения
Константы
Для импликации
Для эквивалентности
Равносильные формулы
(A)  A
Aл  A, Aи  и, Aл  л, Aи  A
(AB)  (A B)  (A B)
(AB)  (A B)(BA)
Законы поглощения, Порецкого и обобщенного склеивания являются производными
относительно остальных в этой таблице: они могут быть выведены из них.
Для проверки справедливости некоторых законов можно использовать таблицы
истинности.
2.1.4. Эквивалентные преобразования формул
Знание законов алгебры высказываний позволяет выполнять эквивалентные
преобразования любой ППФ для замены одних логических операций на другие, сохраняя ее
значение для всех наборов ПП. Эти эквивалентные преобразования определяются правилом
подстановки вида:
Fj
 F (F )
i
Fi
F (Fj )
Это правило выполняет замену подформулы в формуле: если формула F содержит
подформулу Fi, которая, в свою очередь, имеет эквивалентную формулу Fj, то возможна
подстановка в формулу F всюду вместо формулы Fi формулы Fj.
Например, даны формулы F=(A&CA) и A=(CB). Выполнить подстановку в
формулу F подформулы А:
С В
 ( A & (C  A))
А
(C  B) & (С  (C  B))
2.1.4.1. Практика по эквивалентному преобразованию формул
1. Вывести закон поглощения вида: A(AB)A.
Решение:
 применим к левой части тождества закон константы: A(A&B) = (A&и)(A&B)
 по закону дистрибутивности: (A&и)(A&B)=A&(иB)
 по закону константы: A&(иB)=A
16
2. Вывести закон поглощения вида: A(AB)A.
Решение:
 применим к левой части тождества закон константы: A&(AB)=(Aл)&(AB)
 по закону дистрибутивности: (Aл)&(AB)=A(л&B)
 по закону константы: A(л&B)=A
3. Вывести закон Порецкого вида: A(AB)(AB).
Решение:
 применим к левой части тождества закон дистрибутивности:
A(AB)=(AA)(AB)
 по закону исключения третьего: (AA)(AB)=и(AB)
 по закону константы: и(AB)=(AB)
4. Вывести закон Порецкого вида: A(AB)(AB).
Решение:
 применим к левой части тождества закон дистрибутивности:
A&(AB)=(A&A)(A&И)
 по закону противоречия: (A&B)(A&B)=л(A&B)
 по закону константы: л(A&B)=(A&B)
5. Вывести закон обобщенного склеивания вида:
ABABABABB
Решение:
1) преобразуем правую часть тождества:
 по закону константы: ABABB=ABABи&B
 по закону дистрибутивности: ABABи&B=B&(AAи)
 по закону константы: B&(AAи)=B
2) преобразуем левую часть тождества:
 по закону дистрибутивности: ABAB=B&(AA)
 по закону исключения третьего: B&(AA)=B
3) сравним полученные результаты в шагах 1 и 2: B=B
6. Упростить формулу (12)(34)(12)(34).
Решение:
 удалим связку : (12)(34)(12)(3 4)
 по закону де Моргана: (12)(34)(12)(34)
 по закону дистрибутивности: (34)((12)(12))
 по закону дистрибутивности: (34)2(11)
 по закону исключенного третьего: (34)2и
 по закону констант: (34)2.
17
7. Доказать тождество: (AB)(AB)A.
Решение:
 по закону дистрибутивности: (AB)(AB)=A(BB)
 по закону противоречия: A(BB)=А.
8. Доказать тождество: (AB)(BC)(CA)(AB)(BC)(CA),
Решение:
 по закону дистрибутивности:
(AB)(BC)(CA)=A&(BC)BC=A&BА&CB&C
9. Доказать тождество: (AB)(AC)(BD)(CD)((AD)(BC)).
Решение:
 по закону дистрибутивности
(AB)(AC)(BD)(CD)=(A(B&C))&(D(B&C))=((AD)(BC))
10. Доказать тождество: (ABС)(BCD)(CDA)((AB)(AD)(BD)C).
Решение:
 по закону дистрибутивности:
(A&B&CB&B&C&C&B&C)(A&C&CB&CCC&C&C)(A&D&CB&D&CC&D&C)
(A&B&DB&B&DC&B&D)(A&C&DB&C&DC&C&D)(A&D&DB&D&DC&D&D)
(A&B&AB&B&AC&B&A)(A&C&AB&C&AC&C&A)(A&D&AB&D&AC&D&A)
 по законам идемпотентности и поглощения:
((A&B)(A&D)(B&D)C).
2.1.5. Нормальные формы формул
В алгебре высказываний используют две нормальные формы: дизъюнктивную (ДНФ)
и конъюнктивную (КНФ):
• Дизъюнктивная нормальная форма (ДНФ) – дизъюнкция элементарных конъюнкций:
Ф=К1К2К3К3…, где Кi=(А&В&С&…);
• Конъюнктивная нормальная форма (КНФ) – конъюнкция элементарных дизъюнкций:
Ф=D1&D2&D3&D3…, где Di=(АВС…).
Алгоритм приведения к нормальной форме:
1. Устранить всюду связки  и  по законам для импликации и для эквивалентности:
•
(AB)  (AB)  (AB)
•
(AB)  (A B)(B A)
2. Используя законы дополнения и де Моргана, продвинуть отрицание до ПП:
•
(A)  A,
•
(AB)  (AB)
•
(AB)  (AB)
3. Применить закон дистрибутивности:
•
для КНФ A(B&C)  (AB)&(AC)
18
•
для ДНФ A&(BС)  (A&B)(A&C)
Кроме нормальных форм существуют совершенные нормальные формы - в них в
каждой элементарной конъюнкции или дизъюнкции присутствуют все ПП.
Алгоритм преобразования ДНФ к виду СДНФ:
1. Если в элементарную конъюнкцию Ф не входит подформула Фi или Фi , то шаг2.
Иначе – конец.
2. Дополнить элементарную конъюнкцию формулой (ФiФi) и выполнить
преобразование формулы по закону дистрибутивности Ф&(ФiФi)Ф&ФiФ&Фi
3. Повторить шаг 1.
Алгоритм преобразования КНФ к виду СКНФ:
1. Если в элементарную дизъюнкцию Ф не входит подформула Фi или Фi, то шаг2.
Иначе – конец.
2. Дополнить элементарную дизъюнкцию формулой (Фi&Фi) и выполнить
преобразование формулы по закону дистрибутивности Ф(ФiФi)(ФФi)(ФФi)
3. Повторить шаг 1.
Элементарные конъюнкции СДНФ формируются для значений формулы, равных “и”,
т.е. число элементарных конъюнкций СДНФ равно числу истинных значений формулы.
Пропозициональные переменные элементарной конъюнкции записываются без изменений,
если их значение равно “и” и с логической связкой “¬”, если их значение равно “л”.
Элементарные дизъюнкции СКНФ формируются для значений формулы, равных “л”,
т.е. число элементарных дизъюнкций СКНФ равно числу ложных значений формулы.
Пропозициональные переменные элементарной дизъюнкции записываются без изменений,
если их значение равно “л” и с логической связкой “¬”, если их значение равно “и”.
Можно сформировать логические формулы в форматах СДНФ и СКНФ по таблицам
истинности, а не по приведенным выше правилам.
Пусть дана таблица истинности для некоторого сложного высказывания:
№ п/п
1
2
3
4
5
6
7
8
9
10
11
B
л
л
л
л
и
и
и
и
л
л
л
С
л
л
и
и
л
л
и
и
л
л
и
D В&С&D А
л
л
л
и
л
л
л
л
л
и
л
л
л
л
л
и
л
л
л
л
л
и
и
л
л
л
и
и
л
и
л
л
и
Ф
и
и
и
и
и
и
и
л
и
и
и
19
№ п/п
12
13
14
15
16
B
л
и
и
и
и
С
и
л
л
и
и
D В&С&D А
и
л
и
л
л
и
и
л
и
л
л
и
и
и
и
Ф
и
и
и
и
и
Необходимо:
1) Сформировать формальную запись этого высказывания в форматах СДНФ и СКНФ,
2) Упростить формулу в формате СКНФ.
Решение:
1) Для формирования СДНФ используем в заданной таблице строки, для которых Ф=и.
Видно, что число элементарных конъюнкций равно 15 – по числу таких значений Ф.
СДНФ показана ниже (индекс элементарной конъюнкции соответствует номеру строки
таблицы истинности):
(А&В&С&D)1(А&В&С&D)2(А&В&С&D)3(А&В&С&D)4
(А&В&С&D)5(А&В&С&D)6(А&В&С&D)7(А&В&С&D)9
(А&В&С&D)10(А&В&С&D)11(А&В&С&D)12(А&В&С&D)13
(А&В&С&D)14(А&В&С&D)15(А&В&С&D)16
2) Для формирования СКНФ используем в заданной таблице строки, для которых Ф=л.
Видно, что в этом случае число элементарных конъюнкций равно 1. СКНФ показана
ниже (индекс элементарной дизъюнкции соответствует номеру строки таблицы
истинности): (АВСD)8
3) Выполним эквивалентные преобразования полученной СКНФ:
(АВСD)= (А(В&С&D))=(В&С&D)А
Как видно по результату, формула аналогична модели высказывания одной из
рассмотренных ранее задач - по аккредитации вуза.
2.1.5.1. Практика по преобразованию формул к нормальным формам
1. Преобразовать к виду КНФ формулу (Ф1(Ф2Ф3))Ф4.
Решение:

удалим символ : (Ф1(Ф2Ф3))Ф4

выполним операцию отрицания: (Ф1Ф2Ф3)Ф4

по закону дистрибутивности: (Ф1Ф4)&(Ф2Ф4)(Ф3Ф4).
2. Преобразовать к виду КНФ формулу: ((AB)(CA))(BC).
Решение:
 удалим логические связки :
((AB)(CA))(BC)=((AB)(CA))(BC)
 по закону де Моргана:
20
3.
4.
5.
6.
((AB)(CA))(BC)=((A&B)(CA))(BC)=
((A&B)&(CA))(BC)=(AB)&C&ABC
 по закону дистрибутивности: (AB)&C&ABC=A&C&AB&C&ABC
 по законам противоречия и дистрибутивности:
A&C&AB&C&ABC=B&C&ABC=(BBC)&(CBC)&(ABC)
 по законам идемпотентности и исключенного третьего:
(BBC)&(CBC)&(ABC)=(BC)&(ABC)
 по закону поглощения: (BC)&(ABC)=(BC).
Полученный результат - элементарная дизъюнкция КНФ.
Преобразовать к виду ДНФ формулу: ((((AB) A) B) C)C.
Решение:
 устраним логические связки : ((((AB)A)B)C)C,
 по закону де Моргана:
((((A&B)A)B)C)C=(((BA)B)C)C=
=(((B&A)B)C)C=((AB)C)C=((A&B)C)C=
=(A&B)&C)C=(AB)&CC,
 по
закону дистрибутивности:
(AB)&CC=A&CB&CC.
Это
три
элементарных конъюнкции ДНФ,
 по закону поглощения: (A&CB&CC)=С.
Преобразовать к виду ДНФ формулу: (A(BC))(AC)(AB).
Решение:

устраним логические связки : (A(BC))((AC)(AB)),

по закону де Моргана:
(A&(BC))A&C(AB)=(A&B&C)(A&C)AB.
Результат - четыре элементарных конъюнкции ДНФ.
Преобразовать к виду КНФ формулу: (A&(BC))((A&B)C).
Решение:

устраним логические связки : (A&(BC))((A&B)C),

по законам дистрибутивности, идемпотентности и поглощения:
A&BA&CA&BC=A&BC,

по закону дистрибутивности: (AC)&(BC).
Результат - две элементарных дизъюнкции КНФ.
Преобразовать к виду КНФ формулу: (СA)((BC)A).
Решение:

устраним логические связки  и : (СA)((BC)A)=C&ABCA,

по законам идемпотентности, дистрибутивности и исключения третьего:
(CBCA)&(ABCA)=(ABC).
21
Результат - одна элементарная дизъюнкция КНФ.
7. Преобразовать к виду СДНФ формулу: (A&¬В)∨(A&¬C&D).
Решение:
(A&¬B&(C∨¬C))∨(A&¬C&D&(B∨¬B))=
(A&¬B&C)∨(A&¬B&¬C)∨(A&B&¬C&D)∨(A&¬B&¬C&D)=
(A&¬B&C&(D∨¬D))∨(A&¬B&¬C&(D∨¬D))∨(A&B&¬C&D)∨(A&¬B&¬C&D)=
(A&¬B&C&D)∨(A&¬B&C&¬D)∨(A&¬B&¬C&D)∨(A&¬B&¬C&¬D)∨(A&B&¬C&D)∨
(A&¬B&¬C&D)
8. Преобразовать к виду СКНФ формулу: (A∨B)&(¬A∨¬B∨C∨D).
Решение:
(A∨B∨С&¬С)&(¬A∨¬B∨C∨D)=
(A∨B∨C)&(A∨B∨¬C)&(¬A∨¬B∨С∨D)=
(A∨B∨С∨D&¬D)&(A∨B∨¬C∨D&¬D)&(¬A∨¬B∨С∨D)=
(A∨B∨С∨D)&(A∨B∨С∨¬D)&(A∨B∨¬С∨D)&(A∨B∨¬С∨¬D)&(¬A∨¬B∨С∨D)
2.2. Исчисление высказываний
Правила вывода новых высказываний, основанные на известных высказываниях,
имеющих значение «истина», представляют исчисление высказываний (ИВ). В этом случае
высказывания, из которых делают вывод новых высказываний, называют посылками, а
получаемое новое высказывание – заключением.
Исчисление высказываний – это формальная система вида:
<, , , P>,
где Т – терминальный алфавит системы – множество базовых символов, из
которых строятся произвольные выражения системы - ППФ;
Т ={A, B, C, …} - множество пропозициональных переменных,
 = {, , , , , , } - множество логических операторов и отношений, включая
символ выводимости,
 – множество синтаксических правил, позволяющих формировать ППФ формальной
системы:
ППФ::=()|()|(12)|(12)|(12)|(12)|(12)|(1,...,n) |
,
где Ф – это ППФ, причем ПП – это ППФ,
 – аксиомы формальной системы - подмножество ППФ, истинность которых
принимается без доказательств, для ИВ это высказывания, имеющие значение истины при
любых значениях входящих в состав ПП. К аксиомам относятся также и исходные
высказывания, которые всегда истинны,
Р – правила вывода формальной системы. Для ИВ каждое из этих правил описывает,
как формировать новое высказывание из исходных и уже построенных высказываний, т.е. это
22
такое отношение между высказываниями, которое позволяет из множества посылок и аксиом
делать выводы об истинности заключения.
Доказательством, или выводом, называют такую линейно упорядоченную
последовательность высказываний, каждое из которых является либо аксиомой, либо
выводимо из одного или нескольких предыдущих высказываний.
Задание необходимого числа аксиом определяет полноту исчисления, а задание
правил вывода – метод исчисления.
Определение истинного или ложного значений формулы высказывания для данного
набора ПП называют интерпретацией, а все множество формул - полем интерпретации.
Все множество формул ИВ можно разбить на три класса: тождественно истинные,
тождественно ложные и выводимые.
Тождественно истинные формулы – это особый класс формул, которые принимают
значение «истина» при любом значении ПП, входящих в формулу. Эти формулы играют роль
аксиом и законов логики высказываний.
Тождественно ложные формулы - это особый класс формул, которые принимают
значение «ложь» при любых значениях ПП, входящих в формулу.
Выводимые формулы - это класс формул, которые принимают значения истина или
ложь в зависимости от значений ПП.
2.2.1. Аксиомы исчисления высказываний
Среди множества тождественно истинных формул можно выделить подмножества,
которые представляют аксиомы исчисления высказываний. В зависимости от числа
логических связок могут быть найдены различные полные системы аксиом:
1) Логические связки  и :
(A(BA)),
(A(BC))((AB)(AC)),
(AB)((AB)A).
2) Логические связки , , , :
А1. A(BA),
А2. (AB)((BC)(AC)),
А3. (AB)A,
А4. (A&B)B,
А5. A(B(A&B)),
А6. A(AB),
А7. B(AB),
А8. (AC)((BC)((AB)C)),
А9. (AB)(BA),
А10. (AB)((AC)(BC)),
23
А11. (AB)((AC)(BC)),
А12. AA
Существует два способа доказательства того, что приведенные ППФ являются
аксиомами:
 через таблицы истинности – каждая сложная формула, соответствующая
аксиоме, будет принимать только значение «истина»,
 через эквивалентные преобразования – всегда будет получаться значение
истины.
Для облегчения преобразования сложных формул в процессе вывода будем
использовать несколько другую запись аксиом - в виде алгебраических правил введения и
удаления логических связок. Часть этих правил соответствует аксиомам ИВ, а часть –
специфическим законам алгебры высказываний (их использование облегчает вывод):
 П1. Правило введения логической связки &: если формулы A и В истинны, то
истинной является их конъюнкция (аксиома А5):
A, В
AB
 П2. Правило удаления логической связки &: если формула (AB) истинна, то
истинными являются формулы A, B, т.е. (аксиомы А3 и А4):
AB
AB
A
B
 П3. Правило введения логической связки : если хотя бы одна из формул A или
B истинна, то истинной является их дизъюнкция, т.е. (аксиомы А6 и А7):
A
B
AB
AB
 П4. Правило удаления логической связки : если формула AB истинна, то
истинными могут быть формулы A (при ложности В) или B (при ложности А),
т.е.:
AB, B
AB, A
A
B
 П5. Правило введения логической связки : если формула B истинна, то
истинной является формула (A B) при любом значении A, т.е. (аксиома А1 –
«истина из чего угодно»):
B
AB
 П6. Правило контрапозиции: если формула (AB) истинна, то истинной
является формула (BA), т.е. (аксиома А9):
AB
BA
24
 П7. Правило введения в формулу (AB) логической связки : если формула
(AB) истинна, то истинной является формула (AC)(BC) при любом
значении C, т.е. (аксиома А11):
(AB)
(AC)(BC)
 П8. Правило введения в формулу (AB) логической связки : если формула
(AB) истинна, то истинной является формула (A&C)(B&C) при любом
значении C, т.е. (аксиома А10):
(AB)
(AC)(BC)
 П9. Правило силлогизма: если формулы (AB) и (BC) истинны, то истинной
является формула (AC), т.е. (аксиома А2):
(AB), (BC)
(AC)
 П10. Правило введения логической связки : если формулы (AB) и (BA)
истинны, то истинной является формула (AB), т.е.:
(AB), (BA)
(AB)
 П11. Правило удаления логической связки : если формула (AB) истинна, то
истинными являются формулы (AB) и (BA), т.е.:
(AB)
(AB)
(AB)
(BA)
 П12. Правило объединения формул (AC) и (BC): если формулы (AC) и
(BC) истинны, то истинной является формула ((AB)C), т.е. (аксиома А8):
(AC), (BC)
((AB)C)
Связь между аксиомами и приведенными правилами очевидна: посылки импликации в
аксиомах, как правило, являются посылками для заключения в правилах. Так выражается
связь между логическим выводом и импликацией (об этом - далее).
2.2.2. Метод дедуктивного вывода
Выводом формулы Ф из множества формул A,B,C… называется такая
последовательность формул, что любая формула из этой последовательности есть либо
аксиома (включая исходные высказывания), либо выводима из множества предшествующих
ей формул. В этом случае формулу Ф называют заключением, а последовательность формул,
получаемых в ходе вывода, - схемой дедуктивного вывода.
25
Формальная запись вывода:
A, B, C…  Ф
или
Связь между отношением логического вывода (в схеме дедуктивного вывода) и
импликацией (в схеме закона алгебры высказываний):
 A&B&C…Ф
Именно это соотношение позволяет применить правила введения и удаления
логических связок вместо самих аксиом в логическом выводе.
Вывод заключения всегда логически следует из множества посылок и аксиом и
опирается на два основных правила:
1. Modus ponens – m.p. - (прямое доказательство): если A и (AB) - выводимые формулы,
то B также выводимая формула, т.е.
2. Modus tollens - m.t. - (доказательство от противного): если B и (AB) - выводимые
формулы, то A также выводимая формула, т.е.
Оба правила являются отражением части таблицы истинности для импликации,
поскольку, по определению дедуктивного вывода, все посылки в нем имеют значение истины:
№ п/п А А В В АВ
1
Л И
Л И
И
2
И Л
И Л
И
Здесь строка 2 соответствует правилу m.p., а строка 1 - правилу m.t. Таким образом
вновь проявляется связь импликации (т.е. алгебры) и дедуктивного вывода (т.е. исчисления).
2.2.2.1. Практика по дедуктивному выводу
1. Дано сложное высказывание: «Всякое общественно опасное деяние наказуемо.
Преступление есть общественно опасное деяние. Дача взятки – преступление.
Следовательно, дача взятки наказуема».
Правилен ли вывод?
Решение:
1. Выделим из высказывания ПП:
•
А:= «Существуют общественно опасные деяния»
•
В:= «Есть наказуемость»
26
•
С:= «Имеются преступления»
•
D:= «Имеет место дача взятки»
2. Запишем формулы-посылки и формулы-заключения:
•
Ф1 = АВ - Всякое общественно опасное деяние наказуемо
•
Ф2 = СА - Преступление есть общественно опасное деяние
•
Ф3 = DC - Дача взятки – преступление
•
Ф4 = DB - Дача взятки наказуема
3. Определим формально постановку задачи:
Ф1, Ф2, Ф3
Ф4
Таким образом, надо определить, истинно ли Ф4, т.е. доказать истинность Ф4.
4. Выполним по шагам дедуктивный вывод:
 Заключение по формулам Ф1 и Ф2 и правилам П9 (силлогизма) и m.p.:
Ф2=(СА), Ф1=(АВ)
Ф5=(СВ)
 Заключение по формулам Ф3 и Ф5 и правилам П9 и m.p.:
Ф3=(DC), Ф5=(СВ)
Ф4=(DB)
Возможно графическое представление схемы вывода:
АВ
СА
DС
П9
СВ
П9
DВ
2.
Доказать истинность заключения:
(A  B),(A  C),(B  D)
(C  D).
Решение:
1. Для удобства пронумеруем посылки:
1 - (AB),
2 - (AC),
3 - (BD).
2. Выполним по шагам дедуктивный вывод, нумеруя получаемые формулы с учетом
номеров посылок:
4 - (AB) – заключение по посылке 1 и правилам эквивалентных
преобразований,
27
5 - (BA) - заключение по формуле 4 и правилу П6,
6 - (BС) - заключение по формулам 2 и 5 и правилу П9,
7 - (СB) - заключение по формуле 6 и правилу П6,
8 - (СD) - заключение по формулам 3 и 7 и правилу П9,
9 - (CD) – заключение по формуле 8, ч.т.д.1
Данному выводу соответствует граф:
(АВ)
(АВ)
П6
АС
BD
П9
П9
(BА)
П6
(ВС))
П6
(СВ)
(СD)
(СD)
3.
Доказать истинность заключения:
((A  B)  C),(C  (D  E)),(E  F),(D & F)
A & C.
Решение:
1. Пронумеруем посылки:
1 - (AB)C,
2 - C(DE),
3 - EF,
4 - D&F.
2. Выполним по шагам дедуктивный вывод, нумеруя получаемые формулы:
5 - D – заключение по посылке 4 и правилу П2,
6 - F – заключение по посылке 4 и правилу П2,
7 - E – заключение по посылке 3, формуле 6 и правилу m.t.,
8 - (D&E) –заключение по формулам 5 и 7 и правилу П1,
9 – (DE) – заключение по формуле 8 и правилам эквивалентных
преобразований,
10 - C – заключение по посылке 2, формуле 9 и правилу m.t.,
11 - (AB)(DE) – заключение по посылкам 1 и 2 и правилу П9,
12 - (AB) – заключение по формулам 9, 11 и правилу m.t.,
1
Что и требовалось доказать
28
13 - (A&B) –заключение по формуле 12 и закону де Моргана,
14 - A – заключение по формуле 13 и правилу П2,
15 - A&C – заключение по формулам 14 и 10 и правилу П1, ч.т.д.
Данному выводу соответствует граф:
(АВ)С
С(DE)
D&F
П2
EF
П9
D
(АВ)(DE)
F
m.t.
E
П1
(D&E)
(DE)
m.t.
C
m.t.
(АВ)
(А&В)
П2
A
П1
А&C
4.
Доказать истинность заключения:
(A  B),(A  B),(B  A)
A & B.
Решение:
1. Пронумеруем посылки:
1 - (AB),
2 - (AB),
3 - (BA).
2. Выполним по шагам дедуктивный вывод, нумеруя получаемые формулы:
4 - (AB) – заключение по посылке 1 и правилам эквивалентных
преобразований формул,
5 - (AA) – заключение по посылке 3, формуле 4 и правилу П9,
6 - (AA) – заключение по формуле 5 и правилам эквивалентных
преобразований,
29
7 - A – заключение по формуле 6 и закону идемпотентности,
8 - (BA) – заключение по посылке 2 и правилу П6,
9 - (BB) – заключение по формулам 8,4 и правилу П9,
10 - (BB) – заключение по формуле 9 и правилам эквивалентных
преобразований,
11 - B – заключение по формуле 10 и закону идемпотентности,
12 - (A&B) – заключение по формулам 7,11 и правилу П1, ч.т.д.
Данному выводу соответствует граф:
(АВ)
(АВ)
П6
(АВ)
(ВA
)
П9
(ВВ)
BА
П9
(AA)
(ВВ)
(АА)
B
A
П1
А&B
5.
Доказать истинность заключения:
((A  B)  C & D),((D  B)  F)
(A  F).
Решение:
1. Пронумеруем посылки:
1 - ((AB)C&D),
2 - ((DB)F).
2. Выполним по шагам дедуктивный вывод, нумеруя получаемые формулы:
3 - (AC)&(BC)&(AD)&(BD) – заключение по посылке 1 и правилам
эквивалентных преобразований,
4 - (AD) – заключение по формуле 3, правилам эквивалентных преобразований
и правилу П2,
5 - (DF)&(BF) – заключение по посылке 2 и правилам эквивалентных
преобразований,
6 - (DF) – заключение по формуле 5 и правилу П2,
7 - (AF) – заключение по формулам 4, 6 и правилу П9, ч.т.д.
30
Данному выводу соответствует граф:
((АВ)С&D)
((DB)F)
(АС)&(BС)&(AD)&(BD)
П2
(АD)
(DF)&(BF)
П2
(DF)
П9
(АF)
6.
Доказать истинность заключения:
(A  B),(C  D),(A  C),(A  D),(C  B)
(D  B).
Решение:
1. Пронумеруем посылки:
1 - (AB),
2 - (CD),
3 - (AC),
4 - (AD),
5 - (CB).
3. Выполним по шагам дедуктивный вывод, нумеруя получаемые формулы:
6 - (BA) – заключение по посылке 1 и правилу П6,
7 - (AC) – заключение по посылке 3 и правилам эквивалентных
преобразований,
8 - (BC) – заключение по формулам 6, 7 и правилу П9,
9 - (BD) – заключение по посылке 2, формуле 8 и правилу П9,
10 - (DA) – заключение по посылке 4 и правилу П6,
11 - (DС) – заключение по формулам 7, 10 и правилу П9,
12 - (DВ) – заключение по посылке 5, формуле 11 и правилу П9,
13 - (DВ) – заключение по формулам 12,9 и правилу П10, ч.т.д.
31
Данному выводу соответствует граф:
(АВ)
П6
(СD)
(ВA)
П9
(АС)
(AD)
П6
(CB)
(AC) (DA)
П9
(DС)
(ВC)
П9
П9
(DВ)
(ВD)
П10
(DB)
Возможна ли автоматизация дедуктивного вывода? Сложность заключается в том, что в
рассмотренных примерах на каждом шаге вывода сознательно выбиралось такое правило,
которое через конечное число шагов приводило к результату – известному заключению.
Подобный подход к решению задачи требует применения интуиции и целенаправленности в
решении задачи, что свойственно человеческому интеллекту.
Тем не менее, важной особенностью дедуктивного метода является то, что он
применяется либо для доказательства правильности некоторого полученного ранее
заключения, как в рассмотренных примерах, либо для вывода множества возможных
заключений из заданных посылок. Последнее свойство дедуктивного метода позволяет
развивать базы знаний, порождая новые знания из тех фактов и аксиом, которые в них
заложены, что активно используется в интеллектуальных информационных системах. Для
иллюстрации этого свойства дедукции вернемся к рассмотренному ранее примеру:
Дано сложное высказывание: «Всякое общественно опасное деяние наказуемо.
Преступление есть общественно опасное деяние. Дача взятки – преступление».
Какие выводы можно сделать из этих посылок?
Решение:
В задаче использовались обозначения:
А:= «Существуют общественно опасные деяния»
В:= «Есть наказуемость»
С:= «Имеются преступления»
D:= «Имеет место дача взятки»
Ф1 = АВ:= «Всякое общественно опасное деяние наказуемо»
Ф2 = СА:= «Преступление есть общественно опасное деяние»
Ф3 = DC:= «Дача взятки – преступление»
32
Применим метод дедукции и представим в виде графа вывод, отличный от
приведенного ранее:
АВ
СА
DС
П9
DА
По правилу силлогизма получена формула DA, соответствующая высказыванию:
«Дача взятки – общественно опасное деяние». Видно, что такое высказывание
отсутствует среди известных и заданных в задаче. Следует отметить, что в выводе не
использована одна из посылок, но это не является логической ошибкой.
Таким образом, общая схема дедуктивного вывода с заданным множеством посылок
может быть представлена следующим алгоритмом построения дерева логических формул:
1) Все заданные посылки принимаются за нулевой уровень иерархии – корень дерева;
2) Ко всем посылкам применяются все возможные правила введения и удаления
логических связок – получается множество формул, образующих первый уровень
иерархии;
3) К выведенным формулам и посылкам вновь применяются все возможные правила
введения и удаления логических связок – получается множество формул,
образующих следующий уровень иерархии;
4) Шаг 3) выполняется многократно, пока ни будут формироваться уже полученные
ранее выводимые формулы – в таком случае дальнейший вывод бессмыслен.
Этой схеме соответствует граф:
Посылки – нулевой уровень дерева
Выведенные формулы –
первый уровень дерева
…
Выведенные формулы – n-ый уровень дерева
Получаемые в процессе вывода формулы и есть новые факты, выводимые из заданной
системы посылок. Именно они обогащают базу знаний интеллектуальной информационной
системы.
33
2.2.3. Метод резолюции
Приведенные схемы дедуктивного вывода неудобны для автоматизации, поскольку
требуют либо сознательного подбора соответствующих правил преобразования и подходящих
формул на каждом шаге вывода, либо перебора множества формул.
Дж. Робинсон показал, что выводимость формулы Ф из множества посылок и аксиом
А, В, С, … равносильна доказательству теоремы: (А&В&С&…Ф)=л. Покажем
обоснованность такого предположения:
1) Запишем формулу связи импликации и выводимости логической формулы:
 (А&В&С&…Ф)
2) Избавимся от импликации:
 ((А&В&С&…)Ф)
3) Применим закон де Моргана:
  (А&В&С&…Ф)
4) Поскольку данная формула выводима (знак ), верна формула
 (А&В&С&…Ф)=и,
следовательно, (А&B&C&…Ф)=л.
Для определения истинности данной формулы достаточно показать ложность одной из
подформул ее левой части. С этой целью Робинсон предложил эффективный алгоритм –
принцип, или метод, резолюции.
Назовем два дизъюнкта, содержащие одинаковые ПП, но с противоположными
знаками, контрарными атомами.
Алгоритм вывода по методу резолюции (при имеющемся заключении):
Шаг 1: принять отрицание заключения, т.е. ¬Ф,
Шаг 2: привести все формулы посылок и отрицания заключения в КНФ,
Шаг 3: сформировать множество К дизъюнктов всех посылок и отрицания заключения:
K = {D1, D2, …, Dk},
Шаг 4: выполнить анализ пар множества K по правилу: если существует пара
элементов, содержащих контрарные атомы, то соединить эту пару логической связкой
дизъюнкции и сформировать новый дизъюнкт - резольвенту, исключив из нее контрарные
атомы,
Шаг 5: если в результате соединения дизъюнктов будет получена пустая резольвента –
аналог ложности формулы (обозначается ), то конец, т.к. доказательство подтвердило
истинность заключения. Иначе включить резольвенту в множество дизъюнктов K и перейти к
шагу 4. При этом по закону идемпотентности любой дизъюнкт и любую резольвенту можно
использовать неоднократно, т.е. из множества К не следует удалять использованные в
соединении дизъюнкты.
34
2.2.3.1. Практика по методу резолюции
1. Доказать истинность заключения:
(АВС),(СDM),(NDM)
(ABN)
Решение:
1. Выполним отрицание заключения:
(ABN)=((А&B)N)=(AB&N)
2. Формируем КНФ из посылок:
АВС=(АВ)С=(АВС) – элементарная дизъюнкция
СDM=(СD)M= (CDM) – элементарная дизъюнкция
NDM=NDM= (ND)(NM)
3. Формируем множество элементарных дизъюнкций К:
К={(АВС), (CDM), (ND), (NM), А, B, N}
4. Формирование резольвент (объединяемые дизъюнкты, содержащие
контрарные атомы, здесь и далее показаны полужирным курсивом):
К={(АВС),(CDM),(ND),(NM),А,B,N}=
{(АВС), (CDM), (ND), (NM), А, B,N,M}=
{(АВС),(CDM),(ND),(NM),А,B,N,М,(CD)}=
{(АВС),(CDM),(ND),(NM),А,B,N,М,(CD),(ABD)}=
{(АВС),(CDM),(ND),(NM),А,B,N,М,(CD),(ABD),(BD)}=
{(АВС),(CDM),(ND),(NM),А,B,N,М,(CD),(ABD),(BD),D}=
{(АВС),(CDM),(ND),(NM),А, B, М,N, (CD),(ABD),(BD),D,N}
5. Сформирована резольвента NN= , ч.т.д.
Возможна демонстрация логического вывода с помощью графа:
(АВС)
(CDM)
(ND)
(NM)
А
B
М
(CD)
(АВD)
(ВD)
D
N

N
35
2. Доказать истинность заключения:
(A  B),(A  C),(B  D)
(C  D).
Решение:
1. Выполним отрицание заключения:
(CD)=C&D
2. Формируем КНФ из посылок:
AC=AC – элементарная дизъюнкция
BD=BD – элементарная дизъюнкция
3. Формируем множество элементарных дизъюнкций К:
K={(AB), (AC), (BD), C, D},
4. Формирование резольвент:
K={(AB), (AC), (BD), C, D}={(AB), (AC), (BD), C, D, A}=
{(AB), (AC), (BD), C, D, A, B}={(AB),(AC),(BD),C,D,A,B,D}
5.
Сформирована резольвента DD=, ч.т.д.
3. Доказать истинность заключения:
((A  B)  C),(C  (D  E)),(E  F),(D & F)
A & C.
Решение:
1. Выполним отрицание заключения:
(А&C)= AC – элементарная дизъюнкция
2. Формируем КНФ из посылок:
((AB)C)=(AB)C=(A&B)C=(AC)&(BC)
(C(DE))=CDE – элементарная дизъюнкция
(EF)=EF – элементарная дизъюнкция
(D&F) - КНФ
3. Формируем множество элементарных дизъюнкций К:
K={(AC), (AC), (BС), (CDE), (EF), D, F},
4. Формирование резольвент:
K={(AC), (AC), (BС), (CDE), (EF), D, F}=
{(AC), (AC), (BС), (CDE), (EF), D, F, C}=
{(AC), (AC), (BС), (CDE), (EF), D, F, C, (DE)}=
{(AC), (AC), (BС), (CDE), (EF), D, F, C, (DE), E}=
{(AC), (AC), (BС), (CDE), (EF), D, F, C, (DE), E, F}
5. Сформирована резольвента FF=, ч.т.д.
36
4. Доказать истинность заключения:
(A  B),(A  B),(B  A)
A & B.
Решение:
1. Выполним отрицание заключения:
(А&B)=AB – элементарная дизъюнкция
2. Формируем КНФ из посылок:
(AB) – элементарная дизъюнкция
(АВ)=AB – элементарная дизъюнкция
(ВA)=ВA – элементарная дизъюнкция
3. Формируем множество элементарных дизъюнкций К:
K={(AВ), (AВ), (АВ), (ВA)},
4. Формирование резольвент:
K={(AВ), (AВ), (АВ), (ВA)}={(AВ), (AВ), (АВ), (ВA), В}=
{(AВ), (AВ), (АВ), (ВA), В, А}={(AВ), (AВ), (АВ), (ВA), В, А, В}
5. Сформирована резольвента BB=, ч.т.д.
5. Доказать истинность заключения:
((A  B)  C & D),((D  B)  F)
(A  F).
Решение:
1. Выполним отрицание заключения:
(АF)=(AF)=A&F
2. Формируем КНФ из посылок:
((AB)C&D)=(AB)C&D=(А&В)С&D=
((А&В)С)&((А&В)D)=(АС)&(ВС)&(АD)&(ВD)
((DB)F)=(DB)F=(D&B)F=(DF)&(BF)
3. Формируем множество элементарных дизъюнкций К:
K={(AF), (AС), (BС), (АD), (BD), (DF), (BF)}
4. Формирование резольвент (объединяемые дизъюнкты, содержащие
контрарные атомы, показаны полужирным курсивом):
K={A, F, (AС), (BС), (АD), (BD), (DF), (BF)}=
{A, F, (AС), (BС), (АD), (BD), (DF), (BF), D}=
{A, F, (AС), (BС), (АD), (BD), (DF), (BF), D, F}
5. Сформирована резольвента FF=, ч.т.д.
37
6. Доказать истинность заключения:
(A  B),(C  D),(A  C),(A  D),(C  B)
(D  B).
Решение:
1. Выполним отрицание заключения:
 (DB)=((DB)&(BD))=(DB)(BD)= (D&B)(B&D)=
((D&B)B)&((D&B)D)=(DB)&(BB)&(DD)&(BD)=(DB)&(BD)
2. Формируем КНФ из посылок:
(AB)=AB – элементарная дизъюнкция
(СD)=СD – элементарная дизъюнкция
(AC) – элементарная дизъюнкция
(AD)=AD – элементарная дизъюнкция
(CB)=СB
3. Формируем множество элементарных дизъюнкций К:
K={(DB), (ВD), (АВ), (СD), (AC), (АD), (CB)}
4. Формирование резольвент:
K={(DB), (ВD), (АВ), (СD), (AC), (АD), (CB)}=
{(DB), (ВD), (АВ), (СD), (AC), (АD), (CB), (СD)}=
{(DB), (ВD), (АВ), (СD), (AC), (АD), (CB), (СD), (СВ)}=
{(DB), (ВD), (АВ), (СD), (AC), (АD), (CB), (СD), (СВ), (ВА)}
5. Сформирована резольвента (AB)(BA)=, ч.т.д.
Особенностью метода резольвент является то, что для его использования должно быть
известно заключение. Это ограничивает его применение и делает более универсальным метод
дедукции.
3. Логика предикатов
3.1. Основные понятия
Логика предикатов – это расширение возможностей логики высказываний,
позволяющее строить высказывания с учетом свойств объектов высказывания или
отношений между ними.
Если неизвестны объекты высказывания или отношения между объектами
высказывания, то такое высказывание называют высказывательной функцией.
Высказывательную функцию иначе называют предикатом и обозначают символом Р(…).
Аргументами предиката являются предметные переменные (обозначают строчными буквами
латиницы {x,y,z}, при необходимости, с индексами) и предметные постоянные
(обозначаются строчными буквами латиницы {a,b,…}, возможно, с индексами).
38
Примеры предикатов:
1) Р1(х):= « х – простое число», или «быть простым числом»,
2) Р2(6,y):= «y меньше 6»,
3) Р3(6,y,z):= «z есть частное от деления 6 на y».
Очевидно, нельзя судить об истинности или ложности данных высказываний.
Предикаты бывают двух видов:
1) Одноместные - имеют аргументом одну предметную переменную и выражают
свойства предметных переменных высказывательной функции (в примере 1).
2) Многоместные - могут иметь аргументами несколько предметных переменных
и/или предметных постоянных; выражают отношения между объектами
высказывательной функции (в примерах 2 и 3).
Высказывательная функция становится высказыванием F при замене предметных
переменных предметными постоянными, например:
 при х=3 Р1(х):= «3 – простое число»
 при х=4 Р1(х):= «4 – простое число»
 при y=2 Р2(6,y):= «2 меньше 6»
 при y=7 Р2(6,y):= «7 меньше 6»
 при y=2, z=3 Р3(6,y,z):= «3 есть частное от деления 6 на 2»
 при y=2, z=5 Р3(6,y,z):= «5 есть частное от деления 6 на 2»
По этим примерам видно, что при присвоении предметной переменной значения можно
судить об истинности предиката.
Множество, на котором заданы предметные переменные и предметные постоянные,
называют областью определения предиката или универсумом.
Множество значений предметных переменных, на котором предикат принимает
значение «истины», называют множеством истинности предиката.
Суждение, в котором утверждается или отрицается наличие каких-либо свойств или
отношений у части предметных переменных, называют частным суждением. Для
формального описания таких суждений используют логический оператор «∃x» - квантор
существования. Предикат Р записывают после квантора существования в круглых скобках
(они определяют область действия квантора):
∃xi(Р(x1, x2, …, хi,…, xn))
На естественном языке такая запись означает: «существуют такие предметные
переменные хi, для которых Р(хi) истинно».
Частное суждение по нескольким переменным требует указания кванторов
существования для каждой переменной перед предикатом. Например:
∃x∃y∃z...(P(x, y, z,...)).
Суждение, в котором утверждается или отрицается наличие каких-либо свойств для
всех предметных переменных области определения или отношений между ними, называют
39
общими суждениями. Как правило, эти суждения в естественном языке отмечают словами
«все», «каждый», «любой» и т.п. Для формального описания таких суждений используют
логический оператор «∀x» - квантор всеобщности. Предикат записывают после квантора
всеобщности в круглых скобках (они определяют область действия квантора):
∀xi(Р(x1,x2, …, xn)).
На естественном языке эта формальная запись означает «для всех предметных
переменных xi значение Р(хi) истинно».
Общее суждение по нескольким переменным требует указания кванторов
существования для каждой переменной перед предикатом. Например:
∀x∀y∀z…(Р(x,y, z…)).
Существуют предикаты, для которых область определения по различным предметным
переменным ограничивают различными кванторами.
Предметную переменную называют связанной, если она находится под действием
квантора. Если вхождение предметной переменной свободно от квантора, ее называют
свободной. Свободная переменная может быть востребована на следующем шаге алгоритма,
а связанная переменная служит для вычисления на данном шаге значения предиката.
Между элементами области определения предиката могут быть заданы
функциональные отношения. На это указывает функциональный символ: f(x1, x2, ..., xn).
3.1.1. Практика по представлению предикатов
1. Дано:
P(x):=«быть простым числом»
N – множество целых чисел – область определения предиката (универсум),
х – предметная переменная, определенная на N,
Тогда х(P(x)):=«среди целых чисел существуют простые числа» - частное суждение,
которое независимо от значений предметных переменных принимает значение истины.
2. Дано:
P(x,y):= «y меньше x»,
N – множество целых чисел - универсум,
х, y - предметные переменные, определенные на N,
Тогда при x=6 ∃y(P(х,y)):=«существуют целые числа меньше 6» - частное суждение,
имеющее истинное значение.
3. Дано:
P(x,y,z):= «z есть частное от деления x на y»,
N – множество целых чисел - универсум,
x, y, z - предметные переменные, определенные на N,
Тогда при x=6 и y=2 ∃z(P(х,y,z)):=«существует такое z, которое является частным от
деления 6 на 2» - частное суждение, имеющее значение истины.
40
4. Дано:
P1(x):= «x – студент»,
P2(x, y):= «x обучается в университете y»,
P3(x):= «x имеет зачетную книжку»,
М – множество индивидов,
Y – множество учебных заведений,
xM, yY – предметные переменные.
Тогда:
 ∃x∃y(P1(x)&P2(x,y)&¬P3(x)):=«существуют студенты (x) некоторых университетов
(y), которые не имеют зачетной книжки» - частное суждение,
 ∀x(P1(x)&P3(x)):=«все студенты имеют зачетные книжки» - общее суждение,
 ∀x∀y(P1(x)&P2(x,y)&P3(x)):= «все студенты всех университетов имеют зачетные
книжки» - общее суждение.
5. Дано:
P(x,y):= «y меньше x»,
x,y – предметные переменные, определенные на множестве целых чисел, т.е. универсум
– множество целых чисел.
Тогда:
 ∀x∃y(P(x, y)):= «для любого целого числа x существует меньшее число y» истинное суждение,
 ∃x∀y(P(x, y)):= «существует целое число x, которое больше любого целого числа
y» - истинное суждение, поскольку множество целых чисел бесконечно,
 ∀x∀y(P(x, y)):= «x больше y для любых целых чисел» - ложное суждение,
поскольку в множестве целых чисел найдется пара чисел, опровергающая это
утверждение, например при х=7 и y=9,
 ∃x∃y(P(x, y)):= «существуют целые числа x, для которых существуют меньшие
числа y» - истинное суждение, поскольку множество целых чисел бесконечно.
6. Дано:
P(x,y,z):= «z есть частное от деления x на y»,
x,y,z – предметные переменные, определенные на множестве целых чисел.
Тогда:
 ∃x∃y∀z(P(x, y, z)):= «любое целое число z может быть частным от деления
некоторого числа x на некоторое число y» - истинное утверждение, поскольку
можно подобрать для заданного z соответствующие значения переменных x и y,
 ∃x∃y∃z(P2(x, y, z)):= «существует целое число z, которое является частным от
деления некоторого числа x на некоторое число y» - истинное утверждение.
41
7. Дано:
P(x, y):=«y меньше x»,
∃y(P(x,y)):= «для целого числа существуют меньшие числа».
Здесь x – свободная, а y – связанная переменная,
8. Дано:
P1(x):=«x – студент»,
P2(x,y):=«обучаться в университете y»,
P3(x):=«иметь зачетную книжку»,
∃x∀y(P1(x)P2(x,y)&P3(x)):=«во всех университетах существуют студенты, которые не
имеют зачетной книжки».
Здесь x и y –связанные переменные.
3.2. Алгебра предикатов
Формально определяется следующим образом:
Апред=<T; F>,
где T= {T1,T2,T3,T4} - носитель алгебры:
Т1 - множество предметных переменных,
Т2 – множество предметных постоянных,
Т3={f1,f2,f3, ...} – множество функциональных символов,
Т4=(P1,P2,P3,...} – множество предикатных символов,
F={F1,F2,F3} – сигнатура алгебры:
F1={¬,&,∨,→,↔} - множество логических связок,
F2={∀,∃} - множество кванторов,
F3={≡} - символ равносильности формул.
В логике предикатов существует понятие терма:
1. Любую предметную переменную и предметную постоянную предиката называют
термом - ti.
2. Если fi - функциональный символ и t1,t2,...,tn – его аргументы-термы, то fi(t1,t2,…,tn)
также есть терм.
3. Никаких иных термов нет.
Введем понятие формулы в логике предикатов:
1. Если Pi – предикатный символ и t1,t2,...,tn – термы, то F=Pi(t1,t2,...,tn ) - элементарная
формула.
2. Если F1 и F2 - формулы, то ¬F1, ¬F2, (F1&F2), (F1∨F2), (F1→F2), (F1↔F2) - также
формулы.
3. Если F - формула, a x - предметная переменная, входящая в формулу F, то ∀x(F) и ∃x(F)
- также формулы.
4. Никаких иных формул нет.
42
3.2.1. Логические операции
Отрицание (¬F(t1,t2,…,tn)) есть одноместная операция, посредством которой из данной
формулы F(t1,t2,…,tn) получают ее отрицание. Например, задан предикат
Р(х,"стол"):=«находиться около стола». Тогда:
∀x(¬Р(х,"стол")):=«для всех х верно, что х не находится около стола»,
¬∀x(Р(х,"стол")):=«не для всех х верно, что х находится около стола»,
¬∃x(Р(х,"стол")):=«нет таких х, для которых верно, что х находится около стола”.
Конъюнкция (F1(t11,t12,…,t1n)&F2(t21,t22,…,t2n)) есть двуместная операция, посредством
которой из формул F1 и F2 получают новую формулу F (t11,t12,…,t1n,t21,t22,…,t2n) с числом
предметных переменных и постоянных, равным объединению их в исходных формулах.
Значение формулы F истинно тогда и только тогда, когда истинны обе формулы F1 и F2.
Например, даны предикаты P1(х):=«быть выдающимся музыкантом» и P2(х):=«быть
талантливым писателем». Тогда:
∃x(P1(х))&∃x(P2(х)):=«существуют выдающиеся музыканты и существуют талантливые
писатели»,
∃x(P1(х)&P2(х)):=«существуют лица, которые являются выдающимися музыкантами и
талантливыми писателями».
¬∀x(P1(х)&P2(х)):=«не каждый может быть и выдающимся музыкантом, и талантливым
писателем».
Дизъюнкция (F1(t11,t12,…,t1n)∨F2(t21,t22,…,t2n)) есть двуместная операция, посредством
которой из формул F1 и F2 получают новую формулу F (t11,t12,…,t1n,t21,t22,…,t2n) с числом
предметных переменных и постоянных, равным объединению их в исходных формулах.
Значение формулы F ложно тогда и только тогда, когда ложны обе формулы F1 и F2.
Например, пусть предметные переменные х, у - города России; заданы предикаты
P1(х,y):=«транспортная связь х и у поездом», P2(х,y):=«транспортная связь х и у самолетом»,
P3(х,y):=«транспортная связь х и у автобусом». Тогда:
∀x∀y(P1(х,y)∨P2(х,y)∨P3(х,y)):= «для всех городов России возможна транспортная связь
поездом, автобусом или самолетом».
Импликация (F1(t11,t12,…,t1n)→F2(t21,t22,…,t2n)) есть двухместная операция, посредством
которой из формул F1 и F2 получают новую формулу F(t11,t12,…,t1n,t21,t22,…,t2n) с числом
предметных переменных и постоянных, равным объединению их в исходных формулах.
Значение формулы F ложно тогда и только тогда, когда F1 истинно, а F2 - ложно. Например,
заданы предикаты P1(x):=«быть судьей», P2(x):=«быть юристом». Тогда:
∀x(P1(x)→P2(x)):=«все судьи – юристы»,
¬∀x(P2(x)→P1(x)):=«неверно, что все юристы – судьи».
Эквивалентность (F1(t11, t12,…, t1n)↔F2(t21, t22,…, t2n)) есть двуместная операция,
посредством которой из формул F1 и F2 получают новую формулу F(t11,t12,…,t1n,t21,t22,…,t2n) c
числом предметных переменных и постоянных, равным объединению их в исходных
формулах. Значение формулы истинно тогда и только тогда, когда обе формулы F1 и F2 имеют
43
одно и то же значение истины или лжи. Например, пусть х - предметная переменная и задан
предикат Р(х). Тогда:
∃x(P(x))↔¬∀x(¬P(x)):= «формула существования переменной х, для которой Р(х)
истинен, эквивалентна формуле «не для всех х Р(х) ложен»».
Рассмотренные логические операции позволяют формализовать с помощью термов,
предикатов и кванторов внутреннюю структуру предложения и формировать сложные
суждения. При этом используются правила, часть из которых аналогична алгебре
высказываний (здесь не приводятся), а часть оригинальна:
1. за квантором общности чаще всего следует импликация, а за квантором существования
- конъюнкция,
2. если формула содержит подформулу, то последняя не должна содержать кванторов,
связывающих ту же переменную, что и квантор формулы,
3. значения всех предметных переменных и постоянных должны принадлежать одной
области определения предиката или функции,
4. если в одной формуле есть кванторы всеобщности и существования, то при
формализации суждений следует стремиться поставить квантор существования слева
от всей формулы.
3.2.1.1. Практика по записи сложных предикатных формул
1. Дано высказывание: «Всякое общественно опасное деяние наказуемо». Дать
формулу этого высказывания.
Решение:
Пусть предметная переменная х определена на множестве общественных деяний,
включающих, например, благотворительность, преступление, подвиг и т.д.
Введем предикаты:
P1(x):=«быть общественно опасным деянием»,
Р2(x):=«быть наказуемым».
Тогда формула имеет вид:
х(P1(x)P2(x))
2. Дано высказывание: «Преступление есть общественно опасное деяние». Дать
формулу этого высказывания.
Решение:
В дополнение к обозначениям из предыдущего примера введем предикат:
Р3(x):=«быть преступлением»
Тогда формула имеет вид:
х(P3(x)P1(x))
44
3. Дано высказывание: «Не все общественные деяния наказуемы». Дать формулу этого
высказывания.
Решение:
Используем данные в предыдущих примерах обозначения. Тогда формула имеет вид:
х(P2(x))
4. Дано высказывание: «Судья, являющийся родственником потерпевшего, не может
участвовать в рассмотрении дела». Дать формулу этого высказывания.
Решение:
Пусть предметная переменная х определена на множестве индивидов.
Введем предикаты:
P1(x):=«быть судьёй»,
Р2(x):=«быть родственником потерпевшего»,
P3(x):= «участвовать в рассмотрении дела».
Тогда формула имеет вид:
х(P1(x)&P2(x)P3(x))
5. Дано высказывание: «Судья, являющийся родственником потерпевшего, не может
участвовать в рассмотрении дела. Судья
– родственник потерпевшего.
Следовательно, судья не может участвовать в рассмотрении дела». Дать формулу
этого высказывания.
Решение:
Данное высказывание – умозаключение, поскольку имеются две посылки, одна из
которых – общее правило юриспруденции (Судья, являющийся родственником
потерпевшего, не может участвовать в рассмотрении дела), а вторая – конкретный
факт, характеризующий некоторого судью (Судья – родственник потерпевшего).
Заключением является высказывание: Судья не может участвовать в рассмотрении
дела (имеется в виду некоторый конкретный судья).2
Используем данные в предыдущих примерах обозначения, а также формулу для
представления посылки-правила.
Тогда формула имеет вид:
6. Дано высказывание: «К уголовной ответственности привлекаются лица,
совершившие хищение, – они становятся обвиняемыми. Обвиняемый не совершал
хищения. Следовательно, он не может быть привлечен к уголовной
ответственности». Дать формулу этого высказывания.
Решение:
Пусть предметная переменная х – множество индивидов.
2
Напомним, что одним из признаков умозаключения является наличие в высказывании слова «следовательно».
45
Введем предикаты:
P1(x):=«привлекаться к уголовной ответственности,
Р2(x):=«совершить хищение»,
P3(x):=«быть обвиняемым».
Тогда формула имеет вид:
7. Дано высказывание: «Если иск предъявлен недееспособным лицом, то суд оставляет
иск без рассмотрения. Иск предъявлен недееспособным лицом. Следовательно, суд
оставляет иск без рассмотрения». Дать формулу этого высказывания.
Решение:
Пусть предметная переменная х – множество индивидов.
Введем предикаты:
P1(x):=«предъявлять иск со стороны дееспособного лица»,
P2(x):=«рассматривать иск судом».
Тогда формула имеет вид:
8. Дано высказывание: «Ни один человек не может быть беспристрастным. Каждый
юрист – человек. Следовательно, ни один юрист не может быть беспристрастным».
Дать формулу этого высказывания.
Решение:
Пусть предметная переменная х – множество индивидов.
Введем предикаты:
P1(x):= «быть беспристрастным»,
P2(x):= «быть юристом».
Тогда формула имеет вид:
9. Дано:
х - предметная переменная, определенная на множестве индивидов,
a:= «Саша» - предметная постоянная,
P1(х, ‘a’):= «быть другом ‘a’»,
P2(х, ‘a’):= «встретить ’a’».
Тогда возможны формулы:
 x(P1(х, ‘a’)&P2(х, ‘a’)):= «Саша встретил друга»,
 x(¬P1(х, ‘a’)&P2(х, ‘a’)):= «Саша встретил недруга»,
 ¬x(P1(х, ‘a’)&P2(х, ‘a’)):= «не каждый встречный есть друг Саши»,
46
 x(P1(х, ‘a’)&(¬P2(х, ‘a’))):= «есть друзья, с которыми Саша не встречается».
3.2.2. Законы алгебры предикатов
Также как и законы алгебры высказываний, законы алгебры предикатов используют
понятие равносильности формул: две формулы называются равносильными, если они при
одинаковых наборах термов имеют одинаковое значение. Если две формулы равносильны, то
они эквивалентны. Если две формулы эквивалентны, то они равносильны.
Законы алгебры предикатов включают:
Имя закона
Коммутативности
Дистрибутивности
Идемпотентности
Исключения
третьего
Противоречия
Отрицание
кванторов
Дополнения
Равносильные формулы
∀x∀y(F(x, y))≡∀y∀x(F(x, y))
∃x∃y(F(x, y))≡∃y∃x(F(x, y))
∀x(F1(x))&∀x(F2(x))≡∀x(F1(x)&F2(x)) – для формул с кванторами
всеобщности по одной переменной х
∃x(F1(x))∨∃x(F2(x))≡∃x(F1(x)∨F2(x)) – для формул с кванторами
существования по одной переменной х
x(F(x))∨x(F(x))≡x(F(x))
x(F(x))&x(F(x))≡x(F(x))
x(F(x))∨x(F(x))≡x(F(x))
x(F(x))&x(F(x))≡x(F(x))
x(F(x))∨¬x(F(x))=и
x(F(x))∨¬x(F(x))=и
x(F(x))&¬x(F(x))=л
x(F(x))&¬x(F(x))=л
∀x(¬F(x))≡¬∃x(F(x))
∀x(F(x))≡¬∃x(¬F(x))
∃x(¬F(x))≡¬∀x(F(x))
∃x(F(x))≡¬∀x(¬F(x))
¬(¬x(F(x)))≡ x(F(x))
¬(¬x(F(x)))≡ x(F(x))
Все эквивалентные преобразования формул, по аналогии с алгеброй высказываний,
основаны на правиле подстановки: если в составе формулы F есть подформула Fi и для Fi
существует эквивалентная подформула Fj, то возможна подстановка формулы Fj в формулу F
без нарушения ее истинности.
Однако для алгебры предикатов есть дополнительное правило: если в формуле F,
содержащей свободную переменную x, выполнить всюду подстановку вместо переменной x
терма3 t , то получим формулу F(t). Такая подстановка называется правильной:
Напомним, что терм – это предметная переменная, или предметная постоянная, или функциональный
символ с аргументами–термами.
3
47
Например,
x2

x3
(P1 (x 1 , x 3 )  P2 (x 2 ))
x1
x 3 (P1 (x 2 , x 3 )  P2 (x 2 ))
Подстановка называется неправильной, если:
1)
в результате подстановки свободная переменная окажется в области действия
квантора:
x3
 x (P1(x1, x3)  P2(x 2))
x2 3
x (P1(x1, x3)  P2(x3))
3
2)
Здесь свободная переменная х2 заменена связанной квантором существования
переменной х3;
связанная переменная будет заменена термом:
x2
 x (P1(x1,x3)  P2(x 2))
x3 3
x (P1(x1,x 2)  P2(x 2))
3
Здесь связанная квантором существования переменная х3 заменена свободной
переменной х2.
3.2.3. Предварённая нормальная форма
Для удобства анализа сложных формул рекомендуется преобразовывать их к
нормальной форме. Если в алгебре высказываний приняты две нормальные формы ДНФ и
КНФ, то в алгебре предикатов – кроме ДНФ и КНФ есть предварённая нормальная форма
(ПНФ), суть которой сводится к разделению формулы на две части: префикс и матрицу. Для
этого все кванторы выносят влево по правилам логики предикатов, формируя префикс, а
логические связки соединяют предикаты формулы, формируя матрицу. В результате будет
получена формула: ℜx1 ℜx2…ℜxn(M), ℜ∈{∀, ∃}, где ℜx1 ℜx2…ℜxn – префикс, М – матрица,
причем матрица в формате КНФ.
Алгоритм приведения к ПНФ:
Шаг 1: исключить в формуле всюду логические связки ↔ и →:
(F1↔F2)=(F1→F2)&(F2→F1)=(¬F1∨F2)&(¬F2∨F1),
(F1→F2)=(¬F1∨F2),
Шаг 2: продвинуть отрицание до элементарной формулы по правилам:
¬∀x(F)=∃x(¬F),
¬∃x(F)=∀x(¬F),
¬(F1∨F2)=(¬F1&¬F2),
¬(F1&F2)=(¬F1∨¬F2),
48
Шаг 3: переименовать связанные переменные по правилу: найти самое левое связанное
вхождение предметной переменной, такое, что существует еще одно вхождение этой же
переменной, затем сделать замену связанного вхождения на вхождение новой переменной.
Операцию повторять, пока возможна замена связанных переменных,
Шаг 4: вынести кванторы новых связанных переменных влево, не нарушая их
последовательности,
Шаг 5: преобразовать бескванторную матрицу к виду КНФ, т. е. М=D1&D2&D3&…, где
Di=(Fi∨Fj∨Fk∨…).
3.2.3.1. Практика по преобразованию предикатных формул к ПНФ
1. Преобразовать формулу:
¬∃x1∀x2(P1(х1)→∀x3(P2(х1,x3)∨P3(x2,x3))).
Решение:
1) выполним операцию отрицания:
∀x1¬∀x2(P1(х1)→∀x3 (P2(х1,x3)∨P3(x2,x3)))=∀x1∃x2(¬(P1(х1)→∀x3(P2(х1,x3)∨P3(x2,x3))))
2) удалим логическую связку →:
∀x1∃x2¬(¬P1(х1)∨∀x3(P2(х1,x3)∨P3(x2,x3)))
3) выполним операцию отрицания:
∀x1∃x2(P1(х1)&¬∀x3(P2(х1,x3)∨P3(x2,x3)))=∀x1∃x2(P1(х1)&∃x3(¬(P2(х1,x3)∨P3(x2,x3))))=
∀x1∃x2(P1(х1)&∃x3(¬P2(х1,x3)&¬P3(x2,x3)))
4) перенесем квантор x3 влево:
∀x1∃x2∃x3(P1(х1)&¬P2(х1,x3)&¬P3(x2,x3)).
2. Преобразовать формулу:
(∀x(P1(х)→∀y(P2(y)→P3(z))))&(¬∀y(P4(x,y)→P5(z))).
Решение:
1) удалим логические связки →:
∀x(¬P1(х)∨∀y(¬P2(y)∨P3(z)))&¬∀y(¬P4(x, y)∨P5(z))
2) выполним операцию отрицания:
∀x(¬P1(х)∨∀y(¬P2(y)∨P3(z)))&∃y(¬(¬P4(x,y)∨P5(z)))
3) применим закон де Моргана:
∀x(¬P1(х)∨∀y(¬P2(y)∨P3(z)))&∃y(P4(x,y)&¬P5(z))
4) переименуем связанную переменную левого квантора x=w:
∀w(¬P1(w)∨∀y(¬P2(y)∨P3(z)))&∃y(P4(x,y)&¬P5(z))
5) переименуем связанную переменную левого квантора y=v:
∀w(¬P1(w)∨∀v(¬P2(v)∨P3(z)))&∃y(P4(x,y)&¬P5(z))
6) вынесем квантор v в префикс:
∀w∀v(¬P1(w)∨¬P2(v)∨P3(z))&∃y(P4(x,y)&¬P5(z))
7) вынесем квантор y в префикс:
∀w∀v∃y((¬P1(w)∨¬P2(v)∨P3(z))&P4(x,y)&¬P5(z)).
49
3. Преобразовать формулу:
∀x(P1(х)∃y(P2(y)))→∀z(P3(z)).
Решение:
1) удалим логические связки  и :
∀x((P1(х)∃y(P2(y)))&(∃y(P2(y)) P1(х)))∀z(P3(z))=
∀x((P1(х)∃y(P2(y)))&(¬y(P2(y))P1(х)))∀z(P3(z))=
∀x((P1(х)∃y(P2(y)))&(¬y(P2(y))P1(х)))∀z(P3(z))
2) по закону отрицания кванторов:
x((P1(х)∃y(P2(y)))&(y(P2(y))P1(х)))∀z(P3(z))
3) применим закон де Моргана:
x ((P1(х)∃y(P2(y)))(y(P2(y))P1(х)))∀z(P3(z))=
x ((P1(х)&∃y(P2(y)))(y(P2(y))&P1(х)))∀z(P3(z))
4) по закону отрицания кванторов:
x ((P1(х)&y(P2(y)))(y(P2(y))&P1(х)))∀z(P3(z))
5) переименуем связанную переменную левого квантора y - y=v:
∃x((P1(x)&v(P2(v)))∨(y(P2(y))&P1(x)))∨∀z(P3(z))
6) вынесем кванторы в префикс:
∃xvyz((P1(x)&P2(v))∨(P2(y)&¬P1(х))∨P3(z))
7) преобразуем матрицу к виду КНФ:
∃xvyz ((P1(x)∨P2(y)∨P3(z))&(P2(v)∨P2(y)∨P3(z))&(P2(v)∨P1(x)∨P3(z)))
4. Преобразовать формулу:
∀x∃y(P1(х, y))&(∃x∀y(P2(x, y))).
Решение:
1) выполним отрицание:
∀x∃y(P1(х, y))&∀x(∀y(P2(x, y)))=∀x∃y(P1(х, y))&∀x∃y(P2(x, y))
2) по закону дистрибутивности для квантора всеобщности:
∀x(∃y(P1(х, y))&∃y(P2(x, y)))
3) переименуем связанную переменную y=z:
∀x(∃z(P1(х, z))&∃y(P2(x, y)))
4) вынесем кванторы влево:
∀x∃z∃y(P1(х, z)&P2(x, y)).
3.2.4. Сколемовская стандартная форма
Наличие разноименных кванторов в префиксе не позволяет осуществлять вывод
заключения, опираясь только на матрицу. Однако есть эффективный алгоритм Сколема,
удаляющий из префиксной части кванторы существования и преобразующий формулу к виду:
F = ∀x1∀x2…∀xn (M).
50
В этом случае вывод заключения возможен только по формуле матрицы.
Для устранения в префиксе кванторов существования вводится сколемовская функция
от предметных переменных кванторов всеобщности, которая замещает в матрице связанную
квантором существования предметную переменную.
Алгоритм приведения к ССФ:
Шаг 1: представить формулу F в виде ПНФ, т. е. F=ℜx1ℜx2…ℜxn(M), где ℜi∈{∀, ∃}, а
М=D1&D2&D3&…,
Шаг 2: найти в префиксе самый левый квантор существования и заменить его по
правилу:
a) если квантор существования находится на первом месте префикса, то вместо
переменной, связанной этим квантором, подставить в матрице всюду предметную
постоянную, отличную от встречающихся постоянных, а квантор существования удалить,
b) если квантор существования находится на i-м месте префикса, т.е. ∀x1∀x2…∀xi-1∃xi
..., то выбрать (i-1)- местную сколемовскую функцию f(x1, x2,..xi-1), отличную от функций
матрицы М, и выполнить замену предметной переменной xi, связанной квантором
существования, на функцию f(x1, x2,..., xi-1), а квантор существования из префикса удалить.
Шаг 3: найти в префиксе следующий слева квантор существования и перейти к
исполнению шага 2, иначе конец.
Формулу ПНФ, полученную в результате введения сколемовских функций, называют
сколемовской стандартной формой (ССФ). Преобразованная таким образом матрица может
быть допущена к анализу истинности суждения по принципу резолюции.
3.2.4.1. Практика по преобразованию предикатных формул к ССФ
1. Преобразовать формулу:
∃x1∀x2∀x3∃x4∀x5∃x6((P1(x1,x2)∨¬P2(x3,x4,x5))&P3(x4,x6)).
Решение:
1) примем x1=a и удалим x1:
∀x2∀x3∃x4∀x5∃x6((P1(a,x2)∨¬P2(x3,x4,x5))&P3(x4,x6))
2) примем x4=f1(x2,x3) и удалим ∃x4:
∀x2∀x3∀x5∃x6 ((P1(a,x2)∨¬P2(x3,f1(x2,x3),x5))&P3(f1(x2,x3),х6))
3) примем x6=f2(x2, x3, x5) и удалим ∃x6:
∀x2∀x3∀x5((P1(a,x2)∨¬P2(x3,f1(x2,x3),x5))&P3(f1(x2,x3),f2(x2,x3,x5)))
2. Преобразовать формулу:
∃z∀w∃x∀y((P1(z)∨P2(x)∨P3(y))&(¬P2(w))∨P2(х)∨P3(y))&(¬P2(w)∨¬P1(z)∨P3(y))).
Решение:
1) примем z=a и удалим квантор ∃z:
∀w∃x∀y((P1(a)∨P2(х)∨P3(y))&(¬P2(w)∨P2(х)∨P3(y))&(¬P2(w)∨¬P1(a)∨P3(y)))
2) примем x=f(w) и удалим квантор ∃x:
∀w∀y((P1(a)∨P2(f(w))∨P3(y))&(¬P2(w)∨P2(f(w))∨P3(y))&(¬P2(w)∨¬P1(a)∨P3(y)))
51
3. Преобразовать формулу:
x(y(P1.(x, y)))x(y(P2.(x, y))).
Решение:
1) заменим связанную левым квантором x переменную x=v:
v(y(P1(v, y)))x(y(P2(x, y)))
2) заменим связанную левым квантором y переменную y=w:
v(w(P1(v, w)))x(y(P2(x, y)))
3) вынесем кванторы в префикс:
vwxy(P1(v, w)P2(x, y))
4) заместим предметную переменную v на предметную постоянную ‘a’:
wxy(P1(a, w)P2(x, y))
5) заместим предметную переменную x функцией от w, т.е. x=f(w):
wy(P1(a, w)P2(f(w), y))
4. Преобразовать формулу:
x(y(P1(x, y)))x(y(P2(x, y))).
Решение:
1) применим закон дистрибутивности для квантора существования:
x(y(P1(x, y))y(P2(x, y)))
2) заменим связанную левым квантором y переменную y=w:
x(w(P1(x, w))y(P2(x, y)))
3) вынесем кванторы w и y в префикс:
xwy (P1(x, w)P2(x, y))
4) заместим предметную переменную x на предметную постоянную ‘a’:
wy (P1(a, w)P2(a, y)).
5. Преобразовать формулу:
x(y(P1(x, y)))x(y(P2(x, y))).
Решение:
1) удалим связку :
x(y(P1(x, y)))x(y(P2(x, y)))
2) выполним отрицание:
x(y(P1(x, y)))x(y(P2(x, y)))=x(y(P1(x, y)))x(y(P2(x, y)))
3) заменим связанную левым квантором переменную х=w:
w(y(P1(w, y)))x(y(P2(x, y)))
4) заменим связанную левым квантором переменную y=v:
w(v(P1(w, v)))x(y(P2(x, y)))
5) вынесем кванторы в префикс:
wvxy(P1(w, v) P2(x, y))
52
6) заместим предметную переменную v функцией от w, т.е. v=f1(w):
wxy(P1(w, f1(w)) P2(x, y))
7) заместим предметную переменную x функцией от w, т.е. x=f2(w):
wy(P1(w, f1(w)) P2(f2(w), y))
6. Преобразовать формулу:
x(y(P1(x, y)))x(y(P2(x, y))).
Решение:
1) удалим связку :
x(y(P1(x, y)))x(y(P2(x, y)))
2) выполняем отрицание:
x(y(P1(x, y)))x(y(P2(x, y)))=x(y(P1(x, y)))x(y(P2(x, y)))
3) применим закон дистрибутивности для квантора существования:
x(y(P1(x, y))y(P2(x, y)))
4) применим закон дистрибутивности для квантора существования:
xy(P1(x, y)P2(x, y))
5) заместим предметные переменные x и y на предметные постоянные a и b:
(P1(a, b)P2(a, b))
7. Преобразовать формулу:
x(P1(x)P2(x))(x(P1(x))y(P2(y))).
Решение:
1) удалим связку  по законам алгебры логики:
x(P1(x)P2(x))x(P1(x))y(P2(y))
2) выполним отрицание и применим закон де Моргана:
x(P1(x)P2(x))x(P1(x))y(P2(y))=x(P1(x)&P2(x))x(P1(x))y(P2(y))
3) заменим связанную левым квантором x переменную x=v:
v(P1(v)&P2(v))x(P1(x))y(P2(y)),
4) вынесем кванторы в префикс:
vxy(P1(v)&P2(v)P1(x)P2(y)),
5) применим закон дистрибутивности:
vxy((P1(v)P1(x)P2(y))&(P2(v)P1(x)P2(y)))
8. Преобразовать формулу:
x(P1(x))x(P2.(x))x(P1(x)P2.(x)).
Решение:
1) удалим связку :
(x(P1(x))x(P2.(x)))x(P1(x)P2.(x))
2) выполним отрицание и применим закон де Моргана:
x(P1(x))x(P2.(x))x(P1(x)P2.(x))
53
3) заменим связанную левым квантором переменную x=v:
v(P1(v))x(P2.(x))x(P1(x)P2.(x)),
4) заменим связанную левым квантором переменную x=w:
v(P1(v))w(P2.(w))x(P1(x)P2.(x)),
5) вынесем кванторы в префикс:
vwx(P1(v)P2.(w)P1(x)P2.(x)),
6) заместим переменную x функцией от двух переменных v и w, т.е. x=f(v, w):
vw(P1(v)P2.(w)P1(f(v, w))P2.(f(v, w))),
7) применим закон дистрибутивности:
vw((P1(v)P2.(w)P1(f(v, w)))&(P1(v)P2.(w)P2.(f(v, w)))).
3.3. Исчисление предикатов
Если выполнить подстановку вместо ПП исчисления высказываний формулы алгебры
предикатов, то каждая схема доказательства теоремы и каждая схема вывода заключения
сохраняются в исчислении предикатов.
В этом разделе логики выделяют три класса формул:
 Тождественно истинные формулы - при исполнении логических и кванторных
операций принимают значение «истины» для всех интерпретаций предметных
постоянных, функциональных и предикатных символов. Большинство из них - аксиомы
исчисления предикатов. Например: ∃x(F(x))↔¬∀x(¬F(x)).
 Тождественно ложные формулы - при исполнении логических и кванторных
операций принимают значение «ложь» для всех интерпретаций предметных
постоянных, функциональных и предикатных символов. Например, ∃x(F(x))&∀x(¬F(x)).
 Выводимые формулы - при исполнении логических и кванторных операций
принимают значение «истина» не для всех интерпретаций предметных постоянных,
функциональных и предикатных символов. Например, ∃x(F(x))→¬∀x(F(x)).
Выводимость формулы записывается так: F1,F2,…, Fn|⎯ F, где слева от знака
выводимости записывают множество посылок и необходимых аксиом, а справа –
заключение F («верно, что F выводимо из посылок и аксиом F1,F2,...,Fn»). Другая форма
вывода заключения:
где над чертой - множество посылок и аксиом, а под чертой - заключение.
Вывод заключения на языке математической логики - это доказательство теоремы
|⎯F1&F2&…&Fn→F. В процессе доказательства последовательно используют аксиомы и
законы логики предикатов, правила введения и удаления кванторов, специфические правила
исчисления предикатов, правила modus ponens и modus tollens.
54
3.3.1. Аксиомы исчисления предикатов
Аксиомы исчисления предикатов опираются на двенадцать аксиом исчисления
высказываний, сохраняя при этом особенности исполнения кванторных операций. Поэтому
для понимания механизма вывода в исчислении предикатов следует знать правила введения и
удаления кванторов, существенно облегчающие преобразования сложных логических
формул:
П1.Удаление квантора всеобщности: если выводима формула ∀x(F(x)), то, заменив
предметную переменную x на терм t, можно удалить квантор всеобщности и получить
выводимую формулу:
x (F(x))
F(t)
П2. Введение квантора всеобщности:
a) если выводима формула F(t), то, заменив терм t на предметную переменную x,
можно ввести квантор всеобщности и получить выводимую формулу:
F(t)
xF(x)
b) если выводима формула (F1(t)→F2(x)) и F1(t) не содержит свободной переменной x,
то выводима формула:
F1(t)  F2(x)
F1(t) x (F2(x))
П3. Удаление квантора существования: если выводима формула ∃x(F(x)), то, заменив
предметную переменную х на предметную постоянную ‘а’, можно удалить квантор
существования и получить выводимую формулу:
П4. Введение квантора существования:
a) если выводима формула F(t), то, заменив терм t на предметную переменную x в
заданной области интерпретации, можно ввести квантор существования и
получить выводимую формулу:
b) если выводима формула F1(x)→F2(t) и F2 не содержит свободной переменной x,
то выводима формула:
F1(x)  F2(t)
x (F1(x))  F2(t)
П5. Формирование ПНФ формулы:
55
a) если при исполнении логических операций один из предикатов формулы Fi не
содержит переменной x, связанной в другом предикате формулы Fj, и формулы
выводимы, то выводима одна из формул:
x (F1(x))F2(t) , x (F1(x))&F2(t) , F1(t) x (F2(x)) ,  { ,  }
x x
x (F1(x)F2(t)) x (F1(x)&F2(t)) x (F1(t)  F2(x)) x
b) если выводимы формулы ∀x(F1(x))∨∀x(F2(x)) и ∃x(F1(x))&∃x(F2(x)), то при смене в
левой формуле имени переменной получим также выводимые формулы:
x (F1(x))  x (F2(x)) x (F1(x)) &x (F2(x))
,
yx (F1(y)  F2(x)) yx (F1(y) & F2(x))
3.3.2. Правила унификации предикатов
Если матрица ССФ не содержит сколемовских функций, то для вывода заключения
применим принцип резолюции исчисления высказываний. Однако если аргументы атомов
дизъюнктов ССФ содержат сколемовские функции, то для поиска контрарных атомов над
дизъюнктами необходимо выполнять специальную операцию, называемую унификацией, подстановку вместо предметных переменных аргумента атома новых предметных
переменных, или предметных постоянных, или функциональных символов, т.е. термов, и
получить новые формулы дизъюнктов, которые уже, возможно, допускают унификацию
контрарных пар. В логике предикатов атомы являются контрарными, если соответствуют
одному и тому же предикату с противоположными знаками и с одинаковыми аргументами.
Множество подстановок при унификации дизъюнктов нужно выполнять последовательно,
просматривая каждый раз только одну предметную переменную.
Рассмотрим примеры:
1. Выполнить унификацию дизъюнктов - контрарных атомов: P3(a,x,f(q(y))) и
¬P3(z,f(z),f(u)).
Решение представим схемой:
P3(a,x,f(q(y)))
¬P3(z,f(z),f(u))
f(a)
 P3(a,x,f(q(y)))
x
P3(a,f(a),f(q(y)))
a
 P3(z,f(z),f(u))
z
P3(a,f(a),f(u))
q(y)
 P3(a,f(a),f(u))
u
P3(a,f(a),f(q(y)))
Получены контрарные атомы: P3(a,f(a),f(q(y))) и ¬P3(a,f(a),f(q(y))).
2. Выполнить унификацию дизъюнктов – контрарных атомов: P3(x,a,f(q(a))) и
¬P3(z,y,f(u)).
56
Решение представим схемой:
P3(x,a,f(q(a)))
¬P3(z,y,f(u))
a
b
P
(x,
a,
f(q(a)))
 P3(z, y,f(u))
 3
y
x
P3(b,a,f(q(a))) P3(z,a,f(u))
b
 P3(z,a,f(u))
z
P3(b,a,f(u))
q(a)
 P3(b,a,f(u))
u
P3(b,a,f(q(a)))
Получены контрарные атомы: P3(b,a,f(q(a))) и ¬P3(b,a,f((q(a))).
3. Выполнить унификацию дизъюнктов (P1(x)∨¬P2(x)) и (¬P1(f(x))∨P3(y)).
Решение:
f(x)
 (P1(x)  P2(x))
x
(P1(f(x))  P2(f(x)))
Тогда в результате соединения дизъюнктов логической связкой «∨» может быть
получена резольвента: (P1(f(x))∨¬P2(f(x)))∨(¬P1(f(x))∨P3(y)) =(¬P2(f(x))∨ P3(y)).
3.3.3. Метод дедуктивного вывода
В логике предикатов вывод выполняется так же, как в исчислении высказываний. Все
правила логики высказываний (ИВ) включены в множество правил логики предикатов (ИП).
3.3.3.1. Практика по предикатному дедуктивному выводу
1. Доказать истинность заключения в формуле:
x (P1(x) P2(x)),x (P3(x)  P1(x))
x (P3(x) P2(x))
Решение:
1. Введем обозначения для посылок:
F1=x(P1(x)P2(x))
F2=x(P3(x)P1(x))
2. Выполним по шагам дедуктивный вывод, вводя обозначения для получаемых
формул:
F3=(P1(t)P2(t)) – по F1 и правилу П1 и.п.4,
F4=(P3(t)P1(t)) – по F2 и правилу П1 и.п.,
F5=(P3(t)P2(t)) – по F3 , F4 и правилу П9 и.в.5,
4
и.п. - исчисление предикатов
57
F6=x(P3(x)P2(x)) – по F5 и правилу П2 и.п.., ч.т.д.
Данному выводу соответствует граф:
2. Доказать истинность заключения в формуле:
 x ( y (P1 (x, y) & P2 (y))   y (P3 (y) & P4 (x, y))), (P3 (x))
 x (P3 (x))   x  y (P1 (x, y)  P2 (y))
Решение:
1. Введем обозначения для посылок:
F1=∀x(∃y(P1(x, y)&P2(y))→∃y(P3(y)& P4(x, y)))
F2=¬∃x(P3(x))
2. Выполним по шагам дедуктивный вывод:
F3=∀x(¬P3(x)) - по F2 и закону отрицания,
F4=¬P3(t) - по F3 и правилу П1 и.п.,
F5=¬P3(t)∨¬P4(x, t) - по F4 и правилу П3 и.в. при y=t (по правилам правильной
подстановки и.п.),
F6=∀y(¬P3(y)∨(¬P4(x, y))) - по F5 и правилу П2 и.п.,
F7=¬∃y(P3(y)&P4(x, y)) - по F6 и правилам эквивалентных преобразований и де
Моргана,
F8=∃y(P1(t, y)&P2(y))→∃y(P3(y)&P4(t, y)) - по F1 и правилу П1 и.п.,
F9=¬∃y(P1(t, y)&P2(y)) - пo F7 и F8 и правилу m.t.,
F10=∀y(¬P1(t, y)∨¬P2(y)) - по F9 и правилам эквивалентных преобразований,
F11=∀y(P1(t, y)→¬P2(y)) - по F10 и правилам эквивалентных преобразований,
F12=∀x∀y(P1(x, y)→¬P2(y)) - по F11 и правилу П2 и.п.,
F13=¬∃x(P3(x))→∀x∀y(P1(x, y)→¬P2(y)) – по F2 и F12 и правилу П5 и.в., ч.т.д.
5
и.в. – исчисление высказываний
58
Данному выводу соответствует граф:
F1=x(y(P1(x,y)&P2(y))y(P3(y)&P4(x,y)))
F2=x(P3(x))
П1 и.п.
по закону отрицания
F8=y(P1(t,y)&P2(y))y(P3(y)&P4(t,y))
F3=x(P3(x)
)
П1 и.п.
F4=P3(t)
П3 и.в.
F5=P3(t)P4(x,t)
П2 и.п.
F6=y(P3(t)P4(x,y))
F7=y(P3(t)&P4(x,y))
m.t.
F9=y(P1(t,y)& P2(y))
F10=y(P1(t,y) P2(y))
F11=y(P1(t,y) P2(y))
П2 и.п.
F12=xy(P1(x,y) P2(y))
П5 и.в.
F13=x(P3(x))xy(P1(x,y)P2(y))
3. Доказать истинность заключения в формуле:
x (P1 (x) &  y (P2 (y)  P4 (x, y))),  x (P 1 (x)   y (P3 (y)  P4 (x, y)))
 x (P2 (x)  P3 (x))
Решение:
1. Введем обозначения для посылок:
F1=∃x(P1(x)&∀y(P2(y)→P4(x, y)))
F2=∀x(P1(x)→∀y(P3(y)→¬P4(x, y)))
2. Выполним по шагам дедуктивный вывод:
F3=P1(а)&∀y(P2(y)→P4(a, y)) - по F1 и правилу П3 и.п.,
F4=P1(a) - по F3 и правилу П2 и.в.,
F5=∀y(P2(y)→ P4(a, y)) - пo F3 и правилу П2 и.в.,
F6=P2(t)→ P4(a, t) - по F5 и правилу П1 и.п.,
59
F7=P1(t)→∀y(P3(y)→¬P4 (t, y)) - по F2 и правилу П1 и.п.,
F8=∀y(P3(y)→¬P4(a, y)) - по F4 и F7 при t=a по правилу m.p.,
F9=P3(t)→¬P4(a, t) - по F8 и правилу П1 и.п.,
F10=P4(a, t)→¬P3(t) - по F9 и правилу П6 и.в.,
F11=P2(t)→¬P3(t) - по F6 и F10 и правилу П9 и.в.,
F12=∀x(P2 (x)→¬P3(x)) - по F11 и правилу П2 и.п., ч.т.д.
Данному выводу соответствует граф:
∃x(P1(x)&∀y(P2(y)→P4(x, y)))
∀x(P1(x)→∀y(P3(y)→¬P4(x, y)))
П3 и.п.
П1 и.п.
P1(а)&∀y(P2(y)→P4(a, y))
П2 и.в.
P1(t)→∀y(P3(y)→¬P4 (t, y))
П2 и.в.
∀y(P2(y)→ P4(a, y)) P1(a)
П1 и.п.
m.p. при t=a
P2(t)→ P4(a, t)
∀y(P3(y)→¬P4(a, y))
П1 и.п.
P33(t)→¬P
∀y(P
(y)→¬P4(a,
4(a,t)y))
П6 и.в.
P4(a, t)→¬P3(t)
П9 и.в.
P2(t)→¬P3(t)
П2 и.п.
∀x(P2 (x)→¬P3(x))
4. Дано высказывание: «Таможенные чиновники обыскивают каждого, кто
въезжает в страну, кроме высокопоставленных лиц. Если некоторые люди
способствуют провозу наркотиков, то на внутреннем рынке есть наркотик.
Никто из высокопоставленных лиц не способствует провозу наркотиков.
Следовательно, некоторые из таможенников способствуют провозу наркотиков».
Правилен ли вывод?
Решение:
Пусть предметные переменные х и y определены на множестве индивидов. Введем
предикаты:
P1(x):=«быть таможенником»,
P2(x,y):=«x обыскивает y»,
P3(y):=«въезжать в страну»,
P4(y):=«быть высокопоставленным лицом»,
P5(y):=«способствовать провозу наркотиков».
Тогда формальная запись суждения имеет вид:
60
1. Введем обозначения для посылок:
F1=∃y(P3(y)&P5(y))
F5=∀y(P3(y)&P4(y)→¬P5(y))
F9=∀y(P3(y)&¬P4(y)→∀x(P1(x)&P2(x,y)))
2. Выполним по шагам дедуктивный вывод:
F2=P3(a)&P5(a) - по F1 и правилу П3 и.п.,
F3= P3(a) - по F2 и правилу П2 и.в.,
F4= P5(a) - по F2 и правилу П2 и.в.,
F6=P3(t)&P4(t)→¬P5(t) - по F5 и правилу П1и.п.,
F7=¬P3(t)∨¬P4(t)∨¬P5(t) - по F6,
F8=¬P4(a) - по F7, F3, F4 при t=a, когда ¬P3(а)=л и ¬P5(а)=л,
F10=∀y∀x(P3(y)&¬P4(y)→(P1(x)&P2(x,y))) –по F9 и правилу П5 и.п.,
F11=P3(a)&¬P4(a)→P1(t)&P2(t,a) - по F10 при y=a и правилу П1 и.п.,
F12= P3(a)&¬P4(a) - по F3 и F8 и правилу П1 и.в.,
F13=(P1(t)&P2(t,a)) - по F11 и F12 и правилу m.p.,
F14= P1(t) - по F13 и правилу П2 и.в.,
F15= P1(t)&P5(t) - по F4, F14 при t=a и правилу П1 и.в.,
F16=∃x(P1(x)&P5(x)) - по F15 и правилу П3 и.п., ч.т.д.
Данному выводу соответствует граф:
∃y(P3(y)&P5(y))
∀y(P3(y)&P4(y)→¬P5(y))
П3 и.п.
P3(a)&P5(a)
П2 и.в.
P3(а)
П1 и.п.
P3(t)&P4(t)→¬P5(t)
P3(t)¬P4(t)P5(t)
P5(a)
∀y(P3(y)&¬P4(y)→∀x(P1(x)&P2(x,y)))
П5 и.п.
∀yх(P3(y)&¬P4(y)→(P1(x)&P2(x,y)))
П1 и.п. при y=a
P3(a)&¬P4(a)→P1(t)&P2(t,a)
при t=a
¬P4(a)
П1 и.в.
P3(a)&¬P4(a)
m.p.
P1(t)&P2(t,а)
П2 и.в.
P1(t)
П1 и.в. при t=a
P1(t)&P5(t)
П3 и.п.
х(P1(х)&P5(х))
3.3.4. Метод резолюции
Принцип резолюции логики предикатов может быть усилен использованием
информации о резольвируемых атомах.
61
Упорядоченным дизъюнктом называется дизъюнкт с заданной последовательностью
атомов: атом Pj старше атома Pi в упорядоченном дизъюнкте тогда и только тогда, когда j>i.
При наличии в упорядоченном дизъюнкте двух одинаковых атомов, по закону идемпотенции,
следует удалить старший атом. При соединении дизъюнктов, содержащих контрарные
атомы, и формировании резольвенты нужно удалить из пары старший контрарный атом, а
младший сохранить в резольвенте, выделив его рамкой. При этом следует соблюдать правила:
a) если в резольвенте за обрамленным атомом справа не следует никакой другой атом,
то обрамленный атом удаляют,
b) если в резольвенте за обрамленным атомом справа следует какой-либо атом без
рамки, то обрамленный атом оставить для последующего анализа,
с) если резольвента представляет собой один обрамленный атом, который
унифицируется с контрарным одноатомным дизъюнктом, то формируется пустая резольвента,
что свидетельствует об истинности выводимого заключения.
3.3.4.1. Практика по предикатному методу резолюции
1. Доказать истинность заключения в высказывании: «Существуют студенты,
которые любят всех преподавателей. Ни один из студентов не любит невежд.
Следовательно, ни один преподаватель не является невеждой».
Решение:
Пусть предметные переменные х и y определены на множестве индивидов. Введем
предикаты:
P1(x):= «быть студентом»,
P2(y):= «быть преподавателем»,
P3(x, y):= «x любит y»,
P4(y):= «быть невеждой».
Тогда формула для записи исходного суждения имеет вид:
x (P1(x) &y(P2(y)  P3(x, y))),x (P1(x)  y(P4(y)  P3(x, y)))
y(P2(y)  P4(y))
1. преобразуем посылки и отрицание заключения к виду ССФ и введем обозначения для
формул:
F1=∃x(P1(x)&∀y(P2(y)→P3(x,y)))=∃x(P1(x)&∀y(P2(y)P3(x,y)))правило П3 (и.п.)=
P1(a)&∀y (P2(y)∨P3(a,y))правило П5а (и.п.)=∀y(P1(a)&(P2(y)∨P3(a,y))),
F2=∀x(P1(x)→∀y(P4(y)→¬P3(x,y)))=∀x(P1(x)∀y(P4(y)¬P3(x,y)))шаг4 приведения к
ПНФ=∀x∀y(P1(x)P4(y)¬P3(x,y)),
F3=¬∀y(P2(y)→¬P4(y))=¬∀y(P2(y)¬P4(y))шаг2 приведения к ПНФ=
y((P2(y)¬P4(y)))= y(P2(y)&P4(y))шаг2 приведения к ССФ=P2(b)&P4(b),
2. выпишем множество дизъюнктов посылок и отрицания заключения:
K={P1(a),(¬P2(y)∨P3(a,y)),(¬P1(x)∨¬P4(y)∨¬P3(x,y)),P2(b),P4(b)}.
3. выполним подстановку и унификацию дизъюнктов:
62
= ¬P2(b)∨P3(a,b)P2(b)=¬P2(b)∨P3(a,b)- резольвента;
¬P2(b)∨P3(a,b)
=
¬P2(b)∨P3(a,b)
=
¬P2(b)∨P3(a,b)¬P1(a)∨¬P4(b)∨¬P3(a,b)=¬P2(b)∨P3(a,b)¬P1(a)∨¬P4(b) –резольвента;
¬P2(b)∨P3(a,b)¬P1(a)∨¬P4(b)P1(a)=¬P2(b)∨P3(a,b)  ¬P1(a)∨¬P4(b) – резольвента;
¬P2(b)∨P3(a,b)¬P1(a)∨¬P4(b) P4(b)=¬P2(b)∨P3(a,b)  ¬P1(a)∨¬P4(b) – резольвента;
Поскольку в полученной резольвенте за последним обрамленным атомом не следует
справа никакой другой атом, последовательно, справа налево, удаляются все обрамленные
атомы – получаем пустую резольвенту.
2. Доказать истинность заключения:
x(P3(x)&P1(x)y(P5(y)&P4(x,y))), x(P2(x)&P3(x)&y(P4(x,y)P2(y))), x(P2(x)P1(x))
x(P5(x)&P2(x))
Решение:
1.
преобразуем посылки и отрицание заключения в ССФ и введем обозначения для
формул:
F1=x(P3(x)&P1(x)y(P5(y)&P4(x,y)))=x((P3(x)&P1(x))y(P5(y)&P4(x,y)))
шаг4 приведения к ПНФ=xy((P3(x)P1(x))(P5(y)&P4(x,y)))
шаг2б приведения к ССФ=x((P3(x)P1(x))(P5(f(x))&P4(x,f(x))))=
x((P3(x)P1(x)P5(f(x)))&(P3(x)P1(x)P4(x,f(x))))
F2=x(P2(x)&P3(x)&y(P4(x,y)P2(y)))=x(P2(x)&P3(x)&y(P4(x,y)P2(y)))
шаг4 приведения к ПНФ=xy(P2(x)&P3(x)&(P4(x,y)P2(y)))
шаг2а приведения к ССФ=y(P2(а)&P3(а)&(P4(а,y)P2(y)))
F3=x(P2(x)P1(x))=x(P2(x)P1(x))
F4=x(P5(x)&P2(x))шаг2 приведения к ПНФ=x((P5(x)&P2(x)))=x(P5(x)P2(x))
2.
выпишем множество дизъюнктов:
К={(P3(x)P1(x)P5(f(x))),(P3(x)P1(x)P4(x,f(x))),P2(а),P3(а),(P4(а,y)P2(y)),
(P2(x)P1(x)),(P5(x)P2(x))}
3.
выполним подстановку и унификацию дизъюнктов:
=(P1(a)P2(a))P2(a)= P1(a) – резольвента
P1(a)
=P1(a)P3(a)P1(a)P4(a,f(a))=
P1(a)P3(a)P4(a,f(a)) – резольвента
P1(a)P3(a)P4(a,f(a))
P1(a)P3(a)P4(a,f(a)) P4(a,f(a)) P2(f(a))=
P1(a)P3(a)P4(a,f(a)) P2(f(a)) – резольвента
63
P1(a)P3(a)P4(a,f(a)) P2(f(a))
P1(a)P3(a)P4(a,f(a)) P2(f(a))P5(f(a))P2(f(a))=
P1(a)P3(a)P4(a,f(a)) P2(f(a))P5(f(a)) – резольвента
P1(a)P3(a)P4(a,f(a)) P2(f(a))P5(f(a))
P1(a)P3(a)P4(a,f(a)) P2(f(a))P5(f(a))P3(a)P1(a)P5(f(a))
по закону идемпотентности= P1(a)P3(a)P4(a,f(a))P2(f(a))P5(f(a))P1(a) резольвента
P1(a)P3(a)P4(a,f(a))P2(f(a))P5(f(a))P1(a)P1(a)=
P1(a)P3(a)P4(a,f(a))P2(f(a))P5(f(a))P1(a)= P1(a)P3(a) – резольвента
P1(a)P3(a)P3(a) – пустая резольвента.
4. Логика реляционная
4.1. Основные понятия
Этот раздел классической математической логики используется для формального
представления и обработки множества высказываний с одинаковой структурой. Такие
высказывания удобно представлять двумерной таблицей, например:
Дисциплина
Лекции
Практика
Отчетность
Информатика
34
56
зачет
Математика
66
77
зачет
Программирование
45
54
экзамен
В этой таблице «закодированы» три высказывания:
1) По информатике читаются лекции в объеме 34 часов, проводятся практические
занятия в объеме 56 часов, отчетность по дисциплине – зачет,
2) По математике читаются лекции в объеме 66 часов, проводятся практические
занятия в объеме 77 часов, отчетность по дисциплине – зачет,
3) По программированию читаются лекции в объеме 45 часов, проводятся
практические занятия в объеме 54 часов, отчетность по дисциплине – экзамен.
Именами столбцов такой таблицы являются имена свойств объектов, чаще всего
называемых атрибутами, а строками, называемыми кортежами, - цепочки значений
атрибутов. Область определения атрибута называют доменом. Число строк таблицы
называют её мощностью.
Кортежи называют совместимыми, если они имеют одинаковую длину (или ранг),
одинаковые имена компонент и одинаковый их порядок в кортеже. Множество совместимых
64
кортежей называют отношением, а множество отношений для определенной области
деятельности называют реляционной базой данных.
Отношение можно рассматривать как файл определенного типа. Такой файл состоит
из последовательности записей, по одной на каждый кортеж, причем в файле не должно быть
одинаковых записей. Все записи файла должны иметь одинаковое число полей, так как
кортежи должны быть совместимыми.
Между таблицей, отношением и файлом есть соответствие:
ТАБЛИЦА
ОТНОШЕНИЕ
ФАЙЛ
строка

кортеж

запись
имя столбца

имя атрибута

имя поля
тип атрибута

тип домена

тип поля
Если дано множество атрибутов A={A1,A2,…,An} и множество доменов D={D1,D2,...,
Dm}, то кортеж отношения есть t=(d1,d2,...,dn) где di∈Dj.
Так как отношение есть множество совместимых кортежей, то r={t| t=(d1,d2,...,dn),
di∈Dj}. Отношение, заданное на множестве упорядоченных кортежей, есть подмножество nарного прямого произведения доменов, т.е. r={t| t=(d1,d2,...,dn), di∈D}⊆nD.
Отношение на множестве упорядоченных кортежей задают схемой отношения с
указанием имени отношения и порядка следования атрибутов в кортеже: rel(r)=(A1, A2,…, An).
Множество схем отношений, используемых в реляционной базе данных, называют схемой
реляционной базы данных REL(R)={rel(r)}.
Для каждого отношения должен быть задан ключ – это один или несколько атрибутов,
выделяющих единственный кортеж отношения или единственную запись файла.
Например, есть две таблицы Т1 и Т2 со структурой, соответственно:
Дисциплина
Лекции
Практика
Отчетность
Информатика
34
56
зачет
Математика
66
77
зачет
Программирование
45
54
экзамен
Преподаватель
Иванов И.И.
Петров П.П.
Сухов С.С.
Якушев Я.Я
Дисциплина
Информатика
Информатика
Математика
Программирование
Учебная группа
11-ИЭ
11-ВТ
10-ИЭ
11-ИЭ
65
Таблица Т1 имеет столбцы с именами – атрибутами отношения: Дисциплина – А1,
Лекции – А2, Практика – А3, Отчетность – А4; таблица Т2 имеет столбцы с именами –
атрибутами отношения: Преподаватель – А5, Дисциплина – А1, Учебная группа – А6.
Мощность таблицы Т1 – 3, мощность таблицы Т2 – 4.
В рамках одной таблицы кортежи совместимы, следовательно, мы имеем два
отношения: таблице Т1 соответствует отношение r1, а таблице Т2 – отношение r2. Отношения
r1 и r2 составляют реляционную базу данных, описывающую распределение учебной нагрузки
между преподавателями вуза.
Доменами атрибутов являются:
 А1:=Дисциплина – D1 – множество названий учебных дисциплин из учебного
плана;
 А2:=Лекции – D2 – множество натуральных чисел;
 А3:=Практика – D2;
 А4:=Отчетность – D3 – множество форм отчетности, принятых в высшей школе;
 А5:=Преподаватель – D4 - множество фамилий преподавателей вуза;
 А6:=Учебная группа – D5 – множество шифров учебных групп вуза.
Дадим формальное определение введенной реляционной базе данных:
 множество атрибутов А={A1,A2,A3,A4,A5,A6},
 множество доменов D={D1,D2,D3,D4,D5},
 схемы отношений:
o rel(r1)=(A1, A2,A3, A4)
o rel(r2)=(A5, A1,A6)
 кортежи отношений:
o для отношения r1:
 t1r1=(Информатика,34,56,зачет)
 t2r1=(Математика,66,77,зачет)
 t3r1=(Программирование,45,54,экзамен)
o для отношения r2:
 t1r2=(Иванов И.И.,Информатика,11-ИЭ)
 t2r2=(Петров П.П.,Информатика,11-ВТ)
 t3r2=(Сухов С.С.,Математика,10-ИЭ)
 t4r2=(Якушев Я.Я.,Программирование,11-ИЭ)
 формальное определение отношений:
o r1={ t1r1,t2r1,t3r1}
o r2={ t1r2,t2r2,t3r2,t4r2}
 формальное определение базы данных из примера:
REL(R)={rel(r1),rel(r2)}.
66
Над отношениями можно осуществлять алгебраические и логические операции. Так
математическая логика нашла применение в управлении реляционными базами данных.
При изложении основ реляционной алгебры и реляционного исчисления будем
придерживаться следующих ограничений:
 все атрибуты кортежа должны быть элементарными (или каждое поле записи должно
иметь один тип: INTEGER (целые), REAL (вещественные), CHAR (символьные) или
BOOLEAN (логические)) и не должны быть функционально связаны между собой,
 все кортежи должны быть упорядоченными и иметь одинаковое число компонент в
одном отношении (или все записи в файле должны быть упорядочены и иметь
одинаковое число полей),
 каждое отношение должно иметь ключ, в роли которого выступают один или несколько
атрибутов и каждое отношение не должно содержать по одному ключу двух или более
одинаковых кортежей (или файл не должен содержать двух или более одинаковых
записей),
 никакие два столбца таблицы не должны иметь совпадающие имена атрибутов, но их
значения могут принадлежать одному домену.
4.2. Реляционная алгебра
Формальное определение реляционной алгебры:
А рел  R; Σ 
где
R  {r1 , r2 ,...},
  {,, \, , ,  В (r),  rel (r), ,  ,:},
ri ={t1,t2,…}| tk=(d1,d2,…), dp∈Dj - значение атрибута Ap,
rel(ri)=(A1,A2,...) - схема отношения ri,
∪ - оператор объединения отношений,
∩ - оператор пересечения отношений,
\ - оператор разности отношений,
 - оператор прямого произведения отношений,
¬ - оператор дополнения отношения,
δB(r) - оператор выбора кортежа отношения по условию B,
πrel(r) - оператор проекции отношения на новую схему rel,
>< - оператор естественного соединения отношений,
>θ< - оператор θ-соединения отношений,
: - оператор деления отношений.
67
Задание логических операторов Ψ={&,∨,¬} и операторов сравнения θ={=,≠,>,≥,<,
≤} позволяют формировать условия исполнения алгебраических операций. Совокупность
отношений и множества операторов Σ,Ψ,θпредставляют алгебраическую систему:
Мрел=<R, Σ, Ψ, θ>,
где {Σ, Ψ, θ} – сигнатура алгебраической системы,
θ={=, ≠, >, ≥, <, ≤},
Ψ= {&, ∨, ¬}.
Будем далее рассматривать исполнение алгебраических операций над пятью
отношениями (ключи подчеркнуты):
r1
r4
A1
A2
A3
а1
b1
а2
r2
A1
A2
A3
1
а2
b3
b2
3
а1
а3
b3
2
а4
b4
3
A4
A5
A6
c2
d3
c1
r5 r5
r3
A1
A4
A5
1
а1
с2
d3
b1
3
а2
с1
d1
а2
b4
2
а3
с1
d2
а1
b2
3
а1
с2
d1
A1
A2
A3
A4
A5
A6
1
а1
b1
1
с2
d3
1
d1
2
а2
b2
3
с2
d2
3
c2
d2
3
а1
b1
1
с3
d3
3
c3
d3
2
а2
b2
3
с2
d1
3
а1
а3
а3
а4
b1
b3
b3
b1
1
2
2
3
с1
с1
с3
с2
d1
d1
d3
d3
2
2
3
2
Поскольку наглядно и наиболее удобно представлять отношения таблицами, то
исполнение операций проследим в форме таблиц.
4.2.1. Унарные операции
Оператор выбора δB(r) позволяет извлекать из отношения r кортежи по условию В и
создавать новое отношение: r’=δB(r,В)=t’|t’⊆r, B, rel(r’)=rel(r)}. При исполнении этой
операции сохраняется первоначальная схема отношения.
Условия выбора В описывают с помощью арифметических операторов сравнения
={=,≠,>,≥,<,≤} и/или логических операторов Ψ={&,∨,¬} и имеют один из форматов (k –
некоторая константа, принадлежащая соответствующему домену):
68
 B=(Аi=k) означает выбор в заданном отношении кортежей, для которых атрибут
Аi имеет значение k;
 B=(Аi≠k) означает выбор в заданном отношении кортежей, для которых атрибут
Аi имеет значение, отличное от k;
 В=(Аi>k) означает выбор в заданном отношении кортежей, для которых атрибут
Аi имеет значение, большее k;
 В=(Аi≥k ) означает выбор в заданном отношении кортежей, для которых атрибут
Аi имеет значение, не меньшее k.
Возможно обобщение условия В:
1) B=((Ai,…, Aj,..., Ak)=(ki,…, kj,…, kk)) означает выбор в заданном отношении
кортежей, для которых атрибут Ai имеет значение ki, атрибут Aj имеет значение kj,
атрибут Ak имеет значение kk.
2) Если условия заданы логическими операторами, то B=(Bi&Bj) означает «выполнить
условие Bi и Bj», а B=(Bi∨Bj) – «выполнить условие Bi или Bj» и т. п.
Использование функциональных символов {+,-,*,/} в формировании условий
запрещено.
Примеры использования оператора выбора:
1.
Выбрать кортежи отношения r1 по значению ключа А1=а2, т.е. сформировать
новое отношение r’1=δB(r1,(А1=а2)).
Решение:
r’1
A1
A2
A3
а2
b2
3
2.
Выбрать кортежи отношения r2 по значению атрибута A3=1, т.е. сформировать
новое отношение r’2= δB(r2,(А3=1)).
Решение:
r’2
A1
A2
A3
а2
b3
1
3.
Выбрать кортежи отношения r5 по значениям атрибутов: A1=a1,A2=b1,A3=1, т.е.
r’5= δB(r5,((A1=a1)&(A2=b1)&(A3=1))).
Решение:
r’5 A1 A2 A3 A4 A5 A6
а1
b1
1
с2
d3
1
а1
b1
1
с3
d3
3
а1
b1
1
с1
d1
2
69
Оператор проекции πrel(r) позволяет формировать из данного отношения r со схемой
rel(r)=(A1,A2,..,An) новое отношение r’ со схемой rel(r’)=(Ai,Aj,…,Ak), где 1i,j,kn, путем
удаления и/или переупорядочения атрибутов: πrel(r,Ai,Aj,…,Ak). Т.е. r’=πrel(r)={ t’| |rel(r’)|≤
|rel(r)|}. Число кортежей формируемого отношения равно числу кортежей заданного
отношения, т.е. |r’|=|r| (это условие ограничивает область применения данного оператора,
распространяя его только на ключевые атрибуты).
Примеры использования оператора проекции:
1. Выбрать только ключи отношения r1, т.е. r’1= πrel(r1,A1).
Решение:
r1 '
A1
a1
a2
a3
a4
2. Выбрать только ключи отношения r3, т.е. r’3= πrel(r3,A1,A5).
Результат:
r3 '
A1
A5
a1
d3
a2
d1
a3
d2
a1
d1
Оператор дополнения ¬r позволяет формировать из данного отношения r новое
отношение r’, кортежи которого не совпадают по значению атрибутов с кортежами данного
отношения. Для этого необходимо найти множество всех кортежей со схемой заданного
отношения rel(r) на области определения D=
и удалить из этого множества кортежи
заданного отношения r.
Например, найти дополнение для отношения r3, т.е. сформировать r’3=r3.
Решение:
1) Сформируем множества значений атрибутов, составляющих отношений r3:
D1={a1,a2,a3}, D2={c1,c2}, D3={d1,d2,d3}.
70
2) Определим все комбинации элементов доменов отношения r3:
A1
A4
A5
a1
c1
d1
a1
c1
d2
a1
c1
d3
a1
c2
d1
a1
c2
d2
a1
c2
d3
a2
c1
d1
a2
c1
d2
a2
c1
d3
a2
c2
d1
a2
c2
d2
a2
c2
d3
a3
c1
d1
a3
c1
d2
a3
c1
d3
a3
c2
d1
a3
c2
d2
a3
c2
d3
2) Исключим из таблицы размещений кортежи, принадлежащие r 3 (выделены
курсивом):
A1
A4
A5
a1
c1
d1
a1
c1
d2
a1
c1
d3
a1
c2
d1
a1
c2
d2
a1
c2
d3
a2
c1
d1
a2
c1
d2
a2
c1
d3
a2
c2
d1
a2
c2
d2
a2
c2
d3
a3
c1
d1
a3
c1
d2
71
A1
A4
A5
a3
c1
d3
a3
c2
d1
a3
c2
d2
a3
c2
d3
3) Результат:
r’3
A1
A4
A5
a1
c1
d1
a1
c1
d2
a1
c1
d3
a1
c2
d2
a2
c1
d2
a2
c1
d3
a2
c2
d1
a2
c2
d2
a2
c2
d3
a3
c1
d1
a3
c1
d3
a3
c2
d1
a3
c2
d2
a3
c2
d3
4.2.2. Бинарные операции
Оператор объединения (r1,r2) двух отношений, имеющих одинаковые схемы,
формирует новое отношение r’, объединяя все кортежи первого и второго отношений:
r’=(r1,r2)= {t’|t’=(t1∈r1t2∈r2), rel(r’)=rel(r1)=rel(r2)}. При этом одинаковые кортежи двух
отношений замещаются одним кортежем.
Например, выполнить объединение (r1,r2), т.е. r’=( r1,r2)={t’|t’=t1∈r1 или t’=t2∈r2,
rel(r’)= rel(r1)= rel(r2)}. Решение:
r’
A1
A2
A3
а1
b1
1
а2
b2
3
а3
b3
2
а4
b4
3
а2
b3
1
а1
b1
3
а2
b4
2
а1
b2
3
72
Оператор прямого произведения (r1,r2) формирует из двух отношений арности n1 и
n2 новое отношение r’ арности (n1+n2) и числом строк, равным (m1*m2), где ni – число
атрибутов схемы i-го отношения, mi – число кортежей i-го отношения: r’=(r1,r2)={t`=(t1,t2) |
t1∈r1,t2∈r2, rel(r’)=(rel(r1), rel(r2))}. При этом первые n1 компонент кортежа отношения r’
образованы отношением r1, а последние n2 - отношением r2.
Например, выполнить прямое произведение (r1,r4), т.е. r`=(r1,r4)={t`=(t1,t4) | t1∈r1,
t4∈r4, rel(r’)=(rel(r1), rel(r4))}. Решение:
r’
A1
A2
A3
A4
A5
A6
а1
b1
1
c2
d3
1
а1
b1
1
c1
d1
2
а1
b1
1
c2
d2
3
а1
b1
1
c3
d3
2
а2
b2
3
c2
d3
1
а2
b2
3
c1
d1
2
а2
b2
3
c2
d2
3
а2
b2
3
c3
d3
2
а3
b3
2
c2
d3
1
а3
b3
2
c1
d1
2
а3
b3
2
c2
d2
3
а3
b3
2
c3
d3
2
а4
b4
3
c2
d3
1
а4
b4
3
c1
d1
2
а4
b4
3
c2
d2
3
а4
b4
3
c3
d3
2
Оператор разности \(r1,r2) двух отношений, имеющих одинаковые схемы, формирует
новое отношение r’, выбирая из первого отношения только те кортежи, которых нет во
втором отношении: r’=\(r1,r2)={t’|t’=(t1∈r1&t1∉r2), rel(r1)=rel(r2)}.
Например, выполнить разность r1\r2, т.е. r’=\(r1,r2)={t’|t’=(t1∈r1&t1∉r2), rel(r1)=rel(r2)}.
Решение:
r’
A1
A2
A3
а1
b1
1
а2
b2
3
а3
b3
2
а4
b4
3
73
Оператор пересечения ∩(r1,r2) двух отношений, имеющих одинаковые схемы,
формирует новое отношение из кортежей первого и второго отношений, имеющих
одинаковые значения всех одноименных атрибутов r’=(r1,r2)={t’|t’=(t1∈r1&t2r2),
rel(r1)=rel(r2)}.
Например, выполнить пересечение (r1, r2), т.е. r’=( r1,r2)={t’|t’=(t1∈r1&t2r2), rel(r1)=
rel(r2)}. Решение:
r’
A1
A2
A3
Оператор естественного соединения ><(r1,r2) позволяет из отношений r1 и r2 арности
n1 и n2, имеющих одинаковые имена атрибутов, создавать новое отношение r’, схема
которого есть объединение схем отношений, а кортежи нового отношения есть результат
соединения кортежей первого и второго отношений при одинаковых значениях одноименных
атрибутов: r’= ><(r1,r2,{(r1.Ai=r2.Ai)})={t’=(t1,t2)|(t1∈r1&t2r2),
rel(r’)⊆(rel(r1)∪rel(r2))&{(r1.Ai=r2.Ai)}}. В результате выполнения этой операции в новом
отношении остаются только те кортежи, одноименные атрибуты которых имеют одинаковое
значение, при этом одноименные атрибуты кортежа замещаются одним атрибутом.
Например, выполнить естественное соединение r3><r4, т.е. r’=><(r3,r4)={t’=(t3,t4) |
(t3∈r3&t4r4),rel(r’)⊆(rel(r3)∪rel(r4))&((r3.A4=r4.A4),(r3.A5=r4.A5))}. Решение:
r’
A1
a1
a2
A4
c2
c1
A5
d3
d1
A6
1
2
Оператор θ-соединения >θ<(r1,r2) позволяет из отношений r1 и r2 арности n1 и n2
создавать новое отношение r’ арности (n1+n2) при выполнении некоторого условия
В=(A1iA2j), где {=,≠,>,≥,<,≤}:
r’=>θ<(r1,r2,В)={t`=(t1,t2)|(t1,t2)∈(r1r2),В=(A1iA2j),rel(r’)=(rel(r1), rel(r2))}. Первые n1
компонентов кортежа образованы кортежами, принадлежащими отношению r1, а последние кортежами, принадлежащими отношению r2.
Например, выполнить -соединение >θ<(r1r4 ,(r1.A3<r4.A6)), т.е. т.е. r’= >θ<( r1,r4,
(r1.A3<r4.A6)) = {t’=(t1,t4)| (t1∈r1&t4r4), rel(r’)⊆(rel(r1)∪rel(r4))&(r1.A3<r4.A6)}. Решение:
r’
A1 A2 A3 A4 A5 A6
а1 b1
1
c2 d3
2
а1 b1
1
c2 d2
3
а1 b1
1
c3 d3
2
74
а3 b3
2
c2 d2
3
Оператор деления :(r1,r2) позволяет формировать из отношений r1 и r2 арности n1 и n2
новое отношение r’ арности (n1-n2) при n1> n2: r’= :(r1,r2)={t’|t1=(t’,t2), rel(r’)=rel(r1) \ rel(r2),
|rel(r’)| = |rel(r1)|-|rel(r2)|}.
Например, выполнить оператор :(r5,r4), т.е. r’= :(r5,r4)={t’|t5=(t’,t4), rel(r’) = rel(r5)\rel(r4),
|rel(r’)| = |rel(r5)| - |rel(r4)|}. Решение:
r’
A1 A2 A3
а1 b1
1
а2 b2
3
а3 b3
2
4.2.3. Правила реляционной алгебры
Так как при исполнении алгебраических операций всегда формируется одно
отношение, то последовательность их исполнения влияет на скорость создания r’, что важно
для практического использования реляционных баз данных. Поэтому при исполнении
алгебраических операций следует соблюдать некоторые ограничения и правила:
1. r’=δB1(δB2 (r)) =δB2(δB1 (r)) – операция выбора коммутативна,
2. r’=δB(r1∩r2)=δB(r1)∩δB(r2) – операция выбора над пересечением отношений
равносильна пересечению операций выбора над каждым отношением, но
δB(r1)∩δB(r2) более рациональна по времени,
3. r’=δB(r1∪r2)=δB(r1)∪δB(r2) – операция выбора над объединением отношений
равносильна объединению операций выбора над каждым отношением, но
δB(r1)∪δB(r2) более рациональна по времени,
4. r’=δB(r1\r2)=δB(r1)\δB(r2) – операция выбора над разностью отношений равносильна
разности операций выбора над каждым отношением, но δB(r1)\δB(r2) более
рациональна по времени,
5. r’=δB(r1>< r2)=δB(r1)><r2 – операция выбора над соединением отношений равносильна
соединению одного отношения с операцией выбора над другим отношением, но
δB(r1)><r2 более рациональна по времени, так как δB(r1><r2) обрабатывает все
кортежи прямого произведения r1 и r2,
6. r’=δB(πrel(r1))=πrel(δB(r1)) – операция проекции коммутативна с операцией выбора,
7. r’=(r1><r2)= (r2><r1) - операция соединения коммутативна,
8. r’=(r1><r2)><r3=r1><(r2><r3) – операция соединения ассоциативна.
75
4.2.4. Практика по реляционной алгебре
Даны отношения: r1 – учебный план по некоторой специальности, r2 и r3 –
распределения учебной нагрузки между преподавателями кафедры1 и кафедры2 вуза (ключи
подчеркнуты):
r1
Дисциплина
Лекции
Практика
Отчетность
Информатика
34
0
зачет
Математика
66
77
зачет
Программирование
45
54
экзамен
r2 Преподаватель
Иванов И.И.
Петров П.П.
Сухов С.С.
Якушев Я.Я
Якушев Я.Я.
Дисциплина
Информатика
Информатика
Математика
Программирование
Информатика
Учебная группа
11-ИЭ
11-ВТ
10-ИЭ
11-ИЭ
11-БУ
r3 Преподаватель Дисциплина Учебная группа
Арбузов В.В.
Культурология 11-ИЭ
Борисов Б.Б.
Философия
11-ВТ
Кузьмин К.К. История
10-ИЭ
1. Определить по распределению учебной нагрузки кафедры1 (отношение r2), какие
преподаватели преподают информатику и каким учебным группам.
Решение:
Используем оператор выбора. Тогда новое отношение r’ определяется по формуле:
r’=δB(r2, (Дисциплина=Информатика)). Результат:
r’ Преподаватель Дисциплина Учебная группа
Иванов И.И.
Информатика 11-ИЭ
Петров П.П.
Информатика 11-ВТ
Якушев Я.Я.
Информатика 11-БУ
2. Определить по учебному плану специальности (отношение r1), у каких дисциплин
нет практических занятий и форма отчетности - экзамен.
76
Решение:
Используем оператор выбора. Тогда новое отношение r’ определяется по формуле:
r’=δB(r1, ((Практика=0)&(Отчетность=экзамен)). Результат:
r’
Дисциплина
Лекции
Практика
Отчетность
Такой результат означает, что заданному условию не отвечает ни один кортеж.
Эту задачу можно решить с помощью того же оператора другой формы:
r’=δB(r1, ((Практика, Отчетность)=(0, экзамен))).
3. Определить по учебному плану (отношение r1), какие дисциплины изучают
студенты данной специальности.
Решение:
Используем оператор проекции. Тогда новое отношение r’ определяется по формуле:
r’=πrel(r1, Дисциплина). Результат:
r’
Дисциплина
Информатика
Математика
Программирование
4. Сформировать данные об учебных нагрузках преподавателей факультета (по
отношениям r2 и r3).
Решение:
Используем оператор объединения. Тогда новое отношение r’ определяется по
формуле: r’= (r2,r3). Результат:
r’ Преподаватель
Иванов И.И.
Петров П.П.
Сухов С.С.
Якушев Я.Я
Якушев Я.Я.
Арбузов В.В.
Борисов Б.Б.
Кузьмин К.К.
Дисциплина
Информатика
Информатика
Математика
Программирование
Информатика
Культурология
Философия
История
Учебная группа
11-ИЭ
11-ВТ
10-ИЭ
11-ИЭ
11-БУ
11-ИЭ
11-ВТ
10-ИЭ
77
5. Сформировать проект распределения учебной нагрузки по кафедре1, если учебный
план – отношение r1, списочный состав преподавателей этой кафедры соответствует
таблице (отношение r4):
r4 Преподаватель
Иванов И.И.
Петров П.П.
Сухов С.С.
Якушев Я.Я
Предполагается, что каждый преподаватель кафедры1 может преподавать любую
дисциплину из учебного плана.
Решение:
Используем оператор прямого произведения. Тогда новое отношение r’ определяется
по формуле: r’=(r4,r1). Результат:
r’ Преподаватель
Иванов И.И.
Иванов И.И.
Иванов И.И.
Петров П.П.
Петров П.П.
Петров П.П.
Сухов С.С.
Сухов С.С.
Сухов С.С.
Якушев Я.Я
Якушев Я.Я.
Якушев Я.Я.
Дисциплина
Информатика
Математика
Программирование
Информатика
Математика
Программирование
Информатика
Математика
Программирование
Информатика
Математика
Программирование
Лекции
34
66
45
34
66
45
34
66
45
34
66
45
Практика
0
77
54
0
77
54
0
77
54
0
77
54
Отчетность
зачет
зачет
экзамен
зачет
зачет
экзамен
зачет
зачет
экзамен
зачет
зачет
экзамен
6. Определить, какими учебными нагрузками кафедра1 отличается от кафедры2.
Решение:
Используем оператор разности. Тогда новое отношение r’ определяется по формуле:
r’=\(r2,r3). Результат:
r’ Преподаватель
Дисциплина
Иванов И.И.
Информатика
Петров П.П.
Информатика
Сухов С.С.
Математика
Учебная группа
11-ИЭ
11-ВТ
10-ИЭ
78
r’ Преподаватель
Дисциплина
Учебная группа
Якушев Я.Я
Программирование 11-ИЭ
Якушев Я.Я.
Информатика
11-БУ
7. Определить одинаковые учебные нагрузки преподавателей кафедры1 и кафедры2.
Решение:
Используем оператор пересечения. Тогда новое отношение r’ определяется по формуле:
r’= (r2,r3). Результат:
r’ Преподаватель Дисциплина Учебная группа
8. Сформировать проект распределения учебной нагрузки по кафедре1, если учебный
план – отношение r1 и предполагается, что каждый преподаватель кафедры1 может
преподавать только ту дисциплину из учебного плана, которую преподает обычно
(отношение r2).
Решение:
Используем оператор естественного соединения упомянутых отношений по названию
дисциплины. Тогда новое отношение r’ определяется по формуле: r’=><(r2,r1).
Результат:
r’ Преподаватель
Иванов И.И.
Петров П.П.
Сухов С.С.
Якушев Я.Я
Якушев Я.Я.
Дисциплина
Информатика
Информатика
Математика
Программирование
Информатика
Лекции
34
34
66
Практика
0
0
77
Отчетность
зачет
зачет
зачет
45
34
54
0
экзамен
зачет
Учебная группа
11-ИЭ
11-ВТ
10-ИЭ
11-ИЭ
11-БУ
4.3. Реляционное исчисление
Если реляционная алгебра изучает способы формирования алгебраических отношений
и приемы исполнения различных операций над отношениями, то реляционное исчисление
изучает логические функции на множестве кортежей отношения: истина логической функции
подтверждает верность алгебраического выражения для формирования отношения, а ложь –
отрицает ее.
По аналогии с исчислением предикатов на множестве кортежей t определим
переменные-кортежи (x,y,z) и постоянные–кортежи (a,b,c).
Таким образом, если результатом алгебраической операции над отношениями является
отношение, то результатом реляционного исчисления является множество кортежей t, каждый
79
из которых определяется истинным значением некоторой логической функции F(t), т.е.
r’={t’|F(t), t’{t}}, где F(t) – формула предиката (логическая функция); при значении F(t)=и из
множества связанных переменных-кортежей t извлекается подмножество свободных
переменных-кортежей t’r’.
Введем понятия элементарной формулы (атома) и формулы в реляционном
исчислении:
• если r - отношение, а t - кортеж, то r(t) –элементарная формула,
• если x и y – переменные-кортежи и дан оператор θ сравнения значений двух (или
нескольких) атрибутов Ai и Aj, то (x(Ai)θy(Aj)) - элементарная формула,
• иных элементарных формул нет,
• любая элементарная формула есть формула, т.е. F=r(t), или F=x(Ai)θkj, или
F=x(Ai)θy(Aj), где kj – значение атрибута,
• если F1 и F2 -формулы, то (¬F), (F1∨F2), (F1&F2) - также формулы,
• если x – переменная-кортеж и F(x) - формула, то ∃x(F(x)) и ∀x(F(x)) - также формулы,
• иных формул нет.
Здесь формула ∃x(F(x)) утверждает, что существует такое значение кортежа-переменной
х, при подстановке которого эта формула становится истинной; формула ∀x(F(x)) утверждает,
что при подстановке любого кортежа подходящей арности эта формула становится истинной.
Переменная-кортеж является связанной, если ей предшествует квантор по этой же
переменной, и свободной - в противном случае.
Если существует выражение реляционной алгебры, то существует эквивалентное ему
выражение в реляционном исчислении с переменными-кортежами.
4.3.1. Операции реляционного исчисления
Операция выборки - имеет вид: r’={t’|∃x(r(x)&(<условия на атрибуты переменногокортежа>))}. Квантор существования выбирает такие переменные-кортежи, для которых
формула (<условия на атрибуты переменного-кортежа>) имеет значение истины.
Примеры условий на атрибуты переменного-кортежа:
(x(Ai)θki),
(x(Ai)θki)and(x(As)θks),
(x(Ai)θki)or(x(As)θks),
(x(Ai)θx(As)).
Например, дано отношение «учебный_план1»:
Дисциплина
Физика
Информатика
Матлогика
Электроника
Лекции
34
51
51
68
Л/з
34
34
0
34
П/з
17
0
34
0
Отчетность
Экзамен
Зачет
Экзамен
Экзамен
80
1) Определить формы занятий и формы отчетности по информатике и электронике.
Решение: r’={t’|x(учебный_план1(х)&(x(дисциплина)=‘информатика’or
(дисциплина)= ‘электроника’))}.
Результат:
Дисциплина Лекции Л/з П/з Отчетность
Информатика 51
34 0
Зачет
Электроника 68
34 0
Экзамен
2) Определить дисциплины, для которых число часов лекций превышает число часов
л/з, а также формы занятий и формы отчетности для них. Решение:
r’={t’|x(учебный_план1(х)&(x(лекции)>x(л/з)))}.
Результат:
Дисциплина Лекции Л/з П/з Отчетность
Информатика 51
34 0
Зачет
Матлогика
51
0
34 Экзамен
Электроника 68
34 0
Экзамен
Операция проекции - имеет вид: r’={t’|∀x(r(x)&(t’[1]=x(Ai))&(t’[2]=x(Aj))&…&(t[k]=
x(An)))}, где [] – место атрибута Ai,Aj,…An в кортеже t’. Квантор всеобщности использует в
отношении-результате все кортежи исходного отношения, но не все его компонентыатрибуты. Эта операция позволяет также переупорядочить расположение атрибутов в
кортеже.
Например, по отношению учебный_план1 определить формы отчетности по каждой
дисциплине. Решение:
r’={t’|x(учебный_план1(х)&(t’[1]=x(дисциплина))&(t’[2]=x(отчетность)))}.
Результат:
Дисциплина Отчетность
Физика
Экзамен
Информатика Зачет
Матлогика
Экзамен
Электроника Экзамен
Операция объединения – имеет вид r’={t’|∀x∀y(r1(x)&r2(y)&((t’=x)∨(t’=y)))}. Квантор
всеобщности объединяет в отношении r’ все кортежи отношений r1(x) и r2(y). Если атрибуты
кортежей не упорядочены, то атрибуты кортежа второго отношения должны быть
упорядочены так же, как у кортежей первого отношения (см. операцию проекции).
81
Например, дано отношение учебный_план2:
Дисциплина
Культурология
Матанализ
Физика
Электроника
Лекции
17
34
34
68
Л/з
0
0
34
34
П/з
34
34
17
0
Отчетность
Зачет
Экзамен
Экзамен
Экзамен
Выполнить объединение данного отношения и отношения учебный_план1. Решение:
r’={t’|∀x∀y(учебный_план1(x)&учебный_план2(y)&((t’=x)∨(t’=y)))}.
Результат:
Дисциплина
Лекции Л/з П/з Отчетность
Физика
34
34 17 Экзамен
Информатика 51
34 0
Зачет
Матлогика
51
0
34 Экзамен
Электроника
68
34 0
Экзамен
Культурология 17
0
34 Зачет
Матанализ
34
0
34 Экзамен
Операция разности – имеет вид: r’={t’|∃x∃y(r1(x)&r2(y)&(t’=x)&¬(t’=y))}. Кванторы
существования накладывают условия для извлечения только таких кортежей первого
отношения, которых нет во втором.
Например, даны отношения учебный_план1 и учебный_план2. Определить перечень
дисциплин, отсутствующих в отношении учебный_план2. Решение:
r’={t’|xy(учебный_план1(x) &учебный_план2(y)&(t’=x)&(t’=y))}.
Результат:
Дисциплина Лекции Л/з П/з Отчетность
Информатика 51
34 0
Зачет
Матлогика
51
0
34 Экзамен
Операция пересечения – имеет вид: r’={t’|∃x∃y(r1(x)&r2(y)&(t’=x)&(t’=y))}. Кванторы
существования позволяют выбрать одинаковые кортежи в первом и втором отношениях.
Например, даны отношения учебный_план1 и учебный_план2. Определить перечень
дисциплин, общих для обоих отношений. Решение:
r’={t’|xy(учебный_план1(x)&учебный_план2(y)&(t’=x)&(t’=y))}.
82
Результат:
Дисциплина Лекции Л/з П/з Отчетность
Физика
34
34 17 Экзамен
Электроника 68
34 0
Экзамен
Операция прямого произведения – имеет вид: r’={t’|∀x∀y(r1(x)&r2(y)&(t’[1]=
x[1])&(t’[2]= x[2])&...&(t’[n1]=x[n1])&(t’[n1+1]=y[1])&(t’[n1+2]=y[2]) &...&(t’[n1+n2]=y[n2]))},
где [] – место атрибута в кортеже t’,x или y. Кванторы всеобщности позволяют приписать
каждый кортеж второго отношения к каждому кортежу первого отношения (операция
конкатенации).
Например, даны отношения учебный_план1 и преподаватель1:
Фамилия И.О.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Должность
Доцент
Профессор
Доцент
Доцент
Стаж
18
20
15
10
Определить по каждой дисциплине из учебного плана список возможных
преподавателей:
r’={t’|∀x∀y(учебный_план1(x)&преподаватель1(y)&(t’[1]=x[1])&(t’[2]=x[2])&(t’[3]=x[3])&(t’[4
]=х[4])&(t’[5]=x[5]) &(t’[6]=y[1])&(t’[7]= y[2])&(t’[8]=y[3]))}.
Результат:
Дисциплина
Физика
Физика
Физика
Физика
Информатика
Информатика
Информатика
Информатика
Матлогика
Матлогика
Матлогика
Матлогика
Электроника
Электроника
Электроника
Электроника
Лекции
34
34
34
34
51
51
51
51
51
51
51
51
68
68
68
68
Л/з
34
34
34
34
34
34
34
34
0
0
0
0
34
34
34
34
П/з
17
17
17
17
0
0
0
0
34
34
34
34
0
0
0
0
Отчетность
Экзамен
Экзамен
Экзамен
Экзамен
Зачет
Зачет
Зачет
Зачет
Экзамен
Экзамен
Экзамен
Экзамен
Экзамен
Экзамен
Экзамен
Экзамен
Фамилия И.О.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Должность
Доцент
Профессор
Доцент
Доцент
Доцент
Профессор
Доцент
Доцент
Доцент
Профессор
Доцент
Доцент
Доцент
Профессор
Доцент
Доцент
Стаж
18
20
15
10
18
20
15
10
18
20
15
10
18
20
15
10
83
Операция естественного соединения – имеет вид:
r’={t’|∃x∃y(r1(x)&r2(y)&(x(Ai)=y(Ai))& (t’[1]=x[1])&…&(t’[n1]= x[n1])&(t’[n1+1]=y[1])&
(t’[n1+2]=y[2])&...&(t’[n1+n2-1] = y[n2]))}. Кванторы существования обусловлены выбором
переменных-кортежей, имеющих одинаковые значения одноименных атрибутов двух
отношений.
Например, даны отношения учебный_план2 и преподаватель2:
Фамилия И.О.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Должность
Доцент
Профессор
Доцент
Доцент
Дисциплина
Культурология
Физика
Матанализ
Электроника
Определить, какие преподаватели ведут дисциплины из учебного плана, и указать
характеристики этих дисциплин. Решение:
r’={t’|∃x∃y(преподаватель2(x)&учебный_план1(y)&(х(Дисциплина)=y(Дисциплина))&
(t’[1]=x[1])& (t’[2]=x[2])&(t’[3]=х[3])& (t’[4]=y[2])&(t’[5]=y[3])& (t’[6]=y[4])&(t’[7]=y[5]))}.
Результат:
Фамилия И.О. Должность Дисциплина
Лекции Л/з П/з Отчетность
Иванов И.И.
Доцент
Культурология 17
0
34 Зачет
Иванов В.В.
Профессор Физика
34
34 17 Экзамен
Петров П.П.
Доцент
Матанализ
34
0
34 Экзамен
Сидоров С.С.
Доцент
Электроника
68
34 0
Экзамен
Операция θ-соединения - имеет вид: r’={t’|∃x∃y(r1(x)&r2(y)&<условие>&
(t’[1]=x[1])&...&(t’[i]=x[i])&…&(t’[n1]=x[n1])&(t’[n1+1]=y[1])&…& (t’[n1+j]=y[j])&...
&(t’[n1+n2]=y[n2]))}.
Примеры условий:
(x(Ai)θy(f(Ai))),
(x(f(A))θy(Ai)),
((x(Ai)θy(Ai))and(x(Au)θy(Av))),
((x(Ai)θy(Ai))or(x(Au)θy(Av))).
Например, даны отношения учебный_план2 и преподаватель3:
Фамилия И.О.
Иванов И.И.
Иванов В.В.
Петров П.П.
Сидоров С.С.
Должность
Доцент
Профессор
Доцент
Доцент
Нагрузка
55
45
80
55
84
Определить преподавателей, которые могут вести ту или иную дисциплину в
соответствии с нагрузкой, т.е. когда общее число часов по дисциплине не превышает
индивидуальную нагрузку преподавателя; в ответе указать все данные из исходных таблиц
как по дисциплинам, так и по преподавателям. Решение:
r’={t’|∃x∃y(преподаватель3(x)&учебный_план2(y)&(x(Нагрузка)(y(Лекции)+y(Л/з)+y(П/з)))&
(t’[1]=x[1])&(t’[2]=x[2])&(t’[3]=x[3])&(t’[4]=y[1])&(t’[5]=y[2])&(t’[6]=y[3])&(t’[7]=y[4])&(t’[8]
=y[5]))}.
Результат:
Фамилия И.О. Должность Нагрузка Дисциплина
Лекции Л/з П/з Отчетность
Иванов И.И.
Доцент
55
Культурология 17
0
34
Зачет
Петров П.П.
Доцент
80
Культурология 17
0
34
Зачет
Петров П.П.
Доцент
80
Матанализ
34
0
34
Экзамен
Сидоров С.С.
Доцент
55
Культурология 17
0
34
Зачет
5. Нечёткая логика
Нечёткая логика была предложена американским профессором Л. Заде, который для
оценки частичной истинности или частичной ложности высказывания ввел множество
рациональных чисел на интервале [0,1].
Например, дано высказывание «Сидоров имеет рост 178см.» и дан предикат Р(x):=«x –
высокий человек». Спрашивается: «Сидоров – высокий человек?». Некто установил значение
истины высказывания Р(Сидоров)=0,75. Это означает, что высказывание «Сидоров – высокий
человек» истинно на три четверти. Точно так же оно на одну четверть ложно.
Такие высказывания не дают числовой характеристики объекта, но с учетом опыта
специалиста и описания сопутствующих фактов дают оценку истинности высказывания
«быть высоким человеком».
Слабым моментом нечеткой логики является задание значения истинности на
интервале [0,1]. Это - задача высококвалифицированных специалистов в конкретной отрасли
знаний - экспертов. И, как правило, при разработке экспертных систем используют опыт
многих специалистов.
5.1. Нечёткие множества
В основе нечеткой логики лежит понятие нечеткого множества.
Пусть дано универсальное множество U. Если на этом множестве задать подмножество
X’, характеристическое свойство которого недостаточно четко определено, то
принадлежность элементов u∈U множеству X’ может быть описана функцией
принадлежности - μX’(u) как субъективная мера. Значение функции μX’(u) называют
степенью принадлежности и определяют на интервале [0, 1], т.е. μX’ (ui): U →[0, 1].
85
Тогда модель нечеткого множества X’ определяется следующим образом:
X’={μX’(u1)/u1, μX’(u2)/u2,..., μX’(un)/un},
где μX’(ui)∈[0,1] – степень принадлежности каждого элемента ui∈U нечёткому
множеству X’: μX’(ui): U →[0, 1],
U – универсальное множество,
μX’(u) – функция принадлежности.
Связь между четким и нечетким множествами выражается следующими положениями:
1) носителем нечёткого множества X’ являются элементы четкого подмножества
X⊆U, т. е. X={u1, u2,...,un}⊆U, если для ui∈X μX’(ui)>0,
2) если для ui∈U имеем μX’(ui)=1, то элемент ui четко принадлежит множеству X’,
3) если для ui∈U имеем μX’(ui)=0, то элемент ui четко не принадлежит множеству X’,
4) если все элементы носителя X имеют значение μX’(ui)=1, то дано четкое
подмножество X’=X множества U,
5) если все элементы носителя X имеют значение μX’(ui)=0, то дано пустое множество,
т.е. X’=∅.
Например, дано 10 предметов. Требуется сформировать множество подмножеств,
удовлетворяющих предикату «несколько предметов». Иначе, надо определить нечеткое
понятие «несколько предметов».
Решение:
Пусть U={1, 2, 3, …, 10} – универсальное множество. Эксперт, пользуясь своим
знанием языка, так определил понятие «несколько предметов» - Х’: X’={0.6/3, 0.8/4, 0.8/5,
0.8/6, 0.6/7, 0.6/8, 0.6/9}, т.е. подмножества из 3, 4 и т.д. (до 9 включительно) предметов могут
соответствовать понятию «несколько предметов» с определенной в формуле степенью
принадлежности. Для подмножеств, содержащих один, два или все 10 предметов, эксперт
определил степень принадлежности, равную нулю. Носитель нечеткого множества X’ –
четкое множество: X={3,4,5,6,7,8,9}.
5.2. Нечёткая алгебра
Основана на операциях над нечеткими множествами, особенностью которых является
определение степени принадлежности результирующему нечеткому множеству каждого
элемента универсального множества.
Пусть Т’(U)={X’1,X’2,…} – множество нечетких подмножеств универсального
множества U, F={,,} – множество операторов. Тогда нечеткая алгебра определяется как:
A=<T’(U), F, (ui)>,
где (ui) – функция принадлежности элементов (ui) универсального множества U
нечеткому подмножеству X’.
Определим синтаксические правила для формул нечеткой алгебры:
1) любое нечеткое подмножество универсального множества есть элементарная
формула, т.е. X’i=F’i;
86
2)
3)
4)
5)
других элементарных формул нет;
любая элементарная формула есть формула,
если F’1 и F’2 – формулы, то F’, (F’1F’2), (F’1F’2) – также формулы;
других формул нет.
5.2.1. Операции нечеткой алгебры
Объединение  нечётких подмножеств X’1 и X’2 есть нечеткое подмножество X’,
состоящее из элементов множества U , которые принадлежат нечёткому подмножеству X’1
или X’2, т. е. X’=(X’1∪X’2). Степень принадлежности элементов универсального множества
нечёткому подмножеству X’ равна дизъюнкции степеней принадлежности элементов
универсального множества нечётким подмножествам X’1 и X’2:
μX’(ui)=(μX’1(ui)∨μX’2(ui))=maxi{μX’1(ui),μX’2(ui)}.
Например, дано: X’1={0.6/u1,0.4/u2,0.8/u3,0.2/u4,1.0/u5,0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3,
0.7/u7,0.3/u8,0,5/u9}, U={u1,u2,u3,u4,u5,u6,u7,u8,u9} здесь и далее. Найти X’=(X’1∪X’2).
Решение: X’=(X’1∪X’2)={0.9/u1,0.4/u2,1.0/u3,0.2/u4,1.0/u5, 0.3/u6,0.7/u7,0.3/u8,0.5/u9}.
Пересечение  нечётких подмножеств X’1 и X’2 есть нечеткое подмножество X’,
состоящее из элементов множества U, которые принадлежат нечётким подмножествам X’1 и
X’2, т. е. X’=(X’1∩X’). Степень принадлежности элементов универсального множества
нечёткому подмножеству X’ равна конъюнкции степени принадлежности элементов
универсального множества нечётким подмножествам X’1 и X’2:
μX’(ui)=(μX’1(ui)&μX’2(ui))=mini{μX’1(ui),μX’2(ui)}.
Например, дано: X’1={0.6/u1,0.4/u2,0.8/u3,0.2/u4,1.0/u5,0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3,
0.7/u7,0.3/u8,0,5/u9}. Найти X’=(X’1X’2).
Решение: X’=(X’1X’2)={0.6/u1,0.4/u2,0.8/u3}.
Дополнение  нечёткого подмножества X’ есть нечёткое подмножество ¬X’,
состоящее из всех элементов универсального множества U, которые не принадлежат
нечёткому подмножеству X'. Степень принадлежности элементов универсального множества
нечёткому подмножеству ¬X’ равна дополнению степени принадлежности элементов
нечёткому подмножеству X’ до степени принадлежности универсальному множеству U:
μX’(u)= 1-μX’(u).
Например, дано: U={u1,u2,u3,u4,u5,u6,u7,u8,u9}, X’1={0.6/u1,0.4/u2,0.8/u3,0.2/u4,1.0/u5,
0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3,0.7/u7,0.3/u8,0,5/u9}. Найти X’1 и X’2.
Решение: X’1={0.4/u1,0.6/u2,0.2/u3,0.8/u4,0.7/u6 ,1.0/u7,1.0/u8, 1.0/u9}, X’2={0.1/u1,
0.6/u2, 1.0/u4, 1.0/u5 ,1.0/u6,0.3/u7,0.7/u8, 0.5/u9}.
На базе рассмотренных операций нечеткой алгебры существуют дополнительные
операции: разности, симметрической разности, прямого произведения нечетких подмножеств.
87
Разность \ нечётких подмножеств X’1 и X’2 есть нечеткое подмножество X’,
состоящее из тех элементов множества U , которые принадлежат нечёткому подмножеству
X’1 и не принадлежат нечёткому подмножеству X’2, т. е. X’=X’1\X’2=X’1∩¬X’2. Степень
принадлежности элемента универсального множества нечёткому подмножеству X’ равна
конъюнкции степеней принадлежности нечёткому подмножеству X’1 и дополнению
нечёткого подмножества X’2: μX’(ui)=(μX’1(ui)&(1-μX’2(ui)))=mini{μX’1(ui),(1-μ X’2(ui))}.
Например, дано: U={u1,u2,u3,u4,u5,u6,u7,u8,u9}, X’1={0.6/u1,0.4/u2,0.8/u3,0.2/u4,1.0/u5,
0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3,0.7/u7,0.3/u8,0,5/u9}. Найти X’1\X’2.
Решение: X’= X’1\X’2={0.1/u1,0.4/u2,0.2/u4,1.0/u5,0.3/u6}.
Симметрическая разность Δ нечётких подмножеств X’1 и X’2 есть нечёткое
подмножество X’, состоящее из элементов универсального множества U, которые
принадлежат нечётким подмножествам (X’1&¬X’2) или (X’2&¬X’1), т. е. X’=(X’1ΔX’2)=
(X’1∩¬X’2)∪(X’2∩¬X’1). Степень принадлежности элементов универсального множества
нечёткому подмножеству X’ равна дизъюнкции степеней принадлежности нечетким
подмножествам X’1∩¬X’2 и X’2∩¬X’1: μX’(ui)=(μX’1(ui)&μX’2(ui)) (μX’2(ui)&μX’1(ui)) =
max{mini{μX’1(ui),μ X’2(ui)}, mini{μX’2(ui),μ X’1(ui)}.
Например, дано: U={u1,u2,u3,u4,u5,u6,u7,u8,u9}, X’1={0.6/u1,0.4/u2,0.8/u3,0.2/u4, 1.0/u5,
0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3,0.7/u7,0.3/u8,0,5/u9}. Найти X’1X’2.
Решение: X’= X’1X’2={0.4/u1,0.4/u2,0.2/u3,0.2/u4,1.0/u5,0.3/u6, 0.7/u7,0.3/u8,0.5/u9}.
Прямое произведение  нечетких подмножеств есть нечеткое подмножество X’,
состоящее из пар (ui,uj), первая компонента которых принадлежит нечёткому подмножеству
X’1, а вторая – X’2, т.е. X’= X’1⊗X’2={μX’(ui ,uj)/(ui,uj)|ui∈X’1 и uj∈X’2}. Степень
принадлежности μX’(ui,uj) пары (ui,uj), равна минимальному значению степени
принадлежности μX’1(ui) и μX’2(uj): μX’(ui,uj)= (μX’1(ui)&μX’2(uj)=min{μX’1(ui),μX’2(uj)}.
Например, дано: X’1={0.2/u4,1.0/u5,0.3/u6}, X’2={0.9/u1,0.4/u2,1.0/u3}. Найти X’1X’2.
Решение: X’= X’1X’2={0.2/(u4, u1),0.2/(u4, u2),0.2/(u4, u3),0.9/(u5, u1), 0.4/(u5, u2),1.0/(u5,
u3),0.3/(u6, u1),0.3/(u6, u2), 0.3/(u6, u3)}.
Возможно также исследовать «отношения» двух нечетких подмножеств. Для этого
используются операции включения и равенства нечетких подмножеств.
Включение  нечёткого подмножества X’1 в нечёткое подмножество X’2 есть
высказывание: «если ‘u’∈U принадлежит X’1, то он принадлежит X’2». Степень включения
нечёткого подмножества X’1 в нечёткое подмножество X’2 равна конъюнкции степеней
принадлежности результатов исполнения операций импликации для каждого элемента
универсального множества, т. е.
μX’1X’2=&(μX’1(ui)μX’2(uj))=&(μX’1(ui)μX’2(uj))=min{max{(1-μX’1(ui)), μX’2(uj)}}. Если
88
μX’1⊆X’2≥0.5, то говорят, что нечеткое подмножество X’1 нечётко включено в нечеткое
подмножество X’2.
Например, дано: X’1={0.3/u2,0.6/u3,0.4/u5}, X’2={0.8/u1,0.5/u2,0.7/u3,0.6/u5}, U={u1, u2, u3,
u4, u5}. Включено ли нечеткое подмножество X’1 в нечеткое подмножество X’2?
Решение: (X’1X’2)=min{max{1/u1,0.8/u1},max{0.7/u2,0.5/u2},max{0.4/u3,0.7/u3},
max{1/u4,0/u4},max{0.6/u5, 0.6/u5}}=min{1/u1,0.7/u2,0.7/u3,1/u4,0.6/u5}=0.6.
Поскольку результат больше 0.5, ответ – включено.
Равенство ≅ нечётких подмножеств X’1 и X’2 есть высказывание: «если uU
принадлежит X’1, то он принадлежит X’2 и если он принадлежит X’2, то принадлежит X’1».
Степень равенства нечётких подмножеств X’1 и X’2 равна конъюнкции степеней
принадлежности результатов исполнения операции эквивалентности для каждого элемента
универсального множества, т.е.
μX’1X’2=&i(μX’1(ui)μX’2(uj))=&i((μX’1(ui)μX’2(uj))&i(μX’2(ui)μX’1(uj)))=min{min {maxi{(1μX’1(ui)),μX’2(uj)},maxi{(1-μX’2(ui)),μX’1(uj)}}}. Если μX’1≅X’2 ≥0,5, то нечеткие подмножества X’1
и X’2 нечётко равны.
Например, дано: X’1={0.8/u2,0.6/u3,0.1/u5}, X’2={0.3/u1,0.6/u2,0.7/u3,0.2/u4,0.3/u5}, U={u1,
u2, u3, u4,u5}. Равны ли нечетко нечеткие подмножества X’1 и X’2?
Решение: (X’1X’2)=min{min{max{1/u1,0.3/u1},max{0/u1,0.7/u1}}, min{max{0.2/u2,0.6/u2},
max{0.8/u2,0.4/u2}}, min{max{0.4/u3, 0.7/u3},max{0.6/u3,0.3/u3}}, min{max{1/u4,0.2/u4},
max{0/u4,0.8/u4}}, min{max{0.9/u5,0.3/u5},max{0.1/u5,0.7/u5}}}= min{min{1/u1, 0.7/u1},
min{0.6/u2,0.8/u2}, min{0.7/u3, 0.6/u3},min{1/u4,0.8/u4}, min{0.9/u5, 0.7/u5}}=
min{0.7/u1,0.6/u2,0.6/u3,0.8/u4,0.7/u5}=0.6.
Поскольку результат больше 0.5, ответ: нечетко равны.
5.2.2. Нечеткие множества отображений
Если по какому-то нечёткому правилу для элементов множества X находят элементы
множества Y, то формируют нечёткое отображение h’:
Если по какому-то нечёткому правилу для элементов четкого множества X находят
элементы того же множества, то формируют нечёткое отношение r’:
.
Нечёткие отображения и отношения удобно представлять матрицами, элементы строк
которых есть прообразы нечёткого отображения, а элементы столбцов – его образы. Тогда в
каждую клеточку матрицы записывают значение степени принадлежности для
соответствующей пары элементов.
Композиция  нечётких отображений h’1 и h’2 есть нечёткое отображение
h’=(h’1h’2)={h’(xi,zk)/(xi,zk)}. Степень принадлежности нечёткому отображению h’
89
существует тогда и только тогда, когда есть хотя бы один элемент yj, принадлежащий
нечётким отображениям h’1={μh’1(xi,yj)/(xi,yj)} и h’2={μh’2(yj,zk)/(yj,zk)}, и вычисляется
операцией дизъюнкции для каждого значения yj, т. е. h’(xi,zk)=(h’1(xi,yj)&h’2(yj,zk))=
max{minj{h’1(xi,yj),h’2(yj,zk)}}.
Композиция  нечётких отношений r’1 и r’2 есть нечёткое отношение r’=(r’1r’2)=
{r’(x1i, x2k)/(x1i, x2k)}. Степень принадлежности нечёткому отношению r’ существует тогда и
только тогда, когда есть хотя бы один элемент xj, принадлежащий нечётким отношениям r’1 и
r’2, и вычисляется операцией дизъюнкции для каждого значения xk, т. е.
r’(xi,xk)=(r’1(xi,xj)&r’2(xj,xk))=max{minj{r’1(xi,xj),r’2(xj,xk)}}.
5.2.2.1. Практика по нечетким отображениям
1. Дано:
 x1, x2, x3, x4 и x5 - соответственно, внешние признаки заболевания: высокая
температура, хрипы в грудной клетке, головная боль, насморк, кашель,
 y1, y2, y3 и y4 – возможные заболевания: мигрень, респираторное заболевание,
бронхит, астма,
 нечеткая матрица (нечеткое отображение) h’: X’→Y’ составлена ведущими
диагностами медицины; она показывает вероятные заболевания при том или ином
наборе признаков:
h’ y1 y2 y3 y4
x1 0 0.2 0 0
x2 0 0
0 0
x3 1 0 0.4 0
x4 0 0.3 0 0
x5 0 0.7 0.8 0
 X' – нечеткие данные о заболевании некоторого пациента, полученные в
нестационарных условиях (в лесу, экспедиции и т.п.): X’={0.6/x1,0.9/x4,0.1/x5}.
Определить возможные заболевания пациента, т.е. найти нечёткое множество Y'.
Решение:
Для определения возможных заболеваний пациента построим композицию X’h’, для
чего используем следующую форму представления исходных данных (столбец x’
соответствует данному выше определению нечеткого подмножества X’):
h’
x1
x2
x3
x4
x’
0.6
0
0
0.9
y1
0
0
1
0
y2
0.2
0
0
0.3
y3
0
0
0.4
0
y4
0
0
0
0
90
x5 0.1 0
0.7 0.8 0
Тогда: μy'(y1)=max{min{0.6,0},min{0.9,0},min{0.1,0}}=0,
μy’(y2)=max{min{0.6,0.2},min{0.9,0.3),min{0.1,0.7}}=0.3,
μy’(y3)=max{min{0.6,0},min{0.9,0},min{0.1,0.8}}=0.1,
μy’(y4)=max{min{0.6,0},min{0.9,0},min{0.1,0}}=0.
Составим по результатам расчетов нечеткое множество Y'={0/y1,0.3/y2,0.1/y3,0/y4}.
То есть по данным о внешних признаках у пациента, возможно, респираторное
заболевание (y2). Надежность диагноза не более 0,3.
2. Дано:
h’1={0.3/(x1,y1),1/(x1,y3),0.7/(x2,y1),0.9/(x2,y2), 0.4/(x2,y3)}
h’2={ 0.2/(y1,z1),0.8/(y1,z2),1/(y1,z3),0.3/(y2,z1),0.4/(y2,z3)}.
Найти h’=(h’1°h’2).
Решение:
1. Сформируем пары на элементах множеств {xi} и {zj}:
х1
х2
z1
z2
z3
Результат: (x1,z1),(x1,z2),(x1,z3),(x2,z1),(x2,z2),(x2,z3)
2. По каждой паре рассчитаем степень принадлежности, пользуясь исходными
данными:
h’(x1,z1) = max{min{(x1,y1),(x1,y2),(x1,y3)},min{(y1,z1),(y2,z1),(y3,z1)}}=
max{min{0.3,0,1},min{0.2,0.3,0}}= max{0,0}=0
h’(x1,z2) = max{min{(x1,y1),(x1,y2),(x1,y3)},min{(y1,z2),(y2,z2),(y3,z2)}}=
max{min{0.3,0,1},min{0.8,0,0}}= max{0,0}=0
h’(x1,z3) = max{min{(x1,y1),(x1,y2),(x1,y3)},min{(y1,z3),(y2,z3),(y3,z3)}}=
max{min{0.3,0,1},min{1,0.4,0}}= max{0,0}=0
h’(x2,z1) = max{min{(x2,y1),(x2,y2),(x2,y3)},min{(y1,z1),(y2,z1),(y3,z1)}}=
max{min{0.7,0.9,0.4},min{0.2,0.3,0}}=max{0.4,0}=0.4
h’(x2,z2) = max{min{(x2,y1),(x2,y2),(x2,y3)},min{(y1,z2),(y2,z2),(y3,z2)}}=
max{min{0.7,0.9,0.4},min{0.8,0,0}}=max{0.4,0}=0.4
h’(x2,z3) = max{min{(x2,y1),(x2,y2),(x2,y3)},min{(y1,z3),(y2,z3),(y3,z3)}}=
max{min{0.7,0.9,0.4},min{1,0.4,0}}=max{0.4,0}=0.4
Ответ: h’={0.4/(x2,z1), 0.4/(x2,z2),0.4/(x2,z3)}.
3. Дано:
r’1 x1 x2 x3 x4
r’2 x1 x2 x3 x4
x1 0.2 0.4 0.6 0.3
x1 0.4 0.2 0.8 0.9
x2 0.3 0.5 0.7 0.5
x2 0.5 0.7 0.3 0.7
91
x3
x4
Найти r'=r1r2.
0.2 0.5 0.4 0.7
0.3 0.6 0.9 0.9
x3
x4
0.5 0.2 0.6 0.5
0.4 0.7 0.8 0.3
Решение:
Рассчитаем степени принадлежности для пар элементов нечеткого отношения r’,
принадлежащих первым двум строкам и столбцам (остальное выполнить
самостоятельно) (полужирно выделены элементы, для которых выполняется расчет):
r’(x1,x1)=max{min{r’1(x1,x1), r’2(x1,x1)},min{r’1(x1,x2), r’2(x2,x1)},
min{r’1(x1,x3), r’2(x3,x1)},min{r’1(x1,x4), r’2(x4,x1)}}=
max{min{0.2,0.4},min{0.4,0.5},min{0.6,0.5},min{0.3,0.4}}=
max{0.2,0.4,0.5,0.3}=0.5
r’(x1,x2)=max{min{r’1(x1,x1), r’2(x1,x2)},min{r’1(x1,x2), r’2(x2,x2)},
min{r’1(x1,x3), r’2(x3,x2)},min{r’1(x1,x4), r’2(x4,x2)}}=
max{min{0.2,0.2},min{0.4,0.7},min{0.6,0.2},min{0.3,0.7}}=
max{0.2,0.4,0.2,0.3}=0.4
r’(x1,x3)=max{min{r’1(x1,x1), r’2(x1,x3)},min{r’1(x1,x2), r’2(x2,x3)},
min{r’1(x1,x3), r’2(x3,x3)},min{r’1(x1,x4), r’2(x4,x3)}}=
max{min{0.2,0.8},min{0.4,0.3},min{0.6,0.6},min{0.3,0.8}}=
max{0.2,0.3,0.6,0.3}=0.6
r’(x1,x4)=max{min{r’1(x1,x1), r’2(x1,x4)},min{r’1(x1,x2), r’2(x2,x4)},
min{r’1(x1,x3), r’2(x3,x4)},min{r’1(x1,x4), r’2(x4,x4)}}=
max{min{0.2,0.9},min{0.4,0.7},min{0.6,0.5},min{0.3,0.3}}=
max{0.2,0.4,0.5,0.3}=0.5
r’(x2,x1)=max{min{r’1(x2,x1), r’2(x1,x1)},min{r’1(x2,x2), r’2(x2,x1)},
min{r’1(x2,x3), r’2(x3,x1)},min{r’1(x2,x4), r’2(x4,x1)}}=
max{min{0.3,0.4},min{0.5,0.5},min{0.7,0.5},min{0.5,0.4}}=
max{0.3,0.5,0.5,0.4}=0.5
r’(x2,x2)=max{min{r’1(x2,x1), r’2(x1,x2)},min{r’1(x2,x2), r’2(x2,x2)},
min{r’1(x2,x3), r’2(x3,x2)},min{r’1(x2,x4), r’2(x4,x2)}}=
max{min{0.3,0.2},min{0.5,0.7},min{0.7,0.2},min{0.5,0.7}}=
max{0.2,0.5,0.2,0.5}=0.5
r’(x2,x3)=max{min{r’1(x2,x1), r’2(x1,x3)},min{r’1(x2,x2), r’2(x2,x3)},
min{r’1(x2,x3), r’2(x3,x3)},min{r’1(x2,x4), r’2(x4,x3)}}=
max{min{0.3,0.8},min{0.5,0.3},min{0.7,0.6},min{0.5,0.8}}=
max{0.3,0.3,0.6,0.5}=0.6
r’(x2,x4)=max{min{r’1(x2,x1), r’2(x1,x4)},min{r’1(x2,x2), r’2(x2,x4)},
92
min{r’1(x2,x3), r’2(x3,x4)},min{r’1(x2,x4), r’2(x4,x4)}}=
max{min{0.3,0.9},min{0.5,0.7},min{0.7,0.5},min{0.5,0.3}}=
max{0.3,0.5,0.5,0.3}=0.5
и т.д.
Результат:
r’
x1
x2
x3
x4
x1
0.5
0.5
0.5
0.5
x2
0.4
0.5
0.7
0.7
x3
0.6
0.6
0.7
0.8
x4
0.5
0.5
0.5
0.6
5.2.3. Законы нечёткой алгебры
Две нечёткие формулы F’i и F’j называют равносильными и обозначают F’i≡F’j, если
они имеют одинаковые степени принадлежности. Если две формулы равносильны, то они
эквивалентны, т.е F’iF’j.
Законы нечёткой алгебры позволяют исполнять эквивалентные преобразования
сложных алгебраических формул и находить степени принадлежности каждого элемента
универсального множества в результате исполнения алгебраических операций:
Имя
Равносильные формулы F’i≡F’j
закона
Коммутат (F'1∪F’2)≡(F’2∪F’1)
ивности (F’1∩F’2)≡(F’2∩F’1)
Ассоциат F’1∪(F’2∪F’3)≡(F’1∪F’2)∪F’3
ивности
F’1∩(F’2∩F’3)(F’1∩F’2)∩F’3
Равносильные значения функций
принадлежности
max{μF’1(ui), μF’2(ui)}≡max{μF’2(ui), μF’1(ui)}
min{μF’1(ui), μF’2(ui)}≡min{μF’2(ui), μF’1(ui)}
max{μF’1(ui),max{μF’2(ui), μF’3(ui)}}≡
max{max{μF’1(ui),μF’2(ui)},μF’3(ui)}
min{μF’1(ui),min{μF’2(ui), μF’3(ui)}}≡
min{min{μF’1(ui),μF’2(ui)},μF’3(ui)}
Дистрибу F’1∪(F’2∩F’3)≡(F’1∪F’2)∩(F’1∪F’3) max{μF’1(ui),min{μF’2(ui),μF’3(ui)}}≡
тивности
min{max{μF’1(ui),μF’2(ui)},max{μF’1(ui),μF’3(ui)}}
F’1(F’2F’3)≡(F’1F’2)(F’1F’3) min{μF’1(ui),max{μF’2(ui),μF’3(ui)}}≡
max{min{μF’1(ui),μF’2(ui)},min{μF’1(ui),μF’3(ui)}}
Идемпоте F∪F ≡ F
max{μF’(ui), μF’(ui)} ≡ μF’(ui)
нтности F∩F ≡ F
min{μF’(ui), μF’(ui)} ≡ μF’(ui)
Де
1-max{μF’1(ui),μF’2(ui)}≡
¬(F1∪F2) ≡ ¬F1∩¬F2
Моргана
min{(1-μF’1(ui),(1- μF’2(ui)}
1-min{μF’1(ui),μF’2(ui)}≡
¬(F1F2) ≡ ¬F1¬F2
max{(1-μF’1(ui),(1- μF’2(ui)}
Дополнен ¬(¬F) ≡ F
(1- (1- μF’(ui))) ≡μF’(ui)
ия
93
Констант F∪∅ ≡ F
ы
F∪U ≡U
F∩∅ ≡∅
F∩иF
-
5.2.4. Свойства нечетких отношений
Для нечётких отношений могут быть установлены свойства рефлексивности,
симметричности и транзитивности, которые позволят формировать классы нечётких
отношений. Но эти свойства также обладают нечёткостью, т.е. существуют нечёткая
рефлексивность, нечёткая симметричность, нечёткая транзитивность.
Для определения нечётких свойств нечетких отношений нужно вычислять степени
нечёткости для каждой позиции такого отношения.
Степенью рефлексивности нечёткого отношения α(r’)ref называется величина,
α(r' ) ref  & μ r' (x i , x i )  min {μ r' (x i , x i )} .
определяемая выражением
. Отношение называют
i
i
нечётко рефлексивным, если α(r’)ref≥0,5.
Степенью антирефлексивности нечёткого отношения β(r’)ref называется величина,
{1 - μ r' (x i , x i )}. Отношение называют
определяемая выражением  (r' ) ref  &i μ r' (x i , x i )  min
i
нечётко антирефлексивным, если β(r’)ref≥0,5.
Степенью симметричности нечёткого отношения α(r’)sym называется величина,
определяемая выражением:
α(r' ) sym  & ( μ r' (x i , x j )  μ r' (x j , x i ))  & ( μ r' (x i , x j )  μ r' (x j , x i ))  min {max{(1 - μ r' (x i , x j )), μ r' (x j , x i )}}
i
i
i
j
Отношение называют нечётко симметричным, если α(r’)sym≥0,5.
Степенью антисимметричности нечёткого отношения β(r’)sym называется
величина, определяемая выражением:
β(r' ) sym  & ( μ r' (x i , x j ) & μ r' (x j , x i ))  & ( μ r' (x i , x j )  μ r' (x j , x i ))  min {max{(1 - μ r' (x i , x j )), (1 - μ r' (x j , x i ))}}
i
j
i
i
j
Отношение называют нечётко антисимметричным, если β(r’)sym≥0,5.
Степенью транзитивности нечёткого отношения α(r’)tr называется величина,
определяемая выражением:
α(r' ) tr  & (( μ r' (x i , x j ) & μ r' (x j , x k ))  μ r' (x i , x k )) & (( μ r' (x i , x j ) & μ r' (x j , x k ))  μ r' (x i , x k )) 
i
j
i
j
& ( μ r' (x i , x j )  μ r' (x j , x k )  μ r' (x i , x k ))  min {max {(1 - μ r' (x i , x j )), (1 - μ r' (x j , x k )), μ r' (x i , x k )}}
i
i
j
Отношение называют нечётко транзитивным, если α(r’)tr ≥0,5.
Отношение, для которого α(r’)ref ≥0,5, α(r’)sym ≥0,5 и α(r’)tr ≥0,5, есть отношение
нечёткой эквивалентности. Степень нечёткой эквивалентности определяется выражением:
η(r’)=α(r’)ref&α(r’)sym&α(r’)tr=min{α(r’)ref, α(r’)sym, α(r’)tr}≥0,5.
94
Отношение, для которого α(r’)ref ≥0,5, β(r’)sym ≥0,5 и α(r’)tr ≥0,5, есть отношение
нечёткого нестрогого порядка. Степень нечёткого нестрогого порядка определяется
выражением: η(r’)=α(r’)ref&β(r’)sym&α(r’)tr=min{α(r’)ref, β(r’)sym, α(r’)tr}≥0,5.
Отношение, для которого β(r’)ref ≥0,5, β(r’)sym ≥0,5 и α(r’)tr ≥0,5, есть отношение
нечёткого строгого порядка. Степень нечёткого строгого порядка определяется
выражением: η(r’)=(r’)ref&β(r’)sym&α(r’)tr= min{(r’)ref, β(r’)sym, α(r’)tr}≥0,5.
5.2.4.1. Практика по свойствам нечетких отношений
Дано нечеткое отношение:
r’ х1 х2 х3
х1 0,8 0,2 0,7
х2 0,4 0,6 0,6
х3 0,6 0,7 0,8
Определить свойства этого отношения.
Решение:
1) для определения степеней рефлексивности и антирефлексивности будем просматривать
элементы главной диагонали матрицы, соответствующей нечеткому отношению r’:
(r’)ref=min{0.8,0.6,0.8}=0.6>0.5, следовательно, нечеткое отношение r’ является
нечетко рефлексивным,
(r’)ref=min{0.2,0.4,0.2}=0.2<0.5, следовательно, нечеткое отношение r’ не является
нечетко антирефлексивным;
2) для определения степеней симметричности и антисимметричности будем исследовать
пары элементов из нечеткого отношения r’, исключая элементы главной диагонали (над
фигурными скобками указано, для каких элементов выполняется расчет: i – номер
строки, j – номер столбца):
i=1,j=2
i=1,j=3
(r’)sym=min{max{0.8,0.4},max{0.3,0.6},
i=2,j=1
i=2,j=3
i=3,j=1
i=3,j=2
max{0.6,0.2},max{0.4,0.7},
max{0.4,0.7},max{0.7,0.6}}=min{0.8,0.6,0.6,0.7,0.7,0.7}=0.6
i=1,j=2
i=1,j=3
(r’)sym=min{max{0.8,0.6},max{0.3,0.4},
i=2,j=1
i=2,j=3
i=3,j=1
i=3,j=2
max{0.6,0.8},max{0.4,0.3},
max{0.4,0.3},max{0.7,0.4}}=min{0.8,0.4,0.8,0.4,0.4,0.7}=0.4
Поскольку (r’)sym>0,5, нечеткое отношение r’ является нечетко симметричным, и
поскольку (r’)sym<0,5, нечеткое отношение r’ не является нечетко антисимметричным.
95
3) для определения степени транзитивности нечеткого отношения r’ будем исследовать
наличие транзитивности на «триадах» элементов с различающимися индексами:
i
j
k
1
2
3
1
3
2
2
1
3
2
3
1
3
1
2
3
2
1
Далее над формулами показано, для каких индексов выполняется расчет:
i=1,j=2 j=2,k=3 i=1,k=3
(r’)tr=min{max{(1-0.2), (1-0.4), 0.7},
i=1,j=3
j=3,k=2 i=1,k=2
max{(1-0.7), (1-0.7), 0.2},
i=2,j=1 j=1,k=3 i=2,k=3
max{(1-0.4), (1-0.7), 0.6},
i=2,j=3
j=3,k=1 i=2,k=1
max{(1-0.6), (1-0.6), 0.4},
i=3,j=1 j=1,k=2 i=3,k=2
max{(1-0.6), (1-0.2), 0.7},
i=3,j=2 j=2,k=1 i=3,k=1
max{(1-0.7), (1-0.4), 0.6}}=min{0.8,0.3,0.6,0.4,0.8,0.6}=0.3
Поскольку (r’)tr<0.5, нечеткое отношение r’ не является нечетко транзитивным.
5.3. Нечёткое исчисление
Основано на понятиях: нечеткие высказывания, нечеткие предикаты и нечеткие
предметные переменные и постоянные, нечеткие формулы, нечеткие правила вывода.
5.3.1. Нечёткие высказывания
Это предложения А’, степень истинности которых (А’) или ложности ¬(А’)
принимает значение на интервале [0,1]. Например, «Сегодня хорошая погода», «Петров –
слабый студент». Для оценки таких высказываний, т.е. для определения того или иного
значения степени истинности, привлекают авторитетных специалистов - экспертов, имеющих
опыт в подобных вопросах. Такой подход называют методом экспертных оценок. Например,
есть три эксперта, которые оценивают высказывание «Сегодня хорошая погода»:
№№ экспертов («Сегодня хорошая погода»)
1
0.9
2
0.6
3
0.3
96
Как видно, степень истинности данного высказывания оценена по-разному. Причинами
разногласий могут быть, например, плохое самочувствие эксперта 3, метеозависимость
эксперта 2, оптимизм эксперта 1. Для согласования мнения экспертов используют разные
методы. Например, пусть результирующая степень истинности высказывания рассчитывается
как среднее арифметическое по таблице. Тогда ср(«Сегодня хорошая погода»)=
(0.9+0.6+0.3)/3= 0.6, т.е. заданное высказывание истинно на 0.6 и на (1-0.6)=0.4 ложно.
5.3.2. Нечеткие предикаты, переменные и постоянные
Нечёткие предикаты есть нечёткие высказывательные функции, аргументами которых
являются предметные переменные и/или предметные постоянные, степень истинности
которых принадлежит интервалу [0, 1]. Например, высказывание «Петров выполняет
ответственное задание». Здесь предметная постоянная «ответственное задание» носит
нечеткий характер, поскольку не совсем понятно, какова мера ответственности Петрова.
Нечёткими предметными постоянными являются слова и словосочетания естественного
языка, которые служат для качественного описания явления, факта или события. Например,
«ребенок», «юноша», «часто», «близко» и т.п.
Лингвистические постоянные объединяются по какому-либо признаку в нечёткие
классы х, которые характеризуют качественные признаки явлений, фактов, событий. Эти
классы называют лингвистическими переменными. Им также соответствуют определенные
слова и словосочетания естественного языка. Такими классами, например, могут быть
«возраст», «количество», «частота», «расположение» и т. п. Множество лингвистических
постоянных, объединенных в нечеткий класс, называют терм-множеством и обозначают
Т(x).
Примерами терм-множеств Т(х) для нечетких классов х являются:
Т1(возраст)={ребенок, подросток, юноша, молодой человек, человек средних лет,
пожилой человек, старик},
Т2(количество)={мало, много, достаточно},
Т3(частота)={всегда, часто, редко}.
Можно дать формальное определение нечеткого аргумента высказывательной функции,
для чего используют некоторую метрическую шкалу.
Например, введем метрическую шкалу с делением 1 год, соответствующую возрасту
человека (примем, что максимальный возраст человека – 100 лет, т.е. универсум U={0, 1, …,
100}). Определим на этой шкале некоторые понятия из нечеткого класса «возраст» через
функцию принадлежности, т.е. зададим нечеткие множества, соответствующие
лингвистическим постоянным:
«ребенок»={1/0,1/1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,0.9/9,0.8/10,0.6/11,0.4/12,0.3/13},
«подросток»={0.2/12,0.4/13,0.5/14,0.8/15,0.5/16},
и т.д.
Пусть дан нечеткий предикат P’(х):= «быть ребенком». Универсум U={0,1,…,100}.
97
Пусть х=13. Оценить истинность предиката P’(х).
Судя по приведенным выше оценкам, нечеткий предикат P’(х) истинен на 0.3, т.е.
(P’(13))=0.3, поскольку лингвистическая постоянная «ребенок» включает степень
принадлежности возраста 13 лет, равную 0.3. Одновременно он на 0.7 ложен.
5.3.3. Нечеткие формулы
При описании факта сложными нечёткими высказываниями также используют
логические связки отрицания, конъюнкции, дизъюнкции, импликации и эквивалентности. Так
формируются нечёткие логические формулы.
Степень истинности нечёткой формулы определяется степенью принадлежности
результатов логических операций над нечёткими множествами и обозначается символом ρ:
ρ(¬A’)=(1-ρ(A’)),
ρ(A’&B’)=min{ρ(A’),ρ(B’)},
ρ(A’∨B’)= max{ρ(А’), ρ(B’)},
ρ(A’→B’)=max{(1-ρ(А’)), ρ(B’)},
ρ(A’↔B’)=min{max{(1-ρ(А’)), ρ(B’)},max{(1-ρ(B’)), ρ(A’)}},
ρ(A’&¬A’)=min{ρ(A’), (1-ρ(A’))},
ρ(A’∨¬A’)=max{ρ(А’),(1-ρ(¬A'))}.
Пусть дано сложное высказывание «Иван еще ребенок, поэтому Иван часто болеет».
Оценить его истинность.
Для оценки степени истинности первого высказывания Иван еще ребенок используем
приведенный выше пример. Пусть Ивану 13 лет. Тогда (Иван еще ребенок)=0.3.
Пусть некоторые эксперты (например, родители Ивана) нечетко оценивают его
болезненность: (Иван часто болеет)=0.6.
Представим формально исходное сложное высказывание как импликацию:
«Иван еще ребенок» «Иван часто болеет».
Тогда ρ(Иван еще ребенок Иван часто болеет)=max{(1-(Иван еще ребенок)), (Иван
часто болеет)}=max{0.7,0.6}=0.7.
5.3.4. Нечёткие правила вывода
Так же как для четких высказываний, в логике нечётких высказываний выводима
теорема: |⎯F’1&F’2&…&F’n→B’, но формулы посылок и заключения имеют значение степени
истинности в интервале [0, 1]. Это удобно объяснить с помощью нечёткого высказывания
«если A’, то B’, иначе С’».
Нечёткое высказывание «если A’, то B’» можно определить как нечёткое отображение
нечёткого высказывания A’ на нечёткое высказывание B’, т. е. (А’B’), а нечёткое
высказывание «если не А, то С» – как нечёткое отображение нечёткого высказывания ¬A’ на
98
нечёткое высказывание С’, т. е. (¬А’С’). Объединение этих двух отображений есть формула
данного нечёткого высказывания ((A’→В’),C’)=((А’B’)∪(A’C’)).
Если даны степени истинности нечётких высказываний (A’), (B’) и (C’), то
истинность высказывания «если A’, то B’, иначе C’» может быть определена по формуле:
((A’→В’),C’)=max{min{(A’),(B’)},min{(A’),(C’)}}.
Например, пусть дано нечеткое высказывание: «Если сегодня вечером будет дождь
(A’), то завтра будет солнечная погода (B’), иначе завтра будет пасмурный день (C’)».
Пусть (A’)=0.3, (B’)=0.5 и (C’)=0.2. Тогда ((A’→В’), C’)=max{min{(A’), (B’)},
min{(A’),(C’)}}=max{min{0,3, 0,5}, min{0,7, 0,2}= max{0.3,0.2}=0.3, т. е. истинность
сложного высказывания при данных значениях простых нечётких высказываний не более 0,3.
Если допустить, что (C’)=1, т.е. высказывание C’ истинно для любых значений
истинности высказывания ¬A’, то ((A’→В’),C’)=((А’B’)∪¬A’). Степень истинности такого
высказывания есть (A’→В’)=max{min{(A’),(B’)},(¬A’)}.
Например, пусть дано нечеткое высказывание: «Если сегодня вечером будет дождь
(A’), то завтра будет солнечная погода (B’)».
Пусть (A’)=0.3 и (B’)=0.5. Тогда (A’→В’)=max{min{(A’),(B’)},(A’)}=
max{min{0.3,0.5},0.7}=max{0.3,0.7}=0.7, т.е. истинность сложного высказывания «Если
сегодня вечером будет дождь, то завтра будет солнечная погода» при данных значениях
простых нечётких высказываний равна 0.7.
Основным правилом вывода нечётких высказываний также является правило modus
ponens (m.p.), однако степень истинности заключения (B’) вычисляется по формуле:
 ( A' ),  ( A'  B' )
 ( B' )
где (B’)=min{(A’),(A’B’)}.
,
.
Например, дано нечеткое высказывание: «Прилежный студент получает большую
стипендию. Некто - прилежный студент. Следовательно, некто получает большую
стипендию».
Введем обозначения:
А':="Прилежный студент"
В':="Большая стипендия"
F':="Прилежный студент получает большую стипендию": F'=A'B'
Пусть эксперт определил степени истинности высказываний: (А')=0.7, (F')=0.5.
Тогда степень истинности заключения определяется по формуле:
(B’)=min{0.7,0.5}=0.5.
99
6. Модальная логика
6.1. Структура современной модальной логики6
Для классической логики вещь существует или не существует, и нет никаких других
вариантов. Но как в обычной жизни, так и в науке постоянно приходится говорить не только о
том, что есть в действительности и чего нет, но и о том, что должно быть или не должно быть
и т.д. Действительный ход событий можно рассматривать как реализацию одной из многих
мыслимых возможностей, а действительный мир, в котором мы находимся, — как один из
бесчисленного множества возможных миров. Язык классической логики слишком беден,
чтобы на нем удалось передать рассуждения не только о реальных событиях (имеющих место
в действительном мире), но и о возможных событиях (происходящих в каких-то возможных
мирах) или о необходимых событиях (наступающих во всех таких мирах). Стремление
обогатить язык логики и расширить ее выразительные возможности привело к
возникновению модальной логики. Ее задача — анализ рассуждений, в которых встречаются
модальные понятия, служащие для конкретизации устанавливаемых нами связей, их оценки с
той или иной точки зрения.
Еще Аристотель начал изучение таких, наиболее часто встречающихся модальных
понятий, как «необходимо», «возможно», «случайно». В средние века круг модальностей был
существенно расширен, и в него вошли также «знает», «полагает», «было», «будет»,
«обязательно», «разрешено» и т.д. В принципе число групп модальных понятий и
выражаемых ими точек зрения не ограничено. Современная логика выделяет наиболее
важные из этих групп и делает их предметом специального исследования. Она изучает также
общие принципы модальной оценки, справедливые для всех групп модальных понятий.
Интересную группу составляют, в частности, понятия «полагает», «сомневается» и т.п. Раздел
модальной логики, исследующей эти и подобные им понятия, получил название
эпистемической логики. В числе самых простых законов этой логики такие положения:
«Невозможно полагать что-то и вместе с тем сомневаться в этом», «Если субъект убежден в
чем-то, неверно, что он убежден также в противоположном» и т.п.
Временные модальные понятия «было», «будет», «раньше», «позже», «одновременно»
и т.п. изучаются логикой времени (временнόй, или темпоральной). Среди элементарных ее
законов содержатся утверждения: «Неверно, что произойдет логически невозможное
событие», «Если было, что всегда будет нечто, то оно всегда будет», «Ни одно событие не
происходит раньше самого себя» и т.п.
В последние десятилетия модальная логика бурно развивается, вовлекая в свою орбиту
все новые группы модальных понятий. Существенно усовершенствованы способы ее
обоснования. Это придало модальной логике новое дыхание и поставило ее в центр
современных логических исследований.
6
Раздел 6.1 - по материалам: А.А.Ивин «Логика», учеб. пособ., М.: изд-во «Знание», 1998
100
Все модальные понятия можно разделить на абсолютные и сравнительные. Первые
представляют собой характеристики, приложимые к отдельным объектам, вторые относятся к
парам объектов, первые являются свойствами объектов, вторые — отношениями между
объектами. Абсолютными модальными понятиями являются, например, понятия «хорошо» и
«плохо», сравнительными — понятия «лучше» и «хуже». С точки зрения какой-то системы
ценностей невыполнение обещания можно охарактеризовать как негативно ценное
(«плохое»), сказав: «Плохо, что данное обещание не выполнено», т.е. приписав определенное
свойство конкретному обещанию. Но можно также установить ценностное отношение между
невыполнением обещания, и, допустим, воздержанием от обещания, сказав: «Лучше не давать
обещание, чем не выполнять его».
В логике времени к абсолютным модальностям относятся понятия «было» («всегда
было»), «есть» и «будет» («всегда будет»). Сравнительными модальными понятиями
являются «раньше», «позже» и «одновременно».
В логике оценок наряду с абсолютными оценочными понятиями «хорошо»,
«безразлично» и «плохо» исследуются также сравнительные оценочные понятия «лучше»,
«равноценно» и «хуже».
В логике причинности изучаются отношения «...есть причина...» и «...есть следствие...»,
которые можно рассматривать как сравнительные каузальные модальности. Им соответствует
абсолютная каузальная модальность «детерминировано (предопределено)». Выражение
«Событие А является причиной события В» устанавливает определенное отношение между
двумя событиями; выражение «Детерминировано наступление события А» приписывает
этому событию свойство предопределенности.
В логике истины к абсолютным модальностям относятся понятия «истинно»,
«неопределенно» и «ложно». Этим понятиям можно поставить в соответствие сравнительное
модальное понятие вероятности: «...более вероятно, чем...». Выражение «Истинно
высказывание А» устанавливает определенное свойство высказывания, а именно, его
соответствие действительности; выражение «Высказывание А более вероятно, чем
высказывание В» указывает отношение двух высказываний с точки зрения их вероятности.
В теории логических модальностей абсолютными понятиями являются «логически
необходимо», «логически возможно», «логически невозможно». Им можно поставить в
соответствие в качестве сравнительного модального понятия понятие «...логически
следует...». Высказывание «Логически необходимо высказывание А» приписывает
высказыванию А определенное свойство, а именно свойство быть логически необходимым.
Выражение «Из высказывания А логически следует высказывание В» устанавливает
определенное отношение между высказываниями А и В. В современной логике отношение
логического следования пока не рассматривалось, однако, как сравнительная модальность.
В логике изменения наряду с абсолютным понятием «возникает» исследуется также
сравнительное понятие «...переходит в...» («Возникает объект А» и «Состояние А переходит в
состояние В»).
101
Абсолютные модальные понятия иногда называются А-понятиями, сравнительные —
В-понятиями. А- и В-понятия не сводимы друг к другу, они представляют собой как бы два
разных видения мира, два взаимно дополняющих способа описания одних и тех же вещей и
событий. «Хорошо» не определимо через «лучше», «было» не определимо через «раньше» и
т.д. Логики абсолютных модальных понятий не сводимы к логическим теориям
сравнительных понятий, и наоборот.
В модальной логике основное внимание уделяется абсолютным модальностям. Из
сравнительных модальных понятий относительно подробно исследованы пока только
аксиологические модальности «лучше», «равноценно», «хуже».
Модальные понятия разных типов имеют общие формальные свойства. Так, независимо
от того, к какой группе относятся эти понятия, они определяются друг через друга по одной и
той же схеме. Нечто возможно, если противоположное не является необходимым; разрешено,
если противоположное не обязательно; допускается, если нет убеждения в противоположном.
Случайно то, что не является ни необходимым, ни невозможным. Безразлично то, что не
обязательно и не запрещено. Неразрешимо то, что недоказуемо и неопровержимо и т.п.
Подобным же образом сравнительные модальные понятия разных групп определяются
по одной и той же схеме: «первое лучше второго» равносильно «второе хуже первого»,
«первое раньше второго» равносильно «второе позже первого», «первое причина второго»
равносильно «второе следствие первого» и т.д.
В каждом разделе модальной логики доказуема своя версия принципа модальной
полноты, являющегося модальным аналогом закона исключенного третьего. В теории
логических модальностей принцип полноты утверждает, что каждое высказывание является
или необходимым, или случайным, или невозможным; в нормативной логике — что всякое
действие или обязательно, или нормативно безразлично, или запрещено; в логике оценок —
что всякий объект является или хорошим, или оценочно безразличным, или плохим и т.д.
В каждом разделе модальной логики есть и своя версия принципа модальной
непротиворечивости, являющегося модальным аналогом закона противоречия: высказывание
не может быть необходимым и невозможным; действие не может быть как обязательным, так
и запрещенным; объект не может быть и хорошим, и плохим, и т.д.
Модальные понятия, относящиеся к разным группам, имеют разное содержание. При
сопоставлении таких понятий (например, «необходимо», «доказуемо», «убежден»,
«обязательно», «хорошо», «всегда») складывается впечатление, что они не имеют ничего
общего. Однако модальная логика показывает, что это не так. Модальные понятия разных
групп выполняют одну и ту же функцию: они уточняют устанавливаемую в высказывании
связь, конкретизируют ее. Правила их употребления определяются только этой функцией и не
зависят от содержания высказываний. Поэтому данные правила являются едиными для всех
групп понятий и имеют чисто формальный характер. Логике достаточно исследовать
наиболее интересные и важные из таких групп и распространить затем полученные
результаты на все иные возможные группы модальных понятий.
102
6.2. Модальная логика, использующая модальные понятия необходимости
и возможности
Часто высказывание указывает на отношение субъекта высказывания, т.е. того, кто
говорит, к истинности или ложности факта, выраженного в высказывании: что «должно быть»
и что «может быть». Для этого вводят дополнительные операторы:  - необходимо (
обязательно) и  - возможно ( допустимо)7. Тогда запись А читается как «необходимо А»,
А читается как «возможно А». Следует отметить, что оператор  «похож» на квантор
всеобщности, а  - на квантор существования.
Например, в классической логике высказывание А:=«Существуют внеземные
цивилизации» можно оценить как ложное или истинное. Однако модальная логика требует
интерпретировать это высказывание многозначно: как высказывание «Необходимо
существуют внеземные цивилизации», если речь идет об утверждении этого факта как
доказанной закономерности, или «Необходимо не существуют внеземные цивилизации», если
речь идет об отрицании; однако поскольку данный факт пока не доказан, можно сказать
уклончиво: «Возможно, существуют внеземные цивилизации».
Понятно, что в основе модальных высказываний лежат обычные высказывания,
которые в логике высказываний мы называли пропозициональными переменными (атомами).
Определим синтаксис модальной логики:
1) каждый атом является формулой,
2) символ «истина» (и) является формулой,
3) если А и В – формулы, то А, А&В, А, А – формулы,
4) других формул нет.
Возможны дополнительные логические связки и символы для сокращения записи
формул: «ложь» (л)=и; АВ=(А&В); АВ=(А&В); АВ=(АВ)&(ВА). Кроме
того, следует иметь в виду, что А=А, т.е. оператор  является производным в модальной
логике. Приоритеты связок (упорядочены по убыванию): , , , , , , .
Можно по-разному интерпретировать слова из высказываний (это свойство
естественного языка определяет его неоднозначность), т.е. каждая формула может быть
истинной или ложной в зависимости от такой интерпретации. Поэтому выделяют группы
правил интерпретации формул в зависимости от дополнительных условий. Одним из таких
условий является выполнение формулы: (pq)(pq). Правила интерпретации
(семантики), удовлетворяющие этому условию, называют нормальными. Одной из таких
семантик является семантика, предложенная Сеулом Крипке (семантика Крипке).
В семантике Крипке вводятся понятия: Мир – w как набор некоторых данных и условий
(т.е. фактов) и множество Миров - W ={w} - для множества фактов. Модальное
высказывание А считается истинным, если А истинно в некоторых из возможных миров.
Заметим, что истинность обычных формул измеряется по отношению к текущему миру.
7
Подобная интерпретация семантики операторов принята только в рамках данного пособия
103
На множестве миров W введем произвольное бинарное отношение R. Если предикат
R(w1,w)=и, где w1,wW, то мир w называется возможным (доступным) миром для w1. Пара
множеств (W, R), где W – непустое множество, а RWW – бинарное отношение на W,
называется шкалой Крипке, а отношение R - отношением доступности (достижимости).
Например, пусть W={1, 2, 3, 4, 5}, R={(1, 1), (1, 2), (2, 3), (1, 5), (5, 4), (4, 4), (4, 3)}.
Шкалу Крипке (W, R) можно рассматривать как ориентированный граф, вершинами которого
служат элементы из W, а рёбрами – пары, принадлежащие R. Тогда для мира 1 будут
доступны миры 1, 2 и 5, ибо (1, 1), (1, 2) и (1, 5) принадлежат R.
Чтобы задать интерпретацию модальных формул, надо задать некоторую функцию
(называемую оценкой) на атомах из некоторого множества: такая функция h определёна на
множестве всех атомов и принимает значения во множестве всех подмножеств множества W.
Атом А называется истинным в мире w, если wh(А), и ложным в других случаях.
Тройка (W, R, h) называется моделью Крипке. Шкала Крипке может быть превращена в
модели Крипке в зависимости от функции оценки h.
Пусть М=(W, R, h) – модель Крипке. Для формулы А и мира wW определим
утверждение (M, w|- A)8 с помощью индукции:
1) если А – атом, то (M, w|-А) тогда и только тогда, когда wh(А);
2) (M, w|-и) (всегда);
3) (M, w|- А) тогда и только тогда, когда утверждение (M, w|- А) ложно;
4) (M, w|- А&В) тогда и только тогда, когда (M, w|- А) и (M, w|- В);
5) (M, w|- А) тогда и только тогда, когда (М, w1|- А) для всех таких w1W, что wRw1.
Имеют место утверждения, дополняющие свойства 1 – 5:
6) (M, w|- АВ), если и только если (M, w|- А) или (M, w|- В);
7) (M, w|- (АВ)), если и только если из (M, w|- А) следует, что (M, w|- В);
8) (M, w|- А), если и только если (M, w1|= А) для некоторого w1W такого, что wRw1;
9) (M, w|- (АВ), если и только если (M, w|- А&В);
10) (M, w|- А), если и только если (M, w|- А);
11) (M, w|- А), если и только если (M, w|- А).
7. Темпоральная (или временнáя) логика
Если Миры модальной логики разнесены только во времени, то отношение
достижимости Миров и выводимости высказываний можно разместить на временнóй оси.
Временнáя логика изучает высказывания, содержащие слова, связанные со временем,
например, «будет всегда», «произойдет», «завтра», «вчера». Ее основатель – Артур Прайер.
Тогда оператор необходимости можно интерпретировать как: «в следующий момент
будет…», а оператор возможности как: «когда-то будет…».
8
Читается как: формула А выполняется в мире w для модели М
104
Темпоральные формулы используют символы [F] – для обозначения будущего (future) и
[Р] – для обозначения прошлого (past).
Вместо А применяется запись: [F]A или [P]A. Для образования темпоральных формул
применяются правила:
1) каждый атом является формулой,
2) символ «истина» (и) является формулой,
3) если А и В – формулы, то A, A & B, [F]A и [P]A – формулы,
4) других формул нет.
Для построения сложных формул используют такие же логические связки, как и в
модальной логике.
Введём сокращения: <F>A = [F]А и <P>A = [P]А. В некоторых случаях
сокращения «л», и будут использоваться как самостоятельные символы.
Объединяя все введенные логические связки, определим их приоритеты (располагаются
в порядке убывания): , , , [F], [P], <F>, <P>, &, , , .
Темпоральные связки в зависимости от области применения могут принимать
значения:
[F]А = «А будет всегда верно»,
<F>А = «А будет верно в некоторый момент»,
[F]А = «А будет верно всегда, начиная с этого момента времени»,
<F>А = «А верно сейчас или будет верно потом».
Значения [P]А и <P>А определяются симметрично к [F]А и <F>А и относятся к
прошедшему времени. Связки «завтра» и «вчера», «до тех пор, пока не» и «с тех пор, как»
будут определены позже.
Заметим, что [F], [P] похожи на квантор всеобщности, а <F>, <P> – на квантор
существования.
В модальной логике можно построить, например, следующие сложные формулы:
А = «необходимо, чтобы А было допустимо»;
[P][P]А [P]А = «если всегда было верно, что А было верно всегда, то А всегда было
верно»;
А [F]<P>А = «если А верно, то в будущем всегда будет верно, что в некоторый
момент прошлого было верно А»;
<P>А = «возможно, что А не было верным никогда».
Понятие модели Крипке (W, R, h) в темпоральной логике такое же, как для модальной
логики. Определяется истинность формул [F]А и [P]А, вместо А.
Если wRw1, то говорят, что w – прошлое для w1, а w1 – будущее для w.
Обычно отношение R предполагается транзитивным в том смысле, что из wRw1 и
w1Rw2 следует: wRw2. Утверждения для интерпретации А заменяются на следующие:
1) (M, w|- [F]А), если и только если (M, w1|- А) для всех w1W таких, что wRw1,
105
2) (M, w|- [P]А), если и только если (M, w1|- А) для всех w1W таких, что w1Rw,
3) (M, w|- <F>А), если и только если существует w1W такой, что wRw1 и (M, w1|- А),
4) (M, w|- <P>А), если и только если существует такой w1W, что w1Rw и (M, w1|- А).
В темпоральной логике используются нерефлексивные транзитивные шкалы Крипке.
Шкала Крипке (W, <) называется потоком времени, если:
1) xW ((x<x)),
2) x, y, zW (x<y&y<z x<z).
Если w<v, то v называется будущим для w, а w – прошлым для v.
Для того чтобы потоки времени были линейно упорядочены, т.е. удовлетворяли
условию ww1 (w<ww=w1w<w), добавляется аксиома:
<F>A&<F>B <F>(A&B)<F>(A&<F>B)(B&<F>A)
Рассмотрим темпоральные операции, применяемые при описании программ и в
параллельном программировании.
Для этого добавляются одноместные операции T(завтра) и Y(вчера), и новое правило
для построения формул: если А – формула, то TA и YA – формулы. Семантика в модели
M=(Z, <, h):
 (M, w|-TA), если и только если (M, w+1|-A);
 M, w |= YA, если и только если (M, w-1|-A).
Вместо TA применяются также записи Next A, 0A, XA.
Since, Until
Для любых формул А и В добавляются формулы ASB и AUB. Семантика в модели M=(W, <, h):
 (M, w|-AUB), если и только если для некоторого w1>w верно (M, w1|-B) и при
всех v, удовлетворяющих соотношениям w<v<w1, верно (M, v|-A), т.е. А
верно до тех пор, пока не В;
 (M, w|- ASB), если и только если для некоторого w1<w верно (M, w1|-B), а
для всех v, удовлетворяющих соотношениям w1<v<w, верно (M, v|- A), т.е. с
тех пор, как случилось В, верно А.
8. Алгоритмическая логика
В 70-х годах XX века назрела проблема верификации программных комплексов.
Необходимо было так описать семантику языка программирования, чтобы писать программу
вместе с доказательством ее верности, а для этого необходимо построить логическую
систему, опирающуюся на аксиоматику и правила вывода каждой конструктивной единицы
языка программирования. Так начала формироваться алгоритмическая логика.
Интуитивно программа понимается как набор операторов, переводящих машину из
одних состояний в другие. Хоар предложил для отладки и верификации программ
рассматривать формулы, описывающие состояния машины перед выполнением (предусловие)
106
и после выполнения (постусловие) программы. Программе сопоставлялась запись:
{А}{В}, означающая, что предусловие описывается формулой А, а постусловие - формулой
В. Пратт предложил запись: А []В – если перед выполнением программы состояние
машины описывается формулой А, то после выполнения верна формула В. Это позволило
описывать вычислительные процессы, состоящие из комплексов программ, с помощью
модальной логики, рассматривая каждую программу как модальность.
8.1. Пропозициональная динамическая логика
Пусть 0 – произвольное множество, элементы которого называются базисными
программами. Предположим, что 0 – такое множество слов, что вместе с любыми1,
2оно содержит:
1) 12 (неопределённый выбор одной из программ 1 или 2);
2) 1;2 (выполнение 1, затем 2);
3) 1* (выполнение 1 конечное, возможно нулевое, количество раз);
4) 12 (одновременное выполнение программ 1 и 2).
Элементы из будем называть программами. Рассмотрим атомы из Р как простые
высказывания о состояниях машины, в которую загружаются программы 9. Для каждой
программы обозначим через [] соответствующую ей модальность. Определим формулы
пропозициональной динамической логики PDL10 по индукции:
1) атомы рР – формулы;
2) А&В, А, []А – формулы для любых формул А, В и элемента ;
3) все формулы PDL составляются с помощью правил 1 – 2.
Введём обозначение: <>А как сокращение для []А.
Для каждой формулы А определим программу: А?, тестирующую, верна ли
формула А. Эта программа заканчивает работу, если формула А верна, и зависает (аварийно
завершает работу) в противном случае. Эта программа вводится с целью интерпретации
оператора if (A) then 1 else 2 как программы (А?; 1)((А)?; 2).
Семантика пропозициональной динамической логики
Пусть 0 – множество базисных программ, – множество всех программ, Р – атомные
формулы, F(P) – все формулы, W – множество состояний машины, в которой могут работать
программы . Для каждого элемента определена модальность []. Тогда необходимо
каждому поставить в соответствие некоторое отношение доступности RWW.
Шкала Крипке (или система переходов) будет состоять из пары: (W, R), где W –
множество состояний, а R– отношения RWW.
9
При этом под состоянием машины понимается содержимое оперативной памяти компьютера.
Propositional Dinamic Logic
10
107
Программу можно интерпретировать как множество пар (x, y)Rтаких, что после
выполнения программы машина из состояния х перейдёт в состояние y. Каждому атому pP
ставится в соответствие подмножество h(p)W состояний, при которых высказывание р
верно.
Интерпретацией называется тройка M=(W, R, h), состоящая из шкалы Крипке и
оценки h: PP(W), удовлетворяющих соотношениям:
1) R=RR;
2) R;=RR;
3) R*=Rn, n{0,…,};
4) RA?={(x, x): xW и (M, x|-A)}.
Здесь R* – наименьшее рефлексивное транзитивное отношение, содержащее R.
Расширим h на множество формул F(P), полагая wh(A), если и только если (M, w|-A).
Получим соотношения:
5) h(AB)=h(A)h(B);
6) h(A)=W\h(A);
7) h(<>A)={wW: (w, w1)Rдля некоторого wh(A)}.
В некоторых случаях под семантикой логики PDL понимают шкалу с расширенной на
F(P) оценкой, удовлетворяющую соотношениям 1 – 7.
Аксиомы PDL
Можно ожидать, что для любых формулы А и программы формула <*>А,
(означающая возможность того, что после циклического применения машина перейдёт в
состояние, удовлетворяющее формуле А), будет равносильна формуле А<; *>А,
(означающей, что верно А, или А будет, возможно, верно после примененияне менее, чем 1
раз). Получим аксиому: <*>А А<; *> А.
Аналогично, исходя из других соображений, получаем аксиомы PDL и формальную
теорию:
1) <>A&<>B <>(A&B);
2) <>(AB) <>A<>B);
3) <>A <>A<>A;
4) <; >A <><>A;
5) <A?>B A&B;
6) A<><*>A <*>A;
7) <*>A A<*>(A&<>A).
Аксиомы 1 – 2 стандартны для модальных логик. Аксиома 7 равносильна аксиоме
Сегерберга [*](A []A) (A [*]A) и называется аксиомой PDL – индукции.
Правила вывода для данной теории:
1)
Modus ponens
108
2)
UG: А
[]A.
8.2. Логика Хоара
Как уже отмечалось, логика Хоара предназначалась для дедуктивного доказательства
правильности программ. Её формулами являются тройки {А}{В}, состоящие из предусловия
А, программы и постусловия В. Приведём форму записи, применяемой Хоаром, и её
перевод на язык исчисления PDL:
Хоар
PDL
skip
fail
if A then else 
if A1 1 |…| An n fi
do A od
{A}{B}
= 1?
= 0?
= (A?; ) (A?; )
= (A1?; 1) … (An?; n)
= (A?; )*; (A)?
= A[] B
Форма {A}{B} называется тройкой Хоара. Логика Хоара является формальной
теорией для вывода с помощью троек Хоара. Преобразуя аксиомы языка PDL, можно
получить следующие правила вывода логики Хоара:
1) Композиция:
{А}{В},{В}{С}
{А};{С}
2) Условие:
{A&B}{C},{A&B}{C}
{A} if B then  else {C}
3) Цикл:
{A&B}{A}
{A} do B od {A&
4) Следствие:
AA’,{A’}{B’}, B’B
{A}{B}
Download