7.3 Алгоритмы решения задачи выбора оптимальных потоков в сети
7.3.1 Альтернативная маршрутизация
В случае альтернативной маршрутизации задача выбора оптимальных маршрутов относится к классу многопродуктовых задач с выпуклой целевой функцией и выпуклым множеством ограничений. Следовательно, существует единственный локальный минимум данной задачи, являющийся глобальным минимумом, для нахождения которого разработано достаточно большое число вычислительных методов [156,190,209,269].
Наиболее известным методом решения данной задачи является метод отклонения (девиации) потока, предложенный в работе [190]. Данный алгоритм является частным случаем так называемого метода Франка-Вольфе [189] для решения более общих задач нелинейного программирования с выпуклым множеством ограничений.
Доказано [190], что метод отклонения потока в пределе уменьшает значение целевой функции до минимума, хотя по мере приближения к оптимуму скорость сходимости существенно замедляется.
Алгоритм отклонения потока опирается на следующие два свойства оптимального решения задачи [190,209].
Свойство 1. Множество многопродуктовых потоков в линиях связи
является выпуклым многогранником, крайними точками которого являются так называемые «экстремальные» потоки, определяемые в соответствии с принципом кратчайших маршрутов. Данный принцип состоит в том, что в качестве оптимальных маршрутов для каждой пары узлов «источник
- адресат
рассматриваются кратчайшие маршруты, вычисляемые при произвольном назначении «весов» линий связи. Каждое такое назначение соответствует некоторому «экстремальному» потоку и наоборот. В работе [190] показано, что любой многопродуктовый поток в линиях связи
может быть представлен, как выпуклая комбинация «экстремальных» потоков.
Свойство 2. Для заданного множества многопродуктовых потоков в линиях связи
определим «вес» линии связи
как частот
производную средней задержки по переменной
то есть
Пусть
- поток по кратчайшим маршрутам, определенным в соответствии с «весами» Пусть далее,
выпуклая комбинация
минимизирующая функцию
. Если
, то
оптимальный поток.
Справедливость выбора «весов»
и сходимость алгоритма доказываются нижеследующими рассуждениями.
Пусть:
- оптимальное решение. Это означает, что любое отклонение от
ведет к увеличению целевой функции Т, т. е. для любого
отклонения
относительно
такого, что
- допустимый многопродуктовый поток выполняется неравенство:
Если
выпуклая комбинация
, где
- поток по кратчайшим маршрутам, определенным в соответствии с некоторыми «весами»
, то
Рассмотрим разность:
. Для
имеем:
Тогда, из неравенства (7.18) следует: мм
Или:
причем в точке оптимума неравенство (7.21) переходит в равенство. Таким образом, для того чтобы в результате итераций поток
приближался к оптимальному решению, необходимо минимизировать величину
, где
поток по кратчайшим маршрутам, определенным в соответствии с «весами»
Ниже предлагается модифицированная версия алгоритма отклонения потока.
Описание алгоритма
Шаг 1. Определить «веса» линий связи
инициализировать потоки в линии связи
Шаг 2. Используя «веса» линий связи
определить кратчайшие пути
между всеми парами узлов «источник - адресат». Для нахождения кратчайших путей в данном случае наиболее подходящим является алгоритм Флойда [182].
Шаг 3. Распределить потоки по кратчайшим путям:
Шаг 4. Вычислить:
Шаг 5. Положить:
.
Шаг 6. Положить:
где:
.
Шаг 7. Пересчитать потоки в линиях связи:
Шаг 8. Определить «веса» линий связи
и инициализировать потоки по кратчайшим путям
Шаг 9. Используя «веса» линий связи
определить кратчайшие пути
между всеми парами узлов «источник - адресат».
Шаг 10. Распределить потоки по кратчайшим путям:
Шаг 11. Найти величину
минимизирующую функцию:
при условии выполнения ограничения (7.13).
Поиск величины
можно осуществить любым из известных методов одномерного поиска, например, методом Фибоначчи. Ограничение (7.13) легко добавить в реализацию метода одномерного поиска: если для некоторого значения
, то достаточно положить
.
Шаг 12. Выполнить отклонение (девиацию) потока на величину
Шаг 13. Вычислить:
если
, то допустимых решений нет;
если
, то получено оптимальное решение с заданной точностью
.
Иначе:
1) положить: Том
;
2) если
то перейти к шагу 6; иначе перейти к шагу 8.
По сравнению с исходным описанием [190,209], алгоритм объединяет в себе шаги построения начального допустимого потока (шаги 1 - 14) и собственно задачи минимизации средней задержки (шаги 8 -14).
Для определения множества оптимальных маршрутов
и долей потоков от входного потока можно использовать модификацию алгоритма, предложенную в работе [116].
В заключение остановимся на теоретической трудоемкости алгоритма. Данная трудоемкость определяется шагами 2 и 9, на которых производится поиск кратчайших путей между всеми парами узлов. Для алгоритма Флойда теоретическая трудоемкость составляет
следовательно, трудоемкость алгоритма отклонения потока
.