Однако наличие дополнительного ограничения несколько усложняет данную задачу по сравнению со случаем альтернативной маршрутизации.
Для решения задачи (7.11) - (7.17) предлагается алгоритм, являющийся модификацией алгоритма отклонения потока. Модификация заключается в том, что отклонение потока выполняется не для всех пар «источник-адресат» одновременно, а для каждой пары отдельно. Похожие идеи использованы в работе [82] при описании алгоритма решения задачи альтернативной маршрутизации.
Описание алгоритма
Шаг 1. Определить «веса» линий связи
и инициализировать потоки в линиях связи
Шаг 2. Положить:
- множество оптимальных маршрутов между парой узлов
Шаг 3. Используя «веса» линий связи
определить кратчайшие пути
между всеми парами узлов «источник - адресат».
Включить кратчайшие пути
в множества П:
Шаг 4. Распределить потоки по кратчайшим путям:
1)
2)
Шаг 5. Вычислить:
Шаг 6. Положить:
Шаг 17. Найти величину (5 6 [0,1], минимизирующую функцию:
при условии выполнения ограничения (7.13)
Шаг 18. Выполнить отклонение потока на величину (5:
Шаг 19. Вычислить:
Шаг 20. Если
то перейти к шагу 11 (значение целевой функции улучшить не удалось).
Иначе:
1) включить кратчайший путь
в множество
2)
3) положить:
4) если
то перейти к шагу 7; иначе перейти к шагу 9.