Сдача этого экзамена является достаточным условием того что я регулярно выполнял домашние задания

Новые высказывания
могут быть образованы при помощи
нескольких логических операций и
составлять формулы, некоторые из которых
рассматриваются как логические операции,
осуществляемые при помощи других
логических связок:

Название

Прочтение

Обозначение

Штрих Шеффера

Антиконъюнкция

|

Стрелка Пирса

Антидизъюнкция

Сумма по модулю
два

Антиэквивалентность

Штрих
Шеффера
,
X
| Y
или антиконъюнкция, по определению

Таблица истинности
штриха Шеффера.

X

Y

0

0

1

0

1

1

1

0

1

1

1

0

Стрелка Пирса,
или
антидизъюнкция, по определению

Таблица истинности
стрелки Пирса.

X

Y

0

0

1

0

1

0

1

0

0

1

1

0

Сумма по модулю
два,
или
интиэквивалентность, по определению

Таблица истинности
суммы по модулю два.

X

Y

0

0

0

0

1

1

1

0

1

1

1

0

Заметим, что таблицы
истинности логических операций содержат
2­­n
строк, где n
– число простых высказываний.

1.4. Основные законы, определяющие свойства введенных логических операций

1) Идемпотентрость
дизъюнкции и конъюнкции:

2)
Коммутативность
дизъюнкции и конъюнкции:

3)
Ассоциативность
дизъюнкции и конъюнкции:

4) Дистрибутивность
операций дизъюнкции и конъюнкции
относительно друг друга:

5) Двойное
отрицание:

6) Закон де Моргана:

7)
Склеивание:

8) Поглощение:

9) Действие с
логическими константами 0 и 1:

10)Закон исключения
третьего:

11) Тождество:

12) Отрицание
противоречия:

13) Контрапозиция:

14) Цепное заключение:

15)
Противоположность:

16) Модус
поненс (modus
ponens):

Сформулированные
законы легко проверить с помощью таблицы
истинности.

Заметим, что при
исследовании различных высказываний
на эквивалентность (равносильность)
логическую связку
можно заменить обычным знаком равенства
=.

  1. Примеры выполнения
    заданий

Задача 1. Составьте
таблицу истинности формулы:

Решение. Расставим
скобки:

X

Y

Z

0

0

0

1

1

1

0

1

1

1

1

Задача 2. Докажите
тождественную истинность формулы

Задача 3. Докажите
эквивалентность

Решение. Пусть
φ1=.
Составим таблицу истинности:

X

Y

Z

0

0

0

0

0

0

0

Пусть φ2=

X

Y

Z

0

0

0

0

0

0

Задача 4. Для
каждого из следующих высказываний: 1)
найдите символическую формулу; 2)
постройте таблицу истинности.
Воспользуйтесь буквенными обозначениями:
Х для «Джо умен»; Y
для «Джим глуп»; Z
для «Джо получит приз».

a)Если
Джо умен, а Джим глуп, то Джо получит
приз.

b)Джо
получит приз в том и только в том случае,
если он умен или если Джим глуп.

c)Если
Джим глуп, а Джо не удастся получить
приз, то Джо не умен.

Задача 5. Таблица
истинности высказывания, составленного
из двух простых высказываний, состоит
из четырех строк; а таблица истинности
высказывания, составленного из трех
простых высказываний, – из восьми строк.
Сколько строк должна иметь таблица
истинности высказывания, составленного
из четырех простых высказываний? Сколько
– из пяти? Сколько – из n?
Укажите способ систематической записи
таблиц истинности для произвольного
n?

Указание. Для
систематической записи таблиц истинности
для произвольного п
можно
применить метод «последовательного
половинного деления столбцов» – столбец
первой переменной делят пополам и
заполняют верхнюю половину нулями, а
нижнюю половину – единицами, затем
каждую половину второго столбца делят
пополам и опять заполняют полученные
половины нулями и единицами и т. д.

Задача 6. Доказать
равносильность, используя основные
законы логических операций:

Решение.

1. Используя законы
де Моргана
получим:

2. Используя закон
двойного отрицания ,
получаем:

3. Применяя
дистрибутивный закон ,
получаем

4. Ассоциативность
дизъюнкции:
позволяет упростить последнее выражение:

  1. Учитывая
    законы, включающие тождественно ложные
    высказывания, окончательно получаем:

Проверить
эквивалентность формул А и В, используя
основные аксиомы и теоремы булевой
алгебры

  1. Задания для
    выполнения

Задача 7. С
помощью таблиц истинности проверить,
являются ли эквивалентными высказывания:

и

Задача 8. Определить
для каждого из следующих высказываний,
будет ли оно логически истинным,
противоречивым; ни тем, ни другим.

Задача 9. Покажите,
что высказывание
– логически истинно, а
– нет.

Задача 10. Постройте
таблицы истинности следующих составных
высказываний:

а)
Для каких пар имеет место отношение
следствия или эквивалентности?

Задача 11. Постройте
таблицы истинности следующих составных
высказываний и расположите их в таком
порядке, чтобы из каждого высказывания
следовали все, стоящие после него:

Задача 12. Постройте
составные высказывания, эквивалентные
,
используя только связки отрицания и
конъюнкции.

Задача 13. Если
X
и Y
логически истинны, а Z
– логически ложно, то что можно сказать
о высказывании
?

Задача 14. Докажите,
что конъюнкция импликации и ее конверсия
эквивалентны двойной импликации, т.е.
.

Задача 15.
Чему эквивалентна конъюнкция контрапозиции
и ее конверсии?

Задача 16. Докажите,
что отрицание высказывания: «X
есть необходимое и достаточное условие
для Y»
эквивалентно высказыванию: «X
есть необходимое и достаточное условие
для Y».

Задача 17. Докажите,
что контрапозиция эквивалентна
первоначальной импликации.

Задача 18. Пусть
X
означает:
«Я сдам этот экзамен»; a
Y:
«Я буду регулярно выполнять домашние
задания». Запишите в символической
форме следующие высказывания:

а) «Я
сдам этот экзамен только в том случае,
если буду регулярно выполнять домашние
задания».

б) «Регулярное
выполнение домашних заданий является
необходимым условием для того, что я
сдам этот экзамен».

в) «Сдача
этого экзамена является достаточным
условием того, что я регулярно выполнял
домашние задания».

г) «Я
сдам этот экзамен в том и только в том
случае, если я буду регулярно выполнять
домашние задания ».

д) «Регулярное
выполнение домашних заданий есть
необходимое и достаточное условие для
того, чтобы я сдал этот экзамен».

Выясните, какому
из перечисленных высказываний
соответствуют следующие
символические формы:

Задача 19. Докажите
равносильность
с помощью формул алгебры высказываний.

Задача
20.
Преобразуйте
формулу
к виду, не содержащему импликацию и
эквивалентность.

Задача 21. Проверьте,
будут ли эквивалентны следующие формулы:

Задача 22. Составьте
таблицы истинности для высказываний:

,

и покажите, что
любая таблица истинности может быть
реализована посредством составного
высказывания, в котором используется
единственная связка: штрих Шеффера.

Задача 23. Постройте
таблицы истинности для высказываний:

Какие другие
составные высказывания имеют те же
таблицы истинности? Покажите, что любая
таблица истинности может быть реализована
посредством составного высказывания,
в котором используется единственная
связка: стрелка Пирса.

Задача
24.
Докажите,
что импликация
эквивалентна .

Решение.
Доказательство
проведем с помощью таблицы истинности.

Задача
25.
Докажите
эквивалентность формул:

Задача 26

Пример 1.
Является ли
формула
тавтологией?

Решение. 1
способ – построение таблицы истинности.

A

B

F

F

T

F

T

F

T

T

T

T

T

F

F

T

F

T

T

T

T

T

Формула не является
тавтологией, так как существует
интерпретация ,
на которой она принимает ложное значение.

2 способ. Исследование
формулы методом редукции.

Предположим, что
существует набор, на котором формула
принимает значение, равное F:

.

Тогда .
Подставим найденное значение
в первое равенство:
Решим это уравнение относительно А:
если ,
то .
Следовательно, при
формула принимает значение, равное F.
Таким образом, она не является тавтологией.

Пример 2. Является
ли формула
тавтологией?

Решение.
Исследование
формулы методом редукции.

Предположим, что
существует такая интерпретация, на
которой формула принимает ложное
значение. Тогда


Тогда:

Отсюда ,
что противоречит третьему равенству
.
Полученное противоречие показывает,
что формула не может принимать ложных
значений. Следовательно, формула
является тавтологией.

Определить двумя
способами, являются ли формулы тавтологиями
для следующих заданий.

Соседние файлы в папке Лабораторные_1

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Не понимаю суть задания.

Пусть %%X%% означает “Я сдам этот экзамен”, а %%Y%% — “Я буду регулярно выполнять домашние задания”. Как в символической форме выглядит высказывание: “Я сдам этот экзамен только в том случае, если буду регулярно выполнять домашние задания”?

Пусть %%X%% означает “Кирилл умен”, а %%Y%% — “Валерия глупа”, %%Z%% — “Кирилл получит приз”. Как в символической форме выглядит высказывание: “Кирилл получит приз только в том случае, если Кирилл умен или Валерия глупа”?

7 лет назад

”если буду регулярно выполнять домашние задания”, то “сдам этот экзамен”, наиболее подходяший “Y↔X”, так как условие Y должно быть впереди?

Так как в условии “Кирилл умен или Валерия глупа”, то правильный вариант с функцией “или”, мне кажется наиболее верный вариант — “Z↔(X∨Y)”.

7 лет назад

Здравствуйте, Константин Александрович.

В первом случае связка «только в том случае, если» эквивалентна связке «тогда и только тогда, когда», а данная связка не является связкой «Если …, то». В первом случае связка (как первая, так и вторая) эквивалентна операции «%%leftrightarrow%%», а во втором «%%rightarrow%%».

Аналогично и во втором случае, только там есть два ответа, где присутствует функция «или».

С уважением,
Валерий Алигорский.

Ваш комментарий

Комментирование доступно только для авторизованных пользователей.

                    Ю. И. ГАЛУШКИНА, А. Н. МАРЬЯМОВ
КОНСПЕКТ
ЛЕКЦИЙ
МАТЕМАТИКЕ
С упражнениями
и контрольными
работами
МОСКВА
АЙРИС ПРЕСС
2007

