12.3.2 Задача розподілу потоків
Суть задачі розподілу потоків (РП) в тому, що для відомої топології мережі і ПЗ КЗ слід визначити шляхи передачі інформаційних потоків та їх величини, які забезпечують максимум ступеня відповідності вимогам щодо передачі інформації від джерел до споживачів. У деяких випадках задача розподілу потоку розв’язується при невідомих значеннях пропускних здатностей каналів.
Розглянемо загальну постановку задачі розподілу потоків.
Припустимо, задано: множина вузлів А; множина вузлів-джерел інформації ; множина вузлів-споживачів інформації
; множина транзитних вузлів
; множина ЛЗ, що з’єднують між собою вузли, ПЗ КЗ
між суміжними вузлами
і
і вимоги до передачі інформації А між вузлами
і
. Необхідно визначити шляхи передачі інформації від
до
і величини потоків у КЗ
так, щоб величина потоку в КЗ не перевищувала його ПЗ
, щоб задовольнялися вимоги до передачі інформації і досягався максимум певного параметра якості передачі.
Одним з параметрів якості передачі є ступінь використання продуктивності мережі. У цьому випадку постановка задачі буде такою.
Розв’язання задачі розподілу потоків для розгалужених потоків
Інформаційний потік, що передається між парою вузлів «джерело-споживач» декількома шляхами, називається розгалуженим потоком. Такі потоки виникають тоді, коли в мережі застосовується багатошляхова стратегія маршрутизації.
Розглянемо постановку задачі. Задано: топологія мережі , ПЗ КЗ
і матриця вимог
. Необхідно вибрати такі маршрути для передачі всіх інформаційних потоків, що надходять у мережу, і розрахувати величини потоків у ЛЗ
таким чином, щоб мінімізувати середній час затримки передачі повідомлення в мережі
на множині всіх потоків , що відповідають матриці вимог Н і умові
,
. Ця задача відноситься до задач опуклого програмування, тобто існує єдиний мінімум, що є глобальним. Його можна знайти методом найшвидшого спуску, що, однак, вимагає значних обчислювальних витрат. Для розв’язання задачі РП Л. Клейнроком і М. Герлоєм був запропонований метод ВП.
Метод ВП призначений для знаходження мінімуму (екстремуму) нелінійної функції за змінними
, де
– вектор багатопродуктового потоку, що відповідає умові
,
.
Розглянемо теоретичні основи методу. Припустимо, що функції безперервні разом зі своїми першими похідними. Визначимо необхідні і достатні умови стаціонарності
. Для будь-якого нескінченно малого збурення
, такого, що
– також припустимий потік, виконується нерівність
Загальне збурення, що діє на величину
(яке визначаємо як відхилення потоку), можна подати як опуклу комбінацію
і будь-якого іншого потоку
. Тоді новий потік
після збурення
, де
, F – множина припустимих потоків
. Якщо
, то відхилення потоку нескінченно мале. Для
маємо
де ;
.
З рівняння (12.12) і умов стаціонарності випливає, що потік є стаціонарним, якщо
Можна задавати різні збурення, що діють лише на одну з вимог , при цьому потік
має бути стаціонарним відносно кожного з них. Звідси випливає, що
– стаціонарний потік, якщо для всіх
виконується нерівність
де F – множина припустимих потоків.
Умови (12.13) і (12.14) еквівалентні. Умову (12.14) можна переписати в іншому вигляді:
Але оскільки , то умова (12.15) матиме вигляд
Аналогічно
Умови (12.16) і (12.17) легко перевірити: права частина оцінюється точно, а ліва частина потребує обчислення потоків по найкоротших шляхах у метриці . Якщо подати потік як зважену комбінацію потоків по всіх шляхах, то умову (12.17) можна записати в іншому вигляді:
де – будь-який маршрут;
– усі шляхи, використовувані для передачі вимоги
;
– вага шляху
;
– загальна кількість маршрутів між
.
Наведемо опис методу ВП. Розглядатимемо FD як оператор ВП, що відображає потік в інший потік і визначається в такий спосіб:
де – відповідним чином обраний потік
;
– величина кроку.
Очевидно Ha основі співвідношень (12.15)-(12.17) легко показати, що для невиродженої і обмеженої знизу функції
наведені нижче умови є достатніми для збіжності методу ВП до стаціонарної точки:
;
стаціонарна, де
.
Алгоритм ВП складається з таких кроків:
- знаходимо припустимий початковий потік ;
- приймаємо п = 0;
- визначаємо метрику
- знаходимо найкоротші шляхи між усіма вузлами в метриці
;
- визначаємо потік по всіх найкоротших шляхах у метриці
;
- знаходимо ;
- обчислюємо оптимальне значення з умови
Оптимальне значення можна знайти за допомогою будь-якого придатного методу пошуку (наприклад, за допомогою методу Фібоначчі).
Якщо де
– задана точність, так завершується робота алгоритму, інакше
і переходимо до кроку 3.
Отже, алгоритм ВП збігається до стаціонарних точок, однак єдиною стаціонарною точкою стійкої рівноваги є локальний мінімум, і, отже, алгоритм сходиться до локального мінімуму. Коли строго опукла, то алгоритм ВП сходиться до глобального мінімуму. Якщо ж
увігнута або квазіувігнута, то локальний мінімум відповідає крайнім точкам (тобто потокам
по найкоротших шляхах). Ця властивість значно спрощує метод ВП і прискорює його збіжність.
Розв’язання задачі розподілу потоків для нерозгалужених потоків
Розглянута в попередньому підрозділі задача РП для розгалужених потоків і метод її розв’язання дозволяє оптимально використовувати ПЗ КЗ і мінімізувати величину середньомережевої затримки повідомлення. Однак отриманий РП на практиці реалізувати дуже складно. Тому нижче розглянемо задачу РП для фіксованої стратегії маршрутизації, коли інформація від вузла-джерела до вузла-споживача передається по одному шляху.
Потік називається нерозгалуженим, якщо потік між парою «джерело-одержувач», тобто трафік , передається тільки по одному шляху. Введення обмеження на нерозгалуженість скорочує множину допустимих потоків, що приводять його до кінцевої множини. Безперервні методи, подібні до методу ВП, у цьому випадку непридатні, а дискретні методи дуже складні. Тому необхідно розробити ефективні субоптимальні методи. Для великих і збалансованих мереж можна успішно застосовувати модифікацію методу ВП.
Мережа називається великою, якщо має велику кількість вершин, і збалансованою, якщо елементи матриці Н не занадто відрізняються один від одного. Для більш чіткого визначення збалансованості візьмемо
Припустимо, m – відношення між максимальною і середньою вимогами:
при цьому . Мережа називається збалансованою, якщо
.
Об’єднаємо ці два визначення в поняття великої і збалансованої мережі. Уведемо коефіцієнт :
де п – кількість дуг графа;
– середня щільність дуг на одну вершину графа;
– середня довжина шляху в графі за умови, що усі вимоги передаються по найкоротших шляхах (тут під довжиною шляху мають на увазі кількість дуг у шляху):
Мережа називається великою і збалансованою, якщо .
Щоб обґрунтувати таке визначення, розглянемо для довільного
потоку відношення сумарного потоку у дузі
до відповідного потоку
, що задається вимогою
. Знайдемо середню величину цього відношення по всіх дугах:
де aver позначає процедуру усереднення. Але, як показано
де – середня довжина шляху в графі при заданому способі маршрутизації;
– довжина шляху від
до
при даному способі маршрутизації.
При цьому , причому
залежить від конкретного розподілу шляхів, тоді як
залежить тільки від структури і матриці вимог. Рівняння (12.19) можна переписати в іншому вигляді:
З виразу (12.20) випливає така властивість. У великій і збалансованій мережі внесок однієї вимоги у загальний потік у дузі
можна розглядати як величину нескінченно малу. Для того, щоб застосовувати метод ВП для нерозгалужених потоків у великій і збалансованій мережі, розглянемо нову версію методу ВП, яку визначимо як композицію відхилень, що включають щоразу дію тільки однієї вимоги
. Отже, припустимо, що потік
нерозгалужений, трафік
проходить по шляху
, а
– найкоротший маршрут між вузлами
і
у метриці
. Відповідно до методу ВП, частина потоку вимоги
відхиляється зі шляху
на шлях
так, щоб цільова функція
де потік
передається по шляху
, a
– по шляху
. Перепишемо цей вираз:
де містить залишкові члени порядку малості вище, ніж 1.
Відповідно до властивості збалансованості члени можна вважати нескінченно малими 1-го порядку, а член
– нескінченно малим 2-го порядку. Тому оскільки величина
є від’ємною і досить великою, то членом
можна знехтувати і мінімум у формулі (12.21) досягається на границі при
. Отже, метод ОП зберігає властивість нерозгалуженості потоку. Проте якщо
, то потік
дуже близький до оптимуму. Тому метод ВП забезпечує відшукання нерозгалужених потоків, що є доброю апроксимацією до оптимальних розгалужених потоків.
Розглянемо метод ВП для нерозгалужених потоків. Припустимо, – початковий нерозгалужений потік. Візьмемо
.
Обчислюємо матрицю де
;
Знаходимо матрицю найкоротших шляхів у метриці
.
Припустимо, . Для кожної вимоги
виконуємо такі операції:
а) знаходимо потік , який виходить з
шляхом девіації потоку вимоги
по найкоротшому шляху
, що задається матрицею П;
б) якщо – допустимий потік і
, то переходимо до наступного кроку, у протилежному випадку переходимо до кроку г);
в) беремо ;
г) якщо усі вимоги переглянуті, то переходимо до наступного кроку, у іншому випадку повертаємося до кроку а).
4. Якщо , то роботу алгоритму закінчено. Метод ВП більше не може покращити нерозгалужений потік. Інакше вважаємо
,
і переходимо до кроку 1.
Даний алгоритм збігається за скінченне число кроків, тому що є лише кінцеве число нерозгалужених потоків, а повторення того самого потоку виключаються за умовами зупинки.
Розв’язання задачі розподілу потоків за невідомих пропускних здатностей каналів
Під час розв’язання задачі синтезу структури СД у цілому, відповідно до наведеної раніше постановки задачі, виникне необхідність вирішення таких окремих задач проектування, як синтез топології, РП, ВПЗ КЗ. У цьому випадку доводиться розв’язувати задачу РП на етапі, коли ПЗ КЗ ще не відомі, а ВПЗ КЗ здійснюється пізніше так, щоб забезпечити передачу заданих потоків у КЗ з максимальною якістю.
З цією метою був розроблений алгоритм визначення маршрутів і розрахунку потоків у КЗ, який дозволяє забезпечити після оптимального ВПЗ КЗ мінімум часу затримки повідомлення в мережі. Розглянемо постановку задачі і метод її розв’язання.
Припустимо, є багатозв’язна СД, яка задана у вигляді неорієнтованого зваженого графа , де
– множина вершин графа, що відповідає множині вузлів мережі А;
– множина його ребер, вагу ребра
позначимо як
. Припускатимемо, що при декількох маршрутах передачі інформації від вершини
до
вона завжди передається по шляху мінімальної вартості. Потрібно розрахувати параметри мережі
: інформаційні потоки кожної з гілок і маршрути передачі інформації, при яких загальна вартість мережі буде мінімальною (структура мережі передбачається при цьому заданою).
Вихідні дані: топологія мережі задана матрицею суміжності
і матриця питомої вартості передачі одиниці інформації
між двома суміжними вузлами мережі.
У процесі роботи алгоритм використовує такі робочі матриці: – матриця питомих вартостей передачі одиниці інформації з
до
по шляху мінімальної вартості;
– матриця мінімальних маршрутів на мережі
, де елемент
– вершина, суміжна з
, по шляху мінімальної вартості до
;
– шукана матриця інформаційних потоків мережі,
– сумарний трафік (потік), який передається по ребру
, біт/с.
Розглянемо опис алгоритму. Алгоритм складається зі скінченної кількості однотипних ітерацій, у ході яких будують і уточнюють G, П, а потім знаходять F.
Як алгоритм для визначення найкоротших шляхів між усіма парами вузлів мережі використовуємо алгоритм, запропонований Флойдом. Кожному ребру графа поставлена у відповідність його довжина або вага
. Тоді довжиною шляху
буде сума ваг ребер, які його утворять. Потрібно знайти шляхи мінімальної довжини в графі між довільно взятою парою вершин
і
.
Як початкове значення елементів візьмемо . Передбачається, що усі величини
не є від’ємними. Якщо деяка пара вершин
,
не зв’язана дугою, то вважається
. Величини
не обов’язково повинні відповідати нерівності трикутника
. Якби ця нерівність виконувалася, задача виявилася б тривіальною, тому що тоді найкоротшим шляхом з
у
була б завжди дуга
. Величини
, крім того, не обов’язково повинні відповідати умові симетрії
.
Застосування алгоритму Флойда дозволяє визначити матрицю маршрутів, після чого необхідно визначити трафік у КЗ (матрицю F). Для цього використовується процедура «пропустити потік». Опишемо її.
Перед початком задамо
спочатку інформація в мережі не передається.
Процедура складається зі скінченної кількості однотипних ітерацій, у яких знаходяться елементи .
Опишемо одну ітерацію.
Для заданих і і j знаходимо в матриці маршрутів П елемент і беремо
, для елемента матриці трафіку
виконуємо
Якщо , то ітерація завершується. Інакше беремо
Знаходимо , беремо
і виконуємо
.
Переходимо до кроку 2.
У результаті, виконавши цю процедуру для всіх пар вузлів мережі, ми визначимо потоки в каналах для знайденої множини мінімальних шляхів.
На етапі визначення мінімальних шляхів (маршрутних таблиць у вузлах) як вартість (або довжина) шляху між вузлами мережі брали оцінки величини затримки. При цьому виникає складність у тому, як визначити дану величину, не вибравши попередньо ПЗ КЗ. Для цього розглянемо, які фактори, пов’язані зі структурою мережі, впливають на затримку.
Величина часу затримки повідомлення в мережі має такі складові: час передачі пакета в КЗ, час очікування пакета в черзі на передачу і час поширення електромагнітної енергії в ЛЗ. Таким чином, затримку передачі між кінцевими пунктами можна оцінити як
де V – швидкість поширення електромагнітної енергії в ЛЗ, м/с;
– відстань між вузлами
і
, м;
– середня довжина пакета в мережі, біт;
– сумарна інтенсивність потоків між суміжними вузлами
і
, біт/с.
З аналізу виразу (12.22) можна помітити, що при невеликих значеннях ПЗ КЗ другим доданком можна знехтувати через його малість порівняно з першим, оскільки час затримки передачі набагато менше часу поширення сигналу в ЛЗ. Тоді затримка повідомлення в мережі залежить від кількості передач на шляху його проходження. Отже, як вартість шляху між вузлами мережі можна вибрати кількість передач. Тому матрицю вартості визначимо як
У випадку, коли ПЗ КЗ великі, час поширення сигналу в ЛЗ впливає на результуючу затримку пакета в мережі сильніше, ніж час передачі, і, отже, як вартість шляху між вузлами мережі слід взяти відстань між вузлами:
Вимогу щодо величини середньої затримки в мережі у цьому випадку буде виконано на етапі вибору пропускної здатності КЗ.