Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700108.doc
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
629.25 Кб
Скачать

2.4. Оптимизация потоков и пропускных способностей

2.4.1. Алгоритм Форда-Фалкерсона

Связность и реберная связность стали значительно понятней, а их вычисление значительно проще после установления связей между теорией связности и расчетами потоков в сетях. Выделим в ИВС два узла - источник s и сток t. Если бы это была сеть из труб заданно­го сечения, можно было бы задать вопросом: какой максимальный по­ток может перенести эта сеть от s к t?

Пусть узлы n1, n2, ..., nk соединены ребрами и задана матрица G=|gij| (1i,jk) пропускных способностей, соединяющих узел ni с узлом nj, причем в силу дуплексности каналов связи предполагается симметричность матрицы G. Необходимо для каждой пары (ni, nj) оп­ределить маршрут, обеспечивающий максимальную пропускную способ­ность. Использование теоремы об (s-t)-разрезе неориентированного графа позволяет сконструировать конечный алгоритм поиска оптималь­ных потоков.

Согласно теореме Форда-Фалкерсона максимально возможное зна­чение суммарного потока на конечных дугах равно минимальной про­пускной способности выбранного разреза. При этом под пропускной способностью разреза понимается сумма пропускных способностей дуг, образующих разрез.

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

f(vi,vj) = c(vi,vj) ,

где f(vi,vj) - значение потока по дугам заданного графа; c(vi,vj)- пропускная способность дуги; i - все вершины подграфа, образующие разрез; j - дополнение разреза до множества всех вершин графа.

На базе теоремы построен одноименный алгоритм, позволяющий найти минимальные разрезы и оценить соответствующие им значения максимального потока. Принцип, лежащий в основе алгоритма, состоит в том, чтобы найти все возможные насыщенные пути (цепи), ведущие от vs к vt для (s-t)-разреза. С этой целью последовательно, начи­ная с вершины vs, просматривается множество смежных вершин vi. Из множества дуг (vs,vi), соединяющих vs с vi, выбирают одну, у которой величина потока ближе всех подходит к значению насыще­ния. Помечают вершину vi знаком, показывающим, что она была про­смотрена, и приписывают ей величину d, на которую можно увеличить поток по дуге, ведущей в эту вершину. Затем просматривают после­дующие вершины vj, смежные с vi, и останавливаются на той, в ко­торую ведет дуга с потоком, ближайшим к значению насыщения. По этой дуге переходят в соответствующую вершину vj. Делают отметку и идут далее в направлении вершины vt. Если путь, на котором будут отмечены все пройденные вершины, приведет в вершину vt, то это го­ворит о том, что найден один из путей, наиболее близкий к насыще­нию. Нужно довести поток по нему до насыщения, увеличивая тем са­мым поток на графе. Значение, на которое можно увеличить поток, находится как минимальное из всех d, найденных ранее для отмечен­ных вершин. Для выяснения вопроса, является полученный таким обра­зом поток максимальным или нет, следует просмотреть все другие возможные пути, ведущие от vs к vt. Для этого необходимо возвра­титься в vs и повторить описанные выше действия, но идти следует по еще не отмеченным вершинам.

В результате выполнения указанного алгоритма возможны два ва­рианта:

  • насыщенный путь снова приводит от vs к vt, т.е. удается найти ненасыщенные пути, и, значит, можно увеличить потоки на их дугах;

  • в процессе поиска пути обнаруживается вершина, у которой все смежные вершины уже отмечены, и, следовательно, новых путей, веду­щих к vt, больше нет. Это указывает на то, что в ходе выполнения алгоритма был найден максимальный поток.

Такая тесная связь между потоком в сети и ее связностью при­водит к результату, известному как теорема Уитни. Эта теорема ут­верждает, что в графе со связностью n любую пару узлов s и t можно соединить, по крайней, мере n различными цепями, не имеющими общих узлов, кроме s и t. Существует целый ряд подобных теорем, связыва­ющих размеры сечений с числом независимых цепей.