- •1(18).Основное понятие теории графов. Определения и разновидности графов. Способы задания графов: аналитический, геометрический, матричный. Изоморфизм графов. Примеры.
- •2(19). Операции над графами с примерами.
- •3(20) Маршруты. Цепи. Циклы.
- •4(21) Метрические характеристики графа
- •5(22) Понятие сети. Матрица весов.
- •6(23) Алгоритм Беллмана-Мура (алгоритм корректировки меток)
- •7(24). Деревья и их свойства. Лес.
- •8(25). Задача об остове экстремального веса.
- •9(26) Эйлеровы графы и циклы. Алгоритм Флерн. Гальмитоновые графы и циклы
- •10(27) Планарные графы. Укладка графа. Теорема Эйлера. Теорема Понтрягина-Куратовского. Понятие искаженности и толщины непланарных графов
- •11(28) Алгоритм плоской укладки
- •2 Итерация
- •12(29). Раскраски графов
- •13(30)Потоки в сетях.
- •14(31) Потоки минимальной стоимости.
- •15(32)Элементы теории кодирования. Кодирование как способ представления информации.
- •16(33) Общий критерий взаимной однозначности. Теорема Маркова. Примеры
- •17(34) Неравенство Макмиллана.
- •18(35) Коды с минимальной избыточностью. Примеры.
- •19(36). Оптимальное кодирование Хаффмана. Решение задачи о построении кодов с минимальной избыточностью для двоичного кодирования.
- •20(37) Самокорректирующиеся коды. Коды Хэмминга. Алгоритм построения кода Хэмминга
- •21(38) Обнаружение ошибки в кодах Хемминга.
13(30)Потоки в сетях.
Функциональное назначение большинства физически реализованных сетей состоит в том, что они служат носителями системы потоков, в которых объекты текут, движутся или транспортируются по системе каналов с ограниченной пропускной способностью.
(Пример: потоки автомобильного транспорта по сети автодорог; потоки электрического тока в электросети и т. д.)
Ограниченная пропускная способность означает, что интенсивность перемещения предметов по каналу ограничена сверху определенной величиной.
Пусть G=(V,E,Ω) – сеть. Наиболее часто в сети решается задача о max потоке и min разрезе, при этом граф должен удовлетворять условиям:
G – связный граф без петель.
Существует ровно 1 вершина не имеющая предшествующих (источник) = s.
Существует ровно 1 вершина не имеющая последующих (сток) = t.
Каждой дуге (vi, vj) ϵ E поставлено в соответствие неотрицательное число c (vi, vj) ϵ Ω наз. Пропускной способностью дуги.
Сеть удовлетворяющая условиям 1-4 наз. Транспортной сетью.
В ершины транспортной сети отличные от источника и стока наз. промежуточными.
(рис. 1)
v1 = s - источник
v4 = t - сток
v2, v3 – промежуточные
D f:3 Функция от ϕ(vi, vj)определенная на множестве дуг сети G=(V,E,Ω)наз. потоком если ϕ(vi, vj)≥0, но ≤ c (vi, vj) (vi, vj) ϵ E и ∑ ϕ(vi, vj) = ∑ ϕ(vi, vj) , vi ϵ V, vi не ϵ {s, t}
Последнее условие наз. условием сохранения потока: Сумма потоков по дугам заходящих в vj равна сумме потоков по дугам исходящих из vj.
Т. об. в промежуточных вершинах потоки не создаются и не исчезают.
П ример: на рис. 1 показан поток в транспортной сети, при каждой дуге указана величина потока по ней. Выполнено 2 условие из Df: и ∑ ϕ(vi, vj) = ∑ ϕ(vi, vj)
Величина ∆(vi, vj)= c (vi, vj)- ϕ(vi, vj) наз. остаточной пропускной способностью дуги (vi, vj).
Поток наз. полным если любой путь из s в t содержит по крайней мере одну насыщенную дугу.
В еличина потока ϕ сети G наз. величина ϕ равная сумме потоков по всем дугам заходящим в t, или равна сумме потоков по всем дугам исходящих из s. ϕ = ∑ ϕ(vi, t) = ∑ ϕ(s, vi)
П оток ϕ – max если его величина ϕ принимает max значение по сравнению с другими потоками.
Max поток определяется с помощью одного из основных понятий теории сети – разреза.
Разрез может быть представлен как множество дуг, исключение которых из сети определило бы некоторое множество узлов от сети.
Предположим, что множество вершин сети v разбито на 2 непустых непересекающихся подмножеств:
v = VI VII ; VI VII =0, где VI ≠0 , VII≠0
Df:8 Множество дуг, начало которых лежат в VI, а концы в VII наз. неориентированным разрезом.
Df:9 П ропускной способностью разреза наз. сумма пропускных способностей входящих в него дуг. c(VI VII)
Теорема: (Форда - Фалкерсона) Для любой сети с 1 источником и 1 стоком величина max потока в сети от источника к стоку = пропускной способности min разреза.
Д-во: Алгоритм Ф.- Ф. построения max потока и min разреза основан на 2 процедурах:
(30)1 процедура:
Предположим, что в сети имеется некоторый поток, пусть нулевой. И есть путь из s в t состоящий из ненасыщенных дуг.
Очевидно, что поток в сети можно увеличить на величину ∆ =min из остаточных пропускных способностей, входящих в этот путь.
Перебирая все возможные пути из s в t и переводя такую процедуру увеличения потока, пока это возможно, получим в результате полный поток, т. е. такой поток для которого путь из s в tсодержит по крайней мере 1 насыщенную дугу.
2 процедура:
Рассмотрим произвольный маршрут из s в t. Дуги образующие этот маршрут делятся на 2 типа: -прямые, ориентированные от s в t; - обратные, ориентированные от t в s.
Пусть существует путь в котором прямые дуги ненасыщенные, а потоки на обратных дугах положительные.
∆1 – min из остаточных пропускных способностей прямых дуг.
∆2 – min из величин потоков обратных дуг.
Тогда потоки сети можно увеличить на величину ∆ = min {∆1 , ∆2 }. Прибавляя ∆ к потокам на прямых дугах и вычитая ∆ из потоков на обратных дугах. Очевидно, что при этом условие сохранения потока (баланса) для узлов входящих в рассматриваемый маршрут не нарушится.
Если множество обратных дуг не пусто, то при такой процедуре увеличения потока фактического перемещения объектов вдоль рассматриваемого маршрута не происходит. Но эта процедура уменьшает потоки на некоторых дугах, которые, возможно, были насыщены. Образуя таким образом новые пути из ненасыщенных дуг, вдоль которых происходит перемещение потока величины ∆.
Замечание: 1-ая процедура – частный случай второй.
Замечание: В общем случае в сети может быть несколько min разрезов.
Замечание: В ситуациях более сложной сети может быть трудно определить наверняка, что таких путей нет. Это тот случай, когда теорема о min разрезе и max потоке оказывается полезной. Т. к. разрез – множество таких ребер, блокировка которых полностью останавливает поток, то величина любого потока не может превысить величину любого разреза. Т. е. может превысить <=> когда поток max, а разрез min.
Если можно найти разрез со значением = величине потока, то такой поток max, а разрез min.