- •Русаков Алексей Михайлович
- •Лекции по дисциплине «Дискретная математика»
- •Введение.
- •Теория множеств.
- •Понятие множества. Операции над множествами.
- •Определение.
- •Определение.
- •Определение.
- •Пример.
- •Свойства операций сложения и пересечения множеств.
- •Определение.
- •Замечание.
- •Примеры.
- •Счётные множества. Теорема Кантора.
- •Определение.
- •Примеры счётных множеств.
- •Замечания.
- •Теорема.
- •Доказательство:
- •Задачи для самостоятельного решения.
- •Решите задачи № 1.30 1.39 с использованием диаграммы Эйлера-Венна.
- •Бинарные отношения в теории графов.
- •Например:
- •Матрицы смежности и инцидентности.
- •Пример.
- •Маршруты, цепи и простые цепи.
- •Определение
- •Расстояние и протяжённость в графе.
- •Деревья.
- •Примеры:
- •Например:
- •Помеченные графы. Перечисление помеченных деревьев.
- •Пример:
- •Теорема Келли.
- •Задача о кратчайшем соединении.
- •Задача о кратчайших путях.
- •Эйлеровы цепи, критерий Эйлеровости. Задача о Кёнигсбергских мостах.
- •Доказательство:
- •Достаточность.
- •Индуктивный переход.
- •Гамильтовы циклы.
- •Пример:
- •Примеры задач и упражнений.
- •Решение.
- •Задачи для самостоятельного решения.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение группы.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение и способы описания формальных грамматик.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Теория автоматов.
- •Основные понятия теории автоматов.
- •Определение.
- •Способы задания автоматов. Таблица переходов.
- •Определение.
- •Определение.
- •Способы задания автоматов. Граф автомата.
- •Определение.
- •Способы задания автоматов. Матрица переходов и выходов. Определение.
- •Машины Тьюринга и конечные автоматы. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Машины Тьюринга с двумя выходами.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Автоматы с магазинной памятью и бесконтекстные языки.
- •Определение.
- •Определение.
- •Модель дискретного преобразователя Глушкова в. М. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Понятие об абстрактном автомате и индуцируемом им отображении. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Автоматные отображения и события. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Теорема.
- •Регулярные языки и конечные автоматы. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Правила подчинения мест в регулярных выражениях.
- •Определение.
- •Определение.
- •Правила построения основного алгоритма синтеза конечных автоматов.
- •Пример.
- •Автомат Мили.
- •Определение.
- •Определение.
- •Автомат Мура.
- •Определение.
- •Определение.
- •Теория булевых функций.
- •Связь булевых функций и схем из функциональных элементов и контактных схем. Определение.
- •Замечания.
- •Теорема.
- •Доказательство:
- •Замечание.
- •Теорема. (Формулы разложения Клода Шеннона.)
- •Доказательство:
- •Замечания.
- •Основные свойства булевых функций. Замечание.
- •Определение.
- •Примеры задач и упражнений. Пример 1
- •Доказательство
- •Задачи для самостоятельного решения.
- •Элементы комбинаторики.
- •Основные понятия комбинаторики. Определение.
- •Определение.
- •Доказательство.
- •Теорема – правило включения-исключения.
- •Доказательство.
- •Доказательство.
- •8.2. Формулировка задания.
- •Определение.
- •Пример.
- •Переходы можно представить также с помощью таблицы и схематически:
- •Определение.
- •Последовательность выполнения.
- •Методический пример.
- •Контрольная распечатка.
- •Замечания.
- •Отчет по практической работе.
- •Контрольные вопросы
- •Варианты заданий.
- •Домашняя работа №1. По всей теории
- •Домашняя работа №2. Способы задания графов
- •8.03.2. Правила регулярного выражения.
- •Установка необходимого программного обеспечения.
- •Замечания.
- •Методический пример.
- •Контрольная распечатка.
- •Отчет по практической работе.
- •Контрольные вопросы.
- •Варианты заданий.
- •Дополнительные материалы.
- •Биография Георга Кантора (основатель теории множеств).
- •Город Калининград (Кёнигсберг).
- •Список литературы.
Теорема.
Каждая булева функция является суперпозицией следующих функций: отрицания, конъюнкции и дизъюнкции.
Доказательство:
Первое доказательство.
Обозначим множество всех булевых функций через P2. Если данная функция f P2 является константой, равной нулю, то, согласно соотношению 0 = ù (x ù x) или 0 = x ù x, утверждение справедливо. В противном случае, существуют такие наборы (a1, a2,…, an), что f(a1, a2,…, an)=1. Для каждого такого набора (a1, a2,…, an) образуем элементарную конъюнкцию , которая имеет значение 1 только на наборе (a1, a2,…, an). Тогда
f(x1, x2,…, xn) =, (3)
где дизъюнкции берётся по всем таким наборам (a1, a2,…, an), что f(a1, a2,…, an) = 1. Так как правая часть равенства (3) является суперпозицией требуемых функций, то теорема доказана.
Второе доказательство.
Если функция f P2 является константой равной 1, то, согласно 1= x ù x или 1=ù (x ù x), утверждение справедливо. В противном случае, существуют такие наборы (a1, a2,…, an), что f(a1, a2,…, an) 1, или, что то же самое, f(a1, a2,…, an) = 0. Таким образом, функция f(x1, x2,…, xn) может быть представлена в виде
f(x1, x2,…, xn) = , (4)
где конъюнкция берётся по всем таким наборам (a1, a2,…, an), что
f(a1, a2,…, an)=0. Правая часть равенства (4) опять, как и в первом доказательстве, является суперпозицией требуемых функций. Теорема доказана.
Определение.
Правая часть равенства (3) называется совершенной дизъюнктивной нормальной формой (кратко СДНФ) функции f(x1, x2,…, xn).
Замечание.
СДНФ существует только для тех булевых функций, которые не являются константами, равными нулю.
Определение.
Правая часть равенства (4) называется совершенной конъюнктивной нормальной формой (СКНФ) функции f(x1, x2,…, xn).
Замечание.
СКНФ существует только для тех булевых функций, которые не являются константами, равными единице.
Определение.
Конъюнкция всех аргументов функции (с отрицанием и без отрицания) называется полной и обозначается буквой K с соответствующим индексом. Индексом в обозначении служит номер набора или двоичное число, а также соответствующее ему десятичное, полученное при замене каждой переменной xi символом 1, а переменной ù xi – символом 0.
Определение.
Дизъюнкция всех аргументов функции (с отрицанием и без отрицания) называется полной и обозначается (в литературе) буквой D с соответствующим индексом. Индексом служит инверсионный номер набора или двоичное число, а также соответствующее ему десятичное, полученное при замене каждой переменной xi символом 0, а переменной ù xi – символом 1.
Примеры.
1. x1x2 – номер набора –112 = 310, полная конъюнкция обозначается K3.
2. – номер набора – 0102 = 210, полная конъюнкция обозначается K2.
3. x1 x2 – номер инверсионного набора – 002 – 010, полная дизъюнкция обозначается D0.
4. – номер инверсионного набора – 1012 – 510, полная дизъюнкция обозначается D5.
Определение.
Полная конъюнкция, принимающая значение 1 только на одном наборе аргументов, соответствующем её индексу, и значение 0 на всех остальных наборах, называется также конституэнтой (образующей) или характеристической функцией единицы.
Определение.
Полная дизъюнкция, принимающая значение 0 только на одном наборе аргументов, соответствующем её индексу, и значение 1 на всех остальных наборах, называется также конституэнтой (образующей) или характеристической функцией нуля.
Замечание.
Значение булевой функции для конкретных значений аргументов удобно обозначить символом с индексом в виде десятичного числа, соответствующего двоичному набору аргумента, например, f(1,1) = 3, f(1,0,1) = 5.
Примеры.
С учётом введённых определений булеву функцию f(x1, x2) можно записать {с учетом разложения в СДНФ или СКНФ} в следующем виде:
.
Замечание.
Приведенный пример показывает, каким образом можно перейти от табличного представления булевой функции к её аналитическому представлению. При табличном представлении функции задаются её значения i для каждого набора аргументов, определяемого индексом i. Так как в силу определения операции конъюнкции имеем 0Ki = 0 и 1Ki = Ki, то для представления функции в виде СДНФ нужно выписать дизъюнкцию всех тех конституэнт единицы Ki, для которых i = 1. Учитывая также, что 0Di=Di и 1Di=1, СКНФ получается как конъюнкция всех тех конституэнт нуля Di, для которых значение функции i равно 0.
-
Законы двойственности.
Определение.
Учитывая определённую симметрию операций и в аксиоматике алгебры Буля логических высказываний и операций, операции и называются двойственными.
Определение.
Формулы и * называются двойственными, если одна получается из другой заменой каждой операции на двойственную.
Примеры.
1. двойственна .
2. двойственна .
3. двойственна .
Замечание.
Как для операций, так и для формул отношение двойственности взаимно, то есть если * двойственна , то и, наоборот, двойственна *.
Лемма.
Если формулы (X1, X2,…, Xn) и *(X1, X2,…, Xn) двойственны, а X1, X2,…, Xn – все входящие в них элементарные высказывания, то (X1, X2,…, Xn) равносильна *.
Доказательство:
Доказательство непосредственно следует из законов де Моргана.
Следствие из леммы.
Частным случаем леммы являются следующие соотношения:
; (5)
. (6)
Они являются обобщением законов де Моргана и называются законами Клода Шеннона.
Задание.
Доказать законы Клода Шеннона и лемму.
Теорема (закон двойственности).
Если и равносильны, то и двойственные им формулы *и * также равносильны.
Доказательство:
Пусть (X1, X2,…, Xn) и (X1, X2,…, Xn) – равносильные формулы, а X1, X2,…, Xn – входящие в них элементарные высказывания. Тогда, в силу леммы, *(X1, X2,…, Xn) равносильна , а*(X1, X2,…, Xn) равносильна .
Из равносильности формул (X1, X2,…, Xn) и (X1, X2,…, Xn) следует равносильность формул и , так как в силу определения равносильности (X1, X2,…, Xn) и (X1, X2,…, Xn) принимают одинаковые значения при любых значениях переменных X1, X2,…, Xn, а, следовательно, и при значениях . Следовательно, формулы и также равносильны, далее, в силу леммы формула *(X1, X2,…, Xn) равносильна формуле , а формула *(X1, X2,…, Xn) равносильна формуле . Следовательно, формулы *(X1, X2,…, Xn) и *(X1, X2,…, Xn) равносильны между собой, что и требовалось доказать.