- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Захарова ю.Ф. Дискретная математика и ее приложения
- •Введение
- •Глава 1. Введение в теорию множеств.
- •1.1. Основные определения.
- •1.2. Задание множеств
- •1.3. Операции над множествами
- •1.4. Разбиения и покрытия
- •1.5. Представление множеств в эвм.
- •1.5.1. Включение множеств.
- •1.5.2. Объединение множеств.
- •1.5.3. Пересечение множеств.
- •Глава 2. Булева алгебра.
- •2.1. Основные элементарные функции.
- •2.2. Основные элементарные тождества.
- •2.3. Формы представления булевых функций.
- •2.4. Минимизация булевых функций.
- •2.4.1. Метод Куайна.
- •2.4.2. Метод Карно.
- •Глава 3. Исчисление высказываний и исчисление предикатов.
- •3.1. Исчисление высказываний.
- •3.2. Исчисление предикатов.
- •Глава 4. Теория сжатия текстовой информации.
- •4.1. Метод Хаффмена
- •4.1.1. Общие положения
- •4.1.2. Краткое описание метода Хаффмена.
- •4.1.3. Пример использования метода Хаффмена.
- •4.2. Метод Зива Лемпеля (lz-метод)
- •4.2.1. Основные определения
- •4.2.2. Краткое описание lz-метода
- •4.2.3. Пример lz-метода
- •4.3. Метод Зива-Лемпеля-Велча (lzw-метод)
- •4.3.1. Общие положения
- •4.3.2. Краткое описание lzw-метода
- •4.3.3. Пример lzw-метода.
- •4.4. Метод Барроуза-Уиллера.
- •4.4.1. Общие положения.
- •4.4.2. 1 Этап. Преобразование Барроуза-Уилера.
- •4.4.3. 2 Этап. Mtf–метод.
- •4.4.4. 3 Этап. Статистический кодер.
- •4.4.5. Модификации различных этапов.
- •4.4.6. Сравнение алгоритмов сжатия на базе bwt с другими методами.
- •Глава 5. Теория сжатия графической информации. Введение.
- •5.2. Волновой метод (wavelet-метод)
- •5.2.1. Описание метода
- •5.2.2. Пример волнового метода
- •5.3. Дискретное косинус-преобразование (дкп-метод).
- •5.3.1. Описание метода.
- •5.3.2. Пример дкп-метода.
- •5.4. Классический алгоритм jpg.
- •5.5. Фрактальный алгоритм.
- •Глава 6. Введение в криптографию. Введение.
- •6.1. Методы перестановки
- •6.1.1. Матрицы
- •6.1.2. Маршруты Гамильтона
- •6.1.3. Электрический монтаж
- •6.1.4. Особенности перестановки
- •6.2. Методы подстановки
- •6.2.1. Вектор замен
- •6.2.2. Таблицы Вижинера
- •6.3. Метод замены. Использование алгебры матриц.
- •6.4. Аддитивные методы
- •6.5. Стеганология
- •6.6. Ключ. Основные понятия, связанные с ключом и алгоритмом.
- •6.6.1. Основные понятия.
- •6.6.2. Ключ.
- •6.6.3. Случайные и псевдослучайные числа.
- •6.6.4. Действия по шифрованию информации.
- •6.7. Блочные и поточные шифры.
- •6.8. Алгоритмы des, Triple des и их заменяющие.
- •6.8.2. Алгоритм Triple des
- •6.8.3. Коммерческие алгоритмы, заменившие des
- •6.9. Системы с открытым ключом.
- •6.10. Электронная подпись.
- •6.11. Взлом защищенных файлов.
- •6.11.1. Атака на ключ
- •6.11.2. Атака на алгоритм.
- •6.11.3. Скомпрометированный пароль.
- •6.11.4. Подделка открытых ключей.
- •6.11.5. Не до конца удаленные файлы.
- •6.11.6. Вирусы и закладки.
- •6.11.7. Виртуальная память.
- •6.11.8. Нарушение режима физической безопасности. Радиоатака. Фальшивые даты подписи.
- •6.11.10. Утечка информации в многопользовательской среде.
- •Содержание
- •Глава 6. Введение в криптографию. 1
3.2. Исчисление предикатов.
Предикат — это функциональное высказывание, а высказывание — предикатная константа.
Логика предикатов — это расширение логики высказываний за счет использования предикатов в роли логических функций. Эти функции несколько отличаются от функций, которые мы использовали в логике Буля. Булева функция однородна, т.е. для нее область значений функции и область изменений аргументов по типу одна и та же — логическая (либо истина, либо ложь). Для предикатов же область значений функции — логическая, а область изменений аргументов — предметная Таким образом, эта функция — неоднородна Приведем примеры предикатных функций. Пусть имеется ряд простых высказываний.
Р1= “Иван читает Достоевского”,
Р2 == “Петр читает Достоевского”,
...........................
Рn = “Степан читает Достоевского”.
Вместо высказываний Р1, Р2,... , Рn можно ввести одноместный предикат Р(х), для которого переменная х принимала бы значения из предметной области — х = {Иван, Петр, ... , Степан}, а сама предикатная функция передавалась бы словами.
Р(х) = “х читает Достоевского”.
Теперь изменим исходный ряд высказываний на другой:
Р1= “Иван читает Достоевского”,
Р2 == “Петр читает Толстого”,
...........................
Рn = “Степан читаетЧехова”.
Здесь можно было бы ввести уже двухместный предикат —
Р(х, у) = “ х читает у ”
с дополнительной предметной областью —
у = {Достоевский, Толстой, ... , Чехов}.
Введем трехместный предикат Р(х, у, z), который означает, что “ х есть сумма у и z”. Допустим, в процессе вычислений переменная х приняла конкретное значение, равное 5. Тогда трехместный предикат превратится в двухместный:
Р(5, у, z) = Р'(у, z) = “ 5 есть сумма у и z ”.
При х=5 у=3 получим одноместный предикат:
Р(5, 3, z) = Р(3, z) = P"(z) = “ 5 есть сумма 3 и z ”.
Наконец, если добавить условие z= 2 , то исходный предикат становится нульместным предикатом (константой или высказыванием), который в данном случае принимает истинное значение:
Р1 = Р(5, 3, 2) = “ 5 есть сумма 3 и 2 ” = 1.
Но могло случиться, что z = 1 тогда имели бы ложное высказывание:
P0 = Р(5, 3, 1) = “ 5 есть сумма 3 и 1 ” = 0.
Таким образом,
при замещении переменной хi
предметной постоянной
происходит
превращение n-местного
предиката
(п —
1)-местный.
Приписав конкретные значения всем
аргументам предикатной функции —
P(a1,...,
аi,...,an),
мы тем самым получаем предикатную
константу, к которой применимы все
законы логики высказываний.
Функциональная природа предиката влечет за собой введение еще одного понятия — квантора. Роль его выясним на следующих двух примерах:
1) “Все люди смертны. Сократ человек. Следовательно, Сократ смертен.”
2) “Некоторые люди гениальны. Сократ человек. Следовательно, Сократ гениален.”
Во втором примере хорошо чувствуется ложность заключения, поскольку интуитивно мы понимаем, что Сократ мог и не попасть в число гениальных людей.
Итак, ключевыми словами в наших примерах являются “все” и “некоторые”. Когда какое-нибудь правило распространяется на всех индивидуумов, оно, естественно, распространяется и на Сократа. Когда же правило касается только некоторых, оно может оказаться в отношении Сократа как раз и неверным.
Термин “все
х”
обозначается в логике предикатов
и называется
квантором
общности
(символ
есть перевернутая буква А,
которая является начальной буквой
английского слова
All —
“все”). Термин “некоторые
х” или
“существует
хотя одно значение х”
обозначается через
х
и называется квантором
существования (символ
есть перевернутая буква Е,
являющаяся первой буквой английского
слова
Exist —
“существовать”).
Выставляя кванторы перед предикатами, мы как бы усиливаем или ослабляем из действие. Так, выражение
означает “для всех без исключения х свойство Р истинно”, а выражение
означает “существует по крайней мере одно значение х, для которого свойство Р истинно”. Мы не будем использовать так называемые свободные переменные, т.е. не будем рассматривать предикатные функции, аргументы которых не связаны ни квантором общности, ни квантором существования. Сказать “для всех л свойство Р истинно” — это все равно, что сказать “конъюнкция всех значений предикатной функции равна единице”:
Квантор существования означает дизъюнкцию всех значений предикатной функции:
Оба квантора можно отрицать и выражать один через другой на основе закона де Моргана:
Пусть предметная
область предиката
состоит
всего из двух конкретных значений а
и b
.
Учитывая, что
,
составим табл. 3, из которой непосредственно вытекают три элементарных клаузы:
.
Таблица 3
|
|
|
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Вместо Р(а) в последних выражениях можно было бы взять P(b) — семантика клауз от этого не изменится, а она такова: если выражение “для всех х свойство Р выполняется” является истинным, то для конкретного значения х, равного а, это свойство тоже будет выполняться. Первая клауза является предикатной формой выражения аксиомы порядка:
Действие ее продемонстрируем на уже знакомом нам примере, который сейчас сформулируем более отчетливо:
Для всех х справедливо правило: если х — человек, то х смертен. Сократ человек. Следовательно, Сократ смертен.
Введем два предиката:
А(х) = “х — человек” и В (х) = “х - смертен”.
Примем также, что а = “Сократ”. Составим клаузу, соответствующую нашей легенде:
.
Для ее доказательства достаточно перенести вторую посылку вправо за знак метаимпликации, чтобы клауза сразу же удовлетворяла аксиоме порядка в предикатной форме:
.
Ясно, что второй пример с заключением о гениальности Сократа является южным выводом, поскольку приводит к клаузе, противоречащей аксиоме порядка:
Конъюнктивная природа квантора общности и дизъюнктивная квантора существования с точки зрения отношения эквивалентности накладывают определенные ограничения при использовании их совместно с дизъюнкцией и конъюнкцией как логическими операциями.
Пусть для определенности предметная область состоит из двух элементов а и b в общем случае для областей, состоящих из п элементов, все представленные здесь доказательства останутся теми же, только окажутся более громоздкими). Убедимся, что следующие два тождества выполняются:
,
.
Действительно,
