- •Курсовая работа по курсу «Дискретная математика»
- •Некоторые базисные алгоритмы обработки графов
- •Нахождение минимального пути в графе
- •Найти минимальные пути от фиксированной вершины до произвольной вершины графа, используя алгоритм Дейкстры.
- •Найти минимальные пути от фиксированной вершины до произвольной вершины графа, используя алгоритм Форда-Беллмана.
- •А л г о р и т м Форда – Беллмана
- •Найти минимальные пути между всеми парами вершин, используя алгоритм Флойда.
- •Эйлеровы цепи и циклы
- •Построить эйлеров цикл в графе. А л г о р и т м построения эйлерова цикла
- •Построить эйлерову цепь в графе.
- •Гамильтоновы цепи и циклы
- •Генерирование всех перестановок заданного множества
- •Генерирование всех перестановок заданного множества в лексикографическом порядке
- •Рекурсивный алгоритм генерирования всех перестановок заданного множества в лексикографическом порядке
- •В первой перестановке элементы идут в растущей последовательности, а в последней – в убывающей другими словами последняя перестановка является обращением первой,
- •Генерирование всех перестановок заданного множества в антилексикографическом порядке
- •Найти минимальный остов графа, используя алгоритм Краскала.
- •Найти минимальный остов графа, используя алгоритм Прима.
- •Поиск в графах
- •Алгоритм с возвратом
- •Раскраска графа
- •Алгоритм раскрашивания графов
- •Найти хроматическое число заданного графа, используя алгоритм с возвратом для нахождения независимых множеств вершин, указать, какие вершины в какой цвет окрашиваются.
- •Найти хроматический класс заданного графа, используя алгоритм с возвратом для нахождения независимых множеств вершин реберного графа, указать, какие ребра в какой цвет окрашиваются.
- •Паросочетания
- •Построения полного потока в сети
- •Максимальный поток
- •Построения максимального потока
- •Алгоритм меток для нахождения максимального потока
- •Помечивающий алгоритм Форда – Фалкерсона для нахождения максимального потока
- •Некоторые прикладные задачи
- •Задачи об источниках и потребителях
- •Решить задачу об источниках и потребителях, сведя ее к задаче построения максимального потока в транспортной сети и используя первый алгоритм построения максимального потока .
- •Двудольные графы и паросочетания
- •Нахождение наибольшего паросочетания в двудольном графе
- •Построение совершенного паросочетания в двудольном графе
- •Системы различных представителей
-
Найти хроматическое число заданного графа, используя алгоритм с возвратом для нахождения независимых множеств вершин, указать, какие вершины в какой цвет окрашиваются.
-
Найти хроматический класс заданного графа, используя алгоритм с возвратом для нахождения независимых множеств вершин реберного графа, указать, какие ребра в какой цвет окрашиваются.
-
Паросочетания
Не менее важным, чем понятие вершинной независимости, является понятие реберной независимости.
Произвольное подмножество попарно несмежных ребер графа называется паросочетанием ( или независимым множеством ребер).
В качестве иллюстрации рассмотрим граф, изображенный на рис.2. В нем паросочетаниями являются, например, х1,х3,х5,х7, х1, х2, х2,х6.
х1 х2 х3 х4 х5 х6 х7
Рис. 3.
Паросочетание графа G называется максимальным, если оно не содержится в паросочетании с большим числом ребер, и наибольшим, если число ребер в нем наибольшее среди всех паросочетаний графа G.
Число ребер в наибольшем паросочетании графа G называется числом паросочетания и обозначается 1(G).
Независимые множества ребер графа G находятся во взаимно однозначном соответствии с независимыми множествами вершин реберного графа L(G)=(V1,X1), который для графа G=(V,X) определяется следующими двумя условиями:
-
V1 = X,
-
вершины х1 и х2 смежны в L(G) тогда и только тогда, когда ребра х1 и х2 смежны в G.
Рис. 4
На рис. 4 изображены два графа – G и L(G). Вершины графа G – темные кружки, вершины графа L(G) – светлые кружки. Ребра графа G – тонкие линии, ребра графа L(G) – жирные линии.
-
Найти все максимальные паросочетания в заданном графе, используя алгоритм с возвратом для нахождения независимых множеств вершин реберного графа.
-
Найти наибольшее паросочетание в заданном графе, используя алгоритм с возвратом для нахождения независимых множеств вершин реберного графа.
-
Потоки в сетях и родственные задачи
-
Потоки в сетях
-
Полный поток в транспортной сети
Теория транспортных сетей возникла при решении задач, связанных с организацией перевозки грузов. Тем не менее понятие потока на транспортной сети, алгоритм нахождения потока наибольшей величины и критерий существования потока, насыщающего выходные дуги сети, оказались полезными для многих других прикладных и теоретических вопросов комбинаторного характера.
Введем основные понятия данной теории.
Транспортной сетью называется орграф D = (V,X) с множеством вершин V = {v1,…,vn}, для которого выполняются условия:
-
существует одна и только одна вершина v1, называемая источником, такая, что Г-1 (v1) = (т.е. ни одна дуга не заходит в v1),
-
существует одна и только одна вершина vn, называемая стоком, такая, что Г(vn) = (т.е. из vn не исходит ни одной дуги),
-
каждой дуге xX поставлено в соответствие целое число c (x) 0, называемое пропускной способностью дуги.
Функция (x), определенная на множестве X дуг транспортной сети D и принимающая целочисленные значения, называется допустимым потоком (или просто потоком) в транспортной сети D, если
-
для любой дуги xX величина (x), называемая потоком по дуге x, удовлетворяет условию 0 (x) c(x),
-
для любой промежуточной вершины v сумма потоков по дугам, заходящим в v, равна сумме потоков по дугам, исходящим из v.
Величиной потока в транспортной сети D называется величина, равная сумме потоков по всем дугам, заходящим в сток, или, что то же самое сумме потоков по всем дугам, исходящим из источника.
Дуга xX называется насыщенной, если поток по ней равен ее пропускной способности. Поток называется полным, если любой путь в сети из источника в сток содержит, по крайней мере, одну насыщенную дугу.
А л г о р и т м