
- •Практикум по дискретной математике.
- •Содержание.
- •Введение.
- •1. Элементы математической логики. Логика высказываний.
- •1.1. Основные определения.
- •1.2. Разложение логических (булевых) функций по переменным. Дизъюнктивная и конъюнктивная нормальные формы.
- •1.3. Логические законы.
- •2. Множества и отношения.
- •2.1. Множества и операции над ними. Связь с логикой высказываний.
- •Доказать тождества:
- •2.2. Отношения на множествах. Бинарные отношения.
- •2.3. Однородные отношения.
- •2.4. Функции как специальный вид отношений.
- •2.5. Алгебраические системы. Алгебра множеств и булева алгебра.
- •3. Теория графов.
- •3.1. Основные понятия теории графов.
- •3.2. Представление графов в эвм.
- •1. Представление матрицей смежности.
- •3.3. Изоморфизм графов.
- •3.4. Подграфы и части. Операции над графами.
- •3.5. Методы обхода (просмотра) вершин графов.
- •3.6. Маршруты, цепи, циклы. Связность и достижимость.
- •3.7. Вершинная и реберная связность графов. Мосты, блоки и точки сочленения.
- •3.8. Двудольные графы. Паросочетания.
- •3.9. Алгоритмы расчета кратчайших путей между вершинами графа.
- •3.10. Деревья и леса.
- •3.11. Специальные виды деревьев.
- •3.12. Сети. Потоки в сетях.
- •3.13. Элементы цикломатики. Циклы и коциклы. Фундаментальная система циклов и цикломатическое число.
- •3.14. Эйлеровы графы и эйлеровы циклы.
- •3.15. Гамильтоновы графы и гамильтоновы циклы.
- •3.16. Независимые и покрывающие множества. Задачи о раскраске.
Доказать тождества:
.
(AB)C=A(BC).
(A\B)(B\A)=(AB)\(AB).
(AB)\CA(B\C).
.
.
(((AB)\C)((BC)\A))(AC)AC.
Описать заштрихованные части фигуры как операции над множествами точек плоскости.
Изобразить графически результат операций над множествами точек плоскости.
1. AB, A={(x,y) : |x|≤y≤4}, B={(x,y) : y≤1/|x| }
2. AΔB, U={(x,y) : y≤3}, A={(x,y) : x2-9≤3y≤ 2-x2}, B={(x,y) : x2-9≤3y≤3/|x| }
3.
,
U={(x,y)
: x2+y2≤9},
A={(x,y)
: 4≤ x2+y2≤
9}, B={(x,y)
: y≤1/|x|
}
4. (AB)(BC)(AC),
A={(x,y)
: (x-1)2≤|y|≤
},
B={(x,y)
: (x+1)2≤|y|≤
},
C={(x,y)
: x2+y2≤4}.
2.2. Отношения на множествах. Бинарные отношения.
При описании числовых множеств на плоскости, мы представляли точку через пару ее координат (x,y) и описывали, например, множество точек внутри окружности как все пары (x,y), удовлетворяющие условию x2+y2≤a2. То есть элементы пары связаны между собой некоторым отношением. В данном случае элементами, связанными отношением, являются действительные числа. Но в повседневной жизни мы употребляем это понятие в самых разнообразных контекстах. Например, можно определить отношение между преподавателями и студентами как «A учит B». Ясно, что это отношение будет иметь место не для любой пары «преподаватель – студент», а только для тех, кто преподает и изучает конкретную дисциплину. И ясно, что если мы рассматриваем, кто кого учит, для нас, как и в случае пары координат (x,y), отнюдь не безразлично, в каком порядке записаны элементы пары. Значит, если мы хотим определить такое понятие, как отношение, мы должны, прежде всего, ввести такое понятие, как упорядоченная пара.
Различие между неупорядоченной парой элементов {a,b} и упорядоченной парой (a,b) обычно поясняют на примере сравнения двух пар элементов. Две неупорядоченные пары {a,b}={c,d}, если a=b&c=da=c&b=d. Для упорядоченных пар (a,b)=(c,d) a=b&c=d. То есть, в общем случае, для упорядоченных пар (a,b)(b,a). Иногда употребляют и такую запись: R=(a,b)={a,{a,b}}. Нетрудно догадаться, что существование множества {a,b} зависит от того, какое мы выберем a. Если a,b – числа, то мы можем описать множество упорядоченных пар в виде графика, откладывая по оси абсцисс значения a, по оси ординат значения b, для которых существует R=(a,b).
Упорядоченную пару R называют двухместным или бинарным отношением. Упорядоченный набор из n элементов (a1, … , an) называют n-местным отношением или кортежем.
Элементы для формирования упорядоченных наборов мы можем выбирать как из одного множества, так и из разных. При построении графиков, которые отображают бинарные отношения между множествами действительных чисел X и Y, мы используем так называемую декартову систему координат. Давайте обобщим эти понятия, поскольку мы уже говорили о том, что элементы упорядоченной пары далеко не всегда бывают числами.
Определение. Прямым (декартовым) произведением двух множеств A и B называется множество упорядоченных пар (a,b), в которых aA и bB:
AB={(a,b)| aA & bB}.
Степенью множества A называется его прямое произведение само на себя:
An=A…A – всего n раз.
Нетрудно показать, что |AB|=|A||B| и |An|=|A|n. Попробуйте сделать это сами в качестве упражнения.
Пользуясь введенным понятием прямого произведения, мы можем определить бинарное отношение как подмножество прямого произведения AB:
R=ab={(a,b)R| RAB}.
Обратите внимание, что запись ab обозначает отношение между элементами a и b в общем виде, а запись (a,b) обозначает конкретную упорядоченную пару элементов, то есть один элемент отношения.
Если у нас задан некоторый универсум U, то мы можем рассматривать понятия принадлежности (), включения (), и равенства (=), как отношения на B(U) – множестве всех подмножеств универсума U.
Способы задания отношений. Если отношение содержит небольшое количество пар (или наборов), его можно задать, как и множество, перечислением. Бинарные отношения, как уже говорилось, могут быть заданы в виде графиков, если A,B – числовые множества. В общем случае отношения могут быть заданы в виде таблиц или графов. В реляционных базах данных понятие «кортеж» соответствует записи в таблице, а поля таблицы с именами A,B,C,…, из которых берутся элементы записи, образуют прямое произведение множеств ABC… .
Рассмотрим основные понятия, связанные с понятием бинарного отношения.
Пусть R=ab={(a,b)R| RAB}. Тогда существуют:
обратное отношение R-1={(b,a)|(a,b)R};
дополнение отношения R={(a,b)|(a,b)R}=(AB)\R;
тождественное отношение I={(a,a)|aA};
однородное отношение: UR={(a,b)|aA&bA}.
У Новикова [1] однородное отношение называется универсальным отношением. Но чтобы не было путаницы с универсумом, мы будем использовать термин «однородное отношение» для отношения RA2, а термин «универсальное отношение» для декартова произведения множеств, на котором задано отношение.
Коль скоро отношения являются множествами упорядоченных пар (или наборов в случае n-местных отношений), то на них можно распространить все операции над множествами и свойства этих операций. Но, кроме них, есть еще одна важная для практических приложений операция над отношениями.
Композиция отношений.
Пусть заданы два бинарных отношения: R1AB и R2BC (говорят так: отношение из A в B и отношение из B в C).
Композицией отношений R1 и R2 называется отношение R из A в C:
R= R1 o R2 ={(a,c)| aA & cC & bB : (a,b) R1 & (b,c) R2}.
Рассмотрим пример.
Пусть A - множество студентов ФПК, B – множество специальностей, С – множество учебных курсов, изучаемых на этих специальностях. Пусть нам нужно определить, какие дисциплины будет изучать каждый конкретный студент ФПК (что будет включать его приложение к диплому).
Здесь R1 AB – «студент aA получает специальность bB», R2 BC – «на специальности bВ изучается дисциплина cC». Искомое отношение R – «студент aA изучает дисциплину cC» есть композиция отношений R= R1 R2. То есть, чтобы студент aA изучал дисциплину cC нужно, чтобы он учился на специальности bB, что соответствует отношению ab, и на этой специальности изучалась данная дисциплина cC, что соответствует отношению bc. Значит, для решения задачи нам нужно выяснить, для каких пар (a,b) имеются пары (b,c), и из этих пар составить новые пары (a,c), взяв первый элемент из пары (a,b), а второй элемент – из пары (b,c).
Г
рафически
операцию композиции можно проиллюстрировать
на следующей схеме.
В этой графической схеме каждой упорядоченной паре элементов (a,b) и (b,c) сопоставлены стрелки из множества А в множество B и из множества B в множество C соответственно. Искомым парам (a,c) соответствуют возможные переходы по стрелкам из множества A в множество C.
Теперь составим бинарные таблицы R1 и R2 для представленных данной схемой отношений. Элементы этих таблиц rij(1) и rjk(2) соответствуют отношениям (ai,bj) и (bj,ck). Первая таблица будет содержать |A| строк и |B| столбцов, вторая - |B| строк и |C| столбцов. Для нашего примера таблицы будут иметь вид:
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
R1 R2
Одновременное существование отношений rij(1) и rjk(2) соответствует логическому произведению (конъюнкции) элементов таблицы rij(1) rij(2), и значение каждого элемента rik итоговой таблицы R будет зависеть от того, принимает ли хотя бы одна из этих элементарных конъюнкций значение «1», что соответствует логическому сложению (дизъюнкции). Для нашего примера r11=(r11(1) r21(1) r31(1) r41(1) )( r11r12(2) r13(2) r14(2) r15(2) r16(2)), и так далее. То есть при i=1,…,|A|, j=1,…,|B|, k=1,…,|C| мы имеем: R= R1 o R2 = R1 R2 , где R1 R2 - логическое перемножение матриц.
Степенью отношения Rn называется композиция отношения R n раз с самим собой.
Ядром отношения RAB называется композиция R*= R o R-1. Ядро отношения является отношением на A.