Математика

Физика

Химия

Биология

Техника и    технологии

Дискретная математика для программистов-Ф. А. Новиков Питер, 2001. —304 с.: ил.
Н73 Дискретная математика для программистов / Ф. А. Новиков — СПб: Питер, 2001. —304 с.: ил.
ISBN 5-272-00183-4
В учебнике изложены основные разделы дискретной математики и описаны важнейшие алгоритмы на дискретных структурах данных. Основу книги составляет материал лекционного курса, который автор читает в Санкт-Петербургском государственном техническом университете последние полтора десятилетия.
Для студентов вузов, практикующих программистов и всех желающих изучить дискретную математику.
Содержание
Вступительное слово ..................................................12
i Введение.............,.............................................. 13
ГЛАВА 1. Множества и отношения.................................;.....19
1.1. Множества.......................................................... 19
1.1.1. Элементы и множества .......................................... 20
1.1.2. Задание множеств.............................................. 21
1.1.3. Парадокс Рассела ..................................-............ 21
1.2. Операции над множествами............................................ 22
1.2.1. Сравнение множеств ............................................ 22
1.2.2. Операции над множествами....................................... 23
1.2.3. Разбиения и покрытия ........................................... 23
1.3. Алгебра подмножеств................................................. 24
1.3.1. Булеан.......................................................25
1.3.2. Свойства операций над множествами ...............................25
1.4. Представление множеств в ЭВМ ........................................26
1.4.1. Реализация операций над подмножествами заданного универсума U........27
1.4.2. Генерация всех подмножеств универсума.............................27
1.4.3. Алгоритм построения бинарного кода Грея............................28
1.4.4. Представление множеств упорядоченными списками....................29
1.4.5. Проверка включения слиянием . . . :.................................30
1.4.6. Вычисление объединения слиянием.................................30
1.4.7. Вычисление пересечения слиянием.................................32
1.5. Отношения.........................................................33
1.5.1. Упорядоченные пары .............................................33
1.5.2. Прямое произведение множеств ....................................33
1.5.3. Отношения.....................................................34
1.5.4. Композиция отношений ............................,..............34
1.5.5. Степень отношения .............................................35
1.5.6. Ядро отношения................................................35
1.5.7. Свойства отношений ............................................36
1.5.8. Представление отношений в ЭВМ..................................37
1.6. Функции...........................................................38
1.6.1. Определения.................................................. 38
1.6.2. Инъекция, сюръекция и биекция.................................... 39
1.6.3. Индуцированная функция......................................... 40
1.6.4. Представление функций в ЭВМ .................................... 41
1.7. Отношения эквивалентности .........,................................. 41
•' 1.7.1. Определения.................................................. 42
Содержание
1.7.2. Классы эквивалентности.........................................42
1.7.3. Фактормножества.................. .............................43
1.7.4. Ядро функции .................................................44
1.8. Отношения порядка..................................................44
1.8.1. Определения ..................................................45
1.8.2. Минимальные элементы..........................................45
1.8.3. Алгоритм топологической сортировки ................................46
1.8.4. Монотонные функции............................................47
1.9. Замыкание отношений................................................47
1.9.1. Замыкание отношения относительно свойства.........................47
1.9.2. Транзитивное и рефлексивное транзитивное замыкания........,......... 48
1.9.3. Алгоритм Уоршалла .............................'.... . .'. ....... .г.<48
Комментарии...........................................................49
Упражнения...........................................................49
ГЛАВА 2. Алгебраические структуры...................................... . 51
2.1. Операции и алгебры.................................................. 51
2.1.1. Алгебраические структуры....................................... ... 51
2.1.2. Замыкания и подалгебры...................................... ... 52
2.1.3. Алгебра термов.................................................53
2.1.4. Система образующих............................................53
2.1.5. Свойства операций . .'...........................................54
2.2. Морфизмы.........................................................54
2.2.1. Гомоморфизм...................................................54
2.2.2. Изоморфизм ..................................................55
2.3. Алгебры с одной операцией............................................56
2.3.1. Полугруппы.....................................,............. 57
2.3.2. Моноиды..................................................... 58
2.3.3. Группы.......................................................59
2.4. Алгебры с двумя операциями...........................................60
2.4.1. Кольца...................................................... . 61
2.4.2. Области целостности............................................ 62
2.4.3. Поля......................................................... 62
2.5. Векторные пространства............................................... 63
2.5.1. Определения ..........• . •..................................... 64
2.5.2. Свойства нуль-вектора........................................... 64
2.5.3. Линейные комбинации........................................... 65
2.5.4. Базис и размерность............................................ 66
2.6. Решетки........................................................... 67
2.6.1. Определения......,...........................................67
2.6.2. Ограниченные решетки..........................................68
2.6.3. Решетка с дополнением..........................................68
2.6.4. Частичный порядок в решетке.....................................69
2.6.5. Булевы алгебры................................................70
2.7. Матроиды.........................................................71
2.7.1. Определения..................................................71
2.7.2. Максимальные независимые подмножества...........................72
2.7.3. Базисы....................................................... 73
2.7.4. Ранг...................................................",..... 73
2.7.5. Жадный алгоритм.......................................'........74
2.7.6. Примеры матроидов.............................................77
Комментарии.......................................................... 77
Упражнения........................................................... 78
ГЛАВА 3. Булевы функции ..........................,,.,.......-...:.......79
3.1. Элементарные булевы функции.......................................... 79
.• 3.1.1. Функции алгебры логики ....................t..............'......79
- 3.1.2. Существенные и несущественные переменные . . . .г..................... 80
3.1.3. Булевы функций одной переменной.................................81
3.1.4. Булевы функции двух переменных .............м.....................81
3:2. Формулы............................................................. 81
3.2.1. Реализация функций формулами .............и...................... . 82
3.2.2. Равносильные формулы..........................................84
3.2.3. Подстановка и замена..............................;.............84
3.2.4. Алгебра булевых функций.........................................85
3.3. Принцип двойственности........................+•...........>..........86
3.4. Нормальные формы..................................................88
3.4.1. Разложение булевых функций по переменным..................".......88
3.4.2. Совершенные нормальные формы..................................89
3.4.3. Построение СДНФ..............................................90
3.4.4. Алгоритм вычисления значения булевой функции.......................91
3.4.5. Эквивалентные преобразования..................................k . 92
3.5. Замкнутые классы ...................................................94
3.5.1. Замыкание множества булевых функций .............................94
3.5.2. Некоторые замкнутые классы.....................,..:.............94
3.6. Полнота...........................................................96
Комментарии ..........................................................98
Упражнения........................................................... 98
ГЛАВА 4. Логические исчисления .......................................100
4.1. Логические связки...................................................101
4.1.1. Высказывания.................................................101
4.1.2. Формулы . . ...................................................101
4.1.3. Интерпретация.................................................102
4.1.4. Логическое следование и логическая эквивалентность...................103
4.1.5. Подстановки...................................................104
4.2. Формальные теории..................................................105
4.2.1. Определение формальной теории ..................................105
4.2.2. Выводимость.........................................:........106
4.2.3. Интерпретация.........................................>.......106
4.2.4. Общезначимость и непротиворечивость.........\.....•................107
4.2.5. Полнота, независимость и разрешимость.............................107
4.3. Исчисление высказываний..............................................108
4.3.1. Классическое определение исчисления высказываний...................108
4.3.2. Частный случай формулы.........................................109
4.3.3. Алгоритм унификации ...........................................109
4.3.4. Конструктивное определение исчисления высказываний .................110
4.3.5. Производные правила вывода.....................................111
4.3.6. Дедукция................................................xjXT.112.
. 4.3.7. Некоторые теоремы теории С......................................114
4.3.8. Множество теорем теории ? ..................'.....................116
4.3.9. Другие аксиоматизации исчисления высказываний........ ... ...........118
4.4. Исчисление предикатов . . , „i ..-.-.-................................. .^ ..... .118
4.4.1. Определения................................................. .119
4.4.2. Интерпретация.................................................121
4.4.3. Общезначимость...............................................122
4.4.4. Полнота чистого исчисления предикатов .............................122
Содержание
4.4.5. Логическое следование и логическая эквивалентность................. . .123
4.4.6. Теория равенства...............................................123
4.4.7. Формальная арифметика.........................................124
4.4.8. Теория (абелевых) групп......................................... .124
4.4.9. Теоремы Гёделя о неполноте ......................................126
4.5. Автоматическое доказательство теорем...................................127
4.5.1. Постановка задачи..............................................127
4.5.2. Доказательство от противного.....................................128
4.5.3. Сведение к предложениям.................•.......................128
4.5.4. Правило резолюции для исчисления высказываний .....................130
4.5.5. Правило резолюции для исчисления предикатов...................... .131
4.5.6. Опровержение методом резолюций.................................131
4.5.7. Алгоритм метода резолюций ......................................132
Комментарии ..........................................................133
Упражнения...........................................................133
ГЛАВА 5. Комбинаторика..............................................134
5.1. Комбинаторные конфигурации..........................................135
5.1.1. Комбинаторные задачи...........................................135
5.1.2. Размещения................................................. . .135
5.1.3. Размещения без повторений..................................... .136
5.1.4. Перестановки..................................................136
5.1.5. Сочетания....................................................137
5.1.6. Сочетания с повторениями........................................138
5.2. Подстановки........................................................138
5.2.1. Группа подстановок.............................................139
5.2.2. Графическое представление подстановок............................. 140
5.2.3. Циклы........................................'...............140
5.2.4. Подстановки и перестановки.......................................141
5.2.5. Инверсии..................................................... 141
5.2.6. Генерация перестановок..........................................142
5.3. Биномиальные коэффициенты......................................... . 144
5.3.1. Элементарные тождества....................................... . .144
5.3.2. Бином Ньютона.................................................145
5.3.3. Свойства биномиальных коэффициентов............................ .146
5.3.4. Треугольник Паскаля............................................146
5.3.5. Генерация подмножеств......................................... .147
5.4. Разбиения ._........................................................148
5.4.1. Определения................................................. .148
5.4.2. Числа Стирлинга второго рода.................................... .149
5.4.3. Числа Стирлинга первого рода.................................... .150
5.4.4. Число Белла.........................................:........ .150
5.5. Принцип включения и исключения...................................... .151
5.5.1. Объединение конфигураций....................................... .151
5.5.2. Принцип включения и исключения................................. .152
5.5.3. Число булевых функций, существенно зависящих от всех своих переменных . . 153
5.6. Формулы обращения............................................... . .153
5.6.1. Теорема обращения..........................,................. .153
5.6.2. Формулы обращения для биномиальных коэффициентов.................154
5.6.3. Формулы для чисел Стирлинга.................................... .155
5.7. Производящие функции........................г . .-г-,................. .156
5.7.1. Основная идея.................................................156
5.7.2. Метод неопределенных коэффициентов............................. . 157
8 Содержание
Комментарии..........................................................157
Упражнения...........................................................157
ГЛАВА 6. Кодирование................................................159
6.1. Алфавитное кодирование..............................................161
6.1.1. Префикс и постфикс слова..................г.....................161
6.1.2. Таблица кодов .................................................161
6.1.3. Разделимые схемы..............................................162
6.1.4. Префиксные схемы............................................; 162
6.1.5. Неравенство Макмиллана..........................................163
6.2. Кодирование с минимальной избыточностью...............................165
6.2.1. Минимизация длины кода сообщения................................165
6.2.2. Цена кодирования ..............................................166
6.2.3. Алгоритм фано.................................................167
6.2.4. Оптимальное кодирование........................................168
6.2.5. Алгоритм Хаффмена...................................,..........170
6.3. Помехоустойчивое кодирование.........................................172
6.3.1. Кодирование с исправлением ошибок ...............................172
6.3.2. Классификация ошибок ........•..............,....................173
6.3.3. Возможность исправления всех ошибок..............................173
6.3.4. Кодовое расстояние..............................................174
6.3.5. Код Хэмминга для исправления одного замещения .....................175
6.4. Сжатие данных......................................................177
6.4.1. Сжатие текстов ................................................177
6.4.2. Предварительное построение словаря...............................178
6.4.3. Алгоритм Лемпела—Зива.........................................179
6.5. Шифрование.......................................................180
6.5.1. Криптография .................................................181
6.5.2. Шифрование с помощью случайных чисел............................181
6.5.3. Криптостойкость ...............................................182
6.5.4. Модулярная арифметика .........................................183
6.5.5. Шифрование с открытым ключом....................................185
6.5.6. Цифровая подпись...............................................187
Комментарии ..........................................................188
Упражнения ...........................................................188
ГЛАВА 7. Графы ......................................................189
7.1. Определения графов .................................................189
7.1.1. История теории графов..........................................190
7.1.2. Основное определение ..........................................191
7.1.3. Смежность....................................................191
7.1.4. Диаграммы ...................................................192
7.1.5. Другие определения.............................................192
7.1.6. Изоморфизм графов ............................................193
7.2. Элементы графов....................................................194
7.2.1. Подграфы ....................................................194
7.2.2. Валентность...................................................194
7.2.3. Маршруты, цепи, циклы.......................................... .195
7.2.4. Расстояние между вершинами......................................196
7.2.5. Связность ....................................................197
7.3. Виды графов и операции над графами....................................197
7.3.1. Тривиальные и полные графы......................................197
7.3.2. Двудольные графы..............................................197
Содержание 9
7.3.3. Направленные орграфы и сети..................................... 199
7.3.4. Операции над графами..........................................199
7.4. Представление графов в ЭВМ..........................................201
7.4.1. Требования к представлению графов.................................201
7.4.2. Матрица смежности.........................,.................< .201
7.4.3. Матрица инциденций ."............................................202
7.4.4. Списки смежности...............................................202
7.4.5. Массив дуг.....................................................203
7.4.6. Обходы графов.............................. . <.................203
7.5. Орграфы и бинарные отношения........................................206
7.5.1. Графы и отношения...................................:.........206
7.5.2. Достижимость и частичное упорядочение.............................206
7.5.3. Транзитивное замыкание....................................... . .207
Комментарии......................................................... .208
Упражнения.......................................................... .209
ГЛАВА 8. Связность................................................. . .210
8.1. Компоненты связности.............................................. . .210
8.1.1. Объединение графов и компоненты связности.........................210
8.1.2. Точки сочленения...................................•............211
8.1.3. Оценка числа ребер через число вершин и число компонент связности......211
8.2. Вершинная и реберная связность....................................... .212
8.2.1. Мосты и блоки.................................................212
8.2.2. Меры связности.....'...........................................214
8.3. Теорема Менгера....................................................214
8.3:1. Непересекающиеся цепи и разделяющие множества....................215
8.3.2. Теорема Менгера в «вершинной форме» .............................215
8.3.3. Варианты теоремы Менгера.......................................217
8.4. Теорема Холла......................................................218
8.4.1. Задача о свадьбах ..............................................218
8.4.2. Трансверсаль..................................................218
8.4.3. Совершенное паросо,четание.................................... . .218
8.4.4. Теорема Холла — формулировка и доказательство......................218
8.5. Потоки в сетях......................................................220
8.5.1. Определение потока............................................ .221
8.5.2. Разрезы......................................................221
8.5.3. Теорема Форда и Фалкерсона ....................,..............; .222
8.5.4. Алгоритм нахождения максимального потока......................... .223
8.5.5. Связь между теоремой Менгера и теоремой Форда и Фалкерсона..........225
8.6. Связность в орграфах..............................................-. .226
8.6.1. Сильная, односторонняя и слабая связность......................... .226
8.6.2. Компоненты сильной связности....................................226
8.6.3. Выделение компонент сильной связности........................... .227
8.7. Кратчайшие пути....................................................228
8.7-1. Длина дуг.....................................................228
8.7.2. Алгоритм Флойда...............................................229
8.7.3. Алгоритм Дейкстры .............................................230
Комментарии ..........................................................232
Упражнения.......................................................... .232
ГЛАВА 9. Деревья.....................................................234
9.1. Свободные деревья..................................................234
9.1.1. Определения..................................................234
10 Содержание
9.1.2. Основные свойства деревьев......................................235
9.2. Ориентированные, упорядоченные и бинарные деревья.......................238
. 9.2.1. Ориентированные деревья........................................238
9.2.2. Эквивалентное определение ордерева...............................240
9.2.3. Упорядоченные деревья..........................................241
9.2.4. Бинарные деревья..............................................242
9.3. Представление деревьев в ЭВМ.........................................243
9.3.1. Представление свободных, ориентированных и упорядоченных деревьев.....243
9.3.2. Представление бинарных деревьев..............................'. . .244
9.3.3. Обходы бинарных деревьев .......................................244
9.3.4. Алгоритм симметричного обхода бинарного дерева.....................245
9.4. Деревья сортировки..................................................246
9.4.1. Ассоциативная память...........................................246
9.4.2. Способы реализации ассоциативной памяти ..........................247
9.4.3. Алгоритм бинарного (двоичного) поиска..............................248
9.4.4. Алгоритм поиска в дереве сортировки...............................248
9.4.5. Алгоритм вставки в дерево сортировки ..............................249
9.4.6. Алгоритм удаления из дерева сортировки ............................250
9.4.7. Вспомогательные алгоритмы для дерева сортировки....................251
9.4.8. Сравнение пред

Цена: 150руб.

Назад

Заказ

На главную страницу

Hosted by uCoz