- •Множества. Основные понятия.
- •Операции над множествами и их свойства.
- •Декартово произведение. Разбиение множеств.
- •Алгебра множеств
- •Отношение. Бинарное отношение
- •Алгебра бинарных отношений
- •Отображение. Виды отображений
- •Отношение порядка. Изоморфизм упорядоченных множеств.
- •Алгебраические системы. Изоморфизм алгебраических систем.
- •Функции алгебры логики.
- •Формулы. Реализация функций формулами.
- •Эквивалентность формул. Свойства элементарных булевых функций.
- •Двойственные функции. Принцип двойственности
- •Разложение булевых функций по переменным. Сднф.
- •Разложение булевых функций по переменным. Скнф.
- •Полнота и замкнутость.
- •Представление булевых функций в виде полинома Жегалкина. Теорема Жегалкина.
- •Классы т0, т1.
- •Класс s.
- •Класс м.
- •Класс l
- •Задача минимизации булевых функций.
- •Задача минимизации булевых функций в геометрической постановке.
- •Сокращенные днф.
- •Тупиковые днф и решение задачи минимизации.
- •Графы. Основные понятия.
- •Орграфы. Основные понятия.
- •Маршруты. Цепи. Циклы. Связность.
- •Операции над графами
- •30.Двудольные графы.
- •31. Планарные графы.
- •32. Эйлеровы и гамильтоновы графы
- •33. Дерево. Лес
- •34. Графическое разбиение.
- •35. Способы задания графов
- •36. Типы связности орграфов
- •38. Задача о минимальном остовном дереве. Алгоритмы Прима и Краскала.
- •39. Задача о максимальном потоке и минимальном разрезе. Алгоритм Форда-Фалкерсона.
- •40. Теорема Форда-Фалкерсона
Операции над графами
Даны два графа: G1=(N1,U1) и G2=(N2,U2)
Бинарные операции.
1.Объеденением графов G1 и G2 назыв граф D=G1∪G2, множество вершин которого=(N1∪N2)
D=G1∪G2=(N1∪N2, U1∪U2)
2.Пересечением рёбер графов G1 и G2 назыв граф Д, множество вершин которого является пересечением множества вершин G1 и G2: Д=G1∩G2=(N1∩N2,U1∩U2)
3.Произведением графов G1 и G2 называется граф, множество вершин которого объеденены множеством вершин исходных графов.
G1xG2=(N1∪N2, U1∪U2∪W)
W={(i,j):іЄN1, jЄN2}
Унарные операции
Дан исходный граф G=(N,U)
1.Дополнение до полного графа назыв граф дополнения графа ¬G с множеством рёбер W(W={(i,j):(i,j)∉U}.
2.Удаление вершины G∖{e}. Удаление вершины е из графа G: удаляется вершина и инцидентные ей рёбра
3.Удаление ребра G∖{i,j}
Удаляются вершины, а концевые вершины этого ребра остаются
4.Стягивание вершин по ребру, соединяющему эти вершины(N∖{i,j}∪{k},W)
Состоит из множества рёбер: из всех рёбер исходного графа, которые не были инциденты в вершине i или в вершине j, а также рёбер (k,l), где k-новая вершина, а l≠i,j и в исходном графе были рёбра(l.i) или (l,j).
30.Двудольные графы.
Дан граф G с множествами (N,U).
Граф G называется двудодьным, если множество его вершин можно разбить на 2 подмножества, называемые долями, такие, что вершины любого ребра попадают в разные доли.G=(N1∪N2,U)-двудольный
Теорема. Для того, чтобы граф был двудольным, необходимо и достаточно, чтобы любой простой цикл этого графа имел чётную длину (количество рёбер цикла).
Доказательство. Необходимость. Предположим, что исходный граф- двудольный (i1,i2,…,in,i1)-некоторый его цикл. Множество вершин двудольного графа можно разбить на 2 подмножества так, что любое его ребро соединяет одну вершину из одного подмножества, вторую -из второго. Предположим, что вершины i1ЄNi, i2ЄN2. Вершины, удалённые от i1 на нечётное расстояние принадлежат N2, вершины, удалённые на чётное расстояние и сама вершина i2 принадлежат N1. Так как в исходном графе имеется ребро (in,i1), то в последовательности i1,…,in вершина in удалена от вершины i1 на нечётное расстояние. Учитывая ребро (in,i1) получаем, что длина цикла чётная.
Достаточность. Предположим, что любой цикл графа имеет чётную длину и покажем, что граф двудольный. Предположим, что граф связный (если это не так, то каждую компоненту связности можно рассматривать отдельно). Выбираем произвольную вершину i1 и заносим её во множествоN1, все вершины, удалённые от i1на нечётное расстояние заносим в N2, все вершины, удалённые на чётное расстояние заносим в N1. Покажем, что множества N1 и N2не имеют общих вершин. Если бы это было не так, то есть, если бы ∃ jЄ(N1∩N2), то это бы означало, что в исходном графе имеются две цепи: цепь чётной длины, соеденяющая вершины i и j, и цепь нечётной длины, соединяющая эти вершины (возможно, эти цепи имеют ещё некоторые вершины, кроме i и j).
Получим маршрут нечётной длины. Из этого маршрута можно выделить цикл нечётной длины и жто противоречит тому, что таких циклов в исходном графе нет.
Осталось показать, что любые 2 вершины, входящие в N1 и любые 2 вершины, входящие в N1, не являются смежными.
Рассмотрим доказательство для вершин из множ N2(для N1 аналогично).Из вершины i1множества N2 ведут цепи нечётной длины.
Предположим, что j1и j2 смежны в исходном графе. Это будет означать, что в исходном графе есть цикл, содержащий вершины, i1, j1,j2 нечётной длины. Получим противоречие.
Алгоритм распознования двудольности.
1.Пусть N1=N2=Выбераем произвольную вершину i и заносим её в N1(iЄN1)
2.Выбираем все такие вершины, каждая из которых смежна, по крайней мере одной вершине из N1, и заносим их в N2. Выбераем все такие вершины графа, каждая из которых смежна с вершиной из множества N2 и заносим в N1.
3.Проверяем:если N1 и N2 имеют общие вершины, то исходный граф не является двудольным. Конец работы алгоритма. Иначе переходим на шаг 4.
4. Если N1∪N2≠N, то переходим на шаг 2, и если N1∪N2=N, то граф двудольный и конец работы алгоритма.