Allmath.ru

Вся математика в одном месте!

 

 

 

 



Rambler's Top100


Теория графов и комбинаторика (СОДЕРЖАНИЕ)

 Лекция 13

         Ориентированный граф и его графическая интерпретация.Локальные степени. Матрица смежностей. Ориентированные пути и связность в ориентированном графе.

            Ориентированный граф (или сокращенно орграф) - это пара множеств , где  - любое непустое конечное множество, а  - подмножество в  (здесь  - прямое произведение множества  на себя, т.е. множество всех упорядоченных пар элементов из , и  - диагональ множества ). Элементы из  называются вершинами орграфа, а элементы из  - его ребрами.

            Если  и , то  называется началом, а  называется концом ребра ; как и в «неориентированном случае», вершины ,  называются инцидентными ребру , а ребро  называется инцидентным вершинам , .

            Орграф имеет естественную геометрическую интерпретацию: его вершины изображаются в виде точек на плоскости, а ребра – в виде стрелок, идущих из начала в конец ребра. Например, если орграф  имеет в качестве множества вершин  и в качестве множества ребер то геометрически он выглядит так:

Если два орграфа  таковы, что одновременно выполняются два условия -  и , - то говорят, что  - подграф орграфа  При этом пишут: . Если одновременно  и , то орграфы  называются равными и пишут .

            Два орграфа -  - называются изоморфными, если существует отображение  такое, что выполнены следующие четыре условия:

1) если  и , то ;

2)  для всякого  существует такой , что ;

3)  если , то ;

4)  если  и , то .

            Если  - орграф и , то следующие три числа имеют специальные названия: число  (количество ребер, исходящих из вершины ) называется исходящей степенью вершины ; число  (количество ребер, входящих в вершину ) называется входящей степенью вершины ; число  называется степенью вершины .

            Каждый орграф  можно описать матрицей смежностей по следующей схеме: если , то построим матрицу   положив

            С каждым орграфом  однозначно связывается обычный граф , в котором множество вершин - то же самое (т.е. множество ), а множество ребер  получается «стиранием стрелок» у ребер из множества  (т.е. если , то  тогда и только

тогда, когда либо , либо ). Граф  называется ассоциированным с орграфом .

            В каждом орграфе  выделяется основной объект – ориентированный путь (или кратко - орпуть) орпуть - это символ

,

в котором  (причем, в списке  могут быть повторяющиеся вершины) и в котором . Ясно, что при переходе от ориентированного графа к ассоциированному с ним графу орпуть создает конкретный обычный путь. В приведенных только что обозначениях вершина  называется началом орпути, а вершина  называется концом орпути. При этом о самом орпути говорят, что он является орпутем из  в  .

            Две вершины  орграфа называются связанными, если имеется орпуть из  в  и одновременно имеется орпуть из  в . Орграф называется связным, если в нем любые две вершины связанны. Так же, как в неориентированном случае, понятие связности  приводит к понятию связной компоненты: подграф  орграфа  называется связной компонентой орграфа , если: 1)  является связным орграфом; 2) не существует связного орграфа  такого, что  и .

            Подобно тому, как это делалось в случае обычных графов, для ориентированных графов вводятся понятия цепи, простой цепи, цикла и простого цикла. Эти объекты можно исследовать по тому же плану, что и в неориентированном случае.

Лекция 14

            Сети и потоки в сетях. Стационарные потоки. Алгоритм Форда-Фалкерсона поиска максимального стационарного потока. (Данный вопрос лучше смотреть в сетевых моделях исследования операций).

            Пусть  - некоторый орграф и  вещественно-значная функция на множестве ребер; тогда пара  называется сетью, а функция  в контексте сети называется функцией пропускной способности  или пропускной способностью сети.

            Всякая функция , удовлетворяющая неравенству , называется потоком в сети. В обсуждении свойств потоков в сети традиционно используется следующее обозначение:

пусть  - любая функция и  - два любых подмножества вершин; символ  будет обозначать сумму значений функции  на ребрах  таких, что  и ; если  состоит из единственной вершины , то символ  обозначает сумму весов ребер, начинающихся в  и заканчивающихся в вершинах из ;  аналогичный смысл имеет символ  - сумма значений функции  на ребрах, начинающихся в  и заканчивающихся в вершине .

            Поток  в сети   называется стационарным, если существуют две вершины  и число  такие, что выполнены следующие условия:

           

В этой ситуации число называется величиной потока , вершина   называется источником, а вершина  - стоком потока  .

            Известна следующая классическая задача о максимальном потоке: в данной сети для данного источника и для данного стока найти стационарный поток максимально возможной величины. Можно доказать, что такая задача всегда имеет решение. Один из способов ее ре- шения называется алгоритмом Форда-Фалкерсона. Сформулируем этот алгоритм по шагам.

            Шаг 0. Фиксируем на данной сети  с источником  и стоком  произвольный стационарный поток , например - поток, тождественно равный нулю (т.е. равный нулю на каждом ребре данного орграфа ). Нетрудно проверить, что такой поток действительно стационарный и имеет величину 0.

            Шаг 1.  Около вершины  поставим пометку следующего вида:

.

Здесь символ  обозначает число, заведомо превосходящее все числа, которые будут участвовать в дальнейших рассмотрениях (в случае программирования это - компьютерная бесконечность, т.е. самое большое число, допускаемое данным программным средством).

            Замечание. Почти все дальнейшие действия по алгоритму представляют собой расстановку пометок около некоторых вершин. Цель этой расстановки в том, чтобы в конце концов поставить пометку у стока   или установить, что сток  пометить невозможно. В первом

случае окажется возможным заменить имеющийся стационарный поток   на другой стационарный поток, имеющий величину, большую, чем величина потока . После этого надо будет запустить все сначала. Во втором случае окажется, что имеющийся поток  оптимален, т.е. его величина имеет максимальное возможное значение. Каждая пометка, кроме уже проставленной около источника , будет иметь вид , где  - некоторое число, а  - имя одной из вер-шин орграфа , причем реально в пометке это имя  будет либо в виде , либо в виде .

            Шаг 2. Пусть  - некоторое ребро, начало которого, т.е. вершина , уже имеет некоторую пометку  (или, если  - это источник , то пометку , где ). Ес-ли , т.е. поток   равен на ребре  пропускной способности , то пометка у вершины не проставляется. Если же  , то пометка у вершины  выставляется следующим образом.

На первом месте в пометке будет стоять символ , т.е. пометка будет такой: , где число еще нужно найти. Положим

.

            Пусть теперь   такое ребро, у которого пометку имеет конец, т.е. вершина  имеет пометку  . Если , то пометку у вершины  не выставляют; если же , то вершина  получает пометку , где

.

            Процедура расстановки пометок в соответствии с Шагом 2 проводится до тех пор, пока не окажется помеченной вершина , или до тех пор, пока не выяснится, что вершину  пометить невозможно. Можно доказать, что в последнем случае поток , с помощью которого проводился весь Шаг 2, имеет максимальную возможную величину,  и задача решена.

            Если же вершина  оказалась помеченной, то переходим к следующему шагу. Отметим принципиальную подробность: если вершина  оказалась помеченной, то число, фигурирующее в пометке, обязательно положительно.

            Шаг 3. Пусть вершина  имеет пометку . Мы изменим сейчас поток   на не-скольких ребрах данного графа, в результате чего получится новый стационарный поток из источника  в сток , величина которого будет на  (это число указано в пометке стока ) больше величины потока .

            Если вершина  имеет пометку , то на ребре  изменим поток , прибавив к его значению на этом ребре число . Если вершина   имеет пометку  , то на ребре  изменим поток , вычитая из его значения на этом ребре число .

            Затем перейдем к вершине  и проделаем то же, что только что делалось относительно вершины ; при этом прибавлять или вычитать будем прежнее число . Продолжая так, в соответствии с пометками, отбирать ребра графа и менять на них значение потока (на каждом отбираемом ребре - на одно и то же число !), мы придем к источнику . Это будет означать завершение изменения потока. Можно доказать, что полученный в результате поток является стационарным и его величина на  больше величины исходного потока  .

            Затем нужно повторить все сначала с уже новым базовым стационарным потоком.

            Пример. Найти максимальный стационарный поток из  в  в следующей сети (числа у стрелок означают пропускную способность):

Считаем, что исходный стационарный поток тождественно равен нулю. Проставляем пометку около вершины : она такова - . Выбираем далее для пометки вершину ; соответствующая пометка:  . Выбираем далее для пометки вершину ; соответствующая пометка: . Теперь появилась возможность пометить и вершину ; соответствующая пометка : .

            Возникла возможность поток увеличить на 1. Для этого на ребре  положим его равным 1 (а не нулю, как это было для исходного  потока), также равным 1 новый поток будет и на ребрах  и . На остальных ребрах поток остается равным нулю.

            Новый поток имеет величину 1, он стационарен с источником  и стоком . Повторим теперь процедуру сначала, стремясь поставить пометку к стоку .

            Вершину  пометим пометкой . Далее пометим вершину ; соответствующая пометка: . Далее пометим вершину ; соответствующая пометка: . Теперь пометим вершину ; соответствующая пометка: . Теперь снова увеличим на 1 значения потока на ребрах . Новый поток будет тоже стационарен, но уже величины 2.

            Вновь поставим пометку  у вершины  и попытаемся увеличить имеющийся стационарный поток величины 2.

            Пометим вершину ; соответствующая пометка: . Далее пометим вершину ; соответствующая пометка: . Далее пометим вершину ; соответствующая пометка: . Вновь изменим поток на 1: прибавим 1 к значениям прежнего потока на ребрах ,

. Вновь полученный поток имеет величину 3.

            Дальнейшие попытки достигнуть пометками вершину  не имеют успеха. Следовательно, максимальный стационарный поток найден.


Хотите публиковаться на портале? Присылайте свои предложения, книги, статьи на info@allmath.ru.

[Школьная математика][Высшая математика][Прикладная математика][Олимпиадная математика][Услуги][Лучшие книги][Ссылки]

 

Copyright (c) 2004, Allmath.ru. e-mail: info@allmath.ru