УДК ББК 519.1(075.8) 22.176я73-2 Г16 Все права защищены. Никакая часть данной книги не может переиздаваться или распространяться в любой форме и любыми средствами, электронными или механическими, включая фотокопирование, звукозапись, любые запоминающие устройства и системы поиска информации, без письменного разрешения правообладателя. Серийное оформление А. М.Драгового Галушкина, Ю. И. Г16 Конспект лекций по дискретной математике / Ю. И. Галуш- кина, А. Н. Марьямов. — М.: Айрис-пресс, 2007. — 176 с. — (Выс- шее образование). ISBN 978-5-8112-2599-6 В книге в доступной форме изложены разделы, традиционно изучаемые в курсе дискретной математики. Книга рассчитана на студентов нематематиче- ских вузов, желающих ознакомиться с методами дискретной математики. Мате- матическая подготовка, необходимая для чтения этой книги, ограничивается программой математики средней школы. Содержание разделов книги взаимно связано друг с другом и включает: элементы математической логики, теории множеств, предикатов, графов, элемен- ты комбинаторики, кодирования и теории конечных автоматов, а также введе- ние в теории алгоритмов. Все разделы снабжены большим количеством примеров и решенных задач, помогающих усвоить и закрепить изучаемый материал. Книга может быть также полезна преподавателям, которые начинают читать курс дискретной математики. ББК 22.176я73-2 УДК 519.1(075.8) ISBN 978-5-8112-2599-6 ©ООО «Издательство «АЙРИС-пресс», 2007
Содержание Предисловие ................................................... 6 Часть 1. Элементы математической логики ....................... 7 1. Составные высказывания...................................... 7 2. Простейшие связки........................................... 8 __3. Другие связки.............................................. 10 4. Логические отношения....................................... 11 5. Варианты импликации........................................ 12 6. Основные законы, определяющие свойства введенных логических операций ..................................................... 13 X • Первое практическое занятие по теме «Логические операции».... 15 j 7. Булевы функции.............................................. 21 8. Свойства элементарных булевых функций....................... 23 9. Дизъюнктивные и конъюнктивные нормальные формы алгебры высказываний.................................................. 24 10. Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы.............................................. 25 11. Многочлены Жегалкина...................................... 27 • Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина».................................................... 29 • Контрольные вопросы......................................... 38 Часть 2. Множества и отображения.............................. 39 1. Понятие множества.......................................... 39 2. Способы задания множеств................................... 39 3. Подмножества............................................... 40 4. Операции над множествами................................... 40 5. Соотношение между множествами и составными высказываниями.. 42 6. Соотношения между высказываниями и соответствующими им множествами истинности........................................ 43 7. Выводы..................................................... 45 г 8. Абстрактные законы операций над множествами................. 45 А • Третье практическое занятие по теме «Операции над множествами» .... 46 9. Кортежи и декартово произведение множеств.................. 50 10. Бинарные отношения........................................ 51 11. Отображение множеств...................................... 52 12. Функции .................................................. 53 • Четвертое практическое занятие по теме «Отношения. Отображения. Функции»...................................................... 54 • Контрольные вопросы......................................... 59 Часть 3. Элементы комбинаторного анализа ..................... 60 n, 1. Основные правила комбинаторики.............................. 60 2. Перечислительная комбинаторика или теория перечислений..... 61 3. Комбинации элементов с повторениями........................ 63
4 Содержание 4. Бином Ньютона............................................... 64 • Пятое практическое занятие по теме «Комбинаторные формулы. Бином Ньютона» ..................................................... 64 • Контрольные вопросы......................................... 67 Часть 4. Логика предикатов или логика первого порядка.......... 68 1. Предикаты................................................... 68 2. Применение предикатов в алгебре............................. 70 3. Булева алгебра предикатов .................................. 71 4. Кванторы.................................................... 71 5. Формулы логики предикатов................................... 72 6. Равносильные формулы логики предикатов...................... 73 7. Приведенные и нормальные формы в логике предикатов.......... 74 8. Исчисление предикатов....................................... 76 • Шестое практическое занятие по теме «Предикаты».............. 77 • Контрольные вопросы......................................... 80 Часть 5. Элементы теории графов................................ 81 1. Некоторые основные понятия.................................. 81 2. Степень вершины............................................. 82 3. Маршруты, цепи, циклы....................................... 82 4. Связность графа............................................. 83 5. Ориентированные графы....................................... 83 6. Изоморфизм графов .......................................... 84 7. Плоские графы .............................................. 85 8. Операции над графами........................................ 85 9. Способы задания графов...................................... 86 10. Некоторые тины графов...................................... 88 • Седьмое практическое занятие по теме «Графы»................. 90 • Контрольные вопросы.......................................... 99 Часть 6. Элементы теории кодирования............................100 1. Кодирование как способ представления информации.............100 2. Кодирование и декодирование.................................101 3. Помехоустойчивое кодирование................................101 4. Канал связи.................................................101 5. Криптология.................................................102 6. Алфавитное кодирование......................................102 7. Математическое изучение алфавитного кодирования.............103 8. Проблема взаимной однозначности.............................104 9. Достаточный признак взаимной однозначности алфавитного кодирования ...................................................104 10. Общий критерий взаимной однозначности......................106 • Восьмое практическое занятие по теме «Алфавитное кодирование» .... 107 11. Двоичный алфавит...........................................113 12. Самокорректирующиеся коды..................................114 13. Коды Хемминга..............................................114
Содержание 5 14. Алгоритм построения кода Хемминга ..........................115 15. Обнаружение ошибки в кодах Хемминга.........................116 16. Декодирование (получение исходного сообщения)...............118 • Девятое практическое занятие по теме «Коды Хемминга».........118 • Контрольные вопросы..........................................120 Часть 7. Элементы теории автоматов .............................121 1. Понятие конечного автомата...................................121 2. Определение конечного автомата ..............................121 3. Способы задания конечного автомата...........................122 4. Примеры конечных автоматов...................................124 5. Канонические уравнения автомата..............................131 • Десятое практическое занятие по теме «Конечные автоматы».....133 • Контрольные вопросы..........................................135 Часть 8. Элементы теории алгоритмов.............................136 I. Вычислимые функции и алгоритмы...............................136 II. Теория рекурсивных функций..................................141 • Одиннадцатое практическое занятие по теме «Рекурсивные функции» .. 145 III. Нормальный алгоритм Маркова................................149 • Двенадцатое практическое занятие по теме «Нормальные алгоритмы» . . 155 IV. Машины Тьюринга.............................................156 • Тринадцатое практическое занятие по теме «Машина Тьюринга»...160 • Контрольные вопросы..........................................162 Часть 9. Задачи для контрольных и самостоятельных работ.........163 Рекомендуемая литература........................................174
Предисловие Данное учебное пособие ставит своей целью ознакомить учащихся с проблемами дискретной математики, которая называется так, потому что в ней нет понятия бесконечного множества, предельного перехода, непрерывности, дифференцируемости и т. д. В отличие от классической математики, которая занимается изучением непрерывных бесконечных структур, дискретная математика представляет собой область математи- ки, в которой изучаются свойства структур конечного характера. Основные блоки дискретной математики можно изобразить в виде следующей структурной схемы. Эта схема представляет разделы, традиционно изучаемые в рамках дисциплины «Основы дискретной математики» и иллюстрирует целост- ность изучаемой науки. В конце каждого раздела приведены упражнения и задачи, помогающие усвоить и закрепить изучаемый материал.
Часть 1 Элементы математической логики Лекции 1 -4 Математическая логика — это анализ методом рассуждений, при этом в первую очередь исследуются формы рассуждений, а не их содержание, т. е. математическая логика исследует соотношения между основными понятиями математики, на базе которых доказываются математические утверждения. Простейшую из формальных логических теорий называют алгеброй высказываний, поэтому начнем знакомство с элементами мате- матической логики с такого понятия, как высказывание, которое лежит в основе логико-математической теории дискретной математики. 1. Составные высказывания Высказыванием называется повествовательное предложение, о кото- ром в данной ситуации можно сказать, что оно истинно или ложно, но не то и другое одновременно. Приведем примеры высказываний. Пример 1. Волга впадает в Каспийское море. Пример 2. Два больше трех. Первое высказывание является истинным, а второе — ложным. Таким образом, высказывание обладает свойством представлять ис- тину или ложь, поэтому на высказывание можно смотреть как на величи- ну, которая может принимать только одно из двух значений: «истина», << ЛОИСЬ >> • Поставим в соответствие высказыванию логическую переменную х, которая принимает значение 1, если высказывание истинно, и 0, если высказывание ложно. Мы не будем исследовать внутреннюю структуру высказываний, по- тому что такое исследование оказывается достаточно трудным и относит- ся скорее к лингвистике, чем к математике. Поэтому мы будем поступать
8 Часть 1. Элементы математической логики так, как если бы мы знали все о простых высказываниях, и будем из- учать лишь их сочетания, т. е. как различными способами из отдельных высказываний можно построить новое высказывание. Это новое высказывание называется составным, в то время как вы- сказывания, из которых оно образовано, называются его простыми со- ставляющими или компонентами. Любое высказывание, даже такое, ко- торое на самом деле является сложным, может быть использовано в ка- честве одного из простых составляющих какого-то другого составного высказывания. 2. Простейшие связки Значение истинности составного высказывания определяется значе- ниями истинности его компонент. Высказывания будем обозначать прописными буквами латинского алфавита X, Y, Z .... Составные высказывания будем получать из простых с помощью ло- гических операций: отрицание, конъюнкция, дизъюнкция, импликация, эквивалентность, которые осуществляются при помощи логических связок: ; A; V; —о. Название Прочтение Обозначение Отрицание не — Конъюнкция и А Дизъюнкция или V Импликация если... то —> Эквивалентность тогда и только тогда, когда <-> При рассмотрении той или иной связки мы хотим знать, каким имен- но образом истинность составного высказывания, порожденного этой связкой, зависит от истинности его компонент. Очень удобно изображать эту зависимость, пользуясь таблицами истинности, которые называют- ся также интерпретациями логических операций. Каждой строке табли- цы истинности взаимно однозначно соответствует набор составляющих высказываний и соответствующее значение составного высказывания. Наборы из нулей и единиц, соответствующих составляющим высказы- ваниям, в каждой строке таблицы истинности имеют стандартное рас- положение, т. е. расположены в лексикографическом порядке (порядке возрастания). Пусть даны два произвольных высказывания X и Y.
2. Простейшие связки 9 Отрицанием высказывания X называется высказывание X, которое истинно, когда X ложно, и ложно, когда X истинно. Таблица истинности для отрицания. Конъюнкцией двух высказываний X и Y называется высказывание X Л Y, которое истинно только в том случае, когда X и Y оба истинны. Таблица истинности для конъюнкций. X У ХЛУ 0 0 0 0 1 0 1 0 0 1 1 1 Дизъюнкцией двух высказываний X и Y называется высказывание X V У, которое истинно, когда хотя бы одно из них истинно. Таблица истинности дизъюнкций. X У ХУУ 0 0 0 0 1 1 1 0 1 1 1 1 Импликацией двух высказываний X и У называется высказывание X У, которое ложно тогда и только тогда, когда X истинно, а У ложно. Таблица истинности для импликации. X У X^Y 0 0 1 0 1 1 1 0 0 1 1 1 Эквивалентностью высказываний X и У называется высказывание X н У, которое истинно тогда и только тогда, когда X и У оба истинны или ложны. Таблица истинности для эквивалентности. X У Хо У 0 0 1 0 1 0 1 0 0 1 1 1
10* Часть 1. Элементы математической логики Для образования составных высказываний наряду с единичным ис- пользованием каждой основной связки можно пользоваться основными связками многократно, получая более сложные составные высказыва- ния — аналогично тому, как с помощью основных арифметических опе- раций образуются сложные алгебраические выражения. Например, составными будут высказывания: (X Л У); Х/Х; (XVY)VX. Их следует читать «изнутри наружу», подобно алгебраическим вы- ражениям, в которых сначала группируются величины, заключенные в самые внутренние скобки, затем эти скобки в свою очередь группируются и т. д. Если скобок нет, то операции надо выполнять в следующем поряд- ке: конъюнкция, дизъюнкция, импликация, эквивалентность, отрица- ние. Каждое составное высказывание имеет свою таблицу истинности, которая может быть построена стандартным образом. 3. Другие связки Новые высказывания могут быть образованы при помощи несколь- ких логических операций и составлять формулы, некоторые из которых рассматриваются как логические операции, осуществляемые при помо- щи других логических связок: |; Д,; Ф. Название Прочтение Обозначение Штрих Шеффера Антиконъюнкция I Стрелка Пирса Антидизъюнкция 1 Сумма по модулю два Антиэквивалентность ф Штрих Шеффера, X | У или антиконъюнкция, по определению (X | У) = ХлУ. Таблица истинности штриха Шеффера. X У Х| У 0 0 1 0 1 1 1 0 1 1 1 0 Стрелка Пирса, или антидизъюнкция, по определению X Д, У = = XVY.
4. Логические отношения 11 Таблица истинности стрелки Пирса. X У х;у 0 0 1 0 1 0 1 0 0 1 1 0 Сумма по модулю два, или антиэквивалентность, по определению Таблица истинности суммы по модулю два. X У Х©У 0 0 0 0 1 1 1 0 1 1 1 0 Заметим, что таблицы истинности логических операций содержат 2” строк, где п — число простых высказываний. 4. Логические отношения Иногда бывает желательно рассмотреть взаимоотношение двух вы- сказываний. Наиболее интересное из таких отношений имеет место, ко- гда из одного высказывания логически следует другое. Если из X следует У, мы говорим также, что У является следствием X или что У логически выводимо из X. Исходя из анализа логических возможностей для пары высказываний X и У, отношение следствия можно охарактеризовать та- ким образом: из X следует У, если У истинно всякий раз, когда истинно X, т. е. если У истинно во всех логически возможных случаях, в которых X истинно. В случаях составных высказываний, имеющих одни и те же компо- ненты, таблицы истинности дают удобный метод для проверки того, име- ет ли место отношение следствия. Следующая таблица иллюстрирует этот метод: X У Хе У Х-е У XVY 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1
12 * Часть 1. Элементы математической логики Высказывание X н У истинно в первом и четвертом случаях и в обоих этих случаях истинно также высказывание X —> У. Мы видим, что из X ч-> У следует высказывание X —> У. Сравнение двух последних столбцов показывает, что из высказывания X —> У не следует X V У, из X V У не следует X —> У. При помощи таблиц истинности удобно осуществлять проверку экви- валентности двух составных высказываний, имеющих одни и те же ком- поненты. Для этого достаточно лишь посмотреть, одинаковы ли таблицы истинности у этих составных высказываний. Из следующей таблицы истинности видно, что X —> У эквивалентно XV У. X У Х^ У ХУУ 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 Два высказывания называются логически несовместимыми, если из истинности одного из них необходимо следует ложность другого. Дру- гими словами, несовместимость высказываний X и У означает, что они никогда не могут оказаться одновременно истинными. Если несколько составных высказываний построены из одних и тех же простых соста- вляющих, то для проверки их совместимости нужно построить таблицы истинности для каждого из высказываний. Если среди всех строк най- дется, по крайней мере, одна, в которой все составные высказывания истинны, то составные высказывания совместимы. В противном случае они оказываются несовместимыми. 5. Варианты импликации Импликация двух высказываний отличается от эквивалентности, а также от дизъюнкции и конъюнкции тем, что она несимметрична. Так X V У эквивалентно У V X; X Л У эквивалентно У Л X; X ч-> У эквивалентно У ч-> X, но X —> У не эквивалентно У —> X. Высказывание У —> X на- зывается конверсией высказывания X —> У. Многие из наиболее распро- страненных ошибок в рассуждениях происходят от смешивания какого- либо высказывания с его конверсией. Интересно поэтому рассмотреть те импликации, которые могут быть образованы из высказываний X и У.
6. Основные законы, определяющие свойства введенных логических операций 13 В таблице истинности представлены четыре импликации и их названия. X У X У Импликация X -> У Конверсия импликации У X Конверсия контрапозиции X -> У Контрапозиция У > X 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 Из таблицы видно, что X Y эквивалентно У —> X. Последнее назы- вается контрапозицией первого. Контрапозиция является удобной фор- мой импликации во многих рассуждениях. Аналогично, высказывание X —> У представляет собой конверсию контрапозиции. Так как контра- позиция эквивалентна X —> У, то конверсия этой контрапозиции эквива- лентна конверсии этой импликации. С импликацией связано постоянное упоминание математиками «не- обходимое условие» и «достаточное условие». X является достаточным условием для У Если имеет место X, то У также будет иметь место Импликация X —>У X является необходимым условием для Y Если имеет место У, то X также будет иметь место Конверсия достаточного условия У —> X X является необходимым и достаточным условием для У X имеет место, если и только если имеет место У Двойная импликация X о У эквивалентность 6. Основные законы, определяющие свойства введенных логических операций 1) Идемпотентность дизъюнкции и конъюнкции: X V X о X, X Л X о X. 2) Коммутативность дизъюнкции и конъюнкции: X V У «-> У V X, ХлУнУлХ. 3) Ассоциативность дизъюнкции и конъюнкции: X V (У VZ) н (X V У) V Z, X Л (У Л Z) н (X Л У) Л Z.
14 • Часть 1. Элементы математической логики 4) Дистрибутивность операций дизъюнкции и конъюнкции относи- тельно друг друга: XV(YAZ)H (Xvy)A(XVZ), 5) Двойное отрицание: X 6) Закон де Моргана: хуу о хТГу, 7) Склеивание: (XVY)A(XVY)hX, 8) Поглощение: X V (X Л У) н X, ХА (У VZ) н (ХА У) V (ХА Z). X. X Л У о XVY. (X Л У) V (X Л У) X. ХЛ(Х/У)Н X. 9) Действие с логическими константами 0 и 1: XvOhX, ХлОоО, XV lol, ХЛ1оХ, ХлХоО. 10) Закон исключения третьего: 11) Тождество: Х^Х. 12) Отрицание противоречия: £лХо 1. 13) Контрапозиция: (X о У) о (У о X). 14) Цепное заключение: ((X о У) Л (У о Z)) н (X -> Z). 15) Противоположность: (X н У) н (Хн У). 16) Модус поненс (modus ponens): (ХЛ(Х->У))->Ун 1. Сформулированные законы легко проверить с помощью таблицы ис- тинности. Заметим, что при исследовании различных высказываний на эквива- лентность (равносильность) логическую связку о можно заменить обыч- ным знаком равенства =.
Первое практическое занятие по теме «Логические операции» "15 Первое практическое занятие по теме «Логические операции» Задача 1. Составьте таблицу истинности формулы: Хф У —> Z V X | У А X. Решение. Расставим скобки: (X Ф У) —> (ZV(X| (УЛХ))). X У Z X У Z ХфУ У АХ х | (У л X) zv(X| (Улх)) (ХфУ) -> (X I (УЛХ)) 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 Задача 2. Докажите тождественную истинность формулы X —> (X -> У). Решение. Составим таблицу истинности: X У X Х->У X -> (X -> У) 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 Последний столбец состоит из 1, следовательно, доказана тождественная истин- ность формулы. Задача 3. Докажите эквивалентность X Л (X V Z) Л (У V Z) о (X Л У) V (X Л Z). Решение. Пусть <pi = X Л (X V Z) Л (У V Z). Составим таблицу истинности: X У Z xvz У VZ XA(XvZ) х л (X v Z) л (У v Z) 0 0 0 0 0 0 4 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
16* Часть 1. Элементы математической логики Пусть (pa = (X Л У) V (X Л Z). X У Z хлу XAZ (X Л У) V (X Л Z) 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 Заметим, что таблицы истинности для <pi и <р2 совпадают, следовательно, эквивалентность доказана. Задача 4. Для каждого из следующих высказываний: 1) найдите символическую форму; 2) постройте таблицу истинности. Воспользуйтесь буквенными обозна- чениями: X для «Джо умен»; У для «Джим глуп»; Z для «Джо получит приз». (а) Если Джо умен, а Джим глуп, то Джо получит приз. (Ь) Джо получит приз в том и только в том случае, если он умен или если Джим глуп. (с) Если Джим глуп, а Джо не удастся получить приз, то Джо не умен. Решение, (а) (X Л У) Z; (b) Z о (X V У); (с) (У Л Z) -> X. X У Z X Z хлу (X Л У) -> Z xvy Z о (X V У) Y/Z (У л Z)> х 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 (а) (Ь) (с) Задача 5. Таблица истинности высказывания, составленного из двух простых высказываний, состоит из четырех строк; а таблица истинности высказыва- ния, составленного из трех простых высказываний, — из восьми строк. Сколько строк должна иметь таблица истинности высказывания, составленного из че- тырех простых высказываний? Сколько — из пяти? Сколько — из п? Укажите способ систематической записи таблиц истинности для произвольного п? Указание. Для систематической записи таблиц истинности для произволь- ного п можно применить метод «последовательного половинного деления столб- цов » — столбец первой переменной делят пополам и заполняют верхнюю поло- вину нулями, а нижнюю половину — единицами, затем каждую половину вто- рого столбца делят пополам и опять заполняют полученные половины нулями и единицами и т. д.
Первое практическое занятие по теме «Логические операции» • 17 Задача 6. Доказать равносильность, используя основные законы логических опе- раций: (х л У) v (У л Z) = (х л У) v (X л Z) v (У л Z). Решение. 1. Используя законы де Моргана XV Y оХАУиХлУ о X V У, получим: (ХЛУ)7(УЛ2) = (ХЛУ) Л (Ул1) = (X V У) Л (У V f). 2. Используя закон двойного отрицания Хн X, получаем: (X V У) Л (У V1) = (X V У) Л (У V Z). 3. Применяя дистрибутивный закон (X V У) Л (X V Z) = X V (У Л Z), получаем (Xvy)A(yvZ)= ((ХуУ)лУ) V ((Xvy)AZ) = = ((X А У) V (У Л У)) V ((X Л Z) V (У Л Z)) . 4. Ассоциативность дизъюнкции: XV(yvZ) <ч (Xvy)VZ позволяет упростить последнее выражение: ((X Л У) V (У Л У)) V ((X A Z) V (У Л Z)) = (X Л У) V (У Л У) V (X Л Z) V (У Л Z). 5. Учитывая законы, включающие тождественно ложные высказывания, окончательно получаем: (X л У) v (У л У) v (X л Z) v (У л Z) = (X л У) v (X л Z) v (У л Z). Задача 7. С помощью таблиц истинности проверить, являются ли эквивалент- ными высказывания: Д = X Л (У ч Z) и = (ХА У) V(XA Z). Решение. X У Z X У ^z fl хлу XAZ /г 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 Так как значения для высказываний А и /2 в таблице истинности не совпали, то они не эквивалентны. Задача 8. Определите для каждого из следующих высказываний, будет ли оно логически истинным, противоречивым; ни тем, ни другим. (а)ХнХ; (б)ХоХ; (в) (X V У) о (X Л У); (г) (X-> У)-> (У-> X); (д) (X-> У)Л (У-> Z)Л(X-> Z); (е)(Х->У) >Х; (ж)((ХчГ)чХ)чХ.
18 Часть 1. Элементы математической логики Решение. X У х^х X х^х xvy хлу (XV У)Н(ХЛУ) 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 (а) (б) (в) Вывод: (а) — логически истинное; (б) — противоречивое; (в) — ни то, ни другое; X У У X -> У Y^X (X -> У) -ч (У -ч X) 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 (г) (г) — логически истинное; X У Z X -> У У 4Z (X -> У) Л (У -ч Z) x->z х >z (X ч У) Л (У ч Z) Л л (X -> Z) 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 (д) (д) — противоречиво; X У Х-> У (X ч У) > X ((X ч У) ч X) ч X 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 (е) (ж) (е) — ни то, ни другое; (ж) — логически истинно. Задача 9. Покажите, что высказывание (X <ч У) —> (X —> У) — логически истин- но, а (X н У) -> (X V У) — нет. Задача 10. Постройте таблицы истинности следующих составных высказыва- ний: (а) X Л У; (б) X -» У; (в) X V У; (г) X V У; (д) X Л У. Для каких пар имеет место отношение следствия или эквивалентности? Ответ: (б) эквивалентно (в); из (а) следует (г); из (д) следует (б), (в).
Первое практическое занятие по теме «Логические операции» 19 Задача 11. Постройте таблицы истинности следующих составных высказываний и расположите их в таком порядке, чтобы из каждого высказывания следовали все, стоящие после него: (а) X < > Y; (б) X —> У; (в) X —> (У —> X); (г) X V У; (д)ХлУ. Ответ: (в); (д); (а); (г); (б). Задача 12. Постройте составные высказывания, эквивалентные а) X <-> У; б) X V У, используя только связки отрицания и конъюнкции. Задача 13. Если X и У логически истинны, a Z — логически ложно, то что можно сказать о высказывании (X V У) Л Z? Ответ: логически истинно. Задача 14. Докажите, что конъюнкция импликации и ее конверсия эквивалент- ны двойной импликации, т. е. (X —> У) Л (У —> X) (X о У). Задача 15. Чему эквивалентна конъюнкция контрапозиции и ее конверсии? Задача 16. Докажите, что отрицание высказывания : «X есть необходимое и достаточное условие для У» эквивалентно высказыванию: «X есть необходимое и достаточное условие для У». Задача 17. Докажите, что контрапозиция эквивалентна первоначальной импли- кации. Задача 18. Пусть X означает: «Я сдам этот экзамен»; а У: «Я буду регулярно выполнять домашние задания». Запишите в символической форме следующие высказывания: (а) «Я сдам этот экзамен только в том случае, если буду регулярно выполнять домашние задания». (б) «Регулярное выполнение домашних заданий является необходимым условием для того, что я сдам этот экзамен». (в) «Сдача этого экзамена является достаточным условием того, что я регу- лярно выполнял домашние задания». (г) «Я сдам этот экзамен в том и только в том случае, если я буду регулярно выполнять домашние задания». (д) «Регулярное выполнение домашних заданий есть необходимое и доста- точное условие для того, чтобы я сдал этот экзамен». Выясните, какому из перечисленных высказываний соответствуют следую- щие символические формы: X —> У; У нХ;ХнУ;У —» X. Задача 19. Докажите равносильность X —> У = X Л У с помощью формул алгебры высказываний. Решение. Используя формулу X -> У = X V У, запишем: X —> У = X V У, тогда Х/У = ХлУпо закону де Моргана, т.е. X -> У = ХлУ, т. к. по закону двойного отрицания X = X, что и требовалось доказать.
20 Часть 1. Элементы математической логики Полученная формула дает правило построения отрицания для импликации, часто применяемое в математических рассуждениях: X —> У = X / Y. Задача 20. Преобразуйте формулу (X —> (У —> Z)) е» У —> X к виду, не содержа- щему импликацию и эквивалентность. Решение. Запишем цепочку преобразований: (X -> (У -4 Z)) о У -> X = (X -> (У V Z)) О У Л X = X V (У V Z) <4 (У Л X) = = ((XV (У VZ))A(X АХ)) V (ХУ(У VZ)A(X АХ)) • Задача 21. Проверьте, будут ли эквивалентны следующие формулы: а) X -4 (У е Z) и (X У) Ф (X -4 Z); б) X | (У -4 Z) и (X | У) -4 (X | Z); в) х 4- (У Z) и (х 4. У) (х Z). Решение. Составим таблицы истинности: (а) X У Z y®Z X -4 (У ф Z) X 4 У Х-> Z (X -4 У) 9 (X -4 Z) 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 ] 0 1 1 1 1 0 1 1 1 0 1 1 1 ] 0 0 1 1 0 Формулы не эквивалентны. X У Z У ->Z X I (У > Z) X I У X I Z (X I У) -4 (X | Z) 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 Формулы не эквивалентны.
7. Булевы функции 21 X У Z У о Z х 4 (У о Z) Х4У X4Z (X 4 У) о (X 4 Z) 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 Формулы эквивалентны. Задача 22. Составьте таблицы истинности для высказываний: а)Х|Х; б)(Х | У) | (X | У), и покажите, что любая таблица истинности может быть реализована посредством составного высказывания, в котором используется единственная связка: штрих Шеффера. Задача 23. Постройте таблицы истинности для высказываний: а) X 4 X; б) (X J. У) 4 (X J. У). Какие другие составные высказывания имеют те же таблицы истинности? По- кажите, что любая таблица истинности может быть реализована посредством составного высказывания, в котором используется единственная связка: стрел- ка Пирса. Задача 24. Докажите, что импликация X —> У эквивалентна ((X Л У) ф X) ф 1. Решение. Доказательство проведем с помощью таблицы истинности. X У X -> У ХЛУ (X Л У) Ф X 1 ((X Л У) Ф X) ф 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 Задача 25. Докажите эквивалентность формул: fi = (X Л У V (X —> У Л Z)) О(Х ->У)-4 Z; h = (X -> У) ф (У ф Z). 7. Булевы функции Булева функция, или функция алгебры логики, является одним из основных объектов дискретной математики.
22 Часть 1. Элементы математической логики Булевы функции названы в честь Дж. Буля, положившего начало применению математики в логике. Функцию f(xi, Х2,хп), принимающую одно из двух значений 0 или 1, от п переменных, каждая из которых принимает одно из двух значений О или 1, будем называть булевой функцией f(x, х2, ...,хп) от п перемен- ных. Булева функция от п переменных сопоставляет каждому упорядо- ченному набору (кортежу), составленному из п элементов, 0 и 1, либо 1, либо 0. Две булевы функции называются равными, если для любых одинако- вых наборов значений переменных обе функции принимают одинаковые значения. Булевых функций одной переменной четыре, а двух перемен- ных — шестнадцать и т. д. Число булевых функций от п переменных равно 22". Рассмотрим функции одной и двух переменных, которые называются «элементарными» функциями и с помощью которых можно определить функции большего количества переменных. Рассмотрим таблицы истинности таких функций. Таблица истинности булевой функции одной переменной: X /1(х) /г(х) /з(х) /д(х) 0 0 0 1 1 1 0 1 0 1 Функции А(х) и /4(х)) называются константами — соответственно 0 и 1. Функция fz(x) совпадает с переменной х и называется тождественной f2(x) = х: Функция /з(х) принимает значения, противоположные значениям ар- гумента х, и называется отрицанием х, обозначается х: /з(х) = х. Таблица истинности булевой функции двух переменных: Х1 Х2 /1 /2 /з /4 /5 /б /7 /8 /9 /10 /11 /12 /13 /14 /15 /16 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Следует отметить, что здесь к функциям двух переменных относятся и такие, которые в действительности зависят от одной переменной. 1. Функции fi и /16 представляют собой константы 0 и 1. 2. Функции /4, /6, fii> /1з существенно зависят только от одной пере- менной: /4 = Xi, /6 = х2, /11 = Х2, /13 = хТ-
8. Свойства элементарных булевых функций • 23 3. Остальные функции существенно зависят от двух переменных, и для них есть названия и обозначения: а) функция fz = X] Л Х2 и называется конъюнкцией, б) функция fs = Xi V Х2 и называется дизъюнкцией, в) функция fiQ = xi <-> Х2 и называется эквивалентностью, г) функция fa = Xi ф Х2 и называется суммой по модулю два, или суммой Жегалкина, д) функция /12 = Х2 —> Xi и называется конверсией, е) функция /14 = Xi —> Х2 и называется импликацией, ж) функция /15 = Xi | Х2 и называется штрих Шеффера, з) функция /9 = Xi J, Х2 и называется стрелкой Пирса, и) функции /з и /5 логически несовместимы с импликацией и конвер- сией и называются функциями запрета. 8. Свойства элементарных булевых функций Для булевых функций справедливы равенства, аналогичные форму- лам, сформулированным для высказываний. 1. Функции: конъюнкция, дизъюнкция, сумма по модулю два, стрел- ка Пирса, штрих Шеффера обладают свойством коммутативности. 2. Функции: конъюнкция, дизъюнкция, сумма по модулю два обла- дают свойством ассоциативности и свойством дистрибутивности. 3. Закон де Моргана: xi Л Х2 = х/ V Х2; xi V Х2 = хТ Л Х2. 4. Закон двойного отрицания: х = х. 5. Выражение дизъюнкции через конъюнкцию и суммы по модулю два: Xi V Х2 = Xi Л Х2 Ф х2 Ф xi. 6. Выражение дизъюнкции через импликацию: (Х1 х2) -> х2 = Х1 V х2. 7. Выражение отрицания через штрих Шеффера, стрелку Пирса, сум- му по модулю два и эквивалентность: х | х = х | х = х = х 6 1 = х « 0. 8. Выражение конъюнкции через штрих Шеффера: (xi | х2) | (xi | х2) = Х1 Л х2. 9. Выражение дизъюнкции через стрелку Пирса: (xi J. х2) 1 (xi J. х2) = Х1 V х2. 10. Закон поглощения: Xi Л Х2 V xi = xi; xi Л (xi V Х2) = Xi.
24 Часть 1. Элементы математической логики 11. Закон склеивания: х V х = х ф х = 1. 12. Для функций: конъюнкция, дизъюнкция и сумма по модулю два справедливы следующие тождества: х Л х = х; х V х = х; х ф х = 0; х Л х = 0; х V х = 1; X ф X = 1; х Л 0 = 0; х V 0 = х; хф 0 = х; х Л 1 = х; х V 1 = 1; х ф 1 = X. 13. Для функций конъюнкция и дизъюнкция справедливы тожде- ства: Xi V Xi Л Х2 = X] V Xg; Xi Л (Х2 V Х1) = Х1 Л Х2- Для доказательства справедливости любых из приведенных тождеств нужно составить таблицы истинности для булевых функций. Булеву функцию любого числа переменных можно задать формулой, содержащей функции одной и двух переменных посредством подстановки одних булевых функций вместо переменных в другие булевы функции, т. е. посредством суперпозиции булевых функций. 9. Дизъюнктивные и конъюнктивные нормальные формы алгебры высказываний Конъюнктивным одночленом от переменных Xi, Хг, - -., х„ называется конъюнкция этих переменных или их отрицаний. Дизъюнктивным одночленом от переменных xi, Х2,.. -, хп называется дизъюнкция этих переменных или их отрицаний. Формула, равносильная данной формуле алгебры высказываний и являющаяся дизъюнкцией элементарных конъюнктивных одночленов, называется дизъюнктивной нормальной формой (ДНФ) данной фор- мулы. Например: (xi Л Х2 Л хз) V (xi Л xi) V (хз Л Х2) V хз — ДНФ. Формула, равносильная данной формуле алгебры высказываний и являющаяся конъюнкцией элементарных дизъюнктивных одночленов, называется конъюнктивной нормальной формой (КНФ) данной фор- мулы. Например: (лД v Х2 V хз) Л (xi V хз) Л Х2 — КНФ. Для каждой формулы алгебры высказываний можно найти множе- ство дизъюнктивных и конъюнктивных нормальных форм.
10. Совершенные дизъюнктивная и конъюнктивная нормальные формы 25 Алгоритм построения (1) Избавиться от всех логических операций, содержащихся в фор- муле, заменив их основными: конъюнкцией, дизъюнкцией, отрицанием. Это можно сделать, используя равносильные формулы: Xi —> Х2 = Xi V х2; xi о х2 = (х{ V х2) Л (Xi V xi); Х1 о х2 = (Х1 Л х2) V (xf Л xi). (2) Заменить знак отрицания, относящийся к выражениям типа Xi Л х2 или Xi V х2, знаками отрицания, относящимися к отдельным пе- ременным высказываниям на основании формул: Xi V х2 = xi Л xi; Xi Л х2 = xi V xi. (3) Избавиться от знаков двойного отрицания. (4) Применить, если нужно, к операциям конъюнкции и дизъюнкции свойства дистрибутивности и формулы поглощения. 10. Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы Любая булева функция может иметь много представлений в виде ДНФ и КНФ. Особое место среди этих представлений занимают совершенные ДНФ (СДНФ) и совершенные КНФ (СКНФ). Совершенная дизъюнктивная нормальная форма (СДНФ) — это ДНФ, в которой в каждый конъюнктивный одночлен каждая переменная X; из набора f(xi, х2,..., хп) входит ровно один раз, причем входит либо сама х,;, либо ее отрицание ху. Конструктивно СДНФ для каждой формулы алгебры высказываний, приведенной к ДНФ, можно определить так: Совершенной дизъюнктивной нормальной формой (СДНФ) формулы алгебры высказываний называется ее ДНФ, обладающая следующими свойствами: 1. ДНФ не содержит двух одинаковых конъюнкций. 2. Ни одна конъюнкция не содержит одновременно двух одинаковых переменных. 3. Ни одна конъюнкция не содержит одновременно некоторую пере- менную и ее отрицание. 4. Каждая конъюнкция содержит либо переменную х; , либо ее отри- цание xi для всех переменных, входящих в формулу.
26 Часть 1. Элементы математической логики Конструктивно СКНФ для каждой формулы алгебры высказываний, приведенной к КНФ, можно определить так: Совершенной конъюнктивной нормальной формой (СКНФ) данной формулы алгебры высказываний называется такая ее КНФ, которая удо- влетворяет следующим свойствам: 1. КНФ не содержит двух одинаковых дизъюнкций. 2. Ни одна из дизъюнкций не содержит одновременно двух одинако- вых переменных. 3. Ни одна из дизъюнкций не содержит одновременно некоторую пе- ременную и ее отрицание. 4. Каждая дизъюнкция СКНФ содержит либо переменную Xi, либо ее отрицание X/ для всех переменных, входящих в формулу. Сформулируем следующие теоремы: Теорема 1. Произвольную булеву функцию f(xlfX2, ...,хп) можно задать формулой f(xi,x2, ...,хп) = V(*? Лх2 л ••• лхп" )• гДе дизъюнкция берется по всем х = (Т1,х2, ...,хп), где f(x) = 1 и если т = О, если х = 1. Теорема 2. Произвольную булеву функцию f(xr, х2,..., хп) можно задать формулой f(xi,x2, ...,хп) = Д(хр VXg2 v v хп”) гДе конъюнкция берется по всем х = (тГ, хг,..., т^), где f(x) = 0 и {xi, если х = О, х,, еслит = 1. Эти формулы называются соответственно совершенной дизъюнктив- ной нормальной формой или совершенной конъюнктивной нормальной формой булевой функции /(xi,X2, ...,хп). Исходя из таблицы истинно- сти булевой функции, можно построить СДНФ функции: для каждого набора т = (Т1,Хг, ...,тп), такого, что f(x) = 1, составляется конъюнкция х? Л х? Л ... Л х1", а затем все эти конъюнкции соединяем знаком дизъ- юнкции. Для построения СКНФ функции выписываем наборы х = (т?, • • •, такие, что Дт) = 0. Для такого набора составляется дизъюнкция хр V хг22 V ... Ух£, а затем все такие дизъюнкции соединяют знаком конъюнкции.
11. Многочлены Жегалкина 27 Приведенные формулы позволяют сформулировать следующие утверждения: 1. Каждая булева функция от п переменных, отличная от константы 0, имеет единственную СДНФ. 2. Каждая булева функция от п переменных, отличная от константы 1, имеет единственную СКНФ. Эти утверждения называются теоремой о функциональной полноте. 11. Многочлены Жегалкина Согласно сформулированным утверждениям, можно говорить, что система булевых функций полна. Тогда любую булеву функцию можно представить в виде многочлена от своих переменных и такой многочлен называется многочленом Жегалкина. Многочленом Жегалкина называется многочлен, являющийся сум- мой константы и различных одночленов, в которые каждая из перемен- ных входит не выше, чем в первой степени. Многочлен Жегалкина константы равен самой же константе; мно- гочлен Жегалкина булевой функции одной переменной f(x) = «о Ф а^х; многочлен Жегалкина булевой функции двух переменных f(xi, х2) = а0 ф aiXi ф а2х2 Ф ai2(xi А х2); многочлен Жегалкина булевой функции трех переменных f(xi, х2, х3) = а0 ф aixi ф а2х2 Ф сг3х3ф Ф «12U1 л х2) ф С11з(Х1 Л Хз) ф а2з(х2 л х3) ф di23(x1 Л х2 Л х3) и т. д. Коэффициенты и свободный член ао принимают значения О или 1, а число слагаемых в формуле равно 2п, где п — число переменных. Знак ф — сумма Жегалкина или сумма по модулю два. Теорема 3 (Жегалкина). Каждая булева функция f(xi,x2, ...,хп) может быть представлена в виде многочлена Жегалкина и притом единственным образом, с точностью до порядка слагаемых. Сформулируем алгоритм построения многочлена Жегалкина. Выше было указано, что любую функцию, отличную от константы О, можно представить в виде СДНФ. Если сравним таблицы истинности
28 Часть 1. Элементы математической логики дизъюнкции и суммы по модулю два, видим, что они отличаются только последней строкой, т. е. на наборе 11. Так как в СДНФ на каждом наборе только одна конъюнкция равна 1, то все дизъюнкции можно заменить суммами по модулю два. Кроме того, известно, что х = х ф 1. На этом и основан первый алгоритм построения многочлена Жегалкина: 1. Находим множество тех двоичных наборов, на которых функция принимает значение 1. 2. Составляем СДНФ. 3. В СДНФ каждый знак дизъюнкции меняем на знак суммы Жегал- кина. 4. Упрощаем, если можно, полученное выражение, используя тожде- ство Xi ф Х[ = 1. 5. В полученной формуле каждое отрицание х[ заменяем на Xt ф 1. 6. Раскрываем скобки в полученной формуле, содержащей только функции А и ф и константу 1. 7. Приводим подобные члены, используя тождество Xj ф хг = 0. Используя метод неопределенных коэффициентов, получаем второй алгоритм определения многочлена Жегалкина: 1. Составляем систему линейных уравнений относительно 2п неиз- вестных коэффициентов, содержащую 2" уравнений, решением которой являются коэффициенты ао, ai,..., Яц2.п многочлена Жегалкина. Многочлен Жегалкина называется нелинейным, если он содержит конъюнкции переменных, а если он не содержит конъюнкции перемен- ных, то он называется линейным. Функция f(xi, Х2, • -, хп) называется линейной, если ее многочлен Же- галкина имеет вид ао ©aiXi ф... ®апхп, и нелинейной в противном случае. Из определения многочлена Жегалкина следует, что для любой буле- вой функции коэффициенты при переменных х±, Х2,..., хп и свободный член вычисляются по формулам: ао = /(О,...,О), а1 = Д0,...,0)фД1,...,0), а2 = Д0,...,0)фД0,1,...,0), = ДО,..., 0) ф ДО,..., 1). На этом основан алгоритм определения линейности (или нелинейно- сти) булевой функции. 1. По таблицам истинности булевой функции f(x±, х2,..., хп) и выше указанным формулам находим коэффициенты: (ао, ai,..., ап).
Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» 29 2. Выписываем многочлен Ф(х,,..., хп) = а0 Ф а.]Х ф ... ф апхп и про- веряем, задает ли он эту функцию. Для этого строим таблицу истинности многочлена Ф(лц, х2,..., хп) и сравниваем ее с таблицей истинности функ- ции f(xi,x2, ...,хп). Если таблицы истинности совпадают, то функция f(xi, х2,..., х„) ли- нейная и Ф(Х1, х2,..., хп) — ее многочлен Жегалкина. В противном случае функция нелинейная. Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» Задача 1. Составьте таблицу истинности булевой функции трех переменных f(xi, х2, хз) = xi ® х2 -> хз V xi | (xi Л х?) и найдите ее двоичный набор. Решение. Для вычисления значений функции следует определить порядок вы- полнения операций. Это можно сделать многими способами. Пусть, например, порядок выполнения операций будет следующим: Л=Х1Фх2; /2 = х2ЛхГ; /з = xi |/2; Ь = хзУ/з; Последовательно составляются таблицы истинности всех указанных функ- функции позволяет задать функцию двоичным набором длины 2", который бу- дем обозначать буквой F. Двоичный набор данной функции F = 11111111. От- метим, что двоичный набор определяет булеву функцию в том и только в том случае, когда его длина есть степень двойки, а соответствующий показатель сте- пени определяет число переменных данной функции. Задача 2. Докажите тождественную истинность формулы х —> (х —> у). Решение. Необходимо показать, что двоичный набор данной формулы F = 1111.
30 Часть 1. Элементы математической логики Составим таблицу истинности: X У X х -> у х -> (х -> у) 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 Задача 3. Докажите эквивалентность функций: Дх, у, г) = х Л (х V г) Л (у V z) и f(x, у, z) = (х Л z) V (х Л г). Решение. Для доказательства необходимо построить таблицы истинности этих функций, и если их двоичные наборы совпадут, то эквивалентность будет дока- зана. X У 2 х V z i/Vz х Л (х V z) х Л (х V z) Л (у V z) 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 X У 2 х Л у х Л z (х Л у) V (х Л z) 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 Получаем Fi = 00000111 viF2 = 00000111. Значит, функции эквивалентны. Задача 4. Используя СДНФ, найдите булеву функцию, принимающую значе- ние 1 на следующих наборах переменных, и только на них: /(0,1,0) = Д1,0,1) =/(1,1,1) = 1. Решение. Алгоритм построения СДНФ. 1. НаборамОЮ; 101; ШсоответствуютконъюнкцшкхТЛхгЛхз; Х1ЛХ2ЛХ3; xi Л Х2 Л хз- Напомним, что для каждого набора из нулей и единиц Т1,Т2,^з выписываем конъюнкцию хр Л хх£ / xf, причем, если т, = 1, то соответствующая переменная х, входит в конъюнкцию без отрицания.
Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» 31 2. Составим дизъюнкцию полученных конъюнкций, т. е. составляем СДНФ функции: /(%!, Х2, Х3) = (xi Л Х2 Л Xi) V (Х1 Л Х2 Л Х3) V (Х] Л х2 Л х3). Задача 5. Составьте СКНФ функции f(xi, х2) = xi © х2. Решение. Х1 х2 Х1 © х2 0 0 0 0 1 1 1 0 1 1 1 0 1. Выпишем /(0,0) = 0; /(1,1) = 0, булева функция принимает значение 0 на наборах (0; 0) и (1; 1). 2. Составим дизъюнкции, соответствующие этим наборам: х4 V х2 и хГ V xi (если т = 0, то переменная входит в дизъюнкцию без отрицания, если т = 1, то переменная в дизъюнкции берется с отрицанием). 3. Составим конъюнкцию полученных дизъюнкций, т. е. составляем СКНФ функции /(xi, х2) = (xi V х2) Л (xi V хг). Задача 6. Постройте КНФ функций и доказать тождественную истинность с помощью таблицы истинности: a) fi(xlr х2, х3) = (xi V xi) -> х3; б) A(xi, х2, х3, х4) = (xi Л (х2 -> х3)) -> х4. Решение. Напомним процедуру построения КНФ. 1. Исключаем связку —> с помощью законов преобразования переменных: (х -> у) = х V у. 2. Исключаем двойное отрицание с помощью правила х = х и используем законы де Моргана: хг V х2 = xi Л xi или х4 Л х2 = xf V xi. 3. Для получения нормальной формы используем дистрибутивные законы: xi V (х2 Л х3) = (xi V х2) Л (х4 V хз), xi Л (х2 V хз) = (xi Л х2) V (xi Л х3). a) f(xlr х2, х3) = (х4 V xi) -> хз = (xi V xi) V х3 = (xi Л xi) V х3 = = (xi Л Х2) V Х3 = (xi V Хз) Л (х2 V Хз). б) /(Х1, Х2, Хз) = (Х1 Л (х2 -> Хз)) -> Х4 = (х4 Л (xi V Хз)) -> х4 = = (Х1 Л (xi V Хз)) V Х4 = (xi V (xi -> Хз)) V Х4 = (хГ V (xi Л Хз)) V х4 = = (xi V (х2 Л xi)) V х4 = ((xi V х2) Л (xi V xi)) V х4 = (xi V х2 V х4) Л (хГ V xi V х4).
32 * Часть 1. Элементы математической логики Таблица истинности для функции (б): X! х2 Хз Х4 fl х2 -> Хз f2 xi л А А -> х4 Х1 А Xi V х2 А А V Х4 Хз _Л_ Х1 V Хз А А v Х4 А л А 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 . 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 Задача 7. Приведите к ДНФ формулу / = ((х -> у) J, (у -> z j). Решение. Выразим логические операции —> и | через Л, V и f = ((х V у) J, (у V zj) = (х V у) V (у V z). В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания: / = (х V у) V (у V z) = (х V у) Л (у V z) = (х Л у) Л (у V 2). Используя закон дистрибутивности, приводим формулу к ДНФ: f = (х Л у Л у) V (х Л у Л z). Задача 8. Приведите к КНФ формулу f = (х -» у) Л ((у -> z) -> х). Решение. Преобразуем формулу f к формуле, не содержащей —>: f = (х V у) Л ((у -> 2) V х) = (х V у) Л ((у V 2) V х) . В полученной формуле перенесем отрицание к переменным и сократим двой- ные отрицания: f = (х V у) Л ((у Л 2) V х) = (х V у) Л ((у Л 2) V х).
Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» 33 По закону дистрибутивности получим: f (x/y)/(xJy)/(x/z), являющейся КНФ. Замечание. Если полученную формулу упростить, используя законы дистрибу- тивности, эквивалентности и поглощения, то получим: (х V у) Л (х V у) Л (х V г) = х V (у Л у) Л (х V z) = х Л (х V г) = х. Таким образом, мы получили формулу, которая является одновременно ДНФ и КНФ. Задача 9. Найдите СДНФ и СКНФ функции /(Х1,хг,хз), заданной следующей таблицей истинности: Х1 х2 Хз Дх1,х2,хз) 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 Решение. По теореме о функциональной полноте СДНФ имеет вид: (х? Л хг Л хз) V (xi Л хг Л хз) V (хГ Л хг Л х3) V (xi Л хг Л х3), СКНФ имеет вид: (Xi V Х2 V Хз) Л (xi V Хг V хз) Л (х{ V Х2 V Х3) Л (xf V Хг V Хз). Описанный способ нахождения СДНФ и СКНФ по таблице истинности быва- ет часто более трудоемким. Для нахождения СДНФ данную формулу приводим сначала к ДНФ, а затем преобразовываем ее конъюнкции с помощью следующих действий: а) если в конъюнкцию входит некоторая переменная со своим отрицанием, то мы удаляем эту конъюнкцию из ДНФ; б) если в конъюнкцию одна и та же переменная входит несколько раз, то все они удаляются, кроме одной; в) если в конъюнкцию не входят некоторые переменные, то для каждой из них к конъюнкции добавляется соответствующая формула вида (х V х); г) если в полученной ДНФ имеется несколько одинаковых конъюнкций, то оставляем только одну из них. В результате получается СДНФ. Задача 10. Найдите СДНФ для ДНФ (х Л х) V х V (у Л 2 Л у). Решение. 1. Удаляем конъюнкцию (х Л х), так как здесь переменная вместе со своим отрицанием. Остается х V (у Л г Л у)). 2-6234
34 Часть 1. Элементы математической логики 2. Из конъюнкции у Л z Л у удаляем переменную у, так как она входит сюда два раза. Остается х V (у Л г). 3. В первой конъюнкции нет переменной у, поэтому к ней добавляется фор- мула (yVy), а во второй конъюнкции нет переменной х, поэтому к ней добавляется формула (х V х). Получаем: (X Л (у V у)) V (у Л г Л (х V х)). 4. Используем дистрибутивные законы: (х Л у) V (х Л у) V (х Л у Кг)У (х Л у Кг). 5. К первой и второй конъюнкциям добавляем (z V z) и получаем: (х Л у Л (z V z)) V (х Л у Л (z V z)) V (х Л у Л z) V (х Л у Л z). 6. Используем дистрибутивные законы: (х Л у Л z) V (х Л у Л г) V (х Л у Л z) V (х Л у Л z) V (х Л у Л z) V (х Л у Л г). 7. В полученной формуле имеется две одинаковые конъюнкции: х Л у Л z. Удалив одну из них, получим: (х Л у Л z) V (х Л у Л z) V (х Л у Л z) V (х Л у Л z) V (х Л у Л г). В итоге мы получили соответствующую СДНФ. Задача 11. Найдите СКНФ для КНФ (х V z V у) Л (х V z) Л у. Решение. Опишем алгоритм приведения КНФ к СКНФ аналогично вышеизло- женному приведению ДНФ к СДНФ. 1. Во второй дизъюнкции не хватает переменной у, поэтому в дизъюнкцию добавим (у Л у) и, используя дистрибутивные законы, получаем: X V Z = X V Z V (у Л у) = (х V z V у) Л (х V Z V у). 2. В третью дизъюнкцию добавим (х Л х) и получим две дизъюнкции: У — У V (х Л х) = (у V х) Л (у V х). Добавив в каждую из них г Кг, получим: (у V х V (z Л z)) Л (у V х V (z Л г)) = (у V х V z) Л (у V х V z) Л (у V х V z) Л (у / х V z). 3. Соберем в конъюнкцию все дизъюнкции: (х V у V z) Л (х V у V z) Л (х V z V у) Л (у V х V z) Л (х V у V z) Л (х V у V г) Л (х V у V z). 4. Избавляемся от одинаковых дизъюнкций, оставляя только одну. В ре- зультате получается СКНФ: (х V у V z) Л (х V у V z) Л (х V у V z) Л (х V у V z) Л (х V у V z).
Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» 35 Задача 12. Задана булева функция трех переменных: /(Х1,Х2,Х3) = х2 Л Х1 V х3) | (х2 | Хз а) постройте таблицу истинности, найдите двоичную форму F булевой функ- ции и приведите функцию к СДНФ и СКНФ, б) найдите двумя способами многочлен Жегалкина. Решение. a)A=xiVx3; f2 = х2 | х3; fs = (х2 | х3) = /2; А = (xi V хз) | (х2 | Хз) = fi | /3; /б = х2 Л ((xi V х2) | (х2 | Хз)) = х2 Л fa. Х1 х2 Хз xi xi fl f2 fs A h 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 Двоичная форма F = 11000100. Наборы = (000,001,101), где f(xi, х2, хз) = 1. СДНФ функции f(xi,x2, Хз) = (хГ Л xi Л xi) V (xf Л xi Л х3) V (xi Л xi Л х3). Наборы^ = (010,011,100,110,111), гдеftxj,х2,х3) = 0. СКНФ функции /(Xi, Х2,Х3) = (X1VX2VX3)A(X1VX2VX3)A(X1VX2VX3)A(X1 VX2VX3)A(XiVX2VX3). б) Построим многочлен Жегалкина первым способом: выписываем СДНФ функции (xf txif xi) V (xi Л xi Л х3) V (xi /xi/ хз); заменяем знак дизъюнкции на знак суммы Жегалкина ф (xf Л xi Л xi) ф (хГ Л xi Л хз) ф (xi Л xi Л х3), вынесем из первой и второй конъюнкции (xf Л xi): (хГ Л xi) Л (xi ф х3) ф (х? Л xi Л х3) = (xf Л xi) Ф (xi Л xi Л хз); проделаем замены: xf = xi ф 1; xi = х2 ф 1, получаем: ((xi Ф 1) Л (х2 ф 1)) ф ((xi Л (х2 Ф 1) Л хз). Далее раскроем скобки: х1Лх2фх2фх1ф1фх1Лх2ЛхзФх1Лхз = Х1Лх2ЛхзФх1Лх2фХ1ЛхзФх1фх2ф1. 2*
36 Часть 1. Элементы математической логики Итак, мы получили многочлен Жегалкина: /(%!, хг, %з) = xi А х2 А х3 ф xi A х2 ® xi А х3 ф xi Ф х2 ф 1. Построим многочлен Жегалкина методом неопределенных коэффициентов, для этого составим следующие восемь уравнений: ДО,0, 0) = ао = 1; = 1; ДО, 0,1) = а0 ф аА = 1; 1 ф а3 = 1; аз = 0; ДО, 1,О) = воФа2 = 0; 1 Фа2 = 0; а2 = 1; ДО, 1,1) = ао Ф а2 Ф аз © а2з = 0; 1 ф 1 ® 0 а> а2з = 0; а2з = 0; Д1,0, 0) = ао Ф ai = 0; 1 ф = 0; а] = 1; Д1, 0,1) ао © ai Ф а3 ф ai3 = 1; 1ф1ф0фа1з=1; а13 = 1; Д1,1, О) = ао © ai G а2 © aj2 = 0; 1 ф 1 Ф 1 Ф aj2 — 0; ai2 — 1; Д1,1,1) = ао Ф ai © а2 ф аз ф ai2 Ф а 13 Ф а2з ® «123 = 0; 1®1®1ф0ф1 ®1®0фаг2з = 0; а123 = 1. Составим многочлен Жегалкина: ДХ] , х2, х3) = Х1 Л х2 Л Хз Ф Х1 Л х2 ф Х1 Л хз ф Х1 ф х2 ф 1. Задача 13. Проверьте на линейность функцию Дх1,х2,хз), если ее двоичный набор F= 11100001. Решение. Применяем к функции Дх1, х2, хз) алгоритм проверки на линейность. 1. Вычисляем коэффициенты ao, ai, а2, аз) многочлена Жегалкина для дан- ной функции: а0 = ДО, 0,0) = 1; аг = ДО, 0,0) Э Д1,0,0) = 1 ф 0 = 1; а2 = ДО, 0,0) ф ДО, 1,0) = 1 ф 1 = 0 а3 = ДО, 0,0) ф ДО, 0,1) = 1 ф 1 = 0. 2. Вычисляем многочлен Ф(хь хг, х3) = ао Ф ajX] ф а2х2 ф а3х3 = п ф 1. Очевидно, что двоичный набор F = 11110000 многочлена Ф(Х1, х2,хз) = xi ф 1 не совпадает с двоичным набором булевой функции, следовательно, функция Дх1, хг, хз) не линейна. Задача 14. Докажите, что булева функция Дх],х2,хз), заданная таблицей ис- тинности линейна. ______ Х1 хг Хз Дх1,х2,х3) хг Ф х3 ф 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1
Второе практическое занятие по теме «Булевы функции. Многочлены Жегалкина» 37 Решение. Снова применим алгоритм определения линейности булевой функции. 1. Вычисляем коэффициенты ао, ai, иг, аз многочлена Жегалкина функции /(х,, х2, х3): а0 = /(0,0,0)= 1; ai = /(0, 0, 0) ф /(1, 0,0) = 1 ф L = 0; а2 = /(0, 0, 0) Ф /(0,1,0) = 1 ф 0 = 1; а3 = /(0,0,0) ф /(0,0,1) = 1 ф 0 = 1. 2. Таким образом, Ф(Х1, х2, х3) = х2 Ф х3 ф 1. 3. Достроим в таблице истинности последний столбик для Ф(Х1, х2, х3), на- помним, что 0ф0 = 0;1ф0 = 1; 1 ф 1 = 0. 4. Столбики для Ф(Х1, х2, x3)h/(xi, х2, х3)совпали. Следовательно, функция /(xi, х2, х3) — линейная. Задача 15. Задана булева функция трех переменных /(хь х2, х3) = xiЛ ((xi V х3) | (xi | xi)} . С помощью эквивалентных преобразований приведите функцию к ДНФ, КНФ, СДНФ, СКНФ. Решение. Заменяем, х2|х3 = х2Лх3 = х2Лх3, (Xi V Х3) | (Xi Л Xi) = (X! V х3) Л (xi Л xi) = (xi V х3) V (xi Л xi) = = (хГ Л xi) V (xi V xi) = (xi Л xi) V (х2 V х3). f(xi, Х2, х3) = Xi Л ((xi Л xi) V (х2 V х3)), тогда ДНФ f(xi, х2, х3) = (xi Л xi Л xi) V (х2 Л xi) V (xi Л х3), КНФ /(xi, х2, х3) = xi Л (х/ V х2 V х3) Л (xi V х3 V х2). Строим СДНФ, для этого из ДНФ удаляем вторую конъюнкцию х2 Л xi, а в третью конъюнкцию добавляем xj V xi, тогда: (xi Л xi Л xi) V (xi Л Хз) V (xi V xi) = (xi Л xi Л xi) V (xi Л x3 Л хг) V (xi Л x3 Л xi), т. e. получили СДНФ функции /(xi, x2, x3) = (xi A xi A xi) V (xi Л x3 Л xi) V (xi Л x3 Л xi). Строим СКНФ, для этого из КНФ удаляем третью дизъюнкцию, а к первой до- бавляем Xi Л xi: (xi V (xi Л xi)) Л (xi V х2 V х3) = (xi V xi) Л (xi V xi) Л (xi V x2 V x3), добавляем к первой и второй дизъюнкциям х3 Л xi ((Xi V X!) V (х3 Л xi)) Л ((xi V хГ) V (х3 Л xi) Л (xi V х2 V х3)) = = (xi V Xi V х3) Л (xi V xi V xi) Л (xi V xi V х3) Л (xi V х? V xi) Л (хГ V х2 V х3). Получили СКНФ функции /(xi, х2, х3) = (xiVxi Vx3)A(xiVxiVxi)A(xiVxIVx3)A(xiVxf Vxi)A(xTVx2Vx3). СДНФ и СКНФ проверить в задаче. 12.
38 Часть 1. Элементы математической логики Контрольные вопросы 1. Что называется высказыванием? 2. Приведите пример высказываний. Какое высказывание называется ис- тинным, а какое ложным? 3. Что называется составным высказыванием? 4. Перечислите виды логических операций над высказываниями и сформу- лируйте их определение. 5. Какие основные символы используются в теории высказываний? 6. Какие связки простейшие? Назовите другие связки. 7. Что такое таблица истинности высказывания и как она строится? Как еще называется эта таблица? 8. Какие существуют логические отношения между высказываниями? 9. Перечислите варианты импликации. 10. Сформулируйте основные законы алгебры высказываний. Как их дока- зать? 11. Что такое булева функция? 12. Как строится таблица истинности для булевых функций? 13. Что такое ДНФ и КНФ? 14. Дайте определение совершенного одночлена. 15. Приведите правило преобразования формул в СДНФ и СКНФ. 16. Как булевы функции связаны с формулами алгебры высказываний? 17. Дайте определение многочлена Жегалкина и сформулируйте теорему Жегалкина. 18. Сформулируйте первый алгоритм построения многочлена Жегалкина булевой функции. 19. В чем состоит метод неопределенных коэффициентов для построения многочлена Жегалкина? 20. Какой многочлен Жегалкина называется нелинейным? 21. Каков алгоритм определения линейности (нелинейности) булевой функ- ции?
Часть 2 Множества и отображения Лекции 5-7 1. Понятие множества Любое понятие дискретной математики можно определить с помо- щью понятия множества. Под множеством понимают объединение в од- но общее объектов, хорошо различаемых нашей интуицией или нашей мыслью. Таково интуитивное определение понятия множества, данное основателем теории множеств Георгом Кантором. Это понятие в матема- тике является первичным и, следовательно, не имеет строгого определе- ния. Объекты, составляющие множество, будем называть его элемента- ми. Множества будем обозначать прописными буквами латинского алфа- вита: А, В, С,... , а элементы множеств — строчными буквами а,Ь,с,.... Основное отношение между элементом а и содержащим его множеством А, обозначается так: а е А (а принадлежит А). Если а не является эле- ментом множества А, то пишут а А (а не принадлежит А). Некоторые множества имеют общепринятые обозначения: N — множество натураль- ных чисел; R — множество действительных чисел; Z — множество целых чисел. 2. Способы задания множеств Имеется два существенно различных способа задания множеств. Можно либо указать правило для определения того, принадлежит или не принадлежит рассматриваемому множеству любой данный объект, либо дать полный перечень элементов этого множества. Первый способ мы назовем описанием множества, а второй способ — перечислением множества. Например, обозначение {х G U : а(х)} чита- ется: «элементы множества U, обладающие свойством а» — это описание
40 * Часть 2. Множества и отображения множества. Элементы перечисляемого множества принято заключать в скобки :{1,2,3,...} — множество натуральных чисел; { 2,4,6,... } — мно- жество четных чисел. Под многоточием в первом случае подразумеваются все последующие натуральные числа, а во втором — четные. Нас часто будут интересовать множества логических возможностей, потому что анализ таких множеств часто играет основную роль при реше- нии той или иной проблемы. 3. Подмножества Множество, состоящее из некоторых элементов другого множества, называется подмножеством этого последнего множества. С целью изуче- ния всех подмножеств данного множества введем следующую терминоло- гию. Исходное множество будем называть универсальным множеством; подмножества, содержащие один элемент, будем называть единичными множествами; множество, вовсе не содержащее никаких элементов, бу- дем называть пустым множеством и обозначать 0. В качестве примера возьмем универсальное множество U, состоящее из трех элементов {а,Ь,с}. Собственные подмножества U — это множе- ства, которые содержат некоторые, но не все элементы U. Этими подмно- жествами являются три множества из двух элементов {а, 6}, {а, с}, {Ь, <?} и три единичных множества {а}, {Ь}, {с}. Будем считать подмножеством множества U и пустое множество 0, не содержащее элементов U. Другими словами, множество А называется подмножеством множе- ства В (обозначаем А С В), если все элементы множества А принадле- жат В. Это означает справедливость следующего утверждения: для любо- го элемента а, если a G А, то а Е В при условии А С В. Будем говорить также, что множество А содержится в В или имеется включение множе- ства А в В. Множества А и В называются равными или совпадающими (обозначается А = В), если они состоят из одних и тех же элементов, т. е. если А С В и В С А. Таким образом, чтобы доказать равенство множеств, требуется установить два включения. 4. Операции над множествами В первой части были рассмотрены способы, которыми из данных вы- сказываний могут быть образованы новые высказывания. Теперь мы бу- дем рассматривать аналогичный процесс — образование новых множеств
4. Операции над множествами 41 из данных множеств. Мы будем предполагать, что каждое из множеств, которое мы используем в этом процессе, является подмножеством неко- торого универсального множества, и будем требовать, чтобы вновь обра- зованное множество было подмножеством того же самого универсального множества. Как и всегда, мы можем задавать вновь образованное множе- ство или путем описания, или путем перечисления. Следует провести аналогию между логическими операциями и опера- циями над множествами. отрицание дополнение конъюнкция пересечение дизъюнкция объединение импликация разность Чтобы нагляднее представить эти операции, изобразим их на диа- грамме, называемой диаграммой Эйлера-Венна. Пусть прямоугольник обозначает универсальное множество, а круги внутри прямоугольника — подмножества. Дополнением к множеству А называется множество элементов, кото- рые не содержатся в А. Обозначают его Аи читают «дополнение множества А к 17» (см. рис. 2.1). Пересечением множеств А и В называется множество элементов, при- надлежащих и А и В. Обозначают АП В и читают «пересечение А и В» (см. рис. 2.2). Если А и В — непустые множества, пересечение которых пусто, т. е. А П В = 0, то их называют непересекающимися множествами. Объединением множеств А и В называется множество элементов, при- надлежащих либо А, либо В (либо обоим). Обозначают A U В и читают «объединение А и В» (см. рис. 2.3). Разностью множеств А и В называется множество элементов, принад- лежащих А и не принадлежащих В. Обозначают А В и читают «разность А и В» (см. рис. 2.4).
42 Часть 2. Множества и отображения Рис. 2.3 Рис. 2.4 5. Соотношение между множествами и составными высказываниями Существует тесная связь между множествами — с одной стороны, и высказываниями — с другой, а также между операциями над множества- ми, с одной стороны, и операциями образования составных высказыва- ний — с другой. Если рассматривается несколько высказываний, то сопоставить каж- дому из этих высказываний некоторое множество можно вполне логич- ным путем. Сначала мы образуем множество всех логических возможно- стей для рассматриваемых высказываний и назовем его универсальным множеством. Затем каждому высказыванию мы поставим в соответствие подмножество тех логических возможностей универсального множества, для которых это высказывание истинно. Определение. ПустьХ, У, Z,... означают некоторые высказывания, и пусть U — их множество логических возможностей. Пусть А,В,С,... означа- ют подмножества U, для которых истинны соответственно высказывания X, У, Z,.... Тогда А, В, С,... называются соответственно множествами ис- тинности высказываний X, У,Z,.... Если X и У — высказывания, то XV У иХ Л У также высказывания, и, следовательно, они должны иметь множества истинности. Чтобы найти множество истинности высказывания X V У, заметим, что это высказывание истинно, когда истинно X или истинно У (или оба). Таким образом, высказыванию XV У мы должны поставить в соответствие те логические возможности, которые лежат в А или в В (или в них обоих); иначе говоря, мы должны поставить в соответствие X V У множество AUВ. С другой стороны, высказывание X Л У истинно, только когда истинно и
6. Соотношения между высказываниями и множествами истинности 43 X и У, так что высказыванию X Л У мы должны поставить в соответствие множество А П В. Итак, существует тесная связь между логической операцией дизъ- юнкцией и операцией объединения множеств, а также между конъюнк- цией и пересечением. А также между логической операцией отрицания и операцией дополнения множества, т. е. множеством истинности для X будет А. Множество истинности двух высказываний X и У показаны на диа- грамме Эйлера-Венна. Здесь отмечены различные логические возможно- сти этих двух высказываний (см. рис. 2.5). Связь между высказыванием и его множеством истинности создает возможность «перевода» любой задачи, относящейся к составным выска- зываниям, в задачу теории множеств. Возможно также и обратное: если поставлена какая-то задача, каса- ющаяся множеств, то универсальное множество можно себе представить как некоторое множество логических возможностей, подмножества ко- торого являются множествами истинности некоторых высказываний. Следовательно, задачу, относящуюся к множествам, можно также «перевести» на язык составных высказываний. 6. Соотношения между высказываниями и соответствующими им множествами истинности Мы рассмотрели такие множества истинности составных высказы- ваний, которые образованы посредством связок V, Л, . Все остальные связки можно определить через эти три основные и тем самым вывести, какие множества истинности им соответствуют. Например, известно, что
44 Часть 2. Множества и отображения импликация X —> У эквивалентна дизъюнкции X V У. Поэтому множе- ство истинности для X —> У будет тем же, что и множество истинности для X V У, т. е. оно будет иметь вид A U В. На диаграмме Эйлера-Венна выделенная область показывает множе- ство истинности этого высказывания (см. рис. 2.6). Отметим, что незаштрихованная область на этой диаграмме показы- вает множество А В = А П В, представляющее собой множество истинно- сти высказывания X Л У. Поэтому заштрихованная область будет множе- ством А В = А Г) В, которое является множеством истинности высказы- вания X Л У. Таким образом, мы установили, что высказывания X —> У, XV У, X Л У эквивалентны. Вообще, два высказывания эквивалентны то- гда и только тогда, когда они имеют одни и те же множества истинности. Заметим, что диаграммы Эйлера-Венна помогают обнаруживать от- ношения между высказываниями. Предположим теперь, что X — логически истинное высказывание. Что представляет собой его множество истинности? Поскольку высказы- вание X логически истинно тогда и только тогда, когда оно истинно в каждом логически возможном случае, множеством истинности для вы- сказывания X должно быть универсальное множество U. Подобным же образом, если высказывание X логически ложно, то оно ложно в каждом логически возможном случае, и поэтому его множеством истинности будет пустое множество 0. Рассмотрим отношение следствия. Напомним, что из X следует У то- гда и только тогда, когда импликация X —> У логически истинна. Но высказывание X —> У тогда и только тогда логически истинно, когда его множество истинности совпадает с U, т. е. (А В) = U и А В = 0. Но если А В пусто, то В включает в себя А. Отношение включения обозначает- ся, как мы отмечали, А С В и читается «А является подмножеством В». Таким образом, высказывание X —> У логически истинно тогда и только тогда, когда А С В.
7. Выводы 45 7. Выводы Каждому высказыванию соответствует его множество истинности, каждой логической связке соответствует операция над множеством. Каж- дому отношению между высказываниями соответствует отношение ме- жду множествами истинности. Множествами истинности высказываний XV Y; ХЛУ; X и XУ служат соответственно: AUB; АП В; А и АВ. Высказывание X логически истинно, если А = 17, и логически ложно, если А = 0. Высказывание X и У эквивалентны тогда и только тогда, когда А = В; из X следует У тогда и только тогда, когда А С В. 8. Абстрактные законы операций над множествами Введенные операции над множествами подчинены некоторым очень простым абстрактным законам, которые будут перечислены в этом раз- деле. Эти законы очень напоминают элементарные законы алгебры выска- зываний. По этой причине множество, его подмножества и законы сочетания подмножеств образуют алгебраическую систему, называемую булевой ал- геброй. Система составных высказываний, подчиняющаяся таким зако- нам, тоже называется булевой алгеброй. Таким образом, любую из этих систем можно изучать или с алгебраической, или с логической точки зре- ния. Ниже перечислены основные законы, действующие в булевых алгеб- рах. Законы для объединения и пересечения: 1.АиА=А 7. А П (В U С) = (А П В) U (А П С) 2.АпА=А 8. A U (В П С) = (A U В) П (A U С) З.АиВ = ВиА 9.AUU = U 4. АпВ = ВпА 10. АП 0 = 0 5.AU(BUC) = (AUB)UC 11.АпС7=А 6. А П (В П С) - (А П В) П С 12. AU 0 = А
46 Часть 2. Множества и отображения Законы для дополнений: 1.А=А 4.(АиВ)=АпВ 2.AUA = U 5.(AnB)=AUB З.АпА = 0 6.U=0 Законы для разностей множеств: 1.АВ =АпВ 6. АА = 0 2. UA =А 7. ((АВ)С) =A(BUC) 3.AU= 0 8. А (В С) = (А В) U (А О С) 4.А=А 9. A U (В С) = (A U В) (С А) 5. 0 А = 0 1О.АП(ВС) = (АПВ)(АПС) Доказательство каждого из перечисленных законов основано на опре- делении равенства множеств и определений операций над множествами. Напомним, что множество А равно множеству В, если они состоят из од- них и тех же элементов или оба пусты. Докажем один из законов для дополнений: A U В = А П В. Пусть х G A U В. По определению операции дополнения это означает, что* 0 A U В, нох G U. Следовательно, х $ А и одновременно х 0 В. Таким образом, х G А и х G В. Из определения операции пересечения получаем, что х G А П В. Поэтому, учитывая произвольность элемента х G A U В, имеем A U В С А П В. Пусть теперь х G А П В. Это значит, что х G А и х G В. Таким образом, X А и х 0 В. Поэтому х £ A U В. Следовательно, х G U (A U В) = (A U В). Поскольку х — произвольный элемент из АпВ, то окончательно получаем А П В С A U В. Приходим к выводу, что А П В = A U В. Третье практическое занятие по теме «Операции над множествами» Задача 1. Для каких из следующих пар множеств имеет место одно из соотноше- ний: Ас В; В С А; А = В: 1) А = {а, Ь, с, d}; В = {а, с, d}, 2) А = 0; В = 0, 3) А = 0; В = {а, Ь, с}; В = {Ь, с, а}? Задача 2. Даны множества А = {0,1,2,3,4, 5,6, 7}; В = {3,4, 5,6, 7,8,9}; С = {—3, —2, —1,0,1,2,3,4}; D = {2,3,4, 5,6}. Задайте списками множества: 1)AUBUCUD; 2)АпВпСЛЛ; 3) (А П В) U (С П В); 4)(АиВ)П(СиВ); 5) (А В) U (В А).
Третье практическое занятие по теме «Операции над множествами» 47 Задача 3. Изобразите с помощью диаграмм Эйлера-Венна множества: 1)АсВиВсС; 2)АсВ;ВсСиАВ = 0; 3) А с В; В с С и С = A U В; 4)АсВ;ВсСиАпВ^0; 5) (А В) U (В А). Решение. Изобразим с помощью диаграммы Эйлера—Венна множество (AB)U(BA) (см. рис. 2.7). Это множество является объединением двух разностей, называется симме- трической разностью и обозначается А ф В, т. е. (А В) U (В А) = А ® В. Задача 4. Опрос 100 студентов дал следующие результаты о количестве студен- тов, изучающих различные иностранные языки: испанский — 28; немецкий — 30; французский — 42; испанский и немецкий — 8; испанский и французский — 10; немецкий и французский — 5; все три языка — 3. а) Сколько студентов не изучает ни одного языка? б) Сколько студентов изучает один французский язык? в) Сколько студентов изучает немецкий язык в том и только в том случае, если они изучают французский язык? Решение. Нарисовать диаграмму Эйлера-Венна в виде трех кругов, обозначаю- щих множество студентов, изучающих соответственно французский, немецкий и испанский языки. В каждую из восьми областей вписать данные, используя приведенные цифры. Начинать с конца списка и двигаться к началу. Ответ: а) 20; б) 30; в) 38. Задача 5. Следующий опрос 100 студентов (см. задачу 4) выявил следующие данные о числе студентов, изучающих различные иностранные языки: только немецкий — 18; немецкий, но не испанский — 23; немецкий и французский — 8; немецкий — 26; французский — 48; французский и испанский — 8; никакого языка — 24. а) Сколько студентов изучают испанский язык? б) Сколько студентов изучают немецкий и испанский языки? в) Сколько студентов изучают французский язык, в том и только в том слу- чае, если они не изучают испанский? Ответ: а) 18; б) ни одного; в) 50.
48 Часть 2. Множества и отображения Задача 6. В отчете об опросе 100 студентов (см. задачу 4) сообщалось, что ко- личество студентов, изучающих различные языки, таково: все три языка — 5; немецкий и испанский — 10; французский и испанский — 8; немецкий и фран- цузский - 20; испанский — 30; немецкий — 23; французский — 50. Инспектор, представивший этот отчет, был уволен. Почему? Задача 7. Докажите, пользуясь диаграммой Эйлера-Венна, что высказывание X V (X V У) — логически истинно. Решение. Этому высказыванию соответствует множество?! U (A U В), отвечающая ему диаграмма изображена на рис. 2.8. Множество ?! заштриховано вертикальными линиями, а множество A U В — горизонтальными. Вся заштрихованная область является их объединением и совпадает с множеством U, так что наше составное высказывание логически истинно. Задача 8. Воспользовавшись диаграммой Эйлера-Венна, определите, какие из следующих высказываний логически истинны: a)XvX; б)ХЛХ; b)XV(XAY); г)Хч(У->Х); д)ХЛ(У-> X"). Ответ: (а) и (г) — логически истинны, (б), (д) — логически ложны. Задача 9. Докажите, пользуясь диаграммой Эйлера-Венна, что X V (У Л Z) экви- валентно (X V У) Л (X V Z). Решение. Множество истинности высказывания X V (У Л Z) совпадает со всей заштрихованной областью на диаграмме слева, а множество истинности выска- зывания (X V У) Л (X V Z) совпадает с дважды заштрихованной областью на диаграмме справа (см. рис. 2.9). Так как эти множества совпадают, то наши два высказывания эквива- лентны. Задача 10. Покажите, пользуясь диаграммой Эйлера-Венна, что из У следует X -> У. Решение. Множество истинности высказывания X —> У совпадает с заштрихо- ванной областью на диаграмме (см. рис. 2.10). Так как эта заштрихованная область включает в себя множество В, то мы видим, что из У следует X —> У.
Третье практическое занятие по теме «Операции над множествами» * 49 Задача 11. Найдите множества истинности каждого высказывания и, восполь- зовавшись диаграммой Эйлера—Венна, определите, какие из выписанных ниже пар высказываний состоят из высказываний, одно из которых является след- ствием другого: а)Х;ХЛУ; б)Х /Y;X -tY в)Х -> У; У -> X; г)ХЛУ;ХЛУ. Задача 12. Три или более высказывания называются несовместимыми, если они не могут быть истинными все сразу. Что можно сказать о множествах истинности таких высказываний? Задача 13. Для следующих трех составных высказываний: а) введите буквенные обозначения для компонент; б) дайте символическое выражение; в) найдите множества истинности; г) проверьте их совместимость. Если этот курс интересен, то я буду упорно над ним работать. Если этот курс не интересен, то я получу по нему плохую отметку. Я не буду упорно работать, но получу по этому курсу хорошую отметку. Ответ: Несовместимы.
50 * Часть 2. Множества и отображения Задача 14. Каждому множеству поставьте в соответствие высказывание, имею- щее это множество своим множеством истинности, и, воспользовавшись табли- цами истинности, определите, какие из следующих множеств пусты: a) (AU В) П (A U В); 6)(AAB)U(BUC); в)(АПВ)А; г) (A U С) A (AU В). Ответ: (б) и (в). Задача 15. Каждому множеству поставьте в соответствие высказывание, имею- щее это множество своим множеством истинности, и, воспользовавшись табли- цами истинности, определите, являются ли попарно различными следующие множества: а) А А (Ви С); б) (С В) U (BJJ С); в) (С U В)£1 (СиГВ); г) (А А В) U (А А С); д) (А П В П С) U (А П В П С) U (А А В П С) U (А П В П С). Задача 16. Каждому множеству поставьте в соответствие высказывание, име- ющее это множество своим множеством истинности, и, воспользовавшись таб- лицами истинности, определите, в каких из следующих пар множеств одно из множеств является подмножеством другого: а)А;АпВ; б)ААВ;ВАА; в)АВ;ВА; г)АпВ;АиВ. Задача 17. Докажите, как с помощью таблиц истинности, так и с помощью диа- граммы Эйлера-Венна, что высказывание X Л (У V Z) эквивалентно высказыва- нию (X Л У) V (X Л Z). Задача 18. Проверьте все законы операций над множествами для объединения и пересечения с помощью диаграмм Эйлера—Венна. Переведите эти законы в зако- ны для составных высказываний. Проверьте их с помощью таблиц истинности. Задача 19. Проверьте все законы операций над множествами для дополнений и для разностей с помощью диаграмм Эйлера-Венна, переведите их в законы для составных высказываний и проверьте их с помощью таблиц истинности. Задача 20. Из законов булевой алгебры над множествами получите следующие результаты: а)А = (AaB)U(AaB); 6)AUB = (AAB)U(AAB)U(AAB); в)Ап(АпВ)=А; г)Аи(АПВ)=АиВ. 9. Кортежи и декартово произведение множеств Определение. Пусть даны множества Xt,X2, ...,Хп. Кортежем длины п, составленным из элементов этих множеств, называется конечная последо- вательность а = (xi, хг, ...,хп), где для всех k, 1 k < п, имеем хь £ Xk.
10. Бинарные отношения 51 Элемент называется /?-й координатой или /?-й компонентой корте- жа а. Два кортежа равны в том и только в том случае, когда они имеют одинаковую длину, причем их координаты, стоящие на местах с одина- ковыми номерами, равны, т. е. кортежи а = (xi, ...,хт) и Р = (i/i, ...,уп} равны только в том случае, когда т = п, причем хь = уь для всех 1 k п. Кортежи длины два называют упорядоченными парами, длины три — упорядоченными тройками, ..., длины п — упорядоченными n-ками. Для краткости речи слово «упорядоченные» часто опускают. Кортеж, не содержащий ни одной координаты, т. е. кортеж длины О, называется пустым. Основные отличия понятий кортежа и множества следующие: а) в множестве порядок элементов не играет роли, а кортежи, отлича- ющиеся порядком элементов, различны, даже в случае, когда они имеют одинаковый состав; б) в множестве все элементы различны, а в кортеже координаты могут повторяться. В дальнейшем, чтобы различать множества и кортежи, будем элемен- ты множества заключать в фигурные скобки, а координаты кортежа — в угловые. ПустьAi,А%, ...,Ап — некоторые множества. Их декартовым произве- дением называют множество, состоящее из кортежей вида az, ...,ап), где ai е Ац а2 Е А2', ап 6 Ап. Декартово произведение обозначается так:А1 хЛ.2 х ... хАп. Произведение АхАх ... хА и раз сокращенно обозначается как Ап и называется декартовой n-й степенью множества А. 10. Бинарные отношения Пусть А и В два конечных множества. Декартовым произведением множеств А и В называют множество А х В, состоящее из всех упорядо- ченных пар {а, Ь), где а е A, b 6 В. Бинарным отношением между элементами множеств А и В называет- ся любое подмножество R множества А х В, т. е. R С А х В.
52 Часть 2. Множества и отображения По определению, бинарным отношением называется множество пар. Если R — бинарное отношение (т. е. множество пар), то говорят, что пара- метры х и у связаны бинарным отношением R, если пара (х, у) является элементом R, т. е. (х, у) G R. Высказывание: «предметы х и у связаны бинарным отношением R» записывают в виде хRy. Таким образом, xRy о (х, у) Е R. Если R с А х А, то говорят, что бинарное отношение определено на множестве А. Областью определения бинарного отношения R называется множе- ство, состоящее из таких х, для которых (х, у) Е R хотя бы для одного у. Область определения бинарного отношения будем обозначать 8д. Областью значений бинарного отношения R называется множество всех у, для которых (х, у) Е R хотя бы для одного х. Область значений бинарного отношения будем обозначать рд. Рассмотрим специальные бинарные отношения: а) Бинарное отношение R на непустом множестве А называется ре- флексивным, если (х, х) Е R для всех х G А, и иррефлексивным, если (х, х) R для всех х Е А. б) Бинарное отношение R на непустом множестве А называется сим- метричным, если (х,у) G R => (у, х) Е R, и антисимметричным, если (х, у) Е 7? и (у, х) Е R=> х = у. в) Бинарное отношение R на непустом множестве А называется тран- зитивным, если (х, у) Е R и (у, г) G R —(х, z] е R. Рефлексивное, транзитивное и симметричное бинарное отношение R на множестве А называется эквивалентностью на А. 11. Отображение множеств Соответствие f, сопоставляющее каждому элементу х множеств X один и только один элемент множества У, называется отображением мно- жества X во множество У. Элемент множества У, соответствующий при отображении f элементу х из X, обозначают /(х) и называют образом элемента х при этом отобра- жении. Если /(х) = у, то элемент х называют прообразом элемента у при отображении f. Совокупность всех прообразов элемента у при отображении f назы- вается полным прообразом этого элемента и обозначается f 1(у), т. е. = {х : f(x) = у}.
12. Функции 53 Правая часть читается: «совокупность таких х, что f(x) = у». Каждому подмножеству А множества X (А С X) соответствует его образ f(A) при отображении f. Этот образ состоит из всех элементов мно- жества Y, которые являются образами какого-нибудь элемента из А: f(A) = {у = У = а 6 А}. Каждому подмножеству В множества Y (В С Y) соответствует его полный прообраз f~l(B) при отображении f. Он состоит из всех элементов, образы которых принадлежат В: f г(В) = {х : f(x) е В}. Множество А называется областью определения отображения f, а мно- жество ДА) называется множеством значений этого отображения. Частный случай отображения множества X в множество Y имеет ме- сто, если каждый элемент множества Y имеет прообраз. В этом случае отображение f называется сюръективным. Если для каждого элемента у 6 У существует не более одного прообра- за, т. е. f(x) f(xz) для любых xi, х% 6 X, если xi 7^X2, то отображение f называется инъективным. Если отображение f сюръективно и инъективно, то оно называется биективным (взаимно-однозначным). С точки зрения отображений два множества называются количест- венно-эквивалентными, если между ними можно установить биективное отображение. Если между элементами множеств А и В существует биективное отоб- ражение, то множества А и В называются равномощными. Для конечных множеств А и В понятие равномощности означает, что они имеют одно и то же число элементов. Таким образом, если А — ко- нечное множество, содержащее п элементов, то мощностью множества А называется число п и обозначается |А|, т. е. |А| = п. Очевидно, что отношение равномощности является отношением экви- валентности, поэтому равномощные множества часто называют эквива- лентными. 12. Функции В основе всех разделов дискретной математики лежит понятие функ- ции. Функцией называется бинарное отношение f, если из (х, у) Е f и (х, z) G f следует, что у = г. Две функции fag равны, если они состоят из одних и тех же элемен- тов. Область определения функции и область ее значений задается так
54 Часть 2. Множества и отображения же, как и для бинарных отношений. Если область определения 8; = X и область значений ру С У, то говорят, что функция f задана на множестве X со значениями во множестве У, при этом f отображает множество X во множество У. Это отображение обозначается как f : X —> У. Если f — функция, то вместо (х, у) 6 f пишут у = f(x) и говорят, что у — значение, соответствующее аргументу х, или у — образ элемента х при отображении f. При этом х называют прообразом элемента у. Назовем f — n-местной функцией из X в У, если f : Хп —> У. Тогда записываем у = f(x, ...,Хъ) и говорим, что у — значение функции при значении аргументов х^, ...,хп. Пусть f : X —> У. Функция f называется инъективной, если для любых Xi, х2, у из у = f(x1)ny = f(x2) следует, что Лц = х2. Функция f называется сюръективной, если для любого элемента у 6 У существует элемент х Е X такой, что у = f(x). Функция f называется биективной, если f одновременно сюръективна и инъективна. Если существует биективная функция f : X У, то говорят, что f осуществляет взаимно-однозначное соответствие между множествами X и У. Если f : X —> У, a g : У —> Z, то функция F : X Z, определенная для каждого х Е X формулой F(x) = g(f(x)), называется композицией (суперпозицией) функции f mg, или сложной функцией. Пусть задана функция f : X —> У и ру — множество ее значений. Сово- купность всевозможных упорядоченных пар вида {у, f 1(у)), у Е ру обра- зует функцию, которая называется обратной функцией для функции f и обозначается f~l. Обратная функция 1 ставит в соответствие каждому элементу у Е Ру его прообраз f~y), т. е. некоторое множество элементов. Заметим, что для того, чтобы f-1 являлась функцией, достаточно, чтобы функция f была инъективной. Четвертое практическое занятие по теме «Отношения. Отображения. Функции» Задача 1. Из множеств {а, Ь,с] и {1, 2} составьте кортежи. Решение. Из данных множеств можно составить 6 кортежей длины 2. (а, 1); (а, 2); (&, 1); (&, 2); (с, 1);(с,2). Задача 2. Сравните кортежи: а) (I2,22,З2) и ^ч/1, л/16, л/81^; б) (1,2,3) и (3,1, 2); в) (1,2,3) и (1,2,3,4).
Четвертое практическое занятие по теме «Отношения. Отображения. Функции» • 55 Решение, а) Кортежи (I2, 22,З2) и /Тб, л/8Т^ равны, поскольку I2 = /Т; 22 = л/16; З2 = д/81; б) кортежи (1,2, 3) и (3,1, 2) различны. Хотя имеют одинаковую длину и одно и то же множество координат, но эти координаты располагаются в разном порядке; в) кортежи (1, 2,3) и (1, 2,3,4) различны, так как имеют разную длину. Задача 3. Равны ли следующие кортежи: 1) (а, {а, Ь, с}, Ъ, с) и (а, {а, Ъ, с}, {&, с}); 2) (а, {а, Ь, с}, Ъ, с) и (а, {а, Ъ, с}, Ъ, с); 3) (а, {а, Ь, с}, Ь, с} и (а, {а, Ъ, с}, с, Ь); 4) (а, {а, Ъ, с}, Ъ, с) и (а, {а, Ъ, с}, а, Ъ, с)? Задача 4. Пусть А = {1,2,3}, В = {х, у}. Выписать все элементы декартова произведения А х В и В х А. Решение. АхВ= {(1, х); (2, х); (3, х); (1, у); (2, у}; (3, ^}, В х А = {(х, 1); (х, 2); (х, 3); (у, 1); (у, 2); (у, 3)}. Задача 5. Пустьм! = {1,2}. Выписать все элементы декартова произведениям! хм!. Решение.А х А = {(1,1); (1, 2); (2,1); (2,2)}. Задача 6. Из цифр 1,2, 3,4, 5 составьте все двузначные числа. Как связано полу- чившееся множество с декартовым произведением А х А, где Л = {1, 2,3,4, 5}? Задача 7. Рассмотрим два множествам! = {а, b, с, d, е, f,g,h}w.B = {1, 2,3,4, 5, 6,7,8}. Составьте множество пар (х, у) G м! х В. Что это множество представляет? Ответ: множество клеток шахматной доски. Задача 8. Найдите правую и левую область отношения R = {(1, 5); (1,6); (1, 7)}. Решение. ={5,6, 7}; Влев = {1}. Задача 9. Еслим! = {2,3,4, 5,6, 7,8}, запишите бинарное отношение/? = {(х, у}: х,у ЕА, х делит у, и х С 3}. Решение. R = {(2,2); (2,4); (2,6); (2,8); (3,3); (3,6)}. Задача 10. Рассмотрим множество шахматных клеток S = А х В из задачи 7. Определите бинарное отношение R: ход ладьи на множестве S по следующему правилу: (ci,c2) G R тогда и только тогда, когда (ci,c2) G В и ладья может пройти с клетки Ci на клетку с2 одним ходом на пустой доске (напомним, что ладья за один ход может изменить либо горизонтальную координату, либо вертикальную, но не обе координаты одновременно). Решение. R = {(щ, с2): щ = (si, Н); с2 = (s2, ?2); Si, s2 G A; ti, t2 G В и (si = s2 и =f= t2) или (si = s2 и = t2)}.
56 Часть 2. Множества и отображения Задача 11. Каждому алгебраическому уравнению ставится в соответствие его степень. Укажите множество значений для этого отображения. Ответ: Множество N. Задача 12. Пусть X — множество пальто в гардеробе, У — множество крючков. В каком случае отображение множества пальто X в множество крючков У будет инъективным, сюръективным, биективным? Решение. Отображение, при котором каждому пальто сопоставляется крючок, на котором оно висит, является инъективным, если на каждом крючке висит не более одного пальто (некоторые крючки могут быть пустыми). Отображение является сюръективным, если на каждом крючке висит хотя бы одно пальто (на некоторых крючках может быть несколько пальто). Отображение является биективным, если на каждом крючке висит ровно одно пальто. Заметим, что если существует биективное отображение конечного множе- ства А в конечное множество В, то в множествах А и В поровну элементов. Если же существует инъективное отображение конечного множества А в конечное множество В, то можно сказать, что в В не меньше элементов, чем в А. Если же в А больше элементов, чем в В, то не существует инъективного отображения А в В. В случае, когда существует сюръективное отображение А в В, то в А не мень- ше элементов, чем в В. Задача 13. Среди следующих отображений укажите сюръективные отображе- ния: 1) X — множество кругов, У — множество действительных чисел, каждому кругу сопоставляется его площадь; 2) X — множество кругов, У — множество положительных действительных чисел, каждому кругу сопоставляется его площадь; 3)X = {х : — 3^х^5},У = В, f : х —> х2 (R — множество действительных чисел); 4) X = {х : —3 х 5}, Y = {х : О х 25}, f : х -> х2. Ответ: 2) и 4). Задача 14. Является ли отображением соответствие «Столицей государства X является город У» ? Ответ: Да. Задача 15. Являются ли следующие отношения функциями: (1) {(1,2); (2,3); (3, 2)}; (2) {(1, 2); (1,3); (2,3)}; (3) {х, х2 - 2х - 3 : х е В}? Решение. Отношение (1) — функция; отношение (2) — не является функцией; отношение (3) — функция, которая обычно обозначается у = х2 — 2х — 3. Задача 16. Является ли отношение {(1, а); (1, Ь); (2, а)}, определенное на декар- товом произведении множеств А = {1, 2} и В = {а, Ь}, функцией?
Четвертое практическое занятие по теме «Отношения. Отображения. Функции» • 57 Решение. Не является, так как элементу 1 6 А ставятся в соответствие различные элементы a, b Е В. Задача 17. Является ли функция f(x) = х2 инъективной? Решение. Не является, так как существуют такие различные значения Xi и Хг, для которых /(xi) = /(х2). Например, пусть хг = 1 и х2 = —1. Тогда «Х1)=12 = (-1)2=Дх2). Задача 18. Является ли отношение {(сц, bi); (аг, Ьг); (аз, Ьг)}, определенное на декартовом произведении множеств А = {а1,а2,аз}иВ = {&!, б2, &з}, функцией? Если да, то является ли данная функция сюръекцией, инъекцией? Решение. Поскольку каждому элементу множества А соответствует единствен- ный элемент множества В, то можно утверждать, что данное отношение является функцией. Данная функция не является инъекцией, поскольку существуют раз- личные элементы множества А, которым соответствует один и тот же элемент из В. Так, различным элементам а2 и аз соответствует элемент Ь2. Данная функ- ция также не является сюръекцией, поскольку элемент Ьз не входит ни в одну упорядоченную пару. Задача 19. Является ли отношение {(1,4); (2, 3); (3, 2); (4, 1)}, заданное на де- картовом квадрате множества А = {1, 2, 3, 4}, биективным отображением? Решение. Сначала проверим, является ли данное отношение отображением. Так как каждый элемент х из А входит в пары вида (х,у) лишь один раз, можно утверждать, что мы имеем дело с отображением. Это отображение инъектив- но, поскольку для различных первых элементов пар вторые элементы этих пар также различны. Отображение является сюръекцией, так как правая часть от- ношения совпадает с множеством А. Раз отношение является инъективным и сюръектиным, следовательно, оно является биективным. Задача 20. Отношение R на множестве всех книг библиотеки определили следу- ющим образом. Пара книг а и b принадлежат R, если и только если в этих книгах есть ссылка на одни и те же литературные источники. Является ли R а) рефлексивным отношением; б) симметричным отношением; в) транзитивным отношением? Решение. Отношение Rрефлексивно, раз две одинаковые книги содержат ссылки на одни и те же литературные источники. Данное отношение также симметрич- но, так как если в книгах а и b имеется ссылка на какой-либо литературный источник, то в книгах b и а, очевидно, есть ссылки на тот же литературный источник. Свойство транзитивности, вообще говоря, не выполняется, поскольку воз- можны случаи, когда книги а и & содержат ссылки на общие литературные источ- ники, книги b и с также ссылаются на общие литературные источники, а книги а и с не имеют общих ссылок. Отсюда можно сделать вывод, что для данного отношения не выполняются условия эквивалентности.
58 Часть 2. Множества и отображения Задача 21. (Для самостоятельного решения.) Пусть отношение R задано на декартовом произведении множеств К и Р, где К — множество ключевых слов, а Р — множество Web-страниц. Пара (х, у} принадлежит R, если и только если ключевое слово х содержится на странице у. Является или нет R функцией? Объясните почему. Ответ: Нет. Задача 22. (Для самостоятельного решения.) Пусть отношение R задано на декартовом произведении множеств В и Р, где В — множество всех книг в книжном магазине, Р — множество цен. Пара (х, у} принадлежит R, если и только если книга х имеет цену у. Является ли R функ- цией? Если да, то является ли данная функция сюръективной, инъективной? Ответ: Не инъективной, не сюръективной не является. Задача 23. (Для самостоятельного решения.) Пусть отношение R задано на декартовом произведении множеств D и N, где D — множество всех документов, содержащихся в папке «Входящие», а N — множество всех номеров, служащих для регистрации этих документов. Объясните, почему данное отношение является функцией и притом биективной. 2 Задача 24. Какая из указанных функций f : [0,1] —> [0,3] а)х—>3sin^; б)х—>3Х; в)х—>12 инъективна, сюръективна или биективна? Решение, а) Для произвольного у G [0,3] уравнения у = 3sin^ имеем един- ственное решение 2 У х = — arcsin—, принадлежащее [0,1], поэтому функция х —> 3 sin является биективной; б) Если у G [0,3], то уравнение у = 3х имеет не более одного решения х G [0,1]. При у G [1,3] решением является х = log3i/, а при у G [0,1] реше- ний нет. Следовательно, у = 3х — инъективна; в) Из уравнения у 12 (х - , у € [0,3], находим „ _ i 1 [у v _ 1 ,1 /7 1 2 2уЗ’ 2 2 2V3’ причем, если 0 у 3, то оба корня принадлежат ]0,1]; если у = 0, то корни совпадают Xi = Хг = и принадлежат [0,1]. Следовательно, для всех у G [0, 3] £ ( 1 2 уравнение у = 12 ^х — — J на [0,1] имеет хотя бы одно решение. Поэтому рас- сматриваемая функция сюръективна.
Контрольные вопросы 59 Контрольные вопросы 1. Какие основные символы, используемые в теории множеств, вы знаете? 2. Что такое множество? Как его обозначить? Как можно задать множество? Что такое подмножество? 3. Какие основные операции выполняются над множествами? 4. Какое множество можно назвать универсальным? 5. Что такое диаграмма Эйлера-Венна? Проиллюстрируйте с помощью диа- граммы Эйлера-Венна объединение и пересечение трех множеств. 6. Каковы соотношения между множествами и составными высказывани- ями? 7. Сформулируйте и докажите основные тождества алгебры множеств. 8. Что называется кортежем и какие кортежи называются равными? 9. Что такое: декартово произведение множеств; декартова степень некото- рого множества А; бинарное отношение, заданное на множестве А? 10. Назовите основные свойства бинарных отношений. Какое отношение на- зывается рефлексивным, симметричным, антисимметричным, транзитивным? Какое отношение называется отношением эквивалентности? 11. Дайте определение отображения множества А во множество В. Поясните термин «мощность множества». 12. Что такое сюръекция, инъекция, биекция? 13. Дайте определение функции.
Часть 3 Элементы комбинаторного анализа Лекция 8 На практике часто встречаются задачи, где необходимо подсчитать число всех возможных способов размещения некоторых предметов конеч- ного множества или число всех возможных способов выполнения опреде- ленного действия из конечного множества таких действий. Задачи такого типа называются комбинаторными, а методы их решения — методами комбинаторного анализа. Поскольку комбинаторика имеет дело с конеч- ными множествами, то ее часто называют теорией конечных множеств. Таким образом, комбинаторика — это раздел дискретной математи- ки, посвященный решению задач выбора и расположения элементов не- которого конечного множества в соответствии с заданными свойствами. 1. Основные правила комбинаторики Мы уже рассматривали задачу: подсчет числа элементов в декартовом произведении множеств {1,2,3} х {х, у}. Число таких элементов, как мы видели, равно произведению числа элементов первого множества на число элементов второго множества, т. е. в нашем случае это 3-2 = 6. За этой простой задачей стоит правило, которое называется первым основным правилом комбинаторики: правило произведения. Пусть необходимо выполнить последовательно k действий. Если пер- вое действие можно выполнить п способами, второе n% способами и так далее до к — действия, которое можно выполнить способами, то все к действий можно выполнить п п% способами. Другим часто применяемым в комбинаторике правилом является пра- вило суммы. Это правило формулируется следующим образом: если эле- мент х может быть выбран т способами, а элемент у — другими п спосо- бами, то выбор «либо х либо у» может быть осуществлен т + п способами.
2. Перечислительная комбинаторика или теория перечислений 61 2. Перечислительная комбинаторика или теория перечислений Будем рассматривать задачи, связанные с нахождением числа спосо- бов построения кортежей из элементов конечного множества. Простей- шими такими кортежами являются размещения, перестановки, сочета- ния. Эти задачи образуют часть комбинаторики, называемой перечисли- тельной комбинаторикой или теорией перечислений. Пусть А — конечное множество, состоящее из п элементов |А| = п. а) Размещения. Кортежи длины k (1 < к п), состоящие из различ- ных элементов «-элементного множества А (кортежи отличаются один от другого как самими элементами, так и их порядком), называются раз- мещениями из п элементов множества А по к. Число таких размещений будем обозначать А* (буква А от французского слова arrangement — раз- мещение). Схема выбора состоит в выборе к элементов из «-элементного множества без возвращения. Тогда необходимо совершить k действий, причем первое действие можно совершить п способами, второе (п—1) способами и т. д., k-e действие п — (к — 1) способами. Согласно комбинаторному правилу умножения, по- лучим формулу: А^ = п • (п — 1) ... • (п — k + 1). Если умножить и разделить полученное выражение на (п — /?)!, полу- чим: лк = п! " («-/?)!’ где п = п(п — 1)...-3-2-1и называется факториалом числа п (читается «-факториал). Причем: 0! = 1; 1! = 1; 2! = 1 • 2 = 2; 3! = 1 2 • 3 = 6; 4! = 1 • 2 • 3 4 = 24; 5! = 4! • 5 = 120... . Пусть, например, дано множество А{ 1, 3, 5}. Выпишем все размеще- ния из трех элементов по два: (1, 3), (1, 5), (3, 5), (3,1), (5,3), (5,1). Число этих размещений можно найти по формуле б) Перестановки. Пусть у нас есть «-элементное множество А, будем строить из этого множества размещения в виде кортежей длины п. Эти размещения будут отличаться друг от друга только порядком, поскольку в каждом из них встречаются по одному разу все элементы множества А. Такие размещения называются перестановками и обозначаются Рп (буква Р от английского слова permutation — перестановка). Поскольку Рп = А", то число перестановок вычисляется по формуле Рп = «!.
62 Часть 3. Элементы комбинаторного анализа Выясним, например, сколько трехзначных чисел можно составить из цифр 1, 2, 3, если каждая входит в число только один раз. Составим такие числа: (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), (3, 2,1) — то есть шесть чисел. С помощью введенной формулы можно сразу определить число перестановок, не выписывая их: Р3 = 3! = 1 • 2 • 3 = 6. в) Сочетания. Из n-элементного множества А будем строить упорядо- ченные множества длины k (1 С k Z п), не учитывая порядок элементов, т. е. размещения с одними и теми же элементами, расположенными в разном порядке, будем считать равными. Такие размещения называются сочетаниями и обозначаются (бук- ва С от английского слова combination — комбинация). Число сочетаний из п элементов по k меньше числа размещений из п Ak элементов по k в раз, т. е. Pk Используя это утверждение, выведем формулу для вычисления числа сочетаний: Ck = А» = п! = П(п- 1),..(п- fe + 1) " Pk (п - к) k k Из этой формулы непосредственно вытекает, что Ср = С® = С” = 1; C = n-,Ckn = Crk. Выясним, какие парные сочетания можно составить из цифр 1, 3, 5 и сколько их. Выпишем эти сочетания: (1,3), (1,5), (3,5), т. е. С| = и ’gj = 3 или С| = С| 2 = С| = 3. Непосредственной проверкой легко доказать следующие тождества: a) Ckn Crk = Crn C£zrr, где О < г k п. Действительно: " k (п — /?)! •&!•(/? — г)! г! (и — г)! г! (п — /?)! • (k — г)! п ^Ckn_r+Ck~_=Ckn-. Ck , = (”- 1)! . (” ~ 1)! = n-1 n-1 (n — k — l)k (n-/?)!(&-1)! _ (n — l)!(n — k + k) _ n[ (n — /?)!/?! (n — /?)!/?!
3. Комбинации элементов с повторениями 63 3. Комбинации элементов с повторениями Все приведенные формулы справедливы в том случае, когда п элемен- тов множества А различны. Если же некоторые элементы повторяются, то в этом случае рассматриваются комбинации с повторениями, число которых вычисляется по другим формулам. Размещениями с повторениями из п элементов по к называются кор- тежи длины /?, составленные из п — элементного множества А. Число этих кортежей обозначают А^. Черта указывает на возможность повторе- ния элементов А^ = nk. Например, сколько пятизначных номеров можно составить из элементов множества {1, 2, 3, 4, 5, 6, 7, 8, 9}? Такими номе- рами являются кортежи длины 5, составленные из девятиэлементного множества, где схема выбора состоит в выборе 5 элементов из девятиэле- ментного множества с возвращением, т. е. для каждого из пяти элементов есть девять способов выбора, т. е. А| = 95 = 59 049. Перестановкой с повторениями состава (п±,..., из букв («1,..., а^) называют любой кортеж длины п = П + п2 + ... + п^, в который ai вхо- дит Hi раз, «2 входит п2 раз, ..., щ раз. Число таких перестановок обозначают п' _ («1 + п2 + ... + пй)! Р(П1, п2,..., nk)---—---------------—---------. nrn2...nk П1!п2!...щ! Еще один пример. Сколько слов можно получить, переставляя бук- вы в слове «математика»? Слово «математика» является кортежем дли- ны 10, имеющем состав (2,3, 2,1,1,1) (буква «м» входит два раза, бу- ква «а» входит 3 раза, буква «т» входит два раза, буквы «е», «и», «к» входят по одному разу). Значит, при перестановках букв получит- ся Р(2,3, 2,1,1,1) = — *°- = 151 200 слов. ^1 о. z^I ±1 _LI -LI Сочетания с повторениями. Пусть имеются предметы п видов и из них составляется набор, содержащий k элементов, т. е. различными исхода- ми будут всевозможные наборы длины к, отличающиеся составом, и при этом отдельные наборы могут содержать повторяющиеся элементы. Та- кие наборы называются сочетаниями с повторениями, а их общее число определяется формулой : С = C^l+k_1. Например, нужно выяснить, сколько наборов из 7 пирожных можно составить, если в продаже имеются 4 сорта? Искомое число равно Cj+7_х = Cj0 = Cf0 = J* = 120. 1 • Л * о
64 Часть 3. Элементы комбинаторного анализа 4. Бином Ньютона С числами С„ связано функциональное тождество, называемое фор- мулой бинома Ньютона. Из элементарной математики хорошо известны формулы сокращенного умножения: (а + Ь)2 = а2 + 2аЬ + Ь2; (а + Ь)3 = а3 + За2Ь + 3ab2 + ft3. Эти формулы можно записать так: (а + Ь)2 = С^а^Ь0 + С%аЬ + С|а°Ь2; (а + b)3 = C2a3b° + C^b1 + C%ab2 + С|а°Ь3. Имеет место и общая закономерность: справедливо равенство: (а + Ь)п = С°апЬ° + С^а'1 'b + С2ап~2Ь2 + ... + CnnaGbn. Это равенство и называется биномом Ньютона, а коэффициенты С„, С1п, С2,..., С" называются биномиальными коэффициентами. Если положить а = b = 1, то из формулы бинома Ньютона вытекает следующее важное соотношение: (1 + 1)" = С„ + С* + С2 + ... + С” = 2п — формула суммы биномиальных коэффициентов. Если положить в биноме Ньютона а = 1, b = — 1, то C°-Ci+C2-... + (-lfC" = O. Поскольку С* = С”-/г, то биномиальные коэффициенты, равноотсто- ящие от концов в формуле бинома Ньютона, равны. Пятое практическое занятие по теме «Комбинаторные формулы. Бином Ньютона» Задача 1. Составьте все перестановки: 1) из трех букв: а, Ъ, с; 2) из четырех цифр: 5, 4, 3, 2. Решение. 1) abc, acb, bac, bca, cab,cba; 2) 5432, 5423, 5342, 5324, 5243, 5234, 4532, 4523, 4325, 4352,4235,4253, 3542, 3524, 3452, 3425, 3245, 3254, 2345, 2354, 2435,2453,2534,2543.
Пятое практическое занятие по теме «Комбинаторные формулы. Бином Ньютона» 65 Задача 2. Составьте все размещения: 1) из четырех букв а, b, с, d по 3 буквы в каждом (без повторений); 2) из четырех цифр: 1, 3, 5, 7 по 2 цифры в каждом. Решение. 1) abc abd bed acd acb adb bdc adc bac bad cbd cad bca bda edb eda cab dab dbc dac cba dba deb dca; 2)13; 1 5; 1 7; 3 1; 3 5; 3 7; 5 1; 5 3; 5 7; 7 1; 7 3; 7 5. Задача 3. Вычислите: 1)A|; 2)A4; 3)Af; 4)-|; 5)-^—^; 6) 4^-— A5 At AQ ~ A Задача 4. Вычислите: 1)P4; 2)P6; 3)P9; 4)^; 5)^^; 6) Pe~Pi 4(i г'з '3 Задача 5. Вычислите: i)~; 2) Al a47-p5_ 2P3 + 3A4 . psp7 5P5 — P3 ’ } 7P7‘ Задача 6. Составьте все сочетания (без повторений) из пяти букв: a, b, с, d, е по 3 буквы в каждом. Решение, abc, abd, abe, acd, асе, ade, bed, bee, bde, cde. Задача 7. Вычислите: 1)C|; 2) Cl-, 3)C41; 4)C712; 5)C?*0; &)СЦ; 7)C3g; 8)СЦ. Задача 8. Проверьте равенства: д5 дт-8 1)С}* = -4; 2)СЬ^_ г т-8 Задача 9. Решите уравнения: 1М3+1 = 30; 2)5С3=С^+2; 3)C3=M^zJ>; 4) С3 + С3 = 15(х - 1); А®+А3 . „ г ЗА3 Лл-Рх 4 5) х „ х =43; 6) 12С* + С3+4 = 162; 7) С*+1 = —; 8) х = 42. А3 8 Рх_2 Ответ: 1) 5; 2) 3; 14; 3) 7; 4) 9; 5) 10; 6) 8; 7) 8; 8) 7. Задача 10. Сколько номеров, состоящих из трех букв, за которыми идут две цифры, можно составить, используя 32 буквы и 10 цифр? Решение. Обозначим множество из 32 букв через А, а множество из 10 цифр через В. Тогда |А| = 32; |В| = 10. Каждый номер требуемого вида являет- ся кортежем длины 5 из декартова произведения АхАхАхВхВ. Тогда [А х А х А х В х В| = 32 32 32 10 10 = 3 276 800. 3-6234
66 Часть 3. Элементы комбинаторного анализа Задача 11. Сколько существует пятизначных номеров: 1) не содержащих цифру 8; 2) не содержащих цифры 0 и 8; 3) составленных из цифр 2, 3, 5, 7? Ответ: 1) 59 049, 2) 32 768, 3) 1024. Указание: здесь А* = пк. Задача 12. Сколькими способами можно разложить 28 различных предметов по четырем ящикам, так, чтобы в каждом ящике оказалось по 7 предметов? OOf Решение. Число способов равно: Р(7, 7, 7, 7) =--. (7!)4 Задача 13. В технической библиотеке имеются книги по математике, физике, химии и т. д., всего по 16 разделам науки. Поступили очередные четыре зака- за на литературу. Сколько наборов из четырех заказов можно составить по 16 разделам науки? Решение. Искомое число равно числу сочетаний с повторениями из 16 элементов по 4, т. е. Cf6 = = С49 = 3876. Задача 14. Сколькими способами можно составить дозор из трех солдат и одного офицера. Если имеется 80 солдат и 3 офицера? Ответ: 246 480. Задача 15. Найдите: 1) четвертый член разложения (а + З)7; 2) четвертый член разложения (а + х/Б)12; 3) восьмой член разложения (а2 + fe3)13; 4) средний член разложения (/а — /Б)8; 5) средний член разложения (Хт/х — I)14; 6) два средних члена разложения (у/а - /Б)13. Ответ: 1) 945а4; 2) 495а4&4; 3) 1287(а16&15); 4) 70а2&2; 5) -3432х10г/х; 6) -1716а3 • Ь2х/Ъ; 1716а3y/ab2. Задача 16. Определите х из условия, что третий член разложения бинома (х + xlg*)5 равен 1 000000. Ответ: 10;--------. у/юообб Задача 17. Найдите тот член разложения бинома который после упрощения содержит 25, если сумма биномиальных коэффици- ентов этого разложения равна 128. Ответ: 35г5.
Контрольные вопросы 67 Контрольные вопросы 1. Что такое комбинаторика и для чего она нужна? 2. Что называется: — перестановкой «-элементного множества; — размещением из п элементов по т элементов; — сочетанием из п элементов по т элементов? 3. В чем отличие размещений от перестановок? 4. В чем отличие сочетаний от размещений? 5. Сколькими способами можно разместить три книги на книжной полке? 6. Запишите формулу для вычисления числа сочетаний элементов, исполь- зуемую в формуле бинома Ньютона. 7. Как найти число перестановок с повторениями? 8. Сколько существует пятизначных чисел, у которых каждая следующая цифра: — меньше предыдущей, — больше предыдущей. 9. Сколько прямых можно провести через п точек, если никакие три из них не лежат на одной прямой? 10. Сколько разных слов можно составить перестановкой букв в слове «ча- чача»? 11. Вычислите: (а + Ь + с)2; (а + Ь + с)3. 12. Покажите, что сумма С* + С2 + ... + С^1 делится на р, где р — простое число. 13. Докажите свойства биномиальных коэффициентов. 3'
Часть 4 Логика предикатов или логика первого порядка Лекции 9-10 I Логика предикатов — новая логическая система, представляющая развитие логики высказываний. Исторически понятие о предикатах яви- лось следствием логического анализа высказываний, т. е. выяснения их логической структуры. Выяснения того, какой логикой может быть вы- ражен смысл этих высказываний. 1. Предикаты Рассмотрим пример: «х простое число». Это выражение не является высказыванием, но если в нем переменную х заменить на определенное число, то получим высказывание. Причем при замене х на число 3 полу- чим истинное высказывание, тогда как при замене х на 8 получим ложное высказывание. Таким образом, выражение: «х простое число» можно рассматривать как функцию Р(х), зависящую от переменной х. Область определения Р(х) — множество чисел, а область значения — высказывание. _ --------------------------------------------------------, Определение. Предикат — функция, значениями которой являются выска- зывания о п объектах, представляющих значения аргументов. Чтобы задать n-местный предикат P(xi, Хг,..., х„), следует указать множества Xi, Х<2,..., Хп — области изменения переменных xi, х^, хп, причем чаще всего рассматривается случай, когда Х^ = Х% = ... = Хп. С теоретико-множественной точки зрения предикат определяется за- данием подмножества М в декартовом произведении Xi х Х% х ... х Хп. Переменные xi, х%,..., хп называются предметными переменными. Элементы множеств Xi,X2, ...,Хп называются предметами. Множество
1. Предикаты 69 М — множество кортежей длины п (xi, х%, ...,хп) называется полем пре- диката Р(Х1,Х2, ...,Хп). Будем обозначать предметные переменные малыми буквами кон- ца латинского алфавита (иногда будем снабжать эти буквы индексами) X, у, Z, Xi, Х2, хп. Предметы из множеств Xi,X%, ...,Хп — малыми буквами начала ла- тинского алфавита а, Ъ, с,..., а±, а%, аз.... Предикаты — большими буквами латинского алфавита с припи- санными предметными переменными или без них А(х, х), В, F(x, у), Р(Х1, ...,хп). Число переменных будем указывать как верхний индекс у предиката: Pk(xl, х%, ...,Xk) — k местный предикат, Qz(x,y) — двуместный предикат, Р(х) — одноместный предикат. Итак, /г-местныйпредикат — Pfe(xi, х2,..., х^.)есть функция, предмет- ные переменные которой принимают значения из некоторого множества Mk, а сама она принимает только два значения: истина (1) или ложь (О), т. е. Pfe(xi,x2,...,xfe): Mk^{l,O}. Например, если X — множество действительных чисел, то х2 > 1 — одноместный предикат. Если X, Y — множества действительных чисел, то ху = 5 — двумест- ный предикат. Предикат называется разрешимым, если существуют такие кортежи, компоненты которых обращают предикат в истинное высказывание. Если предикат при подстановке любых конкретных элементов из со- ответствующих множеств обращается в истинное высказывание, он на- зывается тождественно истинным. Если предикат при подстановке любых конкретных элементов из со- ответствующих множеств обращается в ложное высказывание, он назы- вается тождественно ложным. К предикатам, определенным на одном и том же множестве, мож- но применять операции алгебры высказываний: конъюнкцию, дизъюнк- цию, импликацию, эквивалентность, отрицание и получать новые пре- дикаты. Например, если к предикатам «х = г/» и «х < г/» — обозначим их соответственно Р(х, у) и Q(x, у) — применить операцию конъюнкции, то получим новый предикат Р(х, у) Л Q(x, у).
70 Часть 4. Логика предикатов или логика первого порядка 2. Применение предикатов в алгебре Рассмотрим предикаты, в которых свободной является лишь одна пе- ременная, которую обозначим через х, и обсудим применение предикатов в алгебре. Типичным примером является уравнение, например, х2 — Зх + 2 = 0. Свободная переменная может принимать здесь любое числовое значение. Для некоторых чисел х (а именно х = 1, х = 2) утверждение, содержа- щееся в этом уравнении, истинно, в остальных оно ложно. В подобных случаях, когда истинность или ложность предиката зависит только от значения, принимаемого свободной переменной х, множество допусти- мых значений х можно рассматривать как множество логических воз- можностей U, а множество всех значений этой переменной, при которых высказывание истинно — как его множество истинности. В приведенном выше примере множество U состоит из всех действи- тельных чисел, а множеством истинности является множество {1,2}. В результате введения понятия множества истинности для предика- тов мы сможем сказать, что решить уравнение — значит найти один эле- мент или все элементы его множества истинности. При решении системы двух уравнений у нас имеется предикат, представляющий конъюнкцию двух уравнений. Поэтому мы ищем пересечение двух множеств истинно- сти. Если это пересечение пусто, то система уравнений не имеет решений. Такие уравнения называются несовместными, поскольку их множества истинности не имеют общих элементов х. Понятие множества истинности удобно не только в вопросах, связан- ных с решением уравнений, но и при рассмотрении неравенств. Если U — множество действительных чисел, то множество истинно- сти неравенства х < 0 состоит из всех отрицательных действительных чисел. Множество же истинности неравенства х > — 3 состоит из всех действительных чисел, больших, чем —3. Если мы потребуем, чтобы эти неравенства выполнялись одновременно, то множеством истинности бу- дет множество, являющееся пересечением двух исходных множеств, т. е. все действительные числа между —3 и 0. Понятие множества истинности предиката позволяет выяснить, чем разнятся между собой уравнения и тождества. Когда мы решаем уравне- ние, мы тем самым ищем один из элементов множества истинности этого уравнения или все его элементы. Если же мы доказываем тождество, то тем самым утверждаем, что оно справедливо для всех х. Таким обра- зом, тождество представляет собой уравнение, множеством истинности которого является универсальное множество U, т. е. является логически истинным или тождественно истинным.
3. Булева алгебра предикатов • 71 3. Булева алгебра предикатов Так как к предикатам можно применять логические операции, то для них справедливы основные законы булевой алгебры. Л.Р = Р 2. PVQ = QV Р 3. PfQ = QrP 4. Py(QyR) = (PyQ)yR 5. Р Л (Q Л R) = (Р Л Q) Л R 6. Р V (Q Л R) = (Р V Q) Л (Р V R) 7 . Р Л (Q V R) = (Р Л Q) V (R Л R) 9 .PyQ = PKQ-,PKQ = PyQ 9. РУ Р = Р, Р /Р = Р 1O .PV1 = 1, PJO = 0, РуО = Р; Р/1 = Р; РУР= 1; РЛР = О 11 .PV(PAQ) = P 12 . Р Л (PVQ) = P 4. Кванторы Помимо операций алгебры высказываний, в логике предикатов есть две операции, которые связаны с природой предикатов. Пусть дан преди- кат Р(х), зависящий от одной переменной и определенный на поле М. а) Выражение (Vx)P(x) означает высказывание, истинное только в том случае, когда предикат Р(х) истинен для всех предметов из поля М. Выра- жение (Vx)P(x) читается «для всякого х, Р(х)», здесь символ V — квантор общности. б) Выражение (Зх)Р(х) означает высказывание, истинное только в том случае, когда предикат Р(х) истинен хотя бы для одного предмета из по- ля М. Выражение (Зх)Р(х) читается «существует х, что Р(х)»; символ 3 — квантор существования. Рассмотрим примеры применения операций квантирования к преди- катам. Пусть даны предикаты над полем натуральных чисел: 1) х2 = х • х, тогда (Vx)(x2 = х х) — истинное высказывание; 2) х + 2 = 7, тогда (Vx)(x + 2 = 7) — ложное высказывание; а (Зх)(х + 2 = 7) — истинное высказывание; 3) х + 2 = х, тогда (/х)(х + 2 = х) — ложное высказывание. Название Прочтение Обозначение Квантор общности «все», «всякий», «каждый», «любой» V Квантор существования « Хотя бы один », « найдется », « сущест- вует» 3
72 Часть 4. Логика предикатов или логика первого порядка Квантор общности — это оператор, приводящий в соответствии лю- бому заданному предикату у = Р(х) такую двузначную логическую пере- менную 2, которая принимает значение 1 тогда и только тогда, когда у = 1 при всех значениях х. Квантор существования — это оператор, приводящий в соответствии любому одноместному предикату у = Р(х) такую двузначную логическую переменную 2, которая принимает значение 0 тогда и только тогда, когда у = О при всех значениях х. Рассмотрим некоторые общие свойства введенных операторов. В соответствии с определениями кванторов логическая переменная z в выражениях 2 = (Vx)P(x)l 2 = (3x)P(x)j уже не является функцией предметной переменной х. Для того чтобы отметить отсутствие функциональной зависимости 2 от х, предметную переменную х в таких случаях называют связанной. Несвязанные переменные называют свободными. Например, в предикате (/х)Л(х, у) V (Bz)B(z, о) переменные х и z — связанные, а у и и — свободные. Если квантор общности или квантор существования применяется не к одноместному предикату, а к какому-нибудь /^-местному предикату, то в результате этого получается снова предикат, но за счет связывания одной предметной переменной получаемый предикат будет (к — 1)-местным. 5. Формулы логики предикатов Наряду с определенными предикатами — для которых истинность или ложность известны для каждого набора значений свободных пред- метных переменных, будем рассматривать переменные предикаты, для которых не определены значения. Будем обозначать переменные преди- каты большими буквами из конца латинского алфавита с приписанными предметными переменными или без них: W(x1} ...,хп); U(x,y),.... Применяя к переменным предикатам операции Л; V; —>;<->; ; V; 3, по- лучим формулы логики предикатов, т. е. формулой логики предикатов
6. Равносильные формулы логики предикатов 73 называется выражение, составленное из переменных предикатов с помо- щью логических операций и кванторов и обращающееся в конкретный предикат при подстановке вместо переменных конкретных предикатов. Например, ((Vx)VK(x, у) V В) —> U(z) — (формула логики предикатов. Формула логики предикатов называется тавтологией, если при под- становке любых конкретных предикатов она всегда обращается в тожде- ственно истинный предикат. Сформулируем следующие правила. (1) Формула логики предикатов называется атомарной, т. е. элемен- тарной, если в ней нет связанных переменных. (2) Пусть F — формула, тогда F — тоже формула. Свободные и связан- ные переменные формулы F — это соответственно свободные и связанные переменные формулы F. (3) ПустьFhG — формулы, причем в них нет предметных перемен- ных, которые были бы связаны в одной формуле и свободны в другой. Тогда F /G, F V G, F —> G, F G — формулы, в которых свободные переменные формул F и G остаются свободными, а связанные — связан- ными. (4) Пусть F — формула, содержащая свободную переменную х. Тогда (Vx)F, (3x)F — тоже формулы, в которых переменная х связана, а осталь- ные свободные переменные, входящие в F, остаются свободными. Заметим, что по определению формулы никакая переменная не может быть одновременно свободной и связанной. Значение формулы определено лишь тогда, когда задана какая-то ин- терпретация входящих в нее символов. Под интерпретацией понимают систему М = (М, f), состоящую из непустого множества М и соответ- ствия f, которое сопоставляет каждой (формуле определенный предикат. При заданной интерпретации предметные переменные пробегают множе- ство М, а логические символы и символы кванторов имеют свой обычный смысл. 6. Равносильные формулы логики предикатов Пусть формулы F и G имеют одно и то же множество свободных пе- ременных (в частности, пустое). Формулы F и G равносильны в данной интерпретации, если они принимают одинаковые значения на любом наборе свободных переменных, т. е. выражают в данной интерпретации один и тот же предикат. ФормулыFnG равносильны на множестве М, если они принимают одинаковые значения во всех интерпретациях заданных на множестве М.
74 Часть 4. Логика предикатов или логика первого порядка Формулы F и G равносильны в логике предикатов, если они равно- сильны на всех множествах (F = G). Рассмотрим правила перехода от одних формул к другим, им равно- сильным. (1) Перенос квантора через отрицание. Пусть УИ(Х) — формула, со- держащая свободную переменную х. Тогда справедливы равносильности: (Vx)W(x) = (Bx)W(x), (/x)W(x) = (Hjc)W(jc), (Bx)W(x) = (Vx)W(x), (3x)W(xj = (Vx)W(x). (2) Вынос квантора за скобки. Пусть формула Ж(х) содержит свобод- ную переменную х, а формула В не содержит переменной х. Формулы W(x) и В удовлетворяют третьему правилу создания формул. Тогда спра- ведливы равносильности: (Зх)(УИ(х) Л В) = (Зх)Ж(х) Л В, (Vx)(VP(x) Л В) = (/х)1У(х) Л В, (3x)(W(x) V В) = (3x)W(x) V В, (Vx)(W(x) V В) = (Vx)W(x) V В. (3) Перестановка одноименных кванторов. Имеем (3x)(3z;)W(x, у) = (3/;)(3x)W(x, у), (Vx)(Vt/)W(x, у) = (Vz/)(Vx)W(x, у). (4) Переименование связанных переменных. Заменяя связанную пе- ременную формулы W другой переменной, не входящей в эту формулу, в кванторе и всюду в области действия квантора, получим формулу, равно- сильную W. 7. Приведенные и нормальные формы в логике предикатов Рассмотрим способ упрощения формул, опирающийся на приведен- ные равносильности. Формулы, в которых из логических символов имеются только сим- волы конъюнкция, дизъюнкция и отрицание, причем символ отрицания встречается над символами предикатов, будем называть приведенными. Например, формула (Vxj^^^xx) V (ЗхаМ^Сха, хз) — приведенная; формула (Vx2)A^x2) —> А^Ххх) — неприведенная. Для любой формулы существует равносильная ей приведенная фор- мула, причем множества свободных и связанных переменных этих фор- мул совпадают.
7. Приведенные и нормальные формы в логике предикатов 75 Такая приведенная формула называется приведенной формой данной формулы. В логике высказываний мы ввели две нормальные формы — дизъ- юнктивную нормальную форму и конъюнктивную нормальную форму. В логике предикатов также имеется нормальная форма, цель кото- рой — упрощение процедуры доказательств. Приведенная формула называется нормальной, если она не содержит символов кванторов или все символы кванторов стоят впереди (т. е. логи- ческие символы и символы предикатов стоят в области действия каждого квантора). Для любой приведенной формулы существует равносильная ей нор- мальная формула той же длины (под длиной формулы будем понимать общее число входящих в нее символов предикатов, логических символов и символов кванторов). Нормальная формула называется нормальной формой данной фор- мулы. Приведем несколько формул, находящихся в нормальной форме: (Vx)(Vy) (Р(х, у) Л Q(y)), (Vx)(Vy) (Р(х, у) -4- Q(y)) , (Vx)(Vy)(3z) (Q(x, у) -> P(z)). Алгоритм преобразования формул в нормальную форму: 1. Исключить логические связки <-> и —> с помощью формул F G = (F -4- G) Л (G -4- F), F -4- G = F V G. 2. Использовать закон F = F, законы де Моргана: (FVG) = F Л G, (F Л G) = F V G, законы ((Vx)F(x)) = (3x)(FG0), ((3x)F(x)) = (Vx)№)j, чтобы пронести знак отрицания внутрь формулы. 3. Переименовать связанные переменные, если это необходимо. 4. Использовать равносильные формулы логики предикатов, чтобы вынести кванторы в самое начало формулы для приведения ее к нормаль- ной форме. Например, приведем формулу (Vx)P(x) (3x)Q(x) к нормаль- ной форме: (Vx)P(x) -4- (3x)Q(x) = ((Vx)P(x)) V (3x)Q(x) = (Зх)(Р(х)) V (3x)Q(x) = = (3x) (P(xj V Q(x)). Следовательно, нормальная форма формулы (Vx)P(x) -4- (3x)Q(x) — это (3x)(PG0 V Q(x)).
76 Часть 4. Логика предикатов или логика первого порядка 8. Исчисление предикатов Исчисление предикатов называют еще теорией первого порядка. В исчислении предикатов, так же как и в исчислении высказываний, на первом по важности месте стоит проблема разрешимости. Но в исчислении высказываний проблема разрешимости состояла в решении вопроса является ли данная сложная функция тождественно истинной, выполнимой или тождественно ложной? Теперь же вопрос следует поставить иначе. Принимает ли данная функция значение 1 при: а) любых предметных переменных и любых предикатах, б) на некотором множестве предметных переменных и любых преди- катах, в) при некоторых значениях предметных переменных и при некото- рых предикатах, г) является ли она тождественно ложной, т. е. невыполнимой? Таким образом, в логике предикатов, в отличие от логики высказыва- ний, нет эффективного способа для распознавания общезначимости функ- ций. Поэтому в исчислении предикатов указывается некоторая совокуп- ность формул, которые называются аксиомами и составляют аксиомати- ческую теорию, и указывается конечное множество отношений между формулами, составляющее правила вывода. Аксиоматическая теория и правила вывода и составляют исчисления предикатов. Символами исчисления предикатов или алфавитом исчисления пре- дикатов являются символы предметных переменных, символы предика- тов, логические символы (отрицание и импликация), символы кванторов, а также скобки и запятая. Сформулируем аксиомы исчисления предикатов и правила вывода исчисления предикатов. Аксиомы исчисления предиката. Пусть А, В и С — любые формулы. Аксиома 1. А —> (В —> А). Аксиома 2. (А —> (В -> С)) -> ((А -> В) —> (А —> С)). Аксиома 3. (В —> А) —> ((В —> А) —> В). Аксиома 4. (/х/)А(х;) —> А(х,), где формула А(х() не содержит перемен- ной Xj. Аксиома 5.А(х;) —> (3xz)A(x;), где формулаA(xt) не содержит перемен- ной Xj.
Шестое практическое занятие по теме «Предикаты» 77 Правила вывода исчисления предикатов. (1) Пусть (А(х) -л В) и В не содержит переменной х, тогда (((Эх)А(х))->в). Это правило связывания квантором существования. (2) Пусть В —> А(х) и В не содержит переменной х, тогда (b-+((Vx)A(x))). Это правило связывания квантором общности. (3) Связанную переменную формулы В можно заменить другой пе- ременной, не являющейся свободной в В. Это правило переименования связанной переменной. Шестое практическое занятие по теме «Предикаты» Задача 1. Пусть U — множество всех действительных чисел. Постройте множе- ство истинности для каждого из следующих предикатов: а) х2 — 4 = О, б) х2 + 4 = О, в) х2 — 4х + 3 = 0, г) х2 — 4х + 4 = 0, д) х2 — 4х + 5 = 0. Ответ: а) {2, —2}, б) 0, в) {3,1}, г) {2}, д) 0. Задача 2. Пусть U — множество всех действительных чисел. Найдите множество истинности конъюнкций следующих предикатов: а) х2 + х — 2 = 0; х2 = 4, б) х2 — 4 = 0; х2 — 4х + 4 = 0, в) х3 — 6х2 + Их — 6 = 0; х2 — 4х + 3 0, г) х3 = 1; х2 — 4х + 4 = 0. Найдите множества истинности конъюнкций следующих пар неравенств: д) х 3; х 10, е) х2 4; х — 1 1, ж) х 0; х2 — 2х 0. Задача 3. На множестве однозначных натуральных чисел даны два предиката: предикат Р(х): «число 3 делитель х»; предикат Q(x): «х sC 6». Найдите множества истинности предикатов: (l)P(x)VQ(x), (2)P(x)AQ(x), (3)P(x)->Q(x), (4)Р(х) -+ Q(x). Решение. (1) {1, 2, 3,4, 5,6,9}, (2) {9}, (3) {1, 2,3,4, 5,6, 9}, (4) {9}. Задача 4. Предикат Р(х): «х есть простое число»; предикат Q(x): «х есть действи- тельное число»; предикат Т(х): «х меньше у». Запишите следующие утвержде- ния, используя кванторы: а) каждое рациональное число есть действительное число; б) существует число, которое является простым; в) для каждого числа х существует такое число у, что х < у. Решение, a) (Vx)(Q(x) +> Дх)); б) (Elx)P(x); в) ((Vx)(3x)T(x)).
78 Часть 4. Логика предикатов или логика первого порядка Задача 5. Основные аксиомы натуральных чисел таковы: Ai: Для каждого числа существует одно и только одно число, непосредствен- но следующее за ним. Аг: Нет числа, за которым непосредственно следует 0. Аз: Для каждого числа, отличного от нуля, существует одно и только одно непосредственно предшествующее ему число. Пусть /(х) и у(х) представляют соответственно число, непосредственно сле- дующее за х и непосредственно предшествующее х. Пусть «х равно у» — предикат, обозначенный через Е(х, у). Записать аксио- мы с помощью формул логики предикатов. Решение. Ai: (Ух)(Эу)Е(у, f(x)) Л (/z)(E(z, f(x)) -> Е(у, z)), А2: ((3x)E(0, f(xjjj, Аз: (Vx)(E(x, 0)) -> ((Зу)(Е(у, g(x))) A (Vz)(£(z, g(x)) -> E(y, z))). Задача 6. Определите значение формул: a) (Vx)P(x); б) (Зх)Р(х) в интерпретации М = {М, f) где М = {1, 2}; f: Р(1) — истина; Р(2) — ложь. Решение. a) (Vx)P(x) — ложь, так как Р(х)) — не истина как для х = 1, так и для х = 2; б) (Зх)Р(х) — истина, так как Р(2) в этой интерпретации истина. Задача 7. Оцените формулу (Vx)(3y)P(x, у) в интерпретации М{1,2} Р(1,1) Р(1,2) Р(2,1) Р(2, 2) и Л Л И Решение. Если х = 1, то существует у = 1 такой, что Р(1, у) есть истина. Если х = 2, также существует такой у, что Р(2, у) — истина. Следовательно, в указанной интерпретации для каждого х из М существует такое значение у, что Р(х, у) есть истина, т. е. (Vx)(3y)P(x, у) есть истина в этой интерпретации. Задача 8. Рассмотрим формулу G: (Vx)P(x) —> Q(/(x), а), гр,ееъ а — константа, f — одноместная функция, Р — одноместный предикат, Q — двуместный предикат. Интерпретация формулы G задана следующим образом: М{ 1, 2}; а : Д1) = 2; Д2) = 1; Р(1) — Л; Р(2) — И; Q(l, 1) — И; Q(l, 2) — И; Q(2,1) — Л; Q(2, 2) — И. Оцените эту формулу. Решение. Если х = 1, то Р(х) -> Q(/(x), а) = Р( 1) -> Q(/(l), а) = Р( 1) -> Q(2,1) = Л -> И = И. Если х = 2, то Р(х) -> Q(/(x), а) = Р(2) -> Q(/(2), а) = Р(2) Q(l, 1) = И -> И = И. Так как Р(х) —> Q(/(x), а) истинно для всех х из области М, то формула (Vx)(P(x) —> Q(f(x), а)) истинна в заданной интерпретации.
Шестое практическое занятие по теме «Предикаты» 79 Задача 9. Используя интерпретации из задачи 8, оцените следующие формулы: (а) (Зх) (Р(/(х)) Л Q(x, (б) (Зх) (Р(х) Л Q(x, а)); (в) (Vx)(3i/) (Р(х) Л Q(x, у)). Ответ: (а) — истина; (б) — ложь; (в) — ложь. Задача 10. Рассмотрим формулы Р] : (Vx)(P(x) Q(x)); Р2 : Р(а). Докажите, что Q(a) есть логическое следствие формул Pj и Р2. Решение. Рассмотрим любую интерпретацию. Из определения следует, что фор- мула есть логическое следствие формул Pi и Р2 тогда и только тогда, когда для каждой интерпретации данная формула истинна, если Pi Л Р2 — истина. Рассмотрим любую интерпретацию, которая удовлетворяет (Vx)(P(x) -4- Q(x)) Л Р(а). В этой интерпретации Р(а) — истина. Пусть Q(a) не является истиной в этой интерпретации, тогда Р(а) V Q(a) = = Р(а) —> Q(a) — не истина. Это значит, что (Vx)(P(x) —> Q(x)) — ложь, что не- возможно. Следовательно, Q(a) должно быть истиной в каждой интерпретации, которая удовлетворяет (Vx) (Р(х) —> Q(x)) Л Р(«). Это означает, что Q(a) есть след ствие изР1 иР2. Задача 11. Докажите следующее: 1) (Vx)P(x) Л (Эу)Р(у) — противоречива (невыполнима), т. е. не существует интерпретации, удовлетворяющей этой формуле. 2) Р(а) —> (Зх)Р(х) — непротиворечива (выполнима), т. е. существует такая интерпретация, что формула истина в этой интерпретации. 3) a) (Vx)P(x)-> (3j/)P(z/), б) (Vx)P(x) V (Зу')Р(у') общезначимы, т. е. не существует никакой интерпрета- ции, которая удовлетворяет формулам. Задача 12. Получите нормальную форму для формулы (Vx)(Vz/)((3z)P(x, z) Л Р(у, z) -> (3zz)Q(x, у, и)). Решение. (Vx)(Vz/)((3z)P(x, z) Л Р(у, z) -> (3zz)Q(x, у, и)) = = (Vx)(Vz/) ((3z)P(x, z) Л Р(у, г) V (3tz)Q(x, у, и)) = = (Vx)(Vz/) ((Vz)(P(x, z) Л Р(у, z)) V (3iz)Q(x, у, и)) = = (Vx)(Vj/) ((3z)(P(x, z) Л Р(у, z)) V (3u)Q(x, у, и)) = = (Vx)(Vy)(Vz)(3iz) (Р(х, z) V Р(у, z) V Q(x, у, iz)) (здесь выносим кванторы влево). Следовательно, последняя формула есть нормальная форма первой фор- мулы.
80 Часть 4. Логика предикатов или логика первого порядка Задача 13. Преобразуйте следующие формулы в нормальную форму: (l)(Vx)(P(x)->(3i/)Q(x,i/)); (2) (Зх)(ру)Р{х,у) ((3z)Q(z) -> R(x))); (3) (Vx)(Vi/)((3z)P(x, у, z) A ((3u)Q(x, и) (3v)Q(y, u))}. Контрольные вопросы 1. Что называется предикатом? Приведите примеры предикатов. 2. Какой предикат называется разрешимым, тождественно истинным. Тож- дественно ложным? 3. Перечислите операции, которые можно осуществить над предикатами. Как применяются предикаты в алгебре? Что такое множество истинности пре- диката? 4. Из чего состоит алфавит логики предикатов? Что такое квантор? 5. Что называется формулой логики предикатов? 6. Сформулируйте основные правила построения формул. 7. В чем состоит смысл термина «интерпретация» в логике предикатов? 8. Сформулируйте основные правила перехода к новым равносильным фор- мулам. 9. Какая формула называется непротиворечивой, противоречивой, общезна- чимой? 10. Какая формула называется приведенной? Что такое приведенная форма? 11. Какая формула называется нормальной формой? Сформулируйте алго- ритм приведения формулы к нормальной форме. 12. Что называют исчислением предикатов? 13. Сформулируйте аксиомы исчисления предикатов.
Часть 5 Элементы теории графов Лекции 11-12 Теория графов — область дискретной математики, особенностью ко- торой является геометрический подход к изучению объектов. Теория гра- фов и связанные с ней методы исследования используются на разных уровнях во всей современной математике. Особенно широкое примене- ние методы теории графов находят в таких областях прикладной мате- матики, как программирование, теория конечных автоматов, в решении вероятностных и комбинаторных задач. 1. Некоторые основные понятия Во многих прикладных задачах изучаются системы связей между раз- личными объектами. Объекты называются вершинами и отмечаются точ- ками или кружочками, а связи между вершинами — отрезками, соеди- няющими пары точек, и эти отрезки называются ребрами. Рассмотрение таких систем и приводит к понятию графа. Граф представляет собой непустое конечное множество вершин V и множество ребер Е, оба конца которых принадлежат множеству V. Обо- значать граф будем G(V, Е) = (у, Е), V 0, Е С V х V. При изображении графов на рисунках или схемах ребра могут быть прямолинейными или криволинейными; длины ребер и расположение вершин произвольны. Вершины, которые не принадлежат ни одному ребру, называются изо- лированными. Обозначать вершины будем буквами о-[,О2,Оз, ...,оп, т.е. V = {щ, v2,...,vn}. Пусть i?i, 02 — вершины, е = (щ, V2) — соединяющее их ребро. Тогда вершина щ и ребро е инцидентны. Вершина г>2 и ребро е также инцидент- ны. Два ребра, инцидентные одной вершине, называются смежными. Две вершины, инцидентные одному ребру, также называются смежными.
82 Часть 5. Элементы теории графов Число вершин графа G обозначимр, а число ребер обозначим q p:p(G) = M; q-.q(G) = E. Граф называется полным, если каждые две различные вершины его со- единены одним и только одним ребром. 2. Степень вершины Вершины в графе могут отличаться друг от друга тем, скольким реб- рам они принадлежат. Степенью вершины называется число ребер графа, которым принад- лежит эта вершина. Степень графа еще называют его валентностью и обозначают d{v). Вершина графа, для которой d(v) = 0, является изолиро- ванной, для которой d(v) = 1 — висячей. Вершина называется нечетной, если d(v) — нечетное число. Вершина называется четной, если d(v) — четное число. Степень каждой вершины полного графа на единицу меньше числа его вершин. В графе G(V, Е) сумма степеней всех его вершин — число четное, рав- ное удвоенному числу ребер графа. Число нечетных вершин любого графа четно. Во всяком графе с п вершинами, где п ^.2, всегда найдутся, по меньшей мере, две вершины с одинаковыми степенями. Если в графе с п вершинами (п 2) в точности две вершины имеют одинаковую степень, то в этом графе всегда найдется либо в точности одна вершина степени 0, либо в точности одна вершина степени п — 1. 3. Маршруты, цепи, циклы Маршрутом в графе называется чередующаяся последовательность вершин и ребер, в которой любые два соседних элемента инцидентны: v0,e1,u1,e2,v2, ...,ek,vk. Если Vq = о^, то маршрут замкнут, в противном случае открыт. Если все ребра различны, то маршрут называется цепью. Если все вершины (а значит, и ребра) различны, то маршрут называется простой цепью. В цепи vq, ei, щ, е2, v2,..., efl, ok вершины Vq и щ называются кон- цами цепи, т. е. цепь концами vq и щ соединяет вершины Vq и щ. Цепь, соединяющая вершины vq и v^, обозначается {vq, о^). Очевидно, что если
4. Связность графа 83 есть цепь, соединяющая вершины Vq и Vk, то есть и простая цепь, соеди- няющая эти вершины. Замкнутая цепь называется циклом', замкнутая простая цепь называется простым циклом. Число циклов в графе G(V, Е) обозначается z(G). Граф без циклов называется ациклическим. Длиной маршрута называется количество ребер в нем (с повторени- ями). Если маршрут М = Vq, е, щ, €2, V2,..., е*., щ, то длина маршрута М равна k, обозначается |М| = k. 4. Связность графа Две вершины графа называются связными, если существует соеди- няющая их простая цепь. В противном случае две вершины называются несвязными. Граф называется связным, если каждые две вершины его связные. Граф называется несвязным, если хотя бы две его вершины несвязные. 5. Ориентированные графы Если элементу множества Е графа G(V, Е) — упорядоченные пары, то граф называется ориентированным или орграфом. Ребро е графа G называется ориентированным, если одну вершину считают началом ребра, а другую — концом, на рисунке его изображают стрелкой между вершинами. Таким образом, граф, все ребра которого ориентированы, называется ориентированным графом. Одна и та же вершина ориентированного графа может служить нача- лом для одних ребер и концом для других, поэтому различают две степени вершины: степень выхода и степень входа. Степенью выхода вершины орграфа называется число выходящих из вершины ребер. Степенью входа вершины орграфа называется число входящих в вер- шину ребер. В орграфах в зависимости от сочетания степеней входа и выхода для данной вершины рассматриваются три случая. Изолированной вершиной называется вершина, у которой и степень входа и степень выхода равны 0. Источником называется вершина, степень выхода которой положи- тельна, а степень входа равна 0.
84 Часть 5. Элементы теории графов Стоком называется вершина, степень входа которой положительна, а степень выхода равна 0. Путем в ориентированном графе называется последовательность ориентированных ребер, т. е. для орграфов цепь называется путем. Простым путем в ориентированном графе называется путь, в котором ни одна вершина не содержится более одного раза. Замкнутый путь в ориентированном графе называется ориентирован- ным циклом или контуром. Длиной пути называется число ребер в этом пути. Полным ориентированным графом называется граф, каждая пара вершин которого соединена в точности одним ориентированным ребром. Замечание. Если с каждого ребра полного ориентированного графа снять направление, то образуется полный граф с неориентированными ребра- ми, т. е. неориентированный полный граф. Всякий полный ориентированный граф с п вершинами имеет простой ориентированный путь, проходящий через все вершины графа. Петлей называется ребро, у которого начальная и конечная вершины совпадают. Петля обычно считается неориентированной. Мулътиграфом называется граф, в котором пара вершин соединяется несколькими различными ребрами. Для ориентированного мультиграфа вершины о, и Vj могут соединяться несколькими ребрами в каждом из направлений. 6. Изоморфизм графов Два графа Gi(Ei,Ei) и СгО^г,^) называются изоморфными, если между множествами их вершин существует биективное (взаимноодно- значное) соответствие, такое, что вершины соединены ребрами в одном из графов в том и только в том случае, когда соответствующие им вер- шины соединены в другом графе. Если ребра графа ориентированы, то их направление в изоморфных графах должно совпадать. Изоморфизм графов есть отношение эквивалентности, так как обладает свойствами ре- флексивности, симметричности, транзитивности. Для того чтобы граф Gi был изоморфен графу G2, необходимо и достаточно существования такой подстановки, которая бы установила взаимнооднозначное соответствие между вершинами графа, а также между их ребрами. При замене графа любым ему изоморфным все свойства графа сохра- няются. Строго говоря, графы, отличающиеся только нумерацией вер- шин, являются изоморфными.
7. Плоские графы 85 Алгоритм распознавания изоморфизма двух графов G](X'E) и G2(Y;E). 1. Подсчитываем число вершин каждого графа (число вершин должно совпадать, в противном случае графы неизоморфные). 2. Выписываем все элементы обоих графов в естественной упорядо- ченности и определяем пары (х,; xj) и (z/,; у^) для каждого элемента, где х,; yt — число исходов для каждой вершины графов Gj и G2, a xf, yj — число заходов для соответствующих графов. 3. Для каждого элемента х графа Gi ищем такой элемент у графа G2, что выполняется условие: число исходов х совпадает с числом исходов у, и число заходов х совпадает с числом заходов у. Найденные элементы х и у соединяем ребром, т. е. строим граф соответствия (если соответствия нет, то графы не изоморфны). 4. Выписываем подстановку, которая переводит граф Gi в граф G2. 7. Плоские графы Граф G(V, Е) называется плоским, если на плоскости его можно изоб- разить так, что все пересечения его ребер являются вершинами графа G(V,E). В качестве характеристики плоского представления графа вводится понятие грани. Гранью в плоском представлении графа называется часть плоскости, ограниченная простым циклом и не содержащая внутри других циклов. 8. Операции над графами В ряде задач теории графов используются двуместные операции над графами. Рассмотрим графы Gi(Vi, Ei) и G2(V2, Е2). а) Дополнением графа Gi(Yi,.Ei) называется граф Gi(Vi,£i), множе- ством вершин которого является множество Vi, а множеством его ребер является множество Е} = {е е Vi х Vi : е -Ei}. б) Объединением графов Gi(Vi,Ei) и G2(K2,E2) при условии, что Vi П Р2 = 0; Ei А Е2 = 0, называется граф Gi(Vi, Е) U G2(Y2, Е2), мно- жеством вершин которого является множество Vj U V2, а множеством его ребер является множество Е± UE2.
86 Часть 5. Элементы теории графов в) Пересечением графов Gi(Vi,Ei) и G2(V2,E2) называется граф Gi(Vi, -EiJAG^O^, Е2), множеством вершин которого является множество Vi A У2, а множеством его ребер — множество Е± П Е2. г) Суммой по модулю два графов Gi(Vi, Ei) и G2(V2, Е2) при условии, что Vi A V2 = 0; Ei А Е2 = 0, называется граф Gi(Vi,Ei) ф G2(V2,E2), множеством вершин которого является множество Vi U У2, а множеством его ребер — множество Ei фЕ2. Другими словами, этот граф не имеет изолированных вершин и состоит только из ребер, присутствующих либо в первом графе, либо во втором графе, но не в обоих графах одновременно. Легко убедиться в том, что операции: объединение, пересечение и сумма по модулю два обладают свойством коммутативности. 9. Способы задания графов Существует три эквивалентных способа задания графов: аналитиче- ский, геометрический и матричный. Рассмотрим каждый из них. Аналитический способ задания графов Граф G(V, Е) задан, если задано множество элементов V и отображе- ние Е множества V в V. Отображение Е может быть как однозначным, так и многозначным. В общем случае на V и Е никаких ограничений не накладывается. Пусть дано множество V = {щ,р2, ..., vn}, которое имеет мощность |Р| = п. Вместо V = {t>i, V2, ---, fn} иногда пишут П={пД, ie {1,2,...,п}. Для того чтобы задать отображение Е на V или, что то же самое, ото- бражение V в V, необходимо каждому элементу ф G V поставить в соот- ветствие некоторое подмножество множества V, которому соответствует отображение Е. Это подмножество обозначают через EVi. Поэтому EVi С V. Совокупность двух объектов: множества V и отображение Е на V задает некоторый граф. Другой формой аналитического способа задания является задание графа как совокупности множества элементов V и подмножества мно- жества упорядоченных пар (щ, Vj') G V х V. Подмножество множества пар vj) декартова произведения V х V эквивалентно бинарному отно- шению R, заданному на множестве V. Поэтому множество V и бинарное отношение R на множестве V также определяет некоторый граф G.
9. Способы задания графов 87 Геометрический способ задания графов Множество элементов V графа G изображают кружками, это множе- ство вершин. Каждую вершину Vi Е V соединяют линиями с теми вер- шинами Vi G V, для которых выполняется условие Vi G EVi. Множество линий, которое соответствует множеству упорядоченных пар и7), есть множество ребер графа. Матричный способ задания графов Квадратная матрица «и «12 • «1л «21 «22 • • «2п ап1 «л2 • «пл элементами которой являются нули и единицы, а также некоторое чи- сло т, называется матрицей смежности графа G(V, Е) тогда и только тогда, когда ее элементы образуются по следующему правилу: элемент щ>7, стоящий на пересечении ц,-й строки и оу-го столбца, равен единице, если имеется ребро, идущее из вершины о, в вершину Vj, и aiyj равен ну- лю в противном случае. Элемент ащ равен единице, если при вершине Vt имеется петля, и равен нулю в противном случае. Элемент ащ равен не- которому числу т, где т — число ребер графа, идущее из вершины vt в вершину Vj. Пусть Vi,..., vn — вершины, a ci,..., ет — ребра некоторого ориенти- рованного графа G(V, Е). Матрица размером (т х и), где 1, если ej исходит из vp, — 1, если ej заходит в vp, О, если Cj не инцидентна V, называется матрицей инцидентности для ребер ориентированного графа. Таким образом, если граф G(V, Е) задан одним из указанных спосо- бов: аналитическим, геометрическим или матричным, всегда можно пе- рейти к любому другому способу задания. Результаты, которые получе- ны на одном языке, можно интерпретировать в другом. Наиболее часто для задания графа используется аналитический и матричный способы, а геометрический способ служит для иллюстрации полученных результа- тов.
88 * Часть 5. Элементы теории графов 10. Некоторые типы графов Эйлеровы графы К задачам на эйлеровы графы относятся головоломки, в которых тре- буется вычертить на плоскости одним росчерком замкнутые кривые, об- водя каждый участок в точности один раз. Введем следующие понятия. Эйлеровым путем в графе называется путь, содержащий все ребра графа. Эйлеровым циклом или эйлеровой цепью называется цикл, содержа- щий все ребра графа и притом по одному разу. Граф, обладающий эйлеровым циклом, называется эйлеровым гра- фом. Замкнутую линию, если ее можно начертить, не отрывая каранда- ша от бумаги, проходя при этом каждый участок в точности один раз, принято называть уникурсальной. Рисунок графа, обладающего эйлеровым путем или эйлеровым цик- лом, является уникурсальной линией. Докажем следующие две теоремы. Теорема 1. Если граф G(V, Е) обладает эйлеровым циклом, то он связный и все его вершины четные. Доказательство. Связность графа следует из определения эйлерова цик- ла. Эйлеров цикл содержит каждое ребро и притом только один раз, по- этому, сколько раз эйлеров путь приведет конец карандаша в вершину, столько и выведет, причем уже по другому ребру. Следовательно, степень каждой вершины графа должна состоять из двух одинаковых слагаемых: одно — результат подсчета входов в вершину, другое — выходов. Теорема 2. Если граф G(V, Е) связный и все его вершины четные, то он обладает эйлеровым циклом. ______________________________________________________________ Доказательство. Если начать путь из произвольной вершины графа G(V, Е), то найдется цикл, содержащий все ребра графа. Пусть vL — произ- вольная вершина. Из с,- начнем путь по I по одному из ребер и продолжим его, проходя каждый раз по новому ребру. Все вершины графа имеют чет- ные степени, поэтому если I есть «выход» из к, , то должен быть и «вход» в V}, также как и для любой другой вершины. И если есть «вход» в верши- ну, то должен быть и «выход». Так как число ребер конечно, то этот путь
10. Некоторые типы графов 89 должен окончиться, причем в вершине и,. Если путь, замкнувшийся в щ, проходит через все ребра графа, то мы получим искомый эйлеров цикл. Для построения эйлерова цикла в связном графе со всеми вершинами четной степени применяется следующий алгоритм: 1. Выйти из произвольной вершины Vj. Каждое пройденное ребро за- черкнуть. Если путь Zi замыкается в vt и проходит через все ребра графа, то получим искомый эйлеров цикл. 2. Если остались непройденные ребра, то должна существовать вер- шина V2, принадлежащая Zi и ребру, не вошедшему в 1. 3. Так как v2 — четная, то число ребер, которым принадлежит V2 и которые не вошли в путь Zi, тоже четно. Начнем новый путь I2 из г>2 и используем только ребра, не принадлежащие 1у. Этот путь кончится в г>2- 4. Объединим теперь оба цикла: из о, пройдем по пути Zi к i>2, затем по I2 и, вернувшись в t>2, пройдем по оставшейся части обратно в Vi. 5. Если снова найдутся ребра, которые не вошли в путь, то найдем новые циклы. Так как число ребер и вершин конечно, то процесс закон- чится. Таким образом, замкнутую фигуру, в которой все вершины четные, можно начертить одним росчерком без повторений и начиная с любой точки. На практике эйлеровым графом может быть план выставки; это по- зволяет расставить указатели маршрута, чтобы посетитель смог пройти по каждому залу в точности по одному разу. Гамильтоновы графы Граф, обладающий гамильтоновым циклом, называется гамилътоно вым графом. Гамильтоновым циклом, или путем в графе, называется цикл, или путь, проходящий через каждую вершину графа в точности по одному разу. Эйлеровы и гамильтоновы пути сходны по способу задания. Первые содержат все ребра, и притом по одному разу, вторые — все вершины по од- ному разу. Но, несмотря на внешнее сходство, задачи их отыскания резко отличаются по степени трудности. Для решения вопроса о существовании эйлерова цикла в графе достаточно выяснить, все ли его вершины четные. Критерий же существования гамильтонова цикла на произвольном графе еще не найден. Однако есть несколько достаточных условий существования гамиль- тоновых циклов в графе: 1. Всякий полный граф является гамильтоновым, так как он содер- жит простой цикл, которому принадлежат все вершины данного графа.
90 Часть 5. Элементы теории графов 2. Если граф, помимо простого цикла, проходящего через все его вер- шины, содержит и другие ребра, то он также является гамильтоновым. 3. Если граф имеет один гамильтонов цикл, то он может иметь и дру- гие гамильтоновы циклы. Седьмое практическое занятие по теме «Графы» Задача 1. Изобразите графически: 1) неориентированное и ориентированное ребра; 2) неориентированный граф G(V, Е), заданный множеством V = {и0, щ, ог, Гз, 04,05} и соответствием: Е(о0) = {01,02} = {00,02,04}; E(vi) = {00,02,04}; Е(о2) = {оо, ох, о5}; E(v3) = {о4}; E(v5) = {о2}; 3) плоский граф; 4) полный неориентированный граф на трех, четырех и пяти вершинах; 5) неполный ориентированный граф на пяти вершинах; 6) петлю графа; 7) неориентированный и ориентированный мультиграф. Решение. неориентированное ориентированное ребро ребро
Седьмое практическое занятие по теме «Графы» 91 Мультиграф Ориентированный мультиграф Задача 2. Докажите, что в полном графе с п вершинами ребер. Решение. Каждой вершине в полном графе с п вершинами принадлежит п — 1 ребро, но в произведении п(п — 1) каждое ребро учтено дважды (так как одно ребро инцидентно двум вершинам). Следовательно, число ребер в полном графе п(п - 1) с п вершинами равно-------. Zj Задача 3. Девять шахматистов проводят турнир в один круг (каждый из участ- ников должен сыграть с остальными по одному разу). Покажите, что в любой момент найдутся два шахматиста, сыгравшие одинаковое число партий. Решение. Переведем условие задачи на язык графов. Каждому шахматисту по- ставим в соответствие вершину графа, соединим ребрами попарно вершины, соответствующие шахматистам, уже сыгравшим между собой партию. Получим граф с девятью вершинами. Степени его вершин равняются числу партий, сы- гранных соответствующими игроками. Покажем, что во всяком графе с девятью вершинами всегда найдутся хотя бы две вершины одинаковой степени. Каждая вершина графа с девятью вершинами может иметь степень 0,1, 2, 3, 4, 5, 6, 7, 8. Предположим, что существует граф G, все вершины которого имеют разную степень, т. е. каждое из чисел последовательности 0, 1, 2, 3, 4, 5, 6, 7, 8 является степенью одной и только одной из его вершин. Но этого не может быть, так как если в графе есть вершина и, степени 0, то в нем найдется верши- на и, со степенью 8. Эта вершина Vj должна быть соединена ребрами со всеми остальными вершинами графа, в том числе и с о,, поэтому степень вершины v, не может равняться 0. Таким образом, в графе с девятью вершинами не могут быть одновременно вершины степени 0 и 8. Следовательно, найдутся хотя бы две вершины, степени которых равны между собой. Таким образом, доказано, что в любой момент найдутся хотя бы два шахматиста, сыгравшие одинаковое число партий. Задача 4. (Для самостоятельного решения.) Девять человек проводят шахматный турнир в один круг. К некоторому моменту выясняется, что двое сыграли одинаковое число партий. Докажите,
92 Часть 5. Элементы теории графов что тогда либо один участник еще не сыграл ни одной партии, либо один сыграл все партии. Задача 5. Может ли так случиться, что в одной компании из шести человек каждый знаком с двумя и только с двумя другими? Решение. Участников этой компании изобразим вершиной графа (рис. 5.1), а отношение знакомства между двумя участниками — ребром. Изобразим графы, которые могут соответствовать такой компании. Рис. 5.1 Про граф Gi говорят, что он связный, так как из каждой вершины по ребрам можно попасть в любую другую. Делаем вывод, что в этом случае каждый через своих знакомых может познакомиться со всеми остальными. Про граф Gz говорят, что он несвязный, так как состоит из двух простых цик- лов. Делаем вывод, что граф соответствует двум компаниям, участники одной из них могут быть не знакомы с участниками другой. Задача 6. Из пункта А в пункт В выехали пять машин одной марки разного цвета: белая, черная, красная, синяя, зеленая. Черная едет впереди синей, зеленая — впереди белой, но позади синей, красная впереди черной. Какая машина едет первой и какая последней? Решение. Решаем задачу, построив ориентированный граф для отношения f: «х едет сзади у». На плоскости отметим пять точек, соответствующих каждой машине, и обозначим их первой буквой цвета машины (рис. 5.2). Рис. 5.2 Анализируя граф, получаем следующий порядок движения: красная, чер- ная, синяя,зеленая,белая. Задача 7. Пусть даны графы Gi(X, Е) и Gz(Y, Е), изображенные на рис. 5.3. Установите, изоморфны ли данные графы. Решение. Для доказательства того, что граф Gi изоморфен графу Gz необходимо и достаточно выполнение условия: найти такую подстановку, которая граф G| переводит в граф Gz- Запишем элементы хёХиубУс соответствующими им парами чисел, где первое число — число исходов из вершины, а второе — число заходов в
Седьмое практическое занятие по теме «Графы» 93 вершину. Далее определим частичную подстановку, соединяя вершины х, и у, с одинаковыми числами (рис. 5.4). xi(l, 1) х2(1,1) х3(3,2) х4(1,2) х5(2, 2) х6(2, 2) х7(1,1) У1(2,2) у2(1,1) у3(2,2) 1/4(1,1) 1/5(1,2) г/6(1,1) г/7(3,2) Рис. 5.4 В результате получим подстановку Xi х2 х3 х4 х5 У4 У2 У7 Уб Уз Хб х7 У1 Уб Следовательно, графы Gi и G2 изоморфны. Задача 8. Для неориентированного графа, изображенного на рис. 5.5, постройте матрицу смежности и матрицу инцидентности. Рис. 5.5
94 Часть 5. Элементы теории графов Решение. Матрица смежности А В С D Е О 1 1 О О А 1 О 1 1 1 В 10 0 10 1 0 11 10 0 110 С D Е Матрица инцидентности А В С D Е 1 1 О О о 1 10 0 ООО 110 О 1 1 О 0 1 2 3 4 ООО 110 0 11 ООО 10 1 5 6 7 Задача 9. Задан граф G(F, .Е), где У = {oi, 02,03, v^,v^}',EVt = {01, v3, v5}; EV2 — 0; Evs = {vi,v2,v5};EVi = {01};Ер6 = {01, v2, v3, v4,o5}. 1. Задайте граф с помощью бинарного отношения, т. е. совокупности множе- ства V и подмножества множества упорядоченных пар (о,-, Vj) € V х V. 2. Изобразите орграф на рисунке. 3. Постройте матрицу смежности. Решение. 1. V = {щ, О2, v3, v4, о5}. Множество пар: {(01,01); (01,03); (^1,^5); (^3,^1); (у3, v2); (03,05); (04,01); (05, fl); <U5, V2}; (o5, 03); (o5, 04); (o5, O5)}. 2. См. рис. 5.6.
Седьмое практическое занятие по теме «Графы» 95 Задача 10. Дано множество V = {1,2,3,4,5}. На этом множестве задано отно- шение f: х> у. Постройте орграф данного отношения. Решение. Для того чтобы построить орграф данного отношения f: х > у, изо- бразим все элементы множества V точками на плоскости и проведем стрелку от каждого большего числа к меньшему (рис. 5.7). Рис. 5.7 Задача 11. Дана матрица 1 2 3 4 О О 1 3 1 2 0 0 0 10 0 0 1 10 0 2 3 4 Постройте орграф, для которого данная матрица является матрицей смеж- ности. Найдите матрицу инцидентности орграфа. Решение. Для построения орграфа его вершине однозначно сопоставим точку на плоскости. Данная матрица смежности имеет четыре строки и четыре столбца, следовательно, в орграфе четыре вершины: 1, 2, 3, 4. Проанализируем элементы матрицы: «и =0 — при вершине 1 нет петель; <112 = 2 — из вершины 1 выходят две стрелки к вершине 2; «13 = 0 — из 1 не выходит ни одной стрелки к вершине 3; «14 = 0 — из 1 не выходит ни одной стрелки к вершине 4; «21 =0 — из 2 не выходит ни одной стрелки к вершине 1; «22 — 0 — при 2 не петель; «23 = 1 — из 2 выходит одна стрелка к вершине 3; «24 =0 — из 2 не выходит ни одной стрелки к вершине 4; «31 = 1 — из 3 выходит одна стрелка к вершине 1; «32 — 0 — из 3 не выходит ни одной стрелки к вершине 2; «зз =0 — при 3 нет петель; «34 = 1 — из 3 выходит одна стрелка к вершине 4; «41 =3 — из 4 выходит 3 стрелки к вершине 1; «42 = 1 — из 4 выходит одна стрелка к вершине 2;
96 * Часть 5. Элементы теории графов <143 = о — из 4 не выходит ни одной стрелки к вершине 3; «44 = 0 — при 4 нет петель. Строим орграф (рис. 5.8). Рис. 5.8 Для построенного графа запишем матрицу инцидентности: 1 2 3 4 1 -1 0 0 1 1 -1 -1 0 0 1 0 0 2 3 0 0 0 -1 1-10 0 -10 10 0 1-11 -1 -1 О О О О 1 1 8 9 Здесь четыре строки по числу вершин и 9 столбцов по числу дуг. Задача 12. Пусть заданы два графа Gi(V, Ei), Gz(Vz, £2) (рис. 5.9). Рис. 5.9 Изобразите геометрически объединение графов G[ U G2; пересечение графов Gi П G2 и сумму по модулю два Gi ф Gg. Решение. Объединение графов Gi и G2: Gi U G2 (рис. 5.10). Пересечение графов Gi и G2: Gi П G2 (рис. 5.11). Сумма по модулю два графов Gi и G2: Gi ф Gz (рис. 5.12).
Седьмое практическое занятие по теме «Графы» 97 Задача 13. Найдите эйлеров цикл в эйлеровом графе (рис. 5.13). Рис. 5.13 Решение. После выбора вершины а и прохождении ребер 1 и 2 имеются три возможности выбора: ребра 3, 6 или 7. Выбираем ребро 3 или 6. Например, ребро 3. Далее обходим оставшиеся ребра и получаем эйлеров цикл 1, 2, 3, 4, 5, 6, 7, 8. Задача 14. Найдите цикл, содержащий все вершины додекаэдра, причем в точ- ности по одному разу каждую. Решение. Этот цикл: 1, 2,3, 4, 5,6, 19,18,14,15,16,17, 7,8, 9, 10,11,12,13, 20. Этот цикл называется гамильтоновым циклом (рис. 5.14). 4-6234
98 Часть 5. Элементы теории графов Задача 15. (Для самостоятельного решения.) Покажите, что в изображенном графе нет гамильтонова пути, но в графе, полученном из него удалением одной из вершин, имеется гамильтонов цикл (рис. 5.15). Рис. 5.15 Задача 16. (Для самостоятельного решения.) Даны графы Gi и Gg (рис. 5.16). Постройте матрицы смежности.
Контрольные вопросы 99 Gi Рис. 5.16 Контрольные вопросы 1. Что называется графом? Ориентированным графом? Приведите примеры. 2. Что такое степень вершины? 3. Перечислите основные понятия, связанные с неориентированными гра- фами. 4. Перечислите основные понятия, связанные с орграфами. 5. Перечислите способы задания графов. 6. В чем состоит аналитический способ задания графа? 7. В чем состоит геометрический способ задания графа? 8. В чем состоит матричный способ задания графа? 9. Какая матрица называется матрицей смежности графа? 10. Какая матрица называется матрицей инцидентности графа? 11. Что называется маршрутом, циклом и цепью графа? 12. Сформулируйте понятие связности графа. Какой граф называют связ- ным? 13. Какие два графа называются изоморфными? 14. Сформулируйте алгоритм изоморфизма двух графов. 15. Перечислите операции над графами. 16. Дайте определение эйлерова графа. 17. Сформулируйте алгоритм построения эйлерова цикла. 18. Какой граф называют гамильтоновым? 4"
Часть 6 Элементы теории кодирования — Лекции 13-15 1. Кодирование как способ представления информации Теория кодирования представляет собой один из разделов дискретной математики, в котором рассматривается процесс представления инфор- мации в определенной стандартной форме и обратный процесс восстано- вления информации по этому представлению. Рассмотрим следующие примеры. Пример 1. Представление натуральных чисел в десятичной системе исчисления. При таком представлении каждому числу п е N = {1,2,...} ставится в соответствие последовательность (слово) аг }_аг--2-..а^а^, та- кая, что п = щ_110г 1 + аг _210г 2 + ... + ailO + ао: а 0; щ G {0,1,..., 9}. Пример 2. Задание (кодирование) геометрических фигур (объектов) уравнениями в системе координат. Так, уравнение у = kx + b кодиру- ет прямую. Уравнение х2 + у2 = R2 кодирует окружность. Уравнение у = ах2 + Ъх + с, а 0 кодирует параболу. Рассмотренные примеры показывают, насколько широко применяет- ся кодирование информации в деятельности человека. Прежде средства кодирования играли вспомогательную роль и не рассматривались как от- дельный предмет математического изучения, но с появлением компьюте- ров ситуация радикально изменилась. Кодирование является централь- ным вопросом при решении практически всех задач программирования: — представления данных произвольной природы в памяти компью- тера; — защита информации от несанкционированного доступа; — обеспечение помехоустойчивости при передаче данных по каналам связи; — сжатие информации в базах данных.
2. Кодирование и декодирование 101 2. Кодирование и декодирование Кодированием называется отображение произвольного множества А в множество конечных последовательностей в некотором алфавите В, а декодированием — обратное отображение. Изучение различных свойств кодирования и декодирования, а также построение кодирований (кодов), обладающих требуемыми свойствами, составляет предмет исследований теории кодирования. Требуемые свойства связаны обычно с простотой реализации кодиро- вания и декодирования, с обеспечением помехоустойчивости и т. д. Под помехоустойчивостью понимается возможность однозначного декодиро- вания при отсутствии или допустимом уровне искажений в кодовых сло- вах. 3. Помехоустойчивое кодирование Важная роль помехоустойчивого кодирования обусловлена недопус- тимостью ошибок в вычислительных системах, также использованием кодов, исправляющих или обнаруживающих ошибки на выходе вычис- лительных устройств. Таким образом, помехоустойчивость или исправ- ление ошибок является функцией декодирования. 4. Канал связи Передача информации сводится к передаче по каналу связи слов, ко- торые могут искажаться и поэтому восприниматься неверно. Рассмотрим принципиальную схему цифровой системы связи с использованием коди- рования и декодирования (рис. 6.1). Источником сообщений является, как правило, сообщение, состоя- щее из двоичных или десятеричных цифр, или же текст, записанный с помощью некоторого алфавита. Кодирующее устройство преобразует эти сообщения в сигналы, которые могут быть переданы по каналу связи. Эти сигналы поступают в канал и искажаются шумом либо злоумышленни- ком. Затем искаженный сигнал поступает в декодирующее устройство, в котором исходное сообщение восстанавливается (исправляются ошибки и декодируются) и затем направляется получателю.
102 Часть 6. Элементы теории кодирования Рис. 6.1 В идеальном случае символы, которые появляются на выходе декоди- рующего устройства, должны совпадать с символами, которые поступают на вход кодирующего устройства. Но в реальных системах передачи и об- работки информации появляются случайные и преднамеренные ошибки. Поэтому назначение кодов состоит в том, чтобы обнаружить и, быть может, исправить такие ошибки. 5. Криптология Конфиденциальной (секретной) информацией называется информа- ция, которая по соглашению между ее отправителем и получателем не предназначена для третьих лиц. Исследованием и разработкой математических методов конфиденци- альной информации, передаваемой отправителем получателю по общедо- ступным каналам связи, занимается криптология, одной из составляю- щих которой является криптография. Криптография разрабатывает ме- тоды защиты информации, т. е. представляет один из классов кодирова- ния с целенаправленным изменением открытого текста, которое затруд- няет получение содержащейся в нем конфиденциальной информации. 6. Алфавитное кодирование В различных задачах, связанных с обработкой, передачей и хране- нием информации, а также в связи с потребностями техники возникает
7. Математическое изучение алфавитного кодирования 103 необходимость преобразования информации в более удобной форме. Ко- дирование, применяемое для этих целей, называется алфавитным коди- рованием. Алфавитное кодирование — это представление информации в стандартной форме, при которой элементарным синтаксическим еди- ницам языка сообщений (буквам алфавита) последовательно сопоставля- ются кодовые комбинации символов из некоторого заданного алфавита. Под информацией здесь понимаем линейную последовательность букв (слова). Примером алфавитного кодирования может служить известный код Морзе (азбука Морзе), в котором слова кодируются побуквенно. А бу- квам сопоставляются слова в алфавите из трех символов {•, —, Л}, где Л — пробел. Другим примером алфавитного кодирования является десятичная си- стема счисления, рассмотренная в первом примере. В современных компьютерах в основном применяется двоичное ко- дирование, при котором любому символу исходного алфавита (буква, ци- фра, символы арифметических операций, специальные знаки и т. д.) ста- вится в соответствие их двоичный код. Кроме того, алфавитное кодиро- вание применяется в криптологии для маскировки конфиденциальной информации. 7. Математическое изучение алфавитного кодирования Пусть задан алфавит сообщений А = {«i, а%,..., ап }, состоящий из ко- нечного числа букв: конечное множество. Конечная последовательность букв из А а = aixai2...aik называется словом в алфавите А, а число k — длиной слова а; если k = 0, то слово называют пустым и обозначают Л. Множество всех непустых слов конечной длины в алфавите А обозна- чим через А*. Если S С A* (S — подмножество множества А*), то слова из S назы- ваются сообщениями, а объект, порождающий слова из S, — источником сообщений. Источником сообщений может быть человек, автомат и т. д. Пусть, кроме алфавита А, задан еще алфавит В = {fc>i, Ьг, , Ьт}. За- дадим отображение f, которое каждому слову a G S ставит в соответствие слово Р G В*, где В* — множество всех непустых слов конечной длины в алфавите В. Слово Р будем называть кодом сообщения а, а процесс перехода от слова а к слову р — кодированием.
104 Часть 6. Элементы теории кодирования Алфавитное кодирование определяется следующим образом. В мно- жестве В* выбираются некоторым образом г слов Pi, Рг, •••, Рг, называе- мых элементарными кодами. По определению получаем, что f(a{) = Р,, i = 1,2,..., г. Тогда код любого слова а = aitа^. ..а^ 6 А* есть следующее слово: р(а) = f(ail)f(ai2)...f(aik) = рг1р,,...р!р. Схема, определяющая отображение f на буквах алфавита А, называ- ется схемой кодирования, обозначается X и оформляется в виде таблицы: П] 02 ... а,- аг Р1 Р2 ... Рг Рг Множество кодовых слов {Pi, Р2,..., рг} будем обозначать C(Z). 8. Проблема взаимной однозначности Одним из основных вопросов в кодировании является проблема вза- имной однозначности, т. е. возможность по коду р сообщения а однознач- но восстановить сс. Возникает вопрос: возможно ли по схеме алфавитного кодирования узнать, обладает ли алфавитное кодирование свойством однозначности или нет? Если решать эту задачу, исходя из определения, то нужно пере- брать бесконечное число слов, так как для каждого кода нужно устано- вить, допускает или не допускает этот код однозначное кодирование. 9. Достаточный признак взаимной однозначности алфавитного кодирования Прежде, чем устанавливать общий критерий взаимной однозначно- сти алфавитного кодирования, приведем простой достаточный признак взаимной однозначности. Введем следующие понятия. Если Р = Р'Р", то Р' называется началом, или префиксом, слова р, а Р" — окончанием, или постфиксом, слова р. Если Р' Л, то Р' называется собственным началом. Если Р" Л, то Р" называется собственным окончанием слова р.
9. Достаточный признак взаимной однозначности алфавитного кодирования ‘105 Определение. Схема алфавитного кодирования обладает свойствами пре- фикса, если ни один элементарный код не является префиксом другого эле- ментарного кода. Теорема 1. Если схема X алфавитного кодирования обладает свойством префикса, то алфавитное кодирование взаимно однозначно. Доказательство. Допустим, что некоторое слово Р G В* допускает два декодирования. Это значит, что Р можно представить в двух видах: p1 = pilpt2...pi4;p2 = pyip72...p;,. Так как эти представления различны, то существует такое р, что 1 р min(Ze, I), для которого Pip Р7р. Но тогда одно из слов Pi и р2 есть префикс другого. Это противоречит условию теоремы. Следовательно, на- ше утверждение о существовании двух декодирований неверно. Теорема доказана. Заметим, что условие префиксности не является необходимым, т. е. другими словами, схема алфавитного кодирования может не обладать свойствами префиксности, но алфавитное кодирование, задаваемое этой схемой, будет взаимно однозначным. --------------------------------------------------------------- Определение. Слово ЬДлп_1...bh будем называть обратным к слову р = = и обозначать р-1. Определение. Схему кодирования, полученную из схемы кодирования E{Pi,...,pr} заменой каждого элементарного кода рг на рг1, будем назы- вать обратной к схеме X и обозначать X-1. Введенное понятие позволяет усилить теорему 1. Теорема 2. Если схема X или схема Iй обладает свойством префикса, то тогда алфавитное кодирование, определяемое схемой Е(Е 1), будет взаим- но однозначным. Доказательство. Очевидно, что алфавитные кодирования, задаваемые схемами X и X1, одновременно или обладают, или не обладают свойством взаимной однозначности. Отсюда немедленно следует справедливость те- оремы 2. Заметим, что условие теоремы 2 не является необходимым, так как существуют схемы кодирования X, со свойством взаимной однозначности, но такие, что ни X, ни Z-1 не обладают свойством префиксности.
106 Часть 6. Элементы теории кодирования 10. Общий критерий взаимной однозначности Для вывода общего критерия взаимной однозначности понадобится следующее понятие. Представление элементарного кода р, схемы алфавитного кодирова- ния Z в виде рг = р'р(1...рг,;Р", где слово Р' не может оканчиваться на элементарный код, а слово Р" на- чинаться с элементарного кода, будем называть нетривиальным разло- жением элементарного кода. При этом одно из слов Р' или Р" может быть пустым (Л). Для определения однозначности или неоднозначности схемы алфа- витного кодирования существует эффективный алгоритм, использую- щий понятие нетривиального разложения элементарных кодов. Опишем этот алгоритм. 1. Для каждого элементарного кода выписываем все нетривиальные разложения. 2. Выписываем множество М^, состоящее из слов р', которые входят в качестве начал в нетривиальные разложения элементарных кодов. 3. Выписываем множество М2, состоящее из всех слов Р", которые являются окончанием нетривиальных разложений элементарных кодов. 4. Составляем множество М = Mi П М2 U {л}, т. е. множество слов, встречающихся как в качестве начала, так и в качестве окончания в не- тривиальных разложениях элементарных кодов. 5. Выписываем все разложения элементарных кодов, связанных с множеством М, т. е. все разложения элементарных кодов вида: р, = Р'р(1...рг,р", где Р', Р" 6 М, a k может быть равно 0. 6. По разложениям, полученным в пункте 5, строится ориентиро- ванный граф Gy следующим образом. Вершины графа отождествляют с элементами множества М. Пара вершин Р' и Р" соединяются ориентиро- ванными ребрами в том и только в том случае, если существует разло- жение Рлрг1...р/л,Р". При этом ребру (Р',Р") приписывается слово Р^-.-Р^, соответствующее этому разложению. 7. По полученному графу Gy легко проверить, обладает или нет исход- ная схема кодирования свойством взаимной однозначности. Справедлива следующая теорема.
Восьмое практическое занятие по теме «Алфавитное кодирование» 107 Теорема 3 (А. А. Маркова). Алфавитное кодирование со схемой Хне обла- дает свойством взаимной однозначности тогда и только тогда, когда граф Gi содержит ориентированный цикл (контур), проходящий через вершину Л. Т. е. алфавитное кодирование является взаимно однозначным тогда и толь- ко тогда, когда в графе Gz отсутствуют контуры и петли, проходящие через вершины Л. Замечание. Напомним, что если схема алфавитного кодирования X не обладает свойством взаимной однозначности, то это означает, что суще- ствуют слова из В*, допускающие два кодирования. Одно из таких слов р легко находится по графу G^. Для записи слова Р нужно посмотреть ориентированный цикл, про- ходящий через вершину Л, начиная с Л, и выписать последовательно все слова, приписанные ребрам и вершинам, входящим в этот цикл. Восьмое практическое занятие по теме «Алфавитное кодирование» Задача 1. Задано алфавитное кодирование, для которогоА = {ai,a2};B = {bi,fez} и схема X задана таблицей _______ а2 bi bib2 Выясните, обладает ли эта схема кодирования свойством однозначности. Решение. Процесс декодирования осуществляется следующим образом: код Р слова а разбивается на элементарные коды. Для этого в слове Р последователь- но находятся все буквы Ь2 и затем выделяются пары bb2, каждая такая пара соответствует букве а2. Оставшиеся буквы Ь соответствуют букве ai. Так код Р = bibib]b2bib2bib2bibtb2 разбивается однозначно на элементарные коды: р = (&1М&1М&1&2М&1&2)(&1&2М&1)(&1&2). Следовательно, исходное сообщение есть слово а = aaia2a2a2aia2. Задача 2. Пусть схема X задана следующей таблицей П1 а2 аз bi bi b2bibi bibib2 Покажите, что эта схема не обладает свойством однозначности. Решение. Рассмотрим слово Р = bibib2bibib2bbi. Это слово допускает два декодирования. Pi — (bibi)(b2bibi)(bzbibi), Рг = (bifejfezXbibifezXbibi), тогда щ = щаг^г! осг = азазй1. Следовательно, схема X не обладает свойством однозначности.
108 Часть 6. Элементы теории кодирования Задача 3. Выясните, обладает ли код С(Е) свойством префикса: l)C(E) = {a,ba,bb, bbba}, 2) C(Z)= {ab, bb, ba, aab}, 3) C(E) = {ac, c, bb, abc, bac, abb, abcb}, 4) C(L) = {a, ba, cfb, acb}, 5) C(E) = {a, ba, bba, ...,(bna,...)}, 6) C(L) = {a, ba, ...,b(a)n,...}. Ответ: (1); (3); (4); (6) — C(L) не обладает свойством префикса. (2); (5) — C(L) обладает свойством префикса. Задача 4. Схема алфавитного кодирования Z задана таблицей П1 аг аз bi Ь1Ьг ЬзЬ1 Покажите, что ни X, ни X-1 не обладают свойством префикса, но тем ни менее алфавитное кодирование, задаваемое этой схемой, является взаимно- однозначным. Решение. Схема X не обладает свойством префикса, так как fej является префик- сом слова bbz. С другой стороны, в схеме С(Е’) = {bi, Ьг, bi, bi, Ьз} fe, является префиксом слова fe| По коду Р любого слова а. е А*, А = {щ, а2, пз}> однозначно восстанавлива- ется это слово. Алгоритм восстановления следующий: 1. В кодовом слове Р находим все буквы fe2 и выделяем все пары fe|fe2. 2. Находим в кодовом слове Р все буквы fe2 и выделяем все пары ЬзЬу. 3. Каждую пару fejfe2 заменяем буквой а2, пару ЬзЬ] заменяем буквой а3, оставшиеся буквы fej заменяем на щ. В результате получим исходное сообщение (слово) а. Действительно пусть Р = Ь1Ь1Ь2ЬзЬ1Ь1Ь1Ь1Ь2Ь1ЬзЬ1, Р = (&1)(&1&2Х&3&1)(&1)(&1М&1&2Х&1)(&3&1), СХ = ^3* Задача 5. Выясните, является ли код С(Е) с кодирующим алфавитом {0,1, 2} однозначно декодируемым: 1){01,201,112,122,0112}; 2){001,021,102,201,001121,01012101}; 3) {0,01,0010001001}; 4) {20,01202,22, 2001,2012010,10201121,1112}; 5) {01,011,100,2100,101210,001210}; 6){01,011,100,2100,10110,00112}; 7){01,12,021,0102,10112}; 8){01,12,012,111,0102,10112,01112}; 9) {01,12,012,0102,020112}; 10) {01,10, 210,121,0210,0112};
Восьмое практическое занятие по теме «Алфавитное кодирование» 109 11){01,10,210,201,0210,011022,2221}; 12) {01,10, 210,201,0210,011022,221}; 13) {01,10, 210, 201,0210,011022}; 14){01,12, 011, 01210, 20120, 2011220}; 15){01,12,011,01210, 201120, 2011220}; 16){000,0100,10,1001,0010010}; 17) {01, 12,01121,21201}. Задача 6. Алфавитное кодирование задано схемой Е в виде таблицы Ц] az аз СЦ <2.5 bib2 bib3b2 ь2ь3 b[b2byb3 b2bb2b2b3 С помощью общего критерия взаимной однозначности выясните, обладает ли эта схема кодирования свойством взаимной однозначности или нет. Решение. Алгоритм решения. 1. Выпишем все нетривиальные разложения каждого элементарного кода: Pi = (М(М, Рг = (Ь1)(ЬзЬг) = (Ь1&з)(Ьа)> Рз = (ЬгХ^з), р4 = (feiMfobibs) = (Ь1Ьг)(Ь1Ьз) = (bib2bi)(b3), Ре = (.b2)(bib2)(b2b3) = (b2bi)(b2b2b3) = (b2bb2b2)(b3). 2. Выписываем множество Mi, состоящее из слов, входящих в качестве на- чал в нетривиальные разложения элементарных кодов. Mi = {bi; Ь1&з; b2; bb2‘, byb2bi; b2b", b2bb2b2]. 3. Выписываем множество М2, состоящее из слов, которые являются окон- чанием нетривиальных разложений элементарных кодов: М2 = {b2; b3b2; b3; b2bjb3; bb3; b2b3; b2b2b3}. 4. Составляем множество М = Мг С М2 U {Л}. М = {Л, b2, bib3}. 5. Выписываем все разложения элементарных кодов, связанных с элемен- тами множества М. Рг = (ЬУЬ3) Л (Ь2), Р4 = (bi b2)(bi b3) = ЛР1(Ь1Ьз), Ps = (b2)(bib2)(b2b3) = ЬгР1Рз Л . 6. По полученным разложениям строим ориентированный граф: вершины графа — элементы множествам = {Л, b2, bb3}. Пара вершин соединяется ориен- тированными ребрами в том и только в том случае, если существует разложение, где вершины графа входят в разложение в качестве начала и конца (рис. 6.2).
110 Часть 6. Элементы теории кодирования 7. В графе Gz присутствует ориентированный цикл, проходящий через вер- шину Л, следовательно, согласно теореме Маркова, алфавитное кодирование с заданной схемой не является взаимно-однозначным. 8. Выписывая слова, приписанные вершинам и дугам ориентированного цикла графа Gz, получаем слово декодируемое неоднозначно: Р — 616261636261626263, Pl = (Ь1^2)(Ь1^зЬ2)(Ь1&2)(Ь2^з). «1 = 111112^103» Рг = {bibzbib^bzbibzbzb^), «2 = 114115. Задача 7. Схема алфавитного кодирования задана таблицей О1 02 а3 (24 05 61 6261 61&2&2 62616262 62626262 Выясните, обладает ли эта схема свойством взаимной однозначности. Решение. 1. Выписываем все нетривиальные разложения элементарных кодов. Рг = (62М61), Рз = (61)(6262) = (Ь1&2)(Ь2), Р4 = (62)(616262) = (Ml W2) = (Ь2МЬ1)(М2) = (&2*1)(Ь2&2), Рб = (ЬгУ^ЬгЬг) = (ЬгЬгУФгЬг) = (616262X62). 2. Ml = {&2 j bl', &1&2> 626162» ^261; 6262; 626262}. 3. М2 = {61; 6262; 62; 616262; 626262}. 4. М = {62; 6262; 626262; Л}. 5. Р2 = (62)Р1Л, Рз = лР1(б2бг), Р4 = (6г)РзЛ = (6г)Р1 (6262) = лРгСбгбг), Ps = (62) А (626262) = (6262) Л (6262) = (616262) Л (62).
Восьмое практическое занятие по теме «Алфавитное кодирование» 111 6. Строим граф Gy (рис. 6.3). Рис. 6.3 7. В графе Gy отсутствуют контуры и петли, проходящие через вершину Л, следовательно, алфавитное кодирование с заданной схемой L однозначно деко- дируемо. Задача 8. Выясните, является ли кодирование C(Z) = {a, ab, cab, Ьаас} взаимно- однозначным. Решение. 1. Рг = (а)(Ь), Рз = (c)(ab) = (са)(Ь), Р4 = (Ь)(аас) = (Ьа)(ас) = (Ьаа)(с) = (Ь)(а)(а)(с). 2. Mi = {а; с; са; b; ba; baa}. 3. М2 = {b; ab; аас; ас; с}. 4. М = {Ь;с;Л}. 5. Р2 = ЛР1(Ь), Рз = ср2Л, Р4 = (b)PiPi(c)- 6. Строим граф Cy (рис. 6.4). Рис. 6.4
112 Часть 6. Элементы теории кодирования 7. Кодирование не является взаимно-однозначным, так как существует кон- тур, проходящий через вершину Л. 8. Получаем слово, декодируемое неоднозначно: Р = abaacab, Pl = (a)(feaac)(afe), Р2 = (afe)(a)(a)(cab). Задача 9. Выясните, является ли алфавитное кодирование со схемой L взаимно- однозначным, если: a) С(Х) = {а, Ь, aab}, б) C(Z) = {cab, abc, dec, abca, abeb}. Puc. 6.5 Решение. а) граф Gl содержит петлю (ЛЛ) (рис. 6.5а). Код не является однозначно кодируемым. Слово декодируемое неоднозначно: Р = (aab) = (a)(a)(fe). б) граф контуров и петель, проходящих через Л, не содержит (рис. 6.5(5). Кодирование является взаимно-однозначным. Задача 10. Покажите, что алфавитное кодирование с кодирующим алфавитом {0,1,2} и множеством кодирующих слов С(Х) = {01,201,112,122,0112} не является взаимно-однозначным. Решение. Построим граф (рис. 6.6). Он содержит контур, проходящий че- рез вершину Л, следовательно, кодирование не является взаимно-однозначным, причем декодируемое слово неоднозначно р = 0112201.
11. Двоичный алфавит “113 Задача 11. (Для самостоятельного решения.) Покажите, что алфавитное кодирование с кодирующим алфавитом {0,1,2} и множеством кодирующих слов: a) С(Х) = {001,021,102,201,001121,01012101} является однозначно коди- руемым; б) С(Е) = {0,01,0010001001} не является однозначно декодируемым. 11. Двоичный алфавит В современных компьютерах любая информация представляется в ви- де двоичных кодов, т. е. упорядоченных наборов двух различных симво- лов, которые обычно обозначаются через 0 и 1. Таким образом, алфавит, в котором записываются сообщения, считаем состоящим из двух символов {0,1}. Он называется двоичным алфавитом. Тогда сообщение есть конечная последовательность символов этого алфавита. Это простейшее алфавитное кодирование, которое является взаимно- однозначным, так как каждому символу исходного алфавита ставится в соответствие определенное двоичное число. Например, натуральному числу 23 соответствует двоичное число 10111,поскольку 23 = 1 24 + 0 23 + 1 • 22 + 1 • 21 + 1 2°. Полезно запомнить запись в двоичной системе первых шестнадцати натуральных чисел 0 1 2 3 4 5 6 7 0 1 10 11 100 101 110 111 8 9 10 11 12 13 14 15 1000 1001 1010 1011 1100 1101 1110 1111 5-6234
114 Часть 6. Элементы теории кодирования 12. Самокорректирующиеся коды Пусть мы имеем множество всех двоичных слов длины т. Эти слова передаются по каналу связи, в котором действует источник помех. Этот источник помех при передаче двоичного слова длины т может выдавать ошибки не более чем в р символах. Это означает, что двоичная последовательность, полученная на выхо- де канала, отличается от исходной не более чем в р позициях. Очевидно, что если исходное слово передавать без предварительного кодирования, то установить на выходе истинное сообщение практически невозможно. Поэтому возникает задача построения по исходному, любо- му слову ai«2- -а-m его самокорректирующегося кода {I > по- зволяющего по полученному на выходе канала кода Ь^Ь^.-.Ь^ однозначно восстановить передаваемый код b]b2-..bi, а значит, и исходное сообще- ние аа2-..ат. Напомним, что при передаче кода bib2...bi по каналу связи код, возможно, исказился и, следовательно, на выходе канала будет сло- во Ь^Ь^.-.Ь'р вообще говоря, отличающееся от bb2---bi не более чем в р позициях. Коды, обладающие выше указанными свойствами, называют само коррект ирующимися кодами относительно источника помех или кодами, исправляющими р ошибок. 13. Коды Хемминга Перейдем к построению самокорректирующихся кодов для случая р = 1, которые называются кодами Хемминга. Будем считать, что в кана- ле связи при передаче сообщения может произойти не более одной ошиб- ки. Это означает, что если исходное сообщение аа2-..ат кодируется на- бором b]b2- -bi (I = т + k), то на выходе возможны следующие варианты кодов: b1b2.. br, b^.-bp, b^-.-bp, ...; b1b2...bi. Таким образом, число вариантов равно I +1. Поясним, что ошибка мо- жет не произойти, либо она произойдет в одном из I разрядов, и символ bi заменится на противоположный bj. Число дополнительных разрядов для построения кодов Хемминга нужно выбрать так, чтобы их хватило для кодирования перечисленных 1+1 случаев. Следовательно, необходимо, чтобы 2k^l+l или 2т^-2/-. 1 + 1
14. Алгоритм построения кода Хемминга *115 Поэтому, зная т, I выбираем как наименьшее целое число, удовле- творяющее условию: 2 1+ г Число I называется длиной кода Хемминга. Число т — число инфор- мационных символов. Замечание. Учитывая, что I = т + k, можно выбирать не I, а число k, кото- рое называется числом контрольных символов и является наименьшим целым числом, удовлетворяющим условию: 2k k + т + 1. Например, если т = 4, то I = 7, k = 3; если т = 9, то I = 13, k = 4. Таким образом, при построении кодов Хемминга, первое, что нужно сделать: это по числу т определить числа k и I. 14. Алгоритм построения кода Хемминга Пусть для сообщения а = аа2...ат длины т необходимо построить код Хемминга. Возьмем т = 9; исходное сообщение а = 101110111 = а1а2аза4а§аба^8ад. Тогда I = 13, k = 4; код Хемминга р = &1&2^3&4&5&6&7&8&9^1О^11^12^13- (1) Представим каждое число i из множества L = {1,2,...,/} в виде /г-разрядного двоичного числа т = V^-iVk-2- -ViVo- Результаты запишем в виде таблицы x 1 2 3 4 5 6 7 8 9 10 11 12 13 Vo 1 0 1 0 1 0 1 0 1 0 1 0 1 Vi 0 1 1 0 0 1 1 0 0 1 1 0 0 v2 0 0 0 1 1 1 1 0 0 0 0 1 1 v3 0 0 0 0 0 0 0 1 1 1 1 1 1 (2) Разберем множество L на k подмножеств следующим образом: £() = {i G Lo : Vo = 1}; Lo = {1,3, 5, 7,9,11,13}, Li = {i G Li : Vi = 1}; Li = {2, 3,6, 7,10,11}, L2 = {i G L2 : V2 = 1}; L2 = {4, 5, 6, 7,12,13}, L3 = {i G L3 : V3 = 1}; L3 = {8,9,10,11,12,13}. 5*
116 Часть 6. Элементы теории кодирования (3) Первые элементы (их ровно /?) этих множеств есть степени числа 2; они определяют номера контрольных разрядов кода Хемминга. Осталь- ные элементы множества L определяют номера информационных разря- дов. Следовательно, в коде Хемминга разряды bi&2^4^8 — контрольные, остальные разряды &3^5&6b7&9bio&ii&i2bi3 — информационные. (4) Формирование значений информационных символов. Информационные символы кода Хемминга формируются естествен- ным образом из символов исходного сообщения aia2-..am. А именно: t>3 = Я]; 65 = «2; &б = Фз! ^7 = а4', Ьд = а§; Ью = «65 Ьц = а7; &12 = as; t>13 = ад. Так как исходное сообщение а = 101110111, то b% = 1; Ь§ = 0; bg = 1; i>7 = 1; Ьд = 1; bio = 0; Ьц = Ь12 = bis = 1- (5) Формирование значений контрольных символов. После определения информационных символов контрольные симво- лы определяются следующим образом: ^1 = ® j 6 Lg; ] 1, = ^1’ 7 7^2, Ь4 = Ф^2^у’ J L2; 4, ^8 = ®У2^7’ i /7^8. Здесь — сумма по модулю два, bj — разряды, имеющие номера из соответствующих множеств L/. В примере будем иметь: bi = bs ф b5 ф Ь7 ф Ьд ф Ьц ф &13 = 1 ф 0 ф 1 ф 1 ф 1 ф 1 = 1, Ь2 = Ь3 ф Ь6 ф Ь7 ф &ю Ф Ьц = 1 ф 1 ф 1 ф 0 ф 1 = 0, &4 = Ь5 ф &6 ф Ь7 ф &12 ф &13 = 0 ф 1 ф 1 ф 1 = 0, bs — Ьд ф big ф Ьц ф Ь12 ф &13 = 1ф0ф1ф1ф1=0. (6) Окончательно, для сообщения а = 101110111 код Хемминга Р будет следующим: Р = bib2b3b4b5beb7bsbgbiObiibi2bi3 = 1010011010111. Таким образом, можно построить код Хемминга для сообщения с лю- бым набором длины т. 15. Обнаружение ошибки в кодах Хемминга Пусть при передаче кода Р = bib2-..bi произошла ошибка в разряде с номером t, т. е. на выходе канала получено слово Р' = bibz...bt -ibtbt+i...bi.
15. Обнаружение ошибки в кодах Хемминга 117 Представим t в виде /г-разрядного двоичного числа: t = Vk i...ViVq. Покажем, как по коду Р' найти разряды Vt числа t. Рассмотрим t' = где: У0 - ® Е ^7’ G ^°’ у1 = ®52&р y’GLi’ n_i=®Ety Покажем, что t' = t, т. е. V'o = Vq; V[ = V^; ...; V'k_1 = V^-i. Рассмотрим ситуации: 1. Пусть Vi = 0; это значит, что t 0 Li = {j Е : Vt = 1}. Следовательно, все разряды с номерами из L, получены на выходе канала без искажения, т. е. b't = bt, t Е Lt. Так как &2, = ф^З&у, j Е Lt, j 21 а это равносильно равенству ф ^2 Ь'= = V't = 0 = Vt (j Е Ц). 2. Пусть Vi = 1, тогда t Е L, = {j Е L; : Vt = 1}, и некоторый раз- ряд с номером из Li получен на выходе канала с искажением, т. е. для некоторого q из L, b'q = bq = bq ф 1, а для всех j Е Lt, j q, b'j = bj. Отсюда получаем У£ = Ф J2 &' = (Ф J2 &7)Ф1 = Оф 1 = 1. Следовательно, и в этом случае У; = У-. Пусть в рассмотренной выше задаче ошибка при передаче кодового слова Р = &1&2&3^4&5&6&7^8&9&1оЬ11&12&13 = 1010011010111 произошла в 11 разряде (t = 11). Т. е. на выходе канала получено сообщение Р' = &'1&2&3&4&5&6&7&8&9&/Ю&'11&12&13 = Ю10011010011. Для этого кодового сообщения получаем: Уо = bl ф &з ф &'5 ф Ь7 ф Ьд ф Ь'п ф b'ls = 1 ф 1 ф 0 ф 1 ф 1 ф 0 ф 1 = 1, У1 = Ь'2 ф Ь'3 ф Ь'6 ф Ь7 ф &'1О ф Ь’и = 0 ф 1 ф 1 ф 1 ф 0 ф 0 = 1, У2 = &4 ф &5 ф ф &'7 ф Ь'12 Ф &'13 = 0 Ф ° Ф 1 ф 1 ф 1 ф 1 = о, У3 = &'8 ф ф &'1О ф &'п Ф &'12 Ф &'1з = 0 ф 1 Ф 0 ф 0 ф 1 ф 1 = 1. Таким образом, двоичное представление номера разряда, в котором про- изошла ошибка, есть 1011. Но это не что иное, как двоичное представле- ние числа 11. Следовательно, ошибочный разряд 11.
118 Часть 6. Элементы теории кодирования 16. Декодирование (получение исходного сообщения) Этот шаг осуществляется так: после исправления ошибки выписать последовательно слева направо из кода сообщения информационные сим- волы, т.е. аха2 -.ат = ЬзЬеЬеЬ^ЬдЬюЬцЬ^Ьгз- В нашем примере из кода Р = 1010011010111 выписываем а = 101110111. Это и есть исходное со- общение. Девятое практическое занятие по теме «Коды Хемминга» Задача 1. По методу Хемминга постройте кодовое слово для сообщения а = 1011. . о/ Решение, т = 4; 24 <: ; I = 7, k = 3, L = {1,2,3,4, 5,6, 7}. L0 = {ieL: Vo= 1} = {1,3,5,7}> Li = {i e L : Vi = 1} = {2,3,6, 7}, L2 = {ieL: K2 = l} = {4,5,6, 7}. 3. bi, b2, bi — контрольные разряды. 4. Ьз, be, be, bi — информационные разряды, причем Ьз — «1> be — a2, be — аз, bi — ai, Ъз = 1, be 0, feg = 1, bi = 1. bi = b3 © bb © bi = 1 e 0 © 1 = 0, b2 = Ьз © be © bi = 1 © 1 © 1 = 1, bi = be © be © bi = 0 Э 1 Ф 1 = 0. 6. P = bibzbsbibebebi = 0110011. Таким образом, кодовым словом для а = 1011 является слово р = 0110011. Задача 2. Постройте по методу Хемминга кодовое слово для сообщений: 1) а = 010; 2) а =011; 3) а =1001; 4) а =1101; 5) а = 10101011; 6) а = 111001111; 7) а = 100010011; 8)а = 01110111011. Ответ: 1) 100110; 2) 110011; 3) 00110014; 4) 1010101; 5) 1110010110114; 6)0010110001111;7)1110000110011;8)000011110111011.
Девятое практическое занятие по теме «Коды Хемминга» 119 Задача 3. Декодируйте слово Р' = 1001110, где произошла ошибка не более чем в одном разряде. о/ 27 Решение. Имеем I = 7; 2т = — = 24; т = 4; k = I — т = 7 — 4 = 3; Р' = bb'2b'3b'4b'5b'eb'7 = 1001110. Вычислим V = {Ид,И1,И2}. Имеем £0 = {1,3,5, 7}; Li = {2,3,6, 7}; Д2 = {4, 5,6, 7}; Ио = by ® ь3 ф г>5 ф ь'7 = 1 ф о ф 1 ф о = о, И1 = Ь'2 ф Ь3 ф Ь'6 ф Ь7 = 0 ф 0 ф 1 Ф 0 = 1, И2 = b'l Ф b'5 ф Ь'6 ф Ь7 = 1 ф 1 ф 1 ф 0 = 1. Получили 110 — это двоичное представление числа 6. Следовательно, ошибка произошла в шестом разряде, значит, р = 1001100. Вычеркивая контрольные разряды 1, 2, 4, получим исходное сообщение а = 0100. Задача 4. Декодируйте слово Р'= 001011110111111. Решение, р' = b'1b'2b'3b'4b'5b'6b7b'sb'9b'i0b'1ibfi2b'13b'lib'l5 = 001011110111111, Li = {2,3,6, 7,10,11,14,15}; Д2 = {4,5,6, 7,12,13,14,15}; Д3 = {8, 9,10,11,12,13,14,15}; Vo = b'l ф Ь3 ф 5'5 ф Ь7 ф 5g ф Ь'ц ф Ь'13 ф Ь']5 = 0 ф 1 ф 1 ф 1 Ф О © 1 Ф 1 ф 1 = О; Vi = b'2 ф Ь3 ф Ь'6 ф Ь7 ф b'i0 ф Ь'ц ф Ь'14 ф 5'15 = О ф 1 ф 1 ф 1 ф 1 ф 1 Ф 1 Ф 1 = 1; и2 = Ь4 ф 5'5 ф Ь'6 ф Ь7 ф 5'12 ф 5'13 Ф 5'14 ф 5'15 = 0 ф 1 ф 1 ф 1 ф 1 ф 1 ф 1 ф 1 = 1; Из = 5g ф 5д Ф 5'ю ® Ь'ц Ф 5'12 ® ^13 ® ^14 ® ^15 = = 1ф0ф1ф1ф 1Ф1Ф1Ф1 = 1. Получили 1110. Это двоичное представление числа 14: ошибка в 14 м раз- ряде Р' = 5'.5'5'5'5С5'5'5'5})5' 5',,5']25' 5' 5' = 001011110111101. т ’’ । хи и. io X1* ха Вычеркивая разряды 1, 2, 4, 8, получим а = 11110111101. Задача 5. По каналу связи передавалось кодовое слово а, построенное по методу Хемминга. Канал связи искажал слово не более чем в одном разряде, в результате было получено слово Р'.
120 Часть 6. Элементы теории кодирования Восстановите исходное сообщение. 1)р' = 110; 2) (У = 101110; 3)Р' = 011110; 4) р' = 1001011; 5) Р'= 0101101; 6) Р' = 1011101; 7) р'= 1100011; 8) р'= 11011100110; 9) Р' = 1010101010100. Ответ: 1) 1; 2) 110; 3) 110; 4) ООН; 5) 0101; 6) 1101; 7) ООН; 8) 0111110; 9) 110110100. Контрольные вопросы 1. В чем состоит процесс кодирования? 2. Что такое кодирование и декодирование? 3. Что такое канал связи? 4. Чем занимается криптология? Что такое криптография? 5. Что такое алфавитное кодирование? 6. Дайте объяснение математического понятия алфавитного кодирования. 7. Как определяется схема алфавитного кодирования и как определяются кодовые слова? 8. В чем состоит проблема взаимной однозначности алфавитного кодирова- ния? 9. Что называется префиксом слова и когда схема алфавитного кодирования обладает свойствами префикса? 10. Сформулируйте первый достаточный признак взаимной однозначности алфавитного кодирования. 11. Какая схема кодирования называется обратной к схеме алфавитного кодирования и как она обозначается? 12. Сформулируйте второй достаточный признак взаимной однозначности алфавитного кодирования. 13. Что называется нетривиальным разложением элементарного кода? 14. Сформулируйте алгоритм критерия взаимной однозначности алфавит- ного кодирования. 15. Сформулируйте теорему Маркова. 16. Как по ориентированному циклу написать слово схемы алфавитного ко- дирования? 17. Как строится двоичное алфавитное кодирование? 18. Каковы свойства самокорректирующихся кодов? 19. Какие коды называются кодами Хемминга? Что называется длиной кода Хемминга? Что называется числом информационных и контрольных символов? Каким соотношением эти символы связаны? 20. Опишите процесс кодирования Хемминга. 21. Опишите процесс декодирования Хемминга, исправляющего не более чем одну ошибку.
Часть 7 Элементы теории автоматов Лекции 16-18 1. Понятие конечного автомата Теория автоматов представляет собой раздел дискретной математи- ки, изучающий модели преобразователей дискретной информации. Таки- ми преобразователями являются как реальные устройства (компьютеры, живые организмы), так и воображаемые устройства (аксиоматические те- ории, математические машины). По сути конечный автомат можно оха- рактеризовать как устройство М, имеющее входной и выходной каналы при этом в каждый из дискретных моментов времени, называемых так- товыми моментами, оно находится в одном из конечных состояний. По входному каналу в каждый момент времени t — 1, 2,... в устрой- ство М поступают входные сигналы (из некоторого конечного множества сигналов). Задается закон изменения состояния к следующему моменту времени в зависимости от входного сигнала и состояния устройства в теку- щий момент времени. Выходной сигнал зависит от состояния и входного сигнала в текущий момент времени (рис. 7.1). x(t) y(t) М Рис. 7.1 2. Определение конечного автомата Конечный автомат является математической моделью реальных дис- кретных устройств по переработке информации.
122" Часть 7. Элементы теории автоматов Конечным автоматом называется система А = (X; Q; У; <р; |/), где X; Q; Y — произвольные непустые конечные множества. Множество X = ат} называется входным алфавитом, а его элементы — входными сигналами, их последовательности — входными словами. Множество Q = {71, ...,qn называется множеством состояний автомата, а его элементы — состояниями. Множество У = {fej,..., bp} на- зывается выходным алфавитом, его элементы — выходными сигналами, их последовательности — выходными словами. Функция <р : X х Q —> Q называется функцией переходов. Функция у : X х Q —> У называется функцией выходов, т. е. (р(х, q) 6 Q; у(х, q) € У для Vx G X; Vq е Q. С конечным автоматом ассоциируется воображаемое устройство, ко- торое работает следующим образом. Оно может находиться в состоянии из множества Q, воспринимать сигналы из множества X и выдавать сигналы из множества У. 3. Способы задания конечного автомата Существует несколько эквивалентных способов задания абстрактных автоматов, среди которых можно назвать три: табличный, геометриче- ский и функциональный. Табличное задание автомата Из определения автомата следует, что его всегда можно задать табли- цей с двумя входами, содержащей т строк и п столбцов, где на пересече- нии столбца q и строки а стоят значения функций <р(аг-; qf); qj). Qi ... Qj ... Qn О] (p(ai;ft); |/(ai;ft) ... ... V(ai;ftz) ... ... ... ... ... ... at (p(a(;ft); y(a;;ft) ... <p(a,-; ft); у(а,-; ft) ... q>(ai-,qn); у(а^п) ... ... ... ... ... ... <p(am;ft); V(am;ft) ... Qn)> Qn) Задание автомата диаграммой Мура Другой способ задания конечного автомата — графический. При этом способе состояния автомата изображают кружками, в которые вписыва- ют символы состояний qj (] = 1,..., и). Из каждого кружка проводится
3. Способы задания конечного автомата 123 т стрелок (ориентированных ребер) взаимно-однозначно соответствую- щих символам входного алфавита Х{а, ...,ат}. Стрелке, соответствую- щей букве щ Е X и выходящей из кружка qj 6 Q, приписывается па- ра (щ, ф(щ; qj)), причем эта стрелка ведет в кружок, соответствующий ф(аг, до- полученный рисунок называется графом автомата или, диаграммой Мура. Для не очень сложных автоматов этот способ более нагляден, чем табличный. Задание конечного автомата системой булевых функций Третий способ задания конечного автомата А = (X; Q; У; ср; щ), задан- ного таблицей или диаграммой Мура, состоит в определении системы булевых функций. Изложим алгоритм этого способа задания. (1) Находим числа к, г, s, удовлетворяющие условиям 2fe-1 < т < 2*; 2Г“Т < и 2r; 2s”1 < р 2s, где tn = |Х|; п = |Q|; р = |У|. Очевидно, что k,r,s соответственно равны числу разрядов в двоичном представлении чисел т, п, р. Например, если т = 5, п = 17, р = 3, то к = 3, г = 5,8 = 2. (2) Кодирование состояний входных и выходных символов исходного автомата. Каждому qj Е Q взаимно-однозначно ставим в соответствие двоичную последовательность длины г — двоичный код а(г/) = ZiZ2--.zr. Аналогично каждому at Е X и каждому Ь/., Е У ставим взаимно однозначно в соответ- ствие двоичные последовательности Р(а) = xiXz.-.X},; y(b) = yiyz...ys. Отметим, что кодирование состояний, входных и выходных символов можно провести многими способами. При этом некоторые последователь- ности (коды) могут оказаться неиспользованными. (3) Составляем следующую таблицу: Код Код Код Код ВХОДНОГО текущего следующего ВЫХОДНОГО символа СОСТОЯНИЯ состояния символа Х1 *2 ... Xk 21 22 ... 2г Ф1 ф2 ... фг Vi V2 ... Vs 0 0 ... 0 0 0 ... 0 Pi ₽2 «1 «2 ССГ а «2 а!г 71 72 Ys 1 1 ... 1 1 1 ... 1 Эта таблица содержит к + г + г + s столбцов и 2к+г строк. В первых k + г столбцах выписаны все наборы длины k + г. Каждый такой набор соответ-
124* Часть 7. Элементы теории автоматов ствует паре (Р, а), где а — возможный код некоторого состояния, Р — код входного символа. (4) Заполнение последних столбцов в таблице (предыдущий шаг). Для каждой пары (at, qj), где at Е X; qj £ Q, находим код Р(а) и а(</). По таблице автомата (или диаграмме Мура) определяем ф(а; q) = q' и |/(«;<7) = Ь. Затем находим код ос(у') = а'1а'2...а'г и код у(Р) = YiY2---Ys- В строку таблицы, соответствующую набору Pi,P2,...,Pfe,ai,a2,---,«r, дописываем набор «^,«2, ...,a'r,Yi,Y2, -••»Ys- (5) Определение системы булевых функций. После выполнения предыдущего шага может оказаться, что не все строки в таблице заполнены. Это произойдет в том случае, если хотя бы одно из чисел т, п не является степенью 2. Таким образом, функции Ф1, ф2, •••> фг, Vl» V2» ••» Vs окажутся не полностью определенными — на некоторых наборах их значения не определены. Тогда мы их доопределя- ем произвольным образом. Как правило, доопределение функций произ- водят так, чтобы получившиеся полностью определенные функции удов- летворяли тем или иным условиям оптимальности, например представ- лялись минимальными ДНФ. После выполнения этого шага исходный автомат будет задаваться системой полностью определенных булевых функций {ф1,ф2, ...,Фг, V1»V2»---»Vs}- 4. Примеры конечных автоматов Одним из критериев сложности конечного автомата является число его состояний. Чем меньше это число, тем проще дискретное устройство, реализующее данный автомат. Поэтому одной из важных задач теории конечных автоматов является построение автомата с наименьшим числом состояний. Поскольку в современных компьютерах любая информация представ- ляется в виде двоичных кодов, то для построения автомата можно исполь- зовать элементы, имеющие лишь два различных устойчивых состояния, одно из которых соответствует цифре О, а другое цифре 1. Приведем несколько примеров конечных автоматов.
4. Примеры конечных автоматов • 125 Пример 1. Элемент задержки (элемент памяти). Элементы задержки представляют собой устройство, имеющее один вход и один выход. Причем значение выходного сигнала в момент време- ни t совпадает со значением сигнала в предыдущий момент. Схематично элемент задержки можно изобразить следующим образом (рис. 7.2). х(1) М Рис. 7.2 y(t) = x(t - 1) Предположим, что входной и, следовательно, выходной алфавит есть X = {О, 1}; У = {0,1}. Тогда Q = {0,1}. Под состоянием элемента задерж- ки в момент времени t понимается содержание элемента памяти в данный момент. Таким образомq(t) = X(t — 1), aY(t) = q(t) = X(t — 1). Зададим элемент задержки таблицей, гдепл = О, а2 = 1, q± = О, 92 = 1> <p(«i; Q1) = ф(0, 0) = 0; v(ai, <7i) = 0) = 0; ф(«Н 92> = Ф(0,1) = 0; v(ai, q2) = ф(0,1) = 1; ф(а2;?1) = ф(1,0)= 1; у(а2,71) = ф(1,0) = 0; ф(аг; 92) = ф(1, 1) = 1; v(«2,92) = 1) = 1, 0 1 0 о II Э- © II s- -в II ©> II 1 в и II о ф = 1; у = 1 Диаграмма Мура изображена на рис. 7.3. (щ = 0; ф(а, = 0; gi = 0) = 0) (а2 = 1;ф(а2 = 1;?2 = 1) = 1) Рис. 7.3 Для представления этого автомата системой булевых функций ис- пользуем таблицу автомата и вышеизложенный алгоритм. При этом ко- дирование производить не нужно, так как входной и выходной алфавиты и состояния уже закодированы. Обратим внимание на то, что т = п = р = 2. Тогда k = г = s = 1, и поэтому элемент задержки задается двумя функциями ф и ф. Таблица
126 Часть 7. Элементы теории автоматов истинности этих функций содержит 2Ач г = 22 = 4 строки и k + r + r + s = 4 столбца: X Z ф V 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Пример 2. Двоичный сумматор последовательного действия. Данный сумматор последовательного действия представляет собой устройство, осуществляющее сложение двух чисел в двоичной системе исчисления. На входы сумматора подаются числа Xi и х2, начиная с млад- ших разрядов. На выходе формируется последовательность, соответству- ющая записи числа Xi + х2 в двоичной системе исчисления (рис. 7.4). Х1 = Xl(l)...Xi(t) х2 = X2(l)...X2(t) y(t+ l)...y(t) М Рис. 7.4 Входной и выходной алфавиты определены однозначно: X = {00; 01; 10; 11}; У = {0, 1}. Множество состояний определяется значением пере- носа при сложении соответствующих разрядов чисел X] и х2. Если при сложении некоторых разрядов образовался перенос, то будем считать, что сумматор перешел в состояние q. При отсутствии переноса будем считать, что сумматор находится в состоянии q$. Сумматор задается таблицей. 9о 91 00 9о; о до; 1 01 9о; 1 915 0 10 9о; 1 915 0 11 915 о 915 1 Диаграмма Мура сумматора последовательного действия изображена на рис. 7.5. Заметим, что входные и выходные символы уже закодированы. Со- стояния закодируем следующим образом: ос(<7о) = 0; oc(qi) = 1. Поэтому
4. Примеры конечных автоматов *127 Рис. 7.5 сумматор последовательного действия задается двумя булевыми функ- циями, таблица истинности которых следующая: х2 2 <р V 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Пример 3. Схема сравнения на равенство. Схема сравнения на равенство представляет собой устройство, срав- нивающее два числа Xj ихг, заданные в двоичной системе исчисления. Это устройство работает следующим образом. На вход устройства после- довательно, начиная со старших, подаются разряды чисел X] и Х2- Эти разряды сравниваются. При совпадении разрядов на выходе схемы фор- мируется выходной сигнал О, в противном случае на выходе появляется сигнал 1. Ясно, что появление 1 в выходной последовательности означа- ет, что сравниваемые числа х± и Х2 различны. Если же выходная после- довательность является нулевой и ее длина совпадает с числом разрядов сравниваемых чисел, toxj = Х2. Для этого автоматах = {00; 01; 10; 11}; Y = {0,1}. Функционирование схемы определяется двумя состояниями. Состоя- ние qo соответствует равенству сравниваемых в данный момент разрядов. При этом автомат остается в этом же состоянии. Если в следующий мо- мент сравниваемые разряды будут различны, то автомат перейдет в новое состояние и в нем остается. Так как это означает, что числа различны.
128 * Часть 7. Элементы теории автоматов Таким образом, схему сравнения можно задать таблицей: <Ю gi 00 до; о дг, 1 01 Qi; 1 др, 1 10 qi; 1 gi; 1 11 до; о gi; 1 Диаграмма Мура схемы сравнения на равенство изображена на рис. 7.6. Рис. 7.6 Кодирование состояний произведем следующим образом: а.(</о) = О; сх(<71) = 1. Автомат будет задаваться двумя функциями. X} x2 z <p V 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 Пример 4. Схема сравнения на неравенство. Схема сравнения на неравенство представляет собой устройство, по- зволяющее выяснить, равны ли сравниваемые х± и х2, и если они не рав- ны, выяснить, какое из них больше другого. Это устройство имеет два входа и два выхода. Выходные сигналы yi(t) и 1/2(0 определяются по сле- дующим правилам: У1(0 = Уг(О = О, если хг(0 = x2(t);
4. Примеры конечных автоматов 129 !/i(O = 1; y2(t) = О, если Xi(i) > х2(/); yi(t) = О; i/a(O = 1> если xi(/) < x2(t); т. е. Xi(t) = 1; x2(t) = О; т. е. xi(0 = О; x2(t) = l. Таким образом, при подаче на вход схемы сравнения на неравенство чисел Xi = Х1(1)...Х1(/) и х2 = х2(1).- .x2(t) последовательно сравниваются разряды этих чисел, начиная со старших. Выходные сигналы формули- руются согласно вышеуказанным правилам. При этом, если выходная последовательность состоит из нулевых пар, то xi = х2- Если первая, /1 7о . отличная от нулевой, пара имеет вид 1^1,(К1)тохт>х2 (xi < х2). Из описания схемы следует, что Х= {00; 01; 10; 11}; У = {00; 01; 10}. Состояние схемы определяется следующим образом. Предположим, что в начальный момент времени t = 1 автомат находится в состоянии q. Если сравниваемые разряды чисел Xi и х2 совпадают, то автомат остается в этом состоянии. Заметим, что на выходе при этом появится сигнал 00. Если же разряд числа Xi будет меньше (больше) соответствующего разря- да числа х2, то автомат перейдет в состояние q2 (q3). При этом на выходе появится сигнал 01 (10). В дальнейшем при подаче оставшихся разрядов чисел xi и х2 на входы автомата автомат будет оставаться в состоянии б/2 (<7з) и вырабатывать выходной символ 10 (01). Из вышеизложенного следует, что схему сравнения на неравенство можно задать таблицей: 91 92 9з 00 91;00 92; 01 9з; ю 01 92; 01 9г; 01 9з; Ю 10 9з; ю 92; 01 9з; ю 11 91; оо 92; 01 9з; ю Соответствующая диаграмма Мура изображена на рис. 7.7. Входной и выходной алфавиты здесь уже закодированы. Состояния 91> <72 и q3 закодируем: ai(<?i) = 00; а(<72) = 01; а(?3) = 10. Следовательно, данную схему можно задать системой, состоящей из четырех булевых функций, которые зависят от четырех переменных. Эти
130 Часть 7. Элементы теории автоматов Рис. 7.7 функции частично определены и задаются таблицей истинности Х1 х2 Z1 Z2 Ф1 ф2 VI ф2 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 В таблице символами * отмечены наборы переменных xi, х%, z, z^, на ко- торых функции <pi, <Р2, Vi»V2 не определены. Положим значения функций <Р1» ф2> Vb V2, на этих наборах равными 1.
5. Канонические уравнения автомата 131 5. Канонические уравнения автомата Если в момент времени t = 1,2,... на вход автомата А = (X; Q;Y;(p; у) последовательно подаются входные символы x(t) 6 X и при этом автомат находится в состоянии q(t) G Q, то под воздействием символа x(t) автомат перейдет в новое состояние q(t + 1) Е Q и выдаст выходной сигнал y(t). Величины x(t), y(t), q(t), q(t + 1) связаны между собой следующими уравнениями: (q(t + l) = <p(x(t);q(t)), t = 12 п = V(*(0; ’ ” ” Эти уравнения называются каноническими уравнениями автомата А. При задании автомата системой булевых функций эти уравнения запи- сываются в координатной форме: Zi(t + 1) = <Р1 (Xi(t), ...,Xk(t),Zl(t), ..., zr(t)) Zr(t + 1) = <pr (Xl(t), ...,xk(t), z^t), ...,zr(t)) 1/1(0 = Vl (*l(0, ...,**(0,21(0, ...,2r(0) l/s(0 = Vs (*l(0, •••, **(0, 21(0, •• •, 2r(0) / = 1,2,... Для построения канонических уравнений автомата А необходимо для данной булевой функции найти минимальную ДНФ (дизъюнктивную нормальную форму), которая, вообще говоря, определяется неоднознач- но. Аналитический алгоритм построения этой ДНФ следующий: 1. Для данной функции /(xi, ...,хп) строим совершенную конъюнк- тивную нормальную форму (СКНФ). 2. В построенной СКНФ раскрываем скобки, используя правило: (AV В) Л (С V D) = А Л С V В Л С V А Л D V В Л D. 3. Полученное выражение упрощаем, применяя тождества вида: К]_КК2^Кх=Кх-, KJK = K KV0 = K; К ЛК = 0; XV1 = 1; ХЛ1=Х; КлК = К; XVX=1. В результате получим сокращенную ДНФ, являющуюся дизъюнкцией всех простых импликат данной функции /(xi,..., хп).
132 Часть 7. Элементы теории автоматов Для рассмотренных выше примеров автоматов канонические уравне- ния задаются следующими формулами: пример 1: < 'z{t + 1) = x(t), ^(t) = z(t), ’ пример 2: < rz(t + 1) = xi(l) Л x2(f) V xi(t) A z(t) V x2(i) A z(t), j 2 ky(t) = xi(Z) © x2(t) Ф z(t), пример 3: < 1 z(t + 1) = xj(t) A x2(t) V Xi(t)A X2(t) V z(t), t=i 2 y(t) = xf(0 A x2(t) V Xi(t) A xi(t) V z(i), ( Zi(t + 1) = Zi(t) V xi(f) A x^(t) A zi(i), пример 4: 1 2i(A + 1) = z2(t) V xT(f) A x2(t) A t=1 2 I yi(t) = 2i(t) V Xi(t) A x2(t) A zi(t), 1 !/2(0 = z2(0 V xT(t) A x2(i) A z^(t), В качестве иллюстрации изложенного выше алгоритма рассмотрим пример 3. Таблица истинности системы булевых функций следующая: Xi x2 2 Ф V 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1. Строим СКНФ функции (p(x|,x2,z). Так как эта функция задана набором своих значений ф = 01111101, то ее СКНФ будет иметь вид (xi V х2 V z) Л (xi V хг V г). 2. Раскрываем скобки (X] V х2 V z)A Xi V (Xi V х2 Vz) Л х2 V (xi V х2 V z) Л2 = = xi ЛХ1 V хг Лх1 V zA xi VX] Л12 VX2 Лхг V2 Лхг Vxi Az Vx2 Az VzAz. Упрощаем последнее выражение: 0 V X] Л Х2 Л X] Л z V Xi Л Х2 V 0 V х2 л z V Х1 Л z V х2 Л z V z = = Xi Л Х2 V Xi Л хг V z(X2 V х2) V z(xi V xi) V z = Xi Л Х2 V xi Л хг V 2. Таким образом, получим z(t + 1) = xjff) Л x2(t) V xi(i) Л xi(t) V z(f). Аналогично строится функция у(/)• При этом из таблицы истинности выписываем набор значений функции g(xi , X2,z)v|/ = 01111101, который совпадает с набором значений функции <р(х 1, х2, 2).
Десятое практическое занятие по теме «Конечные автоматы» "133 Десятое практическое занятие по теме «Конечные автоматы» Задача 1. Для автомата, заданного таблицей, постройте диаграмму Мура. Задай- те этот автомат системой булевых функций. 0 1 2 3 0 (1;1) (3;0) (2;0) (2;0) 1 (2;1) (2;0) (3;0) (3;0) 0 1 2 3 0 (0;0) (1;1) (3;1) (2;0) 1 (2;0) (0;1) (3;1) (1;0) 0 1 2 3 0 (3;0) (2;0) (1;1) (0;1) 1 (0;1) (1;1) (2;0) (3;0) oN? 0 1 2 3 0 (1;0) (3;1) (2;0) (1;0) 1 (3;0) (1;1) (0;1) (3;1) 0 1 2 3 0 (2;0) (0;0) (3;1) (1;0) 1 (1;0) (0;0) (0;0) (3;0) 0 1 2 3 0 (2;1) (2;1) (2;1) (2;1) 1 (1;1) (3;1) (0;0) (1;0) /е> Задача 2. Для автомата, заданного диаграммой Мура, выпишите соответствен- ную таблицу и систему булевых функций. а) См. рис. 7.8. Рис. 7.8 б) См. рис. 7.9. в) См. рис. 7.10. Задача 3. Для автомата, заданного каноническими уравнениями, постройте диа- грамму Мура и соответствующую таблицу:
134 Часть 7. Элементы теории автоматов а) б) в) г) Рис. 7.10 ( z(t + 1) = Х1(0 Л z(t) V х2(0 Л z(t), (y(t) = xz(t) Л z(t) V xi(t) Л xz(t); f z(t +1) = x(t), y(t) = x(t) о z(t); ' Zi(t + 1) = x(t) Л (zi(t) О Zz(t)) V Z2(t) A x(t), Z2(t + 1) = x(t) A Z2<t) V x(t) f 2i(i), 1/1(0 = x(t) A (21 (t) V Z2(0) V x(t) A Zl(t), .^2(0 = x(t) a zi(0 a z2(0 v x(0 a 2i(0 a 2j(0; Zi(t + 1) = x(0 A (22(0 V 21(0) Л 2г(0, Z2(t + 1) = Zi(t) A [Z2(t) A x(t) V x(t) A Z2(0] v Zi(t) A x(t), y(t) = 2i(0 a x(0 v 2i(0 a z2(0 a x(0;
Контрольные вопросы 135 {Zi(t + 1) = zi(t) J. x(t), Z2(t + 1) = Zi(t) -> z2(t), y(t) = x(t) ffi z(t); {zi(t + 1) = z2(t)f x(t), Z2(t + 1) = Z^t) A x(t) V Zl(t) A x(t), y(t) = zi(t) A Zi(f) V Zt(t) A x(t); {Zi(t + 1) = Zi(t) ffi z2(t) ffi x(t), z2(t + 1) = z2(t) -> x(t), y(t) = z2(t) о x(t). Контрольные вопросы 1. Что включает в себя понятие «конечный автомат»? 2. Какие основные термины связаны с введением понятия конечного авто- мата? 3. Дайте определение конечного автомата. 4. Укажите способы задания конечного автомата. 5. Каково табличное задание конечного автомата? Укажите способы задания конечного автомата. 6. Как строится диаграмма Мура? 7. Изложите алгоритм задания конечного автомата системой булевых функ- ций. 8. Приведите примеры конечных автоматов. 9. Какие уравнения называются каноническими уравнениями конечного автомата? 10. Как построить каноническое уравнение конечного автомата?
Часть 8 Элементы теории алгоритмов Лекции 19-23 Этот раздел дискретной математики связан с решением различных вычислительных задач. Что значит вычислить? Какими вопросами для этого мы располагаем? Всегда ли можно решить задачу? Что такое задача? Что такое процесс ее решения? На все поставленные вопросы может дать ответ теория алгоритмов, представляющая собой теоретические основы всей дискретной математи- ки, особенно ее компьютерной части. I. Вычислимые функции и алгоритмы Одним из центральных понятий современной математики является понятие вычислимой функции и алгоритма. 1. Основные определения Определение. Вычислимая функция — это такая функция, для ко- торой существует вычисляющий ее значения алгоритм, т. е. функция у = f(xi,X2, ...,хп) называется вычислимой, если существует алгоритм, по- зволяющий определить значения функции при любых значениях перемен- ных Х1,Х2, ...,хга. Определение. Алгоритмом называется точное предписание, определяю- щее вычислительный процесс, который ведет от варьируемых исходных данных к искомому результату, т. е. алгоритм — это совокупность правил, определяющих данный вычислительный процесс.
I. Вычислимые функции и алгоритмы 137 Для каждого алгоритма существует некоторая совокупность возмож- ных исходных данных — объектов, к которым имеет смысл применять рассматриваемый алгоритм. Для каждого алгоритма выделяется область применимости: если процесс применения алгоритма к какому-либо объ- екту заканчивается выдачей результатов, то говорят, что он применим к этому объекту. Алгоритм задает функцию, определенную на его области применимо- сти и ставящую в соответствие каждому элементу этой области результат применения к нему алгоритма. Не все объекты, встречающиеся в математике, могут служить ис- ходными данными, результатами или промежуточными данными алго- ритма. В алгоритмических процессах могут участвовать лишь конструктив ные объекты. Определение. Конструктивными объектами будем называть натуральные и рациональные числа, полиномы с натуральными или рациональными ко- эффициентами, матрицы с натуральными или рациональными элементами, слова в некотором алфавите и т. д., т. е. такие объекты, которые могут быть построены целиком и представлены для рассмотрения. Поскольку возможными исходными данными и результатами алго- ритма могут быть лишь конструктивные объекты, то лишь конструктив- ные объекты могут быть аргументами и значениями вычислимой функ ции. 2. Свойства алгоритмов Анализ известных в математике алгоритмов дал возможность вы- явить характерные его свойства. Свойство 1. Дискретность. Алгоритм описывает процесс последова- тельного построения величин, идущий в дискретном времени. Необхо- димый для вычисления интервал времени разбит на малые отрезки — такты. Система величин в конце каждого такта получается в результате осуществления элементарного шага алгоритма (определенной програм- мы преобразования) из системы величин, имеющейся к началу такта. Свойство 2. Детерминированность (определенность) требуется, что- бы метод действия (вычисления) был настолько точен и общепонятен, что- бы не оставалось места произволу. Этот метод можно сообщить другому лицу в виде конечного числа указаний, т. е. программа преобразований в каждом такте однозначно определена.
138 Часть 8. Элементы теории алгоритмов Свойство 3. Результативность. Это свойство, называемое иногда еще направленностью алгоритма, требует, чтобы алгоритмическая процеду- ра, примененная к любой задаче данного типа, через конечное число ша- гов останавливалась и после остановки можно было бы прочесть искомый результат. Свойство 4. Массовость. Алгоритм служит не для решения какой- либо одной конкретной задачи, а для решения целого класса задач. Про- цедуру для решения одной индивидуальной задачи не называют алгорит- мом. 3. Понятия разрешимого предиката, разрешимого множества, перечислимого множества На основе понятий вычислимой функции и алгоритма определяются понятия разрешимого предиката, разрешимого множества и перечисли- мого множества. Определение. Предикат P(xi, хг,..., хп), определенный на множестве це- лых чисел, называется алгоритмически разрешимым или просто разреши- мым, если существует алгоритм для определения значения предикатаР при любых значениях переменных xi,X2, ...,хп. Определение. Множество называется разрешимым, если существует ал- горитм, распознающий принадлежность произвольного элемента к этому множеству. Определение. Множество называется перечислимым, если оно есть мно- жество значений какой-нибудь вычислимой функции, определенной на всем натуральном ряду. 4. Пример алгоритма Прежде, чем перейти к точным определениям, рассмотрим пример вычислительного алгоритма: алгоритм вычисления числа л, основанный на формуле удвоения. Исторически первый и в течение длительного времени единствен- ный алгоритм вычисления числа л был основан на подсчете периметров
I. Вычислимые функции и алгоритмы 139 правильных вписанных и описанных многоугольников с помощью фор- мул удвоения. Эта формула связывает длины сторон правильных п- и 2п-угольников, вписанных в окружность радиуса R. Положим диаметр рассматриваемой окружности равным единице: d = 2R = 1 (длина такой окружности равна л), тогда формула удвоения примет вид: «2п = -2^/1 -«2. Умножим и разделим выражение под знаком общего корня на сопряжен- ное. В результате получим: ^4-4(1-02) ап 2J2 + 2/1^2 J2 + 20T^ Введем периметр многоугольника рп = пап и подставим выражения сто- рон ап и а.2п через периметры в формулу, тогда она преобразуется к виду Р2п = Рп Мы получили рекуррентную формулу. Сторона правильного описанного /z-угольника Ь,г при d = 2R = 1 выра- жается через сторону вписанного п-угольника ап с помощью соотношения а V1 Перейдем в нем от сторон ап и Ьп к соответствующим периметрам, обозначая периметр вписанного многоугольника через qn: qn = nbn. В ре- зультате будем иметь: Но lim рп = lim qn = it. п—>оо п—мю Вычисление числа п с помощью данного метода можно начать с какого-нибудь простого правильного многоугольника, например с ше- стиугольника, для которого Ре-3, 5в =—Л= - 2/3 = 8,464101.... 1АЧ
140 Часть 8. Элементы теории алгоритмов Далее процесс строится следующим образом: по рекуррентной форму- ле находятся последовательноpiz, Pzi, Pis>Рэв , Р192, По ним с помощью формулы вычисляются соответствующие значения qn. Двухстороннее неравенство рп < п < qn позволяет утверждать, что найденные на некотором шаге числа дают приближенные значения л с недостатком и избытком с ошибкой еп < А = qn — рп, которая стремится к нулю при п —> сю. Используя описанные идеи и проводя сложнейшие для своего време- ни вычисления, древнегреческий ученый Архимед дошел до правильного 96-угольника и получил для л двухстороннюю оценку: 10 71 Л<3| = 3,14084..., 3| = 3,14285..., А и 0,002 71 7 . В Европе французский математик Ф. Виет нашел 9 правильных цифр числа л после запятой с помощью 3 - 217-угольника (16 удвоений числа сторон). Приведем таблицу 16 удвоений числа сторон: повторение результата Ф. Виета. k п = 6 • 2* Рп Чп 0 6 3,000000000000 3,464101615138 1 12 3,105 828 541230 3,630002 002 236 2 24 3,132 628 613 281 3,245 155 564 194 3 48 3,139 350 203 047 3,166 557 423 678 4 96 3,141031950890 3,147 778 817 495 5 192 3,141452 472 285 3,143135 797 312 6 384 3,141 557607912 3,141978 227 840 7 768 3,141583 892 148 3,141689033 932 8 1536 3,141 590463 228 3,141616 747 849 9 3072 3,141592 105 999 3,141598 677 103 10 6144 3,141 592 516 692 3,141594159465 11 12288 3,141 592 619365 3,141593 030059 12 24576 3,141 592 645 034 3,141592 747 706 13 49152 3,141 592 651034 3,141592 677119 14 98304 3,141 592 653 055 3,141592 659472 15 196608 3,141 592 653 456 3,141592 655 060 16 393216 3,141592 653 556 3,141592 653 957 Для оценки точности определения л с помощью этих расчетов со- ставим разность периметров qn и рп, приведенных в последней строке (п = 6 - 216 = 39321): en < An = qn — рп = 0,000 000 000 401. Первые 10 знаков у чисел рп nqn совпадают, т. е. л = 3,141 592 653....
II. Теория рекурсивных функций 141 5. Интуитивное понятие алгоритма Приведенные выше определения и свойства алгоритмов являются эмпирическими, подмеченными для всех известных алгоритмов. Таким образом, понятие алгоритма и понятие вычислимой функции выводятся непосредственно из опыта и могут быть усвоены лишь на примерах, а по- этому эти понятия являются интуитивными и не могут быть положены в основу математической теории алгоритмов. После того как было сформулировано интуитивное понятие алгорит- ма, были предприняты усилия дать его точное математическое определе- ние. В результате появились несколько вариантов определения алгорит- ма, которые трактуются как самостоятельные математические понятия. Каждое из них имеет свое название: «Теория рекурсивных функций», «Нормальные алгоритмы Маркова», «Машины Тьюринга». II. Теория рекурсивных функций 1. Простейшие функции Прежде всего рассмотрим следующие простейшие функции, которые называются базисными. (а) нуль — функция 0 (0(х) = 0 для всех х); (Ь) функция следования х' = х + 1, которая означает переход к следу- ющему элементу заданного множества; (с) функция тождества, или функция выделения аргумента: для каждых функция определяемая посредством <J"(xi,x2, ...,хп) = Xj. Эти функции вычислимы, и на их основе построим более сложные вы- числимые функции — с помощью преобразований, которые называются операторами. 2. Операторы а) Оператор суперпозиции (подстановки). В основе этого оператора лежит способ вычисления, который состоит в том, что если мы умеем вычислять функции f и g, то мы сумеем вычислить функцию h = f(g).
142 Часть 8. Элементы теории алгоритмов Пусть f — m-местная функция, gi,...,gn — «-местные частичные функции на множестве N. Оператор S, ставящий в соответствие функци- ям f и g, ...,gn — «-местную функцию h, которая удовлетворяет тожде- ству h{xl,...,xn) = /(й(хь ...,хп), ...,gm(xr, ...,хп)), называется оператором суперпозиции (подстановки). При этом опреде- ленная всюду функция h = S(f, gi,...) является суперпозицией функций f И£1, ...,gm. б) Оператор примитивной рекурсии. В основе этого оператора лежит широко распространенный способ вычисления функции натурального ар- гумента, состоящий в том, что задается ДО) и так называемая рекуррент- ная формула f(n + 1) = h(f(n)), позволяющая вычислить f(n + 1), если известно f(n). С помощью этой формулы последовательно вычисляются /(1), f(2) и т. д. Такой процесс последовательного вычисления значений функции называется рекурсией. Пусть заданы какие-либо числовые частичные функции: «-местная g и (п + 2)-местная h. (п + 1)-местная частичная функция f возникает из функций g и h с помощью оператора примитивной рекурсии, если она может быть задана схемой примитивной рекурсии'. 7(xi, ...,х„,0) = g(xi, ...,хп), /(xi, ...,хп, 1) = Л(Х1,...,хп,0,/’(Х1, ...,хп,0)), < /(xi, ...,хп,2) = Л(хь ...,хп, l,f(xi, ...,хп, 1)), 7(Х1, ...,хп,у + 1) = Л(Х1, ...,xn,y,f(xlt ...,хп,у)). Совокупность этих равенств для любых функций g и h однозначно опре- деляет значения функции f. Таким образом, для каждых двух частичных числовых функций g от п переменных и h от (« + 2) переменных суще- ствует одна и только одна функция f от (« + 1) переменной, возникающая в результате примитивной рекурсии. Оператор примитивной рекурсии будем обозначать через f = R(g, h). Итак, схема примитивной рекурсии образует некоторый, индуктив- ный процесс построения функции h, при котором на нулевом шаге исполь- зуется функция g, а на каждом последующем шаге — значение функции f от аргументов Xi,...,xn, номер у предыдущего шага и значение функ- ции h, вычисленного на предыдущем шаге. Заметим, что оператор при- митивной рекурсии можно применять по любым переменным, входящим в функции f,guh, но всегда нужно указывать, по каким переменным этот оператор проводится.
II. Теория рекурсивных функций 143 в) Оператор минимизации. Существует третья важная операция, по- рождающая новые вычислимые функции, а именно неограниченная ми- нимизация, или просто минимизация. Пусть f(x, у) — функция, и мы хотим определить функцию g(x), по- ложив g(x) = наименьшее у такое, что f(x, у) = 0. При этом из вычисли- мости f должна следовать вычислимость g. Для этого введем следующее определение оператора минимизации р, который дает вычислимые функ- ции из вычислимых функций. Для каждой функции f(x, у) {наименьший у, такой, что f(x, у) определенно для всех z у и f(x, у) = 0, если такой у существует, не определено в противном случае. pi/(...) читается как «наименьший у, такой, что...». Этот оператор называют иногда р-оператором. Сформулируем следующую теорему: Пусть f(x, у) вычислима; тогда вычислима и функция g(x) = ру (f(x, у) = 0). 3. Примитивно-рекурсивные функции Определение. Функция f называется примитивно-рекурсивной, если су- ществует последовательность функций f0, ..., fn, в которой fn = f и вся- кая функция ft является либо простейшей (базисной), либо получается из предыдущих функций с помощью конечного числа применений оператора суперпозиции S или оператора примитивной рекурсии R (простейшие функ- ции являются примитивно-рекурсивными). Итак, примитивно-рекурсивные функции — это арифметические функции, которые сопоставляются по определенным правилам прими- тивно-рекурсивным описанием. Всякая примитивно-рекурсивная функция является вычислимой, так как процесс ее определения с помощью примитивно-рекурсивного описания дает одновременно и способ вычисления значений функции для любых числовых значений ее аргументов. 4. Частично-рекурсивные функции Определение. Функция f(xi,...,xn) называется частично-рекурсивной, если она может быть получена из простейших примитивно-рекурсивных функций с помощью конечного числа применений операторов суперпози- ции, примитивной рекурсии и минимизации.
144* Часть 8. Элементы теории алгоритмов Из определения вытекает следующие свойства частично-рекурсив- ных функций. 1. Каждая примитивно-рекурсивная функция является также и час- тично-рекурсивной. 2. Класс частично-рекурсивных функций шире класса примитивно- рекурсивных функций, так как все примитивно-рекурсивные функции всюду определенные, а среди частично-рекурсивных функций есть функ- ции, не всюду определенные. Понятие частично-рекурсивной функции является одним из основ- ных понятий теории алгоритмов. Какие бы классы алгоритмов до сих пор не строились, во всех случаях оказывалось, что числовые функции, вычисляемые посредством этих ал- горитмов, были частично-рекурсивными. Поэтому общепринятым явля- ется тезис Черча относительно частично-рекурсивных функций: класс алгоритмически вычислимых частичных числовых функций совпадает с классом всех частично-рекурсивных функций. Для каждой частично-рекурсивной функции f существует вычисли- тельный процесс, посредством которого любое натуральное число х пере- рабатывается в значение f(x) функции f. Этот процесс не дает определен- ного результата тогда и только тогда, когда значение функции f в точке х не определено. 5. Примитивно-рекурсивные предикаты Наряду с примитивно-рекурсивными функциями в рассмотрение вво- дятся примитивно-рекурсивные предикаты. Предикаты в математической логике вводятся там, где необходимо символически отобразить соотношение между несколькими предметами. В общем случае предикат определен на некотором множестве предметов и может принимать два значения: истинно или ложно (1 или 0). Мы будем рассматривать арифметические предикаты, определенные на множестве натуральных чисел Nq = TV U {0} = {0,1,2,... }. Определение. Пусть Р(хг,...,хп) — n-местный предикат (зависит от п пе- ременных) на множестве натуральных чисел No. Функция tpp(xi, ...,х„) на- зывается характеристической функцией для предиката Р, если эта функция удовлетворяет условию фр(Х1, ...,хп) = 0, 1, если P(xi,..., х„) истинно; если P(xi,..., х„) ложно.
Одиннадцатое практическое занятие по теме '«Рекурсивные функции» 145 Таким образом, характеристическая функция, или еще ее называют представляющей функцией предиката P(xi,хп), <pp(xi,..., хп), обра- щается в нуль лишь для тех и только для тех xj, ...,хп, для которых P(xi,..., хп) истинно. Тогда истинность P(xi, ...,хп) соответствует равен- ству фр(Х1, ...,х„) = 0. Очевидно, что один и тот же предикат может иметь несколько харак- теристических функций, нули которых должны совпадать. Определение. Предикат называется примитивно-рекурсивным, если су- ществует примитивно-рекурсивная функция, представляющая этот преди- кат, т. е. его характеристическая функция примитивно-рекурсивна. Если предикаты Pi, ...,Рп примитивно-рекурсивны, то и любой пре- дикат, полученный из них с помощью логических операций, примитивно- рекурсивен. Операции исчисления высказываний (отрицание, конъюнк- ция, дизъюнкция, импликация) сохраняют примитивную рекурсивность предикатов. — Определение. Предикат P(xi,..., хп) разрешим, если характеристическая функция <p(xi,хп) вычислима; предикат Р(хг, ...,хп) неразрешим, если функция фр(х1, ,.,х„) невычислима. Одиннадцатое практическое занятие по теме «Рекурсивные функции» Задача 1. Найдите функции g и h в рекурсивной формуле для двухместной функ- ции f(x, у) = х у, если рекурсия проводится по переменной х. Решение. Алгоритм решения: 1. Найдите функцию g(x) = /(0, у) (т. к. рекурсия проводится по х). g(y) = /(О, у) = 0 у = 0. 2. Подставить в функцию f(x, у) вместо х значение х + 1. f(x + 1, у) = (х + 1) у = х у + у. 3. Выразить функцию f(x + 1, г) через f(x, у), х, у f(x + l,y) = f(x,y) + y. 4. Найти функцию h(x, у, z) из формулы /(х + 1, у) = h (х, у, f(x, у)), заменив f(x, у) на 2. h(x, у,г) = z + y. 6-6234
146 * Часть 8. Элементы теории алгоритмов Задача 2. Найдите функции g и h в рекурсивной формуле для трехместной функ- ции f(x, y,z) ~ х у + z, если рекурсия проводится по переменной у. Решение. Алгоритм решения. 1. Найти функцию g: g(x, г) = f(x, 0, z) (так как рекурсия проводится по у) g(x, z) = f(x, О) = х О + z = z. 2. Подставить в функцию f(x, у, г) вместо у значение у + 1. f(x, У + 1, Z) = х(у + 1) + 2 = xy + 2 + X. 3. Выразить функцию f(x, у + 1, z) через f(x, у + 1, z), х, у, г. f(x, у + 1,2) = (ху + z) + х = f(x, у, z) + X. 4. Найти функцию h(x, у, г, t) из формулы f(x, y + l,z) = h(x,y,z, Дх, у, z)). Заменив f(x, у, z) на t, получим h(x, у, z,t) = t + x. Задача 3. Примените оператор примитивной рекурсии к простейшим функциям g(x) = Jj(x) = х и h(x, y,z) = z' = z + 1, постройте функцию f(x, у) = R(g, h), если рекурсия проводится по переменной у. Решение. Для построения функции f(x, у) = R(g, h) составим примитивно- рекурсивное описание функции Дх, у) по переменной у, применяя оператор при- митивной рекурсии к функциям g(x) = х; h(x, у, z) = z + 1 по переменной у. ДО, х) = g(x) = х, /(1, х) = /Дх, 1, ДО, х)) = ДО, х) + 1 = х + 1, Д2, х) = h (х, 2, Д1, х)) = Д1, х) + 1 = х + 1 + 1= х + 2, ДЗ, х) = Л (х, 3, Д2, х)) = Д2, х) + 1= х + 2 + 1= х + 3, Д4, х) = h (х, 4, ДЗ, х)) = ДЗ, х)+1=х + 3 + 1= х + 4, f(y,x) = h(x,y,f(y - 1, х)) = f(y - 1, х) + 1 = х + (у - 1) + 1 = х + у. Получим двухместную функцию сложения Дх, у) = х + у, которая примитивно- рекурсивная, так как получена из простейших функций с помощью конечного числа применений оператора примитивной рекурсии. Задача 4. Примените оператор примитивной рекурсии к простейшей функции g(x) = О и к примитивно-рекурсивной функции Л(х, у, г) = х + у по переменной у, постройте функцию Дх, у) = R(g, h), записав ее в аналитической форме. Решение. Примитивно-рекурсивное описание функции Дх, у) по переменной у: ДО, х) = Дх) = О, Д1, х) = х + ДО, х) = х + О = х,
Одиннадцатое практическое занятие по теме «Рекурсивные функции» 147 7(2, х) = х + f(l, х) = х + х = 2х, 7(3, х) = х + 7(2, х) = х + 2х = Зх, 7(4, х) = х + 7(3, х) = х + Зх = 4х, f(y, х) = х + f(y - 1, х) = х + (у - 1)х = ху. Получили двухместную примитивно-рекурсивную функцию умножения 7(х, у) = ху. Задача 5. Применив оператор примитивной рекурсии к функциям g(x) = 1 и h(x, у, г) = ху по переменной у, постройте функцию 7(х, у) = B(g, h), записав ее в аналитической форме. Решение. Примитивно-рекурсивное описание функции 7(х, у) по переменной у: 7(0, х) = g(x) = О, 7(1, х) = 7(0, х) х = 1 х = х, 7(2, х) = 7(1, х) • х = х х = х2, 7(3, х) = 7(2, х) - х = х2 - х = х3, f(y, х) = f(y — 1, х) - х = х-у 1 • х = ху. Получили двухместную примитивно-рекурсивную функцию f(x, у) = ху. Задача 6. Докажите, что одноместная функция х! (где О! = 1) — примитивно-ре- курсивная. Решение. Пусть g(x) = 1; h(x) = /г(х) - х', 7(0) = ^= 1!, 7(1) = Л (7(0)) Г = 1 • Г = 1(1 + 1) = 1 2 = 2!, 7(2) = Л (7(1)) • 2' = 1 • 2(2 + 1) = 1 - 2 - 3 = 3!, 7(3) = Л (7(2)) 3' = 1 2 3(3 + 1) = 1 • 2 • 3 • 4 = 4!, 7(х - 1) = й(7(х - 2)) - (х - 1) = 1 2 • 3 • 4 •... • (х - 1)(х - 1 + 1) = = 1 • 2 • 3 ... - х = х!, т. е. функция х! — примитивно-рекурсивная. Задача 7. Примените оператор минимизации к функции 7(х) = {Зх+ 2, если х 2, не определено, если х = 2. Решение. Для каждого xq € N ищем минимальное решение уравнения f(y) = xq. e*
148 Часть 8. Элементы теории алгоритмов Так как множеством значений функции f(x) является множество {Зп + 2 : п 2} = {2,5}U{11, 14, ...,3м+ 2, то уравнение f(y) = Хо имеет решение лишь при Хц = 2, 5, 11,14,.... Для всякого такого Хо решение единственное (оно равно х0 - 2 3 ' Принимая во внимание, что функция f(x) при х = 2 не определена, заключа- ем: найденные решения, превосходящие 2, т. е. 3,4,..., не являются допустимы- ми в силу определения минимизации. Итак, функция g(x) = yxf(x) определена только при х = 2 и х = 5; g(2) = О, g(5) = 1. Задача 8. Докажите, что если функция f(x±,..., х„) примитивно-рекурсивна, то следующие функции примитивно-рекурсивные: а) Л(х4,х2, ...,х„) = Дх2,Х1, ...,хп), 6)/'2(xi,x2, ...,х„) = f(x2, ...,xn,xi), в)/з(Х1, ...,Xn,Xn+1) = Дх4, ...,Хп), г)/4(Х|, ...,Xn ]) = f(Xi,Xi, ...,хп 1). Решение. Функции fi, f2, fs, Д получаются суперпозициями из f и J"n. а) А(Х1,х2,х3, ...,хп) = = f (J2(X1, ...,Х„), J?(X1, ...,ХП), Jg(Xi, ...,хп),..., J"(xi, ...,xn)) = = f(x2,xi,x3, ...,xn), что и требовалось доказать. б)/2(Х1,Х2, ...,х„) = = / (J2(X1, ...,х„), J^(Xi, ...,xn), J"(X1, ...,х„),J?(X], ...,х„)) в) /з(Х1,Х2, ...,Х„+1) = f (JJH(X1, ...,Хп+1), ..., J"+1(X1, ...,Xn+i)) , г)/4(Х1, ...,Xn 1) = f (Ji(Xi, ...,X„_i), ..., J^„4(xt, ...,Xn -1)) . Задача 9. Пусть gn+1 — примитивно-рекурсивная функция. Доказать, что функ- Х1р1 ция fni (х4, ...,xn,xn+i) = 52 £(xi, х„, i) примитивно-рекурсивная. i=0 Решение. fn+1(xi,..., хп, О) = g(xi,..., хп, О), Г+1(Х1, ...,хп,у+ l) = g(xi, ...,хп,у + 1) +Дхь ...,хп,у). Задачи для самостоятельного решения Задача 10. Найдите функции g и h в рекурсивной формуле для двухместной функции f(x, у), если рекурсия проводится: а) по переменной х, б) по перемен- ной у. Составьте примитивно-рекурсивное описание функции f(x, у) и докажите, что функция Дх, у) принадлежит классу примитивно-рекурсивных функций. 1) Дх, у) = 2ху; 2) Дх, у) = у + Зх; 3) Дх, у) = ху + у + х; 4)f(x,y) = х+2у+1; 5)Дх,г/) = х2+у; 6)Дх,1/) = Зх+У; 7)f(x,y) = (x+y)2; 8) Дх, у) = х2 + у2.
III. Нормальный алгоритм Маркова 149 Задача 11. Найдите функции g и h в рекурсивной формуле для трехместной функции f(x, у, г), если рекурсия проводится по переменной х: 1) f(x, у, г) = xy2z; 2) f(x, у, z) = х2(у 4- г); если рекурсия проводится по переменной у: 3) f(x, у, г) = х2у + y2z; если рекурсия проводится по переменной г: 4) f(x, у, г) = ху + г; 5) /(х, у, г) = 2х+г/+г. Задача 12. Найдите рекурсивные формулы для трехместной функции f(x, у, г) и составьте примитивно-рекурсивное описание, если рекурсия проводится по переменной х: 1) f(x, у, 2) = xy2z; 2) f(x, у, г) = х2(у + г), если рекурсия проводится по переменной у; 3) f(x, у, 2) = х2у + у2 г, если рекурсия проводится по переменной г; 4) f(x, у, г) = ху + г; 5) f(x, у, г) = 2х+г/+г. Задача 13. Применив оператор примитивной рекурсии к функциям g и h по переменной х, постройте функцию /(х) = R(g, h) и запишите ее в аналитической форме: a) g = О; h(x, у) = 2х + у; б) g = 0; h(x, у) = х + 2у; Ответ: а) /(х + 1) = х(х + 1); б) f(x + 1) = 2x+1 — х - 2. III. Нормальный алгоритм Маркова Наряду с рекурсивными функциями нормальный алгоритм Маркова получил известность в качестве одного из уточнений общего интуитив- ного представления об алгоритме. Исходными данными и возможными результатами применения нормального алгоритма являются конструк- тивные объекты, достаточно общего типа — слова, и это обстоятельство определяет его роль как алгоритма в алфавите в математике.
150 Часть 8. Элементы теории алгоритмов 1. Основные определения Определение. Алфавитом называется любая конечная система различных символов. Определение. Буквами называются символы, составляющие алфавит. Определение. Словом в алфавите называется любая конечная последова- тельность букв в этом алфавите. Определение. Пустым словом называется слово, не содержащее ни одной буквы и обозначаемое символом Л. Примеры. 1) {а, ъ, ?, 7, *} — алфавит; а, ъ, ?, 7, * — буквы. 2) {а, Ь, с} — алфавит; ас, a, abbca, bbbbb, bbacab — слова этого алфа- вита. 3) Алфавит исчисления высказываний состоит из букв А, В, Q, R, Р и других, возможно с индексами, логических связок — Л, V, а также вспомогательных символов (,). Основная операция на словах — операция приписывания слова к сло- ву: если дано слово, имеющее вид аоа...ап, и слово вида bobi.. .bm, то мож- но образовать новое слово ао°1 • -^nbobi...bm, полученное приписыванием или соединением слов. Если Л — пустое слово, а а — слово, то Ла = аЛ = а. Определение. Два конкретных слова aoaj...a„ и bobi...bm и в алфавите А равны, т. е. aoaj ...а„ = bobi...bm, если п ти щ = bi,..., ап = Ьп. Все пустые слова считаются равными. Определение. Если aoai...a„ — слово, состоящее из л букв, где ai...an е А, то п называется длиной этого слова. Длиной пустого слова будет число 0. Рассмотрим два слова: слово Р и слово Q в некотором алфавите А. Если слово Р является частью слова Q, то говорят, что слово Р входит в слово Q.
III. Нормальный алгоритм Маркова 151 В качестве примера можно привести два слова: Р = ас; Q = bbacab. В общем случае слово Р может входить в слово Q несколько раз. Так, слово bcb два раза входит в слово abcbcbab. Определение. Ассоциативным исчислением называется совокупность всех слов в данном алфавите А вместе с конечной системой допустимых подставок, т. е. чтобы задать ассоциативное исчисление достаточно задать алфавит и систему подстановок. Опишем процесс преобразования слов, позволяющий из заданного слова получить новые слова. Зададим в некотором алфавите А конечную систему допустимых подстановок, т. е. пар слов в этом алфавите: Р — Q; L — M; ...,S-T. Любую подстановку L — М можно применять к некоторому слову R этого алфавита следующим способом: если в слове R имеется одно или несколько включений слова L, то любое из этих включений может быть заменено словом М и наоборот, если имеется включение слова М, то его можно заменить словом L. К полученным с помощью допустимых подставок словам можно снова применить допустимые подстановки: так будут получены новые слова. Определение. Два слова Pi и Р2 в некотором ассоциативном исчислении называются смежными, если одно из них может быть преобразовано в дру- гое при помощи однократного применения некоторой допустимой подста- новки. Определение. Последовательность слов Pi,P2,Ps, ...,Q называется де- дуктивной цепочкой, ведущей от слова Р к слову Q, если каждые из двух рядом стоящих слов этой цепочки являются смежными. Определение. Два слова Р и Q называются эквивалентными, если суще- ствует дедуктивная цепочка, ведущая от слова Р к слову Q. Отношение экви- валентности обозначается Р о Q. Очевидно, что если Р о Q, то, поскольку допустимые подстановки можно применять в обе стороны, Q о Р. Иногда рассматривается специальный вид ассоциативного исчисле- ния, которое задается алфавитом и системой ориентированных подстано- вок вида Р -> Q. Это означает, что подстановку разрешается проводить
152 Часть 8. Элементы теории алгоритмов лишь слева направо, т. е. заменять вхождение слова Р на слово Q, но не наоборот. Ясно, что в таком ассоциативном исчислении из эквивалентности Р <-> Q не следует, что Q <-> Р. 2. Проблема слов в ассоциативном исчислении Проблема слов в ассоциативном исчислении заключается в следую- щем: для любых двух слов в данном исчислении требуется узнать, экви- валентны они или нет. Поскольку в любом ассоциативном исчислении содержится бесчис- ленное множество различных слов, проблема эквивалентности представ- ляет собой бесконечную серию однотипных задач, а решение мыслится в виде алгоритма, распознающего эквивалентность или неэквивалентность любой пары слов. Можно легко построить алгоритм, решающий так на- зываемую ограниченную проблему слов: требуется установить, можно ли одно из заданных слов преобразовать в другое применением допустимых подстановок не более чем k раз, где k — произвольное, но фиксированное число. Применительно к подстановкам это означает, что сначала надо по- строить все слова, смежные с одним из заданных слов, затем для каждого из полученных слов построить все слова, смежные с ним, и т.д., всего k раз. В итоге мы будем иметь список слов, которые можно получить из заданного слова с помощью применения допустимых подстановок не более k раз. Если второе заданное слово окажется в этом списке, то, следо- вательно, ответ на поставленный вопрос будет положительным, если его в списке нет, ответ будет отрицательным. Однако успешное решение ограниченной проблемы слов не прибли- жает нас к решению основной, «неограниченной» проблемы. Посколь- ку длина дедуктивной цепочки, ведущей от слова Р к слову Q, может оказаться сколь угодно большой, то неизвестно, когда следует считать законченным процесс переработки. Возникает проблема: для произвольного ассоциативного исчисления требуется построить алгоритм, который для любой пары слов в алфавите этого исчисления позволял бы за конечное число шагов выяснить, экви- валентны ли в данном исчислении слова, составляющие эту пару, т. е. построить алгоритм в некотором алфавите А.
III. Нормальный алгоритм Маркова 153 3. Алгоритм в некотором алфавите А Определение. Алгоритмом в алфавите А называется всякое общепонятное точное предписание, которое определяет потенциально возможный про- цесс над словами из А, допускающий любое слово в качестве исходного и последовательно определяющий новые слова в этом алфавите. Уточнение понятия алгоритма в алфавите А связано с использованием аппарата подстановок, т. е. с построением ассоциативного исчисления. Определение. Алгоритм в алфавите.4 задается в виде некоторой системы допустимых подстановок, дополненной общепонятным точным предписа- нием о том, в каком порядке и как нужно применять эти допустимые под- становки, и когда наступает остановка. Таким образом, схема подстановок вместе с указанием, как ими пользоваться, определяет алгоритм в алфави- те А. Определение. Два алгоритма в некотором алфавите называются эквива- лентными, если области их применимости совпадают, и результаты пере- работки ими любого слова из их области применимости также совпадают. 4. Нормальный алгоритм Маркова А. А. Марковым было дано точное математическое определение нор- мального алгоритма. Задается алфавит А и фиксируется схема подстановок. Алгоритм предписывает, исходя из произвольного слова Р в алфавите А, просмо- треть формулы подстановок в том порядке, в каком они заданы в схеме, разыскивая формулу с левой частью, входящей в Р. Если такой формулы не найдется, то процесс обрывается. В противном случае берется первая из таких формул и делается подстановка ее правой части вместо первого вхождения ее левой части в Р, что дает новое слово Р± в алфавите А. После выполнения первого шага приступают ко второму шагу, отличающемуся от первого только тем, что роль Р играет Р}. Далее делают аналогичный третий шаг и т. д. до тех пор, пока не придется оборвать процесс. Оборвать- ся же он может лишь двумя способами: во-первых, когда мы получим
154 Часть 8. Элементы теории алгоритмов такое слово Рп, что ни одна из левых частей формул схемы подстановок не будет в него входить; во-вторых, когда при получении слова Рп нам придется применить последнюю формулу. В обоих случаях мы считаем, что наш алгоритм перерабатывает слово Р в слово Рп. Различные нормальные алгоритмы отличаются друг от друга лишь алфавитами и системами допустимых подстановок. Чтобы задать какой- либо нормальный алгоритм достаточно задать алфавит и систему подста- новок. Понятие алгоритма в некотором алфавите было уточнено Марковым следующим образом: всякий алгоритм в алфавите А эквивалентен нор- мальному алгоритму в этом же алфавите. 5. Нормально вычислимая функция Определение. ПустьА = {щ,..., ап} — алфавит. Если Р, Q — слова в алфа- вите А, то выражения Р -> Q, Р —> oQ называются формулами подстановки в алфавите А. При этом формула Р -> Q называется простой, а формула Р oQ — заключительной. Определение. Произвольная конечная последовательность формул назы- вается схемой S нормального алгоритма U. Таким образом, схема нормаль- ного алгоритма имеет вид: Pi —> о<?1, Р2 —> °0г, • ••> Рп —> °Qm- Схема S определяет алгоритм U, перерабатывающий слова в алфави- те А, т. е. вычисляющий словарную функцию на словах в алфавите А. Нормальный алгоритм U со схемой S вычисляет словарную функцию F : А* А*, где А* — множество слов в алфавите А, если для любых слов Р, Q G А* имеем /’s(P) = Q. Таким образом, вычислительный процесс в алгоритме Маркова сво- дится к преобразованию слов в соответствии с заданной программой с помощью словарной функции. Оказалось, что класс функций, вычислимых с помощью нормальных алгоритмов, совпадает с классом частично-рекурсивных функций.
Двенадцатое практическое занятие по теме «Нормальные алгоритмы» 155 Двенадцатое практическое занятие по теме «Нормальные алгоритмы» Задача 1. Задано слово abcbcbab, примените к нему подстановку ab — bcb. Решение. Замена каждого из двух вхождений bcb дает слова aabcbab, abcabab, а замена каждого из двух вхождений ab дает слова bcbcbcbab, abcbcbbcb. Задача 2. Покажите, что подстановка ab — bcb не применима к слову bacb. Решение. Эта подстановка не применима к слову bacb, так как в это слово не входит ни слово ab, ни слово bcb. Задача 3. Задано ассоциативное исчисление алфавитом {a, b, с, d, е] и системой допустимых подстановок 1)ас —са, 2) ad — da, 3)bc — cb, 4)bd — db, 5) abac — abacc, 6)eca — ae, 7) edb — be. Покажите, что 1) слова abcde и acbde в этом исчислении являются смежны- ми; 2) слово aaabb не имеет смежных слов; 3) слово abcde эквивалентно слову cadedb. Решение. 1) Слова abcde и acbde являются смежными, так как слово abcde может быть преобразовано в слово acbde с помощью применения подстановки be — cb; 2) слово aaabb не имеет смежных слов, так как к нему не применима ни одна подстановка; 3) слово abcde эквивалентно к слову cadedb, так как существует дедуктив- ная цепочка смежных слов: a^bc^de, ^ac^bde, ca^bd^e, cad^be^, cadedb. Здесь последовательно применимы подстановки 3, 1, 4, 5. Задача 4. Пусть задан нормальный алгоритм Маркова: алфавит А = {1,+} и система подстановок S: 1) 1+ —> +1; 2) +1 —> 1; 3) 1 —> ol. Стрелками общепринято обозначать тот факт, что задано не ассоциативное исчисление обычного вида, а нормальный алгоритм Маркова. Покажите, во что перерабатывает этот алгоритм слово 1111 + 11 + 111. Решение. Последовательно получаем слова: 111^11 + 111 -> llsl+zlll + 111 1^1111 + 111 ->ч1+Д1111 + 111 -> -> lllllJH^lll -> +1111<1+Д111 -> +111<1+Д1111 -> +11^111111 -> ->+1 1+ 1111111->+<1+Д1111111->+^11111111->^11111111-> -> 111111111 >111111111. Процедура заканчивается применением заключительной подстановки 1 —> —> ol, которая перерабатывает слово 111111111b себя. Задача 5. Пусть задан нормальный алгоритм Маркова: алфавит А = {1, +}; си- стема подстановок S: 1) + —> Л; 2) 1 —> ol (л — пустое слово). Покажите, что этот алгоритм перерабатывает слово 11 + 111 + 1 + 11в слово 11111111.
156 Часть 8. Элементы теории алгоритмов Решение.!! + 111 +1 +11-> 11111 + 1 + 11111111^11-> 11111111-> -+ ollllllll. Замечание. Нетрудно убедиться, что указанные в задачах 3 и 4 два нормальных алгоритма эквивалентны, и оба суммируют количество единиц, т. е. осущест- вляют сложение. Задачи для самостоятельного решения Задача 6. Покажите, что алгоритм с алфавитом А = {1, +} и системой подстано- вок S: 1) 1+ —> +1; 2) +ч—> +; 3) + —> Л эквивалентен нормальным алгоритмам в задачах 4 и 5. Задача7. Покажите, что нормальный алгоритм А = {1, *, V, ?}и5:1) *11 —> V* 1; 2) *1 -> V; 3) IV -> VI?; 4) ?V -> V?; 5) Vl -> V; 6) V? -+?; 7) ? -> 1; 8) 1 -> о] перерабатывает всякое слово вида J 11...11*111..11 в слово 111...11, т. е. осу- траз праз т-праз ществляет умножение. Задача 8. Постройте нормальный алгоритм, вычисляющий функцию х2, если А{0,1, а, Ь, с, d, е}; система подстановок S: 1) cl —> Оас; 2) аО —> Оа; 3) еа —> ае; 4) Оа -> аеО; 5) Ос -+ d; 6) ed -> dl; 7) ad -> d; 8) Ос? -» d; 9) be -> ol; 10) bd ol; 11)1 -+ be. Указание: для изображения натурального числа т здесь использована за- пись 11...1, где число единиц равно тп + 1, т. е. для т = 2 используется слово 111, для т = 4 — 11111. Решение. 1 11 -+ b cl 1 -> ЬОа cl -> b Оа Оас -+ Ь0 Оа ас -> b Оа еОас -> —> ЬаеОе Оа с —> ЬаеО еа еОс > Ьае Оа ееОс Ьа еа еОееОс —> -> ЬааееОес Ос -> baaeeOc ed -> baaeeO ed 1 -» baaee Od 11 -+ bae ed 11 -» -> baa ed 111 -> ba ad 1111 -> b ad 1111 -+ bd 1111 -+ оЦЦ1. Задача 9. Постройте нормальный алгоритм U над алфавитом А такой, что для любого слова а в алфавите A U(a) = аа. IV. Машины Тьюринга Определение вычислимости, предложенное А. М. Тьюрингом, осно- вано на анализе осуществления алгоритма человеком, в распоряжении
IV. Машины Тьюринга 157 которого имеется карандаш и бумага. Тьюринг рассматривает это как последовательность простых действий следующего вида: (а) запись или стирание одного символа; (б) перенесение внимания с одного участка бумаги на другой. Тьюринг изобрел конечные машины, которые выполняют алгоритмы, представленные таким способом. Из интуитивного понятия алгоритма ясно, что вычисления в соот- ветствии с некоторым алгоритмом производятся чисто механически и их можно поручить машине. 1. Алгоритмы Тьюринга Тьюрингскими алгоритмами являются алгоритмы, конструктивные объекты которых можно кодировать в виде слов в некотором алфавите. Пусть заданы два конечных алфавита А и Q. А назовем внешним ал- фавитом; Q назовем внутренним алфавитом (или алфавитом состояний). Внешний алфавит — это конечный алфавит символов, которые по- даются на вход машины Тьюринга и выдаются на ее выходе. Внутренний алфавит — это конечный алфавит символов, комбина- ции которых определяют внутреннее состояние машины Тьюринга. Эле- менты А называются внешними символами машины, элементы Q — внут- ренними состояниями или просто состояниями. Предположим, что символы ->,/?,£ не входят ни в А, ни в Q. Командой назовем слово одного из следующих трех видов: qa —> rb', да —> rbR; да —> rbL, где q, г G Q; a, b G А. Команды, подобно формулам языка, можно читать по-русски. Команда первого вида читается так: «на- ходясь в состоянии q и наблюдая букву а, следует перейти в состояние г и напечатать букву Ь». Команда второго вида: «находясь в состоянии q и на- блюдая букву Ь, следует перейти в состояние г, напечатать букву b и затем передвинуться вправо». Команда третьего вида читается так же, как и ко- манда второго вида, за исключением концовки: «...и затем передвинуться влево». Конечная последовательность команд называется программой ма- шины. Пусть теперь фиксированы алфавиты А и Q, а также две буквы qo, qi G Q и одна буква ао G А. Мы называем qo — начальным состоянием, qi — финальным или заключительным состоянием, букву ао называем бланком, или пустой клеткой, или пробелом. Алфавит Q х А назовем алфавитом наблюдаемых букв: про букву {q, a) G Q х А говорим, что а наблюдается в состоянии q.
158 • Часть 8. Элементы теории алгоритмов Машинным словом, или конфигурацией, называется слово в алфави- те AU(Q х А), содержащее в точности одно вхождение наблюдаемой буквы. Таким образом, машинное слово всегда имеет вид: a {q, а) р, где а, Р е А*, А* — множество слов алфавита А, и буква а наблюдается в состоянии q. Машинное слово называется начальным, если оно имеет вид {q0, а) Р- Здесь qo — начальное слово а в данном случае пустое. Машинное слово на- зывается финальным или заключительным, если оно имеет вид a {qo, а) Р, т. е. наблюдаемая буква находится в заключительном состоянии. Пусть Ку и К2 — конфигурации или машинные слова некоторой машины М и k — команда. Определим, что значит команда k перево- дит машинное слово Ку в К2‘, символически запишем это отношение так fe : ЛГ1 Д К2. Пусть Ку имеет вид a{q, а) р. Если левая часть команды k не имеет вида qa, то k : Ку —> К2 автоматически считается ложным, т. е. команда k не применима к машинному слову Ку. Пусть левая часть команды k имеет вид qa, тогда разберем три случая в зависимости от строения команды k: 1) k есть qa -> rb. В этом случае k : Ку К2,лК2 имеет вид а (г, b) Р; 2) k есть qa -> rbR. Здесь рассмотрим два подслучая: а) слово Р не пусто, Р = cP', тогда k : Ку К2, и К2 имеет вид ab {г, с) Р'; Ь) слово Р пусто, тогда k : Ку К2, и К2 есть ab {г, ао). 3) k есть qa -> rbL. Здесь рассматриваются два подслучая: а) слово а не пусто, а = а'с, тогда k : Ку К2 и К2 есть а/ {г, с) Р; Ь) слово а пусто, тогда k : Ку К2м.К2 есть {г, ао) &Р- Легко видеть, что если k : Ку К2, то машинное слово К2 определя- ется однозначно по команде k и машинному слову Ку. Перевести Ку в К2 командой k — это значит «выполнить команду k, проделать то, что она „требует“». После выполнения команды наблюдаемой может стать уже другая буква, левее или правее исходной. 2. Формализация машины Тьюринга Определение. Машиной Тьюринга называется набор М = {A, Q, П, qo,Qi. ао), где А — внешний алфавит, Q — внутренний алфавит, П — программа машины, q0 — начальное состояние, qy — заключительное состояние, ао — бланк или пробел.
IV. Машины Тьюринга 159 Мы говорим, что машина М переводит машинное слово К± в К2 и ,, __ м „ имеем М : К] —> Л.2, если 1) существует команда kt программы П машины М такая, что 2) для всех j < i не существует машинного слова К3 такого, что ki-.K^ К3. Таким образом, если М : Ki —> К2, то машинное слово К2 определя- ется однозначно по М и . Конечно, вполне может оказаться, что некото- рое машинное слово не переводится машиной М ни в какое машинное слово К2. Протокол вычислений машины Тьюринга М есть конечная последо- вательность машинных слов Kq, Ki, ..., Кп такая, что: 1) Kq — начальное машинное слово; 2)M:Kt^Ki+1-, 3) если машинное слово Ki входит в протокол М : Kt —> Ki+i, причем К} — не заключительное машинное слово, то Ki+1 также входит в протокол вычислений. Т. е. протокол не оканчивается словом К,, если вычисления можно продолжить дальше; 4) протокол вычислений может содержать не более одного заключи- тельного слова, и если протокол действительно содержит заключительное машинное слово, то этот протокол конечен и заключительным машинным словом является последний его член. Машину Тьюринга можно представить себе как определенный тип вы- числительной машины, обрабатывающую слова в алфавитах и порожда- ющую функцию, которая перерабатывает некоторые слова в алфавите А в слова алфавита А. То есть если а, Р G А*, то М(а) = |3. Заметим, что функция М может быть определена не на всех словах алфавита А. Машина М определена на слове а, и пишем М(а), если М определена на начальном слове. 3. Тезис Черча-Тьюринга Сформулируем тезис Черча, который теперь звучит так: всякий сло- варный, дискретный, массовый, детерминированный, замкнутый алго- ритм может быть задан в виде машины Тьюринга. Другими словами, для всякой функции, которую можно каким-либо способом вычислить, мож- но построить вычисляющую ее машину Тьюринга. Это утверждение, вы- сказанное впервые Тьюрингом, называется тезисом Черча-Тьюринга.
160 Часть 8. Элементы теории алгоритмов В заключение сформулируем следующую теорему. Класс функций, вычислимых по Маркову, совпадает с классом функций, вычислимых по Тьюрингу, и, следовательно, совпадает с классом частично-рекурсивных функций. Тринадцатое практическое занятие по теме «Машина Тьюринга» Задача 1. Покажите, что машина Тьюринга со следующей программой команд: <710-> щ1->401; <7г0 —> <721; g2l-> g2l-R вычисляет функцию f(x) = х + 1. Задача 2. Постройте машину Тьюринга, которая правильно вычисляет функцию ()(х) = 0. Решение. QiO -> q20R, <у2()-> </30L, q2-> q2lR, дзО -> доО, д31 -> q30L. Задача 3. Пусть f(x) и g(x) — правильно вычислимы по Тьюрингу. Покажите, что функция Л(х) = f(g(x)) — правильно вычислима по Тьюрингу. Решение. ПустьFnG — машины, правильно вычисляющие f и gсоответственно. Тогда Н = Go F правильно вычисляет h. Задача 4. Выясните, применима ли машина Тьюринга Т, задаваемая программой П, к слову Р. Если применима, то выпишите результат применения машины Т к слову Р. Считается, что q — начальное состояние. 'giOg2lB Программа П: < g20g3LR g2lg30L дзОщОТ? а)Р= 1031;б)Р = [10]21. Решение, а) Исходя из конфигурации щЮ3!, получаем последовательно такие конфигурации: qi05l, lg204l, l2g303l, l20gi02l, l201g2()l, l2012g3l. Так как команды вида д-ДщссО входят в программу П, то последняя конфигурация (т. е.
Тринадцатое практическое занятие по теме «Машина Тьюринга» 161 12012<7з1) — заключительная. Следовательно, машина Т к слову Р = 1021 при- менима и Т(Р) = 12013. б) Выписывая конфигурации, имеем 9i[10J21, 9i03101, 19202101, 129з[01]2, 120qi101, 12(/i031, 13q2021, l49301, l40V] 1, l4gi0, l5(/20, l6Q30, 160(/i0, 1601q20, l6012(730, 160120(7i0, l601201<72(), 160 1 20 1 2<7з0 и т. д. Ясно, что этот процесс про- должается неограниченно. Значит, машина Т к слову Р = 1021 не применима. Задача 5. Выясните, применима ли машина Тьюринга Т, задаваемая програм мой П, к слову Т. Если применима, то выпишите результат применения машины Т к слову Р. qi — начальное состояние, 9о — заключительное состояние. 1. qiOqi OR I Qll^O/? 921920Z? 92090IS a)P = 1301;б)Р = 12021;в)Р= I6. Ответ: a) TP) = l301; 6) T(P) = 1; в) к слову l6 не применима. '910q2IL < 9i1921J? 9219i 12? а)Р= 12021;б)Р = 16;b)P = l2013. Ответ: a) T(P) = l301; б) T(P) = I7. 3. '916921/? 91 lq2OL < 92 69312? 9219з 02? 931911Z? П : a)P= 13012;б)Р= 15;b)P= l2[01]2. Ответ: a) T(P) = 102l2013; 6) T(P) = 104l3; в) T(P) = 101202l. '90091I/? 9i1920J? < 92O91I2? q2lq3lL 93O91IL a)P= 103l;6)P= 10212;b)P= 103l. Ответ: К данным словам не применима. Задача 6. Постройте в алфавите {0; 1} машину Тьюринга, которая применима к словам вида pm+ig-pn+i р и n о) и i2moi2" (m 1 и л 1), но не применима к словам вида i2moi2n и 12«-г012т (т 1 ил 1). Решение. Подходящая машина задается программой 91I92I/?, 9319з12?»
162 Часть 8. Элементы теории алгоритмов q2lqilR, q4lq2!R, 71О73ОЙ, q4 Об/4 OS, q2 O74 0/?. Задача 7. Постройте машину Тьюринга для вычисления функции х + у. Решение. <710 -> q20R, q20 -» (/il/?, <7зО -> д4ОЬ, qoO, 721 -> 721#, 7з1 -> 7з1#, 741 -> 750L, 751 -» 75IL- Контрольные вопросы 1. Какая функция называется вычислимой? 2. Что называется алгоритмом? 3. Какие объекты называются конструктивными? 4. Сформулируйте характерные свойства алгоритмов. 5. Приведите пример вычислимого алгоритма: вычисление числа п. 6. Перечислите основные варианты математического определения алго- ритма. 7. Какие функции называются простейшими? 8. Дайте определение операций суперпозиции, примитивной рекурсии и ми- нимизации. 9. Какая функция называется примитивно-рекурсивной, частично-рекур- сивной? 10. Дайте определение примитивно-рекурсивных предикатов. Какая функ- ция называется характеристической для предиката Р? 11. Сформулируйте тезис Черча. 12. Что называется алфавитом, буквами алфавита, словом в алфавите А? 13. Что называется ассоциативным исчислением в данном алфавите А? 14. Сформулируйте понятие алгоритма в алфавите А? 15. Дайте математическое определение нормального алгоритма Маркова. 16. Какая функция называется нормально вычислимой? 17. Что собой представляет алгоритмическая система Маркова? 18. Сформулируйте понятие машины Тьюринга. 19. Дайте математическое определение алгоритма Тьюринга. Что собой пред- ставляет алгоритмическая система Тьюринга? 20. Какие команды выполняются в алгоритмической системе Тьюринга? 21. Дайте определение функции вычислимой по Тьюрингу, определение ре- курсивного предиката по Тьюрингу. 22. Сформулируйте тезис Черча-Тьюринга.
Часть 9 Задачи для контрольных и самостоятельных работ I. Функции алгебры логики. Многочлены Жегалкина Для заданной булевой функции трех переменных а) Постройте таблицу истинности, найти двоичную форму булевой функции и привести функцию к СДНФ и СКНФ, б) Найдите двумя способами многочлен Жегалкина и ответить на вопрос, является ли данная булева функция линейной, в) С помощью эквивалентных преобразований приведите функцию к ДНФ, КНФ. СДНФ, СКНФ. _____________ ___________________________ 1. (х V у) -> (z ф х); 2. (х V у) -> (z ф х); 3. (х V у) -> (z ф х); 4. (х V z/) —> (z о х); 5. (х V у) -> (z о х); 6. (х | у) ф (z -> х); 7. (z -> х) о {у | х); V8- (х | у) Ф (г -> х); 9. (z ->х) о (х | у)-, 10. (z -> х) 3 (х | у); 11. ((х 4, ^) -> z) ф 12. ((х О у) ->z)y; 13. (х Vy) -> (z н у); 14. ((х | у) -> z) о у; 15. (х 4.у) -> (z н у); 16. ((х о ^) | z) ф у; 17. (х V у) -> (z о х); 18. ((х | у) -> z) о х; ^19. (х | z/) Ф (z -> у); 20. (х Vy)-> (z о у); v21. ((х ±у) ->z) фу; 22. ((х 4, у) -> z) о у; 23. ((х | у) -> z) о у; 24. ((х | у) -> z) ф у; 25. ((х | у) -> z) ф у. II. Множества и основные операции над ними Докажите тождества двумя способами: а) используя определения равенства множеств и операций над множествами; б) с помощью алгебры логики. 1. А(В U С) - (АВ) П (АС); 2. А(В п С) = (АВ) U (АС); 3. А П (ВС) = (А п В)(А П С); 4. (АВ)С = (АС)(ВС); 5. (AU В)С = (АС)U (ВС); 6. А(ВС) = (АВ)U (АП С); 7. А(В U С) = (АВ)С; 8. А(В U С) = (АВ) П (АС); 9. А и (ВС) = (A U В)(СА); 10. (АВ) U (АС) = А(В П С); 11. (А П В)(А П С) = А П (ВС); 12. А П (В U С) = (А П В) U (АП С); 13.AU (Вп С) = (AU В)П (AU С); 14. А п (ВС) = (А П В)С;
164 * Часть 9. Задачи для контрольных и самостоятельных работ > 15.A(BUC)=AO(BC); 16. Ап (В П С) = (АВ)Г)(АС); 17. (АВ)П(АПС) = А(ВиС); 18. (АС)(ВС) = (АС)В; 19. АПВ = (Хи В); 20. (A U В) = (А П В); 21. (А П В)С =_(АС) П (ВС); 22. (АВ)С = А(В U С); 23. (АПВ) U (АПВ) = (AUВ)П (AUВ); 24.АПВ = (АиВ)ПА; 25. ((АВ) U (ВА)) U (А П В) = A U В. 111. Комбинаторные формулы Решите уравнение или систему уравнений. 1 zix+з = гд3 . о С4 5 6(х+1> — 5дЗ . о рх-4 _?_дЗ . л ri2(x-l) _ . .3 Х-Сх+8 ОУ1х+6’ 4>С4х+9 ОЛ4х+7’ Сх+1 15^+1’ 4‘С2х+3 ~ 4А2(х+1)’ 5. 12С*-4 = 55А2; 6. 30С^“® = 19А4 4; 7. — +2-Рж~п = НО; 8 ?х+2 ~ 132- 9 Ах Р 8-А"-Рх_„ 132’ 9‘“pZ Рх л п+1 . р 10. "X х 11.12С1 +Сгх+4 = 162; 12. С^,, 15. &х + С2Х = 15(х - 1); 16. С4Х = 19. 22. 25. а^юаГ1, ( ру _ 5/пу-1. 20. < 3 9 лп—3 _ Хдн—2 ^Х > £ 23. гп-3 _. & рт—2. < х 8 х ’ ' дп-3 _ 1 д п— 2 Л5х уЛ5х ’ ztB — 2 __ 7 УП7?.-3 ke5x 4Ь5х ’ 4 СГ1 = 2,5х, CL1 = Ю; -42; ЗА1 2 3. "6~; 1 5А2 ж; V17. С2;< = 21; 18. С"+1 = —, глУ _ zt£/+2 *^х ^х > С2Х = 153; = 90; „ Ах +АЗ Al + Ах 13. - х - 1 = 43; 14. -х - х = 89; Ах Ах ЗА? ^ = 8А^- рвх _ 8-пЗх 1. ^4. ^2п д^2п ’ А2х2 = _ 8х^п—3. е2х ge2x ’ IV. Бином Ньютона 1. Найдите четвертый член разложения (а + З)7. /А12 2. Найдите девятый член разложения (а + у/b) . 3. Найдите шестой член разложения (а2 + fe3)13. 4. Найдите средний член разложения (у/а — Vt>)8. 5. Найдите средний член разложения (ху/х — I)14. 6. Найдите два средних члена разложения (у/а — 'УБ)13. 7. Найдите два средних члена разложения {yfa — 2ху/х)19. 8. Найдите пятый член разложения
Часть 9. Задачи для контрольных и самостоятельных работ 165 9. Найдите член разложения (х + у)9, содержащий х7. 10. Найдите член разложения (у/а + Ь)9, содержащий а3. 11. Найдите член разложения (у/а + tfa)20, содержащий а7. 12. Найдите член разложения 22 содержащий х 3 . 13. Найдите член разложения ** 4 содержащий х . 14. Найдите член разложения не содержащий q. 15. Найдите член разложения содержащий х 1. 16. Найдите член разложения не содержащий а. 17. Найдите член разложения не содержащий г. 18. Найдите член разложения не содержащий г. 19. Найдите член разложения 2х У не содержащий х.
166* Часть 9. Задачи для контрольных и самостоятельных работ 20 , не содержащий с. 20. Найдите член разложения ( + 21. Вычислите коэффициент при х5 в разложении (1 + х)7. 22. Вычислите коэффициент при х1 11 ‘ в разложении (1 + х5)7. 23. Определите х из условия, что пятый член разложения (x/х + |)6 равен . ' х/ 9 24. Определите х из условия, что третий член разложения (х + xlgx) равен 1 000 000. 25. Определите z из условия, что разность между пятым и третьим членами разложения (г + /5)6 равна 300. V. Предикаты Дано множество М = {а, Ь}. Предикат Р(х, у), где хну е М задан следующей таблицей: X У Р(х, У) а а 0 а Ъ 1 ь а 1 ъ Ь 1 Определить значение следующих высказываний: 1. (Vx)P(x, у) 3. (Vz/)P(a, у) 5. (Vx)(Vy)P(x, у) 7. (3x)(3j/)P(x,a) 9. (3x)(Vz/)P(x, у) 2. (Зх)Р(х, а) 4. (Зх)Р(а, у) 6. (Vy)(Vx)P(x, у) 8. (3z/)(3x)P(x, а) 10. (Vx)(3j/)P(x, у) Пусть S(x, у, г) и П(х, у, г) — соответственно предикаты сложения (z явля- ется суммой х и у) и умножения (z является произведением х и у), рассматри- ваемые на множестве Z всех целых чисел и на множестве No = N U {0} целых неотрицательных чисел. Какой смысл имеют следующие формулы и на каком множестве Z или No они истинны? 11. (3j/)(Vx)S(x, у, х) 13. (Vz)(Vx)(3z/)S(x, у, z) 15. (Vz/)(3x)S(x, у, 0) 17.(Vy)(3x)n(x,i/,0) 19. (Зх)(Зг/)П(х, г/, -5) 12. (Зг/)(/х)П(х, у, х) 14. (Vz)(Vx)(3z/)n(x, у, z) 16. (Зг/)(/х)П(х, у, —х) 18. (Vy)(3x)S(x,y, -5) 20. (3x)(3j/)S(x,j/,-12) Являются ли тождественно-истинными следующие формулы. 21. (Зх)Р(х) -4 (Vx)P(x) 22. (Vx)P(x) -4 (Зх)Р(х) 23. (Эх)Р(х) V (3x)Q(x) 44 (Зх)(Р(х) V Q(x)) 24. (3x)(Vi/)Q(x, у) -4 (Vi/)(3x)Q(x, у) 25. Р(х) -4 (Vi/)P(z/)
Часть 9. Задачи для контрольных и самостоятельных работ 167 VI. Графы Для графа, представленного следующей матрицей инцидентности, опреде- лите матрицу смежности графа и изобразите ее графически. 10 10 10 0' 1 0 0 1 О' 0 1 0 0 0 0 1 0 110 0 1 1 0 0 0 0 0 1. 0 0 1 1 0 0 0 9 2. 1 10 0 0 9 0 0 0 0 1 0 0 0 0 0 1 1 0 0 111 0 0 0 1 1 1 0 1 0 0 0 0 0 1 О' 110 0 0" 1 1 0 0 0 1 0 1 10 0 0 0 0 1 1 0 0 0 0 0 3. 0 0 1 1 0 0 1 1 9 4. 0 0 11 0 » 0 10 1 1 0 0 0 1 1 0 0 0 0 0 10 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1' 1 1 0 0 0 0 0 0 к 0 1 1 0 0 0 1 1 о. 0 0 110 10 0 • 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 Для графа, представленного следующей матрицей смежности, определите матрицу инцидентности графа и изобразите его графически. ' 0 1 1 1 г 0 1 1 0 0" 0 1 0 1 0" 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 6. 1 1 0 1 0 ; 7. 1 0 0 1 1 ; 8. 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 -3 0 0 0 0 0 0 1 0 0 0 0 1 0 0 '0 1 1 1 1" 0 1 1 1 О' 1 0 0 1 1 1 0 0 0 1 9. 1 0 0 0 1 10. 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 Представьте в виде ориентированного графа отношение р = {X, R). 11. X = {2,4,6,8}; R = {(х, у) : х <у}; 12. X = {1,3,5};/?= {(х,у) : х < г/}; 13. X = Р({а, Ь, с}); R = {(А, В) : А с В}; 14. X = Р({а, fc}); R = {(А, В) : А С В}; 15. X = {2,4,8,10}, В = {(х, у) : х у}; 16. X = {2,4,16, 22}, R = {(х, у) : у : х (х является делителем г/)}; 17. X = {2,4,16, 22}, R = {(х, у) : х + у : 6 (х + у делится на 6)}; 18. X = {2,4,16, 22}, R = {(х, у) : х/у четно}
168 * Часть 9. Задачи для контрольных и самостоятельных работ 19. X = {2,4,8,10}, R = {(х, у) : х — у : 3 (х — у делится на 3)}; 20. X = Р({а, Ь, с}), R = {(А, В) : А п В 0}. Найдите матрицы смежности и инцидентности графов Gy П G2 и Gj U G2, если 21. См. рис. 9.1. Рис. 9.3
Часть 9. Задачи для контрольных и самостоятельных работ 169 24. См. рис. 9.4. Рис. 9.4 25. См. рис. 9.5. VII. Кодирование Выясните, является ли код С с кодирующим алфавитом {0,1,2} однозначно декодируемым: 1. С = {01, 201,112,122,0112}; 2. С ={001,021,102,201, 001121,01012101}; 3. С = {0,01,0010001001}; 4. С = {20,01202,22,2001,2012010,10201121,1112}; 5. С = {01,011,100,2100,101210,001210}; 6. С ={01,011,100,2100,10110,00112}; 7. С ={01,12,021,0102, 10112}; 8. С = {01,12,012,111,0102,10112,01112};
170 Часть 9. Задачи для контрольных и самостоятельных работ 9. С = {01,12,012,0102,020112}; 10. С = {01,10,210,121,0210,0112}; 11. С = {01,10,210,201,0210,011022,2221}; 12. С = {01,10,210,201,0210,011022, 221}; 13. С = {01,10,210,201,0210,011022}; 14. С = {01,12,011,01210,20120,2011220}; 15. С = {01,12,011,01210,201120,2011220}; 16. С = {000,0100,10,1001,0010010}. Постройте по методу Хэмминга кодовое слово для сообщения: 17. а=10101011; 18. а= 100010011; 19. а= 111001111; 20. а = 01110111011; 21. а = 110101110010; 22. а = 0011010111; 23. а = 11011001; 24. а = 1110001; 25. а = 110110100. VIII. Автоматы Для автомата, заданного таблицей, постройте диаграмму Мура. Задайте этот автомат системой булевых функций. 1. 0 1 2 3 2. 0 1 2 3 3. 0 1 2 3 0 1;1 3;0 2;0 2;0 0 l;0 2;0 2;1 3;0 0 0;l 1;1 2;1 3;1 1 2;1 2;0 3;0 3;0 1 3;0 3;1 2;1 l;0 1 0;0 0;l 3;1 2;1 4. 1 2 3 5. x^ 0 1 6. 0 1 7. 1 2 3 0 2;0 2;1 3;1 0 0;0 0;l 0 0;0 1;1 0 i;0 2;1 3;2 1 1;1 3;0 3;1 1 0;l i;0 1 1;1 1;1 1 2;1 2;1 3;2 2 1;1 2;1 l;0 2 0;l i;0 2 1;1 1;1 2 3;2 2;1 3;2 3 l;0 1;1 3 0;0 1;1 3 i;0 2;1 3;2 A? 0 1 2 3 0 i;0 3;1 2;0 l;0 i 3;0 1;1 0;l 3;1 0 1 2 3 0 0;0 1;1 3;1 2;0 i 2;0 0;l 3;1 l;0 A? 0 1 2 3 0 2;0 0;0 3;1 i;0 i i;0 0;0 0;0 3;0 0 1 2 3 0 3;0 2;0 1;1 0;l 1 0;l 1;1 2;0 3;0 0 1 2 3 0 2;1 2;1 2;1 2;1 1 1;1 3;1 0;0 l;0 Для автомата, заданного системой булевых функций, постройте диаграмму Мура и соответствующую таблицу. 13 Гz(t + 1) = %i(t) Л z(t) J x2(i) A z(t), A z(t) v xi(f) Л x2(i); 14 I+ 1) = X1^ Л xz(t) V xi(f) Л z(t) V x2(i) Л z(t), y(t) = xi(t) Ф x2<t) ® z(t); g {z(t + 1) = Xi(t) A X2(f) V X2(f) Л X2(t) V z(t), = A x2(t) V x,(t) Л X2(t) V z(t);
Часть 9. Задачи для контрольных и самостоятельных работ 171 1R /г(*+1) = х(0» ' 1 y(t) = х(0 о 2(0; 17. ' ZX(t + 1) = Х(0 Л О Z2(0) V Х(0 Л Z2(t), Z2(t + 1) = X(t) Л Z2(t) V x(t) Л Zi(t), yt(t) = x(t) A (Zi(t) V £2(0) V x(t) A 2i(t), ,1/2(0 = x(0 A £1(0 a z2(0 V x(0 a Z1(O A zi(0; 18. £i(t + 1) = x(t) A £2(0 V 2l(0 A £2(0» < £2(i + 1) = £1(0 A (£2(0 A x(0 v x(0 V x(0 A Z2(0) V £1(0 A x(0, y(t) = zi A x(0 V £i(0 A £2(0 v x(t); ' Zi(t + 1) = £1(0 I x(t), 19. Z2(t + 1) = £1(0 22(0, 1/(0 = x(0® zi(0; 20. Zi(t + 1) = £2(0 A x(0, < Z2(t + 1) = £1(0 A X(0 V £1(/) A x(t), ^y(t) = zi(0 a £2(0 v £1(0 a x(0; 21. ' Zi(t + 1) = £1(0 Ф 22(0 ® x(t), < z2(t + 1) = £2(0 -> x(0> 1/(0 = 22(0 x(0- Для автомата, заданного диаграммой Мура, выпишите соответственную та- блицу и систему булевых функций. 22. См. рис. 9.6. Рис. 9.6
172 Часть 9. Задачи для контрольных и самостоятельных работ 23. См. рис. 9.7. Рис. 9.7 24. См. рис. 9.8. (0;0) (0;0) Рис. 9.8
Часть 9. Задачи для контрольных и самостоятельных работ • 173 25. См. рис. 9.9. Рис. 9.9
Рекомендуемая литература 1. Капитонов Ю. В. и др. Лекции по дискретной математике. СПб. 2004. 2. Ерусалимский Я. М. Дискретная математика. М.: Вузовская книга, 2005. 3. Судоплатов С. В., Овчинникова Е. В. Элементы дискретной математики. М.-Новосибирск: ИНФРД-М НГТУ, 2002. 4. Нефёдов В.Н., Осипова В.А. Курс дискретной математики М.: Изд-во МАИ, 1992. 5. Кузнецов О.П. Дискретная математика для инженеров. М., 2005. 6. Романовский И. В. Дискретный анализ. СПб.-М., 2000. 7. Горбатов В.А. Фундаментальные основы дискретной математики. М.: Наука; Физматлит, 2000. 8. Шапорев С.Д. Математическая логика. Курс лекций и практических за- нятий. СПб.: БХВ-Петербург, 2005.
По вопросам оптовых закупок обращаться: тел./факс: (495) 785-15-30, e-mail: trade@airis.ru Адрес: Москва, пр. Мира, 106 Наш сайт: www.airis.ru Вы можете приобрести наши книги с II00 до 1730, кроме субботы, воскресенья, в киоске по адресу: пр. Мира, д. 106, тел.: (495) 785-15-30 Адрес редакции: 129626, Москва, а/я 66 Издательство «Айрис-пресс» приглашает к сотрудничеству авторов образовательной и развивающей литературы. По всем вопросам обращаться по тел.: (495) 785-15-33, e-mail: editor@airis.ru Учебное издание Галушкина Юлия Ивановна Марьямов Александр Наумович КОНСПЕКТ ЛЕКЦИЙ ПО ДИСКРЕТНОЙ МАТЕМАТИКЕ Ведущий редактор В. В. Черноруцкий Художественный редактор А. М. Драговой Технический редактор Т. В. Исаева Компьютерная верстка Е. Г. Иванов Корректор 3. А. Тихонова Подписано в печать 27.02.07. Формат 70x100/16. Печать офсетная. Печ. л. 11. Усл.-печ. л. 14,3. Тираж 5000 экз. Заказ № 6234. ООО «Издательство «АЙРИС-пресс» 113184, Москва, ул. Б. Полянка, д. 50, стр. 3. Отпечатано в ОАО «Можайский полиграфический комбинат» 143200, г. Можайск, ул. Мира, 93
i*z*£S С упражнениями и контрольными работами

Понравилась статья? Поделить с друзьями:
  • Сдача экзаменов экстерном в университете
  • Сдача экзаменов стропальщик
  • Сдача экзаменов сочинение на английском
  • Сдача экзаменов синергия платно
  • Сдача экзаменов сафу