Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макет уст. лекции по контр. раб. ТДС.docx
Скачиваний:
52
Добавлен:
29.03.2015
Размер:
75.81 Кб
Скачать

Задача о кратчайшем пути между двумя пунктами

Известна схема дорог. Требуется перевезти груз из одного пункта в другой по маршруту минимальной длины.

Двигаясь от конечного пункта к начальному пункту, каждой вершине припишем число по определенным правилам. Конечной вершине присвоим число 0. Если i-я вершина в направлении от начального пункта к конечному пункту непосредственно соединена с вершинами j1, …, jk, которым приписаны числа r(j1), …, r(jk), то вершине i приписывается число , где – длина ребра.

Пусть этот минимум достигается для вершины jm. Тогда ребро (i, jm) отмечаем жирной стрелкой от i к jm. Если таких jm несколько, то на этом шаге будет несколько выделенных ребер.

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

Пример. Найти маршрут минимальной длины от пункта 1 к пункту 11.

Длина кратчайшего пути равна …. Двигаясь от начальной вершины к конечной по выделенным ребрам, получим кратчайший путь .

3. Задача определения максимального потока

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

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

Мощность потока может зависеть от его направления.

Это условное обозначение означает, что мощность потока от узла 1 к узлу 2 равна 6, а мощность потока от узла 2 к узлу 1 равна 0, т.е. это «улица с односторонним движением».

Условное обозначение

означает, что мощность потока в каждом направлении равна 2.

Алгоритм:

Полагаем искомую величину максимального потока равной нулю.

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

Шаг 2. Найти наименьшее значение мощности дуги Pf на выбранном пути шага 1. Увеличить поток через сеть на величину Pf.

Шаг 3. На пути из шага 1 сократить на Pf мощности потоков на всех дугах в направлении потока и увеличить на Pf мощности потоков на всех дугах, в обратном направлении. Перейти к шагу 1.

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

Определить максимальный поток через эту систему (тыс. автомашин в час).

Искомую величину максимального потока положим равной нулю.

Итерация 1. Выберем путь

Pf = min{……..}=…. Поэтому мощности потоков на пути ……… в направлении потока (а именно, … и …) уменьшаем на величину Pf =…, а мощности потоков в обратном направлении на пути ………. (… и …) увеличиваем на Pf =…. Общий поток станет

Получим:

Итерация 2. Выберем путь

Pf = min{………}=…. Все потоки на пути ……… в направлении общего потока (… и …) уменьшаем на Pf =…, а все потоки на этом пути в обратном направлении (… и …) увеличиваем на Pf =…. Общий поток увеличиваем на Pf =… (…………).

Получим:

Итерация 3. Выбираем путь

Pf = min{…………..}=…. Все потоки на пути ……….. в направлении общего потока (………….) уменьшаем на Pf =…, а все потоки на этом пути в обратном направлении (…………) увеличиваем на Pf =…. Общий поток увеличиваем на Pf =… (…………….).

Получим:

Итерация 4. Выбираем путь

Pf = min{………………}=…. Все потоки на пути ……………. в направлении общего потока (……………..) уменьшаем на Pf =…, а все потоки на этом пути в обратном направлении (……………..) увеличиваем на Pf =…. Общий поток увеличиваем на Pf =… (…………..).

Получим:

Итерация 5. Выбираем путь

Pf = min{………………..}=…. Все потоки на пути ……………….. в направлении общего потока (………………..) уменьшаем на Pf =…, а все потоки на этом пути в обратном направлении (………………..) увеличиваем на Pf =…. Общий поток увеличиваем на Pf =… (………….).

Получим:

Больше не существует путей из узла 1 в узел 6 с мощностью, превышающей нуль на всем пути. Следовательно, …. тыс. – это максимальный поток через сеть.

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

дуга 1-2: первоначальная мощность равна … (в исходном графе), конечная – … (в последнем графе), следовательно, в направлении от узла 1 к узлу 2 поток имеет мощность

дуга 1-3:

дуга 1-4:

дуга 2-5:

дуга 3-4:

дуга 3-6:

дуга 4-2:

дуга 4-5:

дуга 4-6:

дуга 5-6:

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