3.7.Задача ВПС  РП

3.7.1.Постановка задачи.

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

                                               (3.28)

 при ограничении

                             (3.29)

и условии, что  многопродуктовый поток, совместимый с матрицей .

3.7.2.Алгоритм решения ВПС РП.

Предложенный алгоритм А3 использует многократное решение комбинации задач ВПС  РП. Он состоит из начального этапа и конечного числа однотипных итераций

Начальный  этап.

1. В качестве метрики  используем длины всех каналов связи

2. Определяем кратчайшие пути в сети с выбранной метрикой  и находим начальный поток  по кратчайшим путям.

3. Решаем задачу ВПС по критерию  при ограничении  и находим начальные пропускные способности всех каналов связи .

Переходим к 1-ой итерации.

Пусть уже проведено k итераций и найден некоторый поток в сети  и соответствующие ему пропускные способности всех каналов .

(k+1)-а итерация.

1. Решаем  задачу РП при заданных пропускных способностях  и находим такое распределение потоков , которое обеспечивает .

2. При новом распределении потоков  решаем  задачу ВПС по критерию  при ограничении  и находим новые оптимальные значения пропускных способностей всех каналов связи .

3. Вычисляем новое значение критерия . Сравниваем  и  . Если , то переходим к  шагу 1 (k+1)-ой итерации, иначе конец работы алгоритма. Распределение потоков   и пропускные способности  найдены.

3.7.3.Алгоритм нахождения кратчайших путей и расчёта трафиков.

В процессе работы алгоритмов ВПС РП и нахождения максимального потока в сети при отказах многократно используется алгоритм нахождения кратчайших путей и расчёта информационных потоков (трафиков) в многосвязной сети.

Пусть имеем многосвязную коммуникационную сеть, которая задана в виде графа G(X,E),где -множество вершин графа,E={(i,j)}-множество его ребер. Будем считать, что при нескольких маршрутах передачи информации от xi к xj она всегда передаётся по пути минимальной стоимости.

Необходимо рассчитать параметры сети G(X,E): такие маршруты передачи информации и информационные потоки в каждом канале frs, ,при которых общая стоимость информации будет минимальной, при этом задана матрица требований .

Исходные данные:

матрица смежности ,где ,

матрица удельных стоимостей передачи информации .

В процессе работы алгоритма используются такие рабочие матрицы:

-матрица удельных стоимостей передачи информации из xi в xj по пути минимальной стоимости  (если bij=1,то aij=cij), -матрица минимальных маршрутов  по сети, где mij=r -вершина, смежная с xj на пути , -искомая матрица информационных потоков (или трафиков) в сети, где fij-суммарный трафик, который передаётся по каналу связи  (i,j).

Описание алгоритма.

Алгоритм состоит из конечного числа однотипных итераций, в ходе которых строят и уточняют матрицы A(k),M(k).

1-я итерация.

1.Определяем матрицу

2.Заполняем матрицу маршрутов М(1),в соответствии с соотношением

Таким образом в результате 1-ой итерации рассчитаны характеристики сети для маршрутов длины 1.

2-я итерация.

Определяем минимальные маршруты длиной=2 и рассчитываем А(2),М(2).

1.Просматриваем i-тую строку матрицы А(1),i=1,2... и определяем

                (3.30)

2.Если aij(1)=aij(2),то mij(2)=mij(1) и приравнивая j=j+1,переходим к рассмотрению следующего элемента i-той строки.

Если ,то меняем элемент mij в матрице М:

mij(2)=msj(1)                                                                                   (3.31)

3.Меняем i от 1 до n и выполняем шаг 2 со всеми строками матрицы А(1).

4.Если А(2)=А(1) и М(2)=М(1) и в матрице нет пустых элементов, то конец работы алгоритма, иначе переходим к следующей итерации.

Пусть проведено (k-1) итераций в ходе которых построены матрицы A(k-1),M(k-1).

В ходе выполнения k-той итерации строим A(k),M(k), где M(k)-маршрутная матрица, которая содержит минимальные пути длиной не более 2(k-1) (по количеству каналов).

1.Просматриваем i-тую строку матрицы A(k-1) и определяем aij(k):

                                   (3.32)

2.Если aij(k)=aij(k-1),то mij(k)=mij(k-1) приравнивая j=k+1 переходим к рассмотрению следующего элемента i-той строки.

Если ,то меняем элемент mij в маршрутной матрице M(k-1) .Меняя i от 1 до n,шаг 2 повторяем со всеми строками матрицы A(k-1).

3.Если A(k)=A(k-1) и M(k)=M(k-1) и в матрице M(k) нет пустых элементов, то конец работы алгоритма, матрица M(k)=M-матрица кратчайших путей, а A(k)=A-соответствующая ей матрица длин этих путей.

Иначе переходим к k+1-й итерации.

Итак, допустим, что построена маршрутная матрица М. Покажем, как при помощи её можно найти кратчайший путь  между произвольной парой узлов (i,j).

1.Рассмотрим элемент mij. Если mij=i, то конец ={i-j}.Допустим, что mij=s1.

2.Находим в матрице М элемент .Пусть он равняется =s2.

3.Если s2=i,  то конец работы алгоритма, искомый путь ={i-s1-j}.Иначе переходим к шагу 2, приравнивая s1=s2.

Допустим, что через k итераций получен элемент .Тогда кратчайший путь ={i-sk-sk-1...-s2-s1-j}.

Теперь можно рассчитать матрицу информационных потоков по кратчайшим путям. Алгоритм расчета потоков состоит из k=n(n-1) итераций.

1-я итерация.

1.Выбираем 1-й элемент h12 из матрицы Н.

2.Находим кратчайший путь  по матрице М.

3.Тогда

Пусть уже проведено (k-1) итераций и определён вектор F(k-1).

k-тая итерация.

1.Из матрицы Н выбираем следующее требование, ещё не распределённое по сети. Пусть это .

2.Определяем кратчайший маршрут .

3.Пересчитываем величину суммарного трафика на каналах маршрута :

4. Проверка условия k=n(n-1). Если да, то конец, иначе k=k+1 и переход на шаг 1 (k+1)-й итерации.

Пример 1.

Рассмотрим задачу нахождения кратчайших путей и потоков по кратчайшим путям для сети, приведенной на рис. 1. На дугах (i,j) сети указаны условные стоимости передачи Сij, причём Cij=Cji. Матрица требований в передаче информации Н приводится ниже.

рис. 1.

                i\j             1              2              3              4              5

                1              x              13            11            7              9

                2              6              x              6              4              8

H=          3              5              4              x              6              3

                4              6              14            12            x              15

                5              1              6              7              3              x

                i\j             1              2              3              4              5

                1              x              1              0              1              0

                2              1              x              1              0              0

B=           3              0              1              x              1              1

                4              1              0              1              x              1

                5              0              0              1              1              x

1 итерация.

Вычисляем матрицу длин кратчайших путей А(1):

                i\j             1              2              3              4              5

                1              x              7                        9             

                2              7              x              7                       

A(1)=      3                        7              x              10            4

                4              9                        10            x              9

                5                                  4              9              x

Находим матрицу кратчайших маршрутов

 

                i\j             1              2              3              4              5

                1              x              1              0              1              0

                2              2              x              2              0              0             

M(1)=3   0              3              x              3              3             

                4              4              0              4              x              4

                5              0              0              5              5              x

2 итерация

Вычисляем матрицу длин кратчайших путей длин 2 А(2):

                i\j             1              2              3              4              5

                1              x              7              14            9              18

                2              7              x              7              16            11

A(2)=      3              14            7              x              10            4

                4              9              16            10            x              9

                5              18            11            4              9              x

Находим соответствующую матрицу кратчайших маршрутов.

                i\j             1              2              3              4              5

                1              x              1              2              1              4

                2              2              x              2              3              3             

M(2)=3   2              3              x              3              3

                4              4              3              4              x              4

                5              4              3              5              5              x

3 итерация

Вычисляем матрицу длин кратчайших путей А(3) и соответствующую маршрутную матрицу М(3) и убеждаемся, что А(3)=А(2) и М(3)=М(2). Следовательно, матрица М(2)=М является искомой маршрутной матрицей (кратчайших путей), а А(2)=А соответствующих длин кратчайших путей.

                Покажем, как пользуясь матрицей М, найти кратчайший путь .

                Рассматриваем элемент m15=4. Далее ищем элемент m14, т.к. m14=1, то конец, , при этом .

                Рассчитываем потоки по кратчайшим путям: . Для этого полагаем .

1 итерация

Выбираем элемент h12=13.

Находим  и вычисляем поток F(1):

k=k+1 и переход к следующей итерации.

Остальные итерации выполняются аналогично. Спустя k=n(n-1)=20 итераций получим следующее распределение потоков по кратчайшим путям: