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) можна помітити, що при невеликих значеннях ПЗ КЗ другим доданком можна знехтувати через його малість порівняно з першим, оскільки час затримки передачі набагато менше часу поширення сигналу в ЛЗ. Тоді затримка повідомлення в мережі залежить від кількості передач на шляху його проходження. Отже, як вартість шляху між вузлами мережі можна вибрати кількість передач. Тому матрицю вартості визначимо як
У випадку, коли ПЗ КЗ великі, час поширення сигналу в ЛЗ впливає на результуючу затримку пакета в мережі сильніше, ніж час передачі, і, отже, як вартість шляху між вузлами мережі слід взяти відстань між вузлами:
Вимогу щодо величини середньої затримки в мережі у цьому випадку буде виконано на етапі вибору пропускної здатності КЗ.