166
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ На правах рукопису КАРАПЕТЯН АНАІТ РАДІКІВНА УДК 004.75.94 ЕВОЛЮЦІЙНІ МОДЕЛІ ТА МЕТОДИ АДАПТИВНОЇ МАРШРУТИЗАЦІЇ ПАКЕТІВ ДАНИХ В КОМП’ЮТЕРНИХ МЕРЕЖАХ 05.13.06 інформаційні технології дисертація на здобуття наукового ступеня кандидата технічних наук Науковий керівник: Колесніков Костянтин Васильович кандидат технічних наук, доцент, професор кафедри інформаційних технологій проектування Черкаси – 2017

Dis karapetyan

  • Upload
    -

  • View
    125

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Dis karapetyan

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

На правах рукопису

КАРАПЕТЯН АНАІТ РАДІКІВНА

УДК 004.75.94

ЕВОЛЮЦІЙНІ МОДЕЛІ ТА МЕТОДИ АДАПТИВНОЇ

МАРШРУТИЗАЦІЇ ПАКЕТІВ ДАНИХ В КОМП’ЮТЕРНИХ

МЕРЕЖАХ

05.13.06 – інформаційні технології

дисертація на здобуття наукового ступеня

кандидата технічних наук

Науковий керівник:

Колесніков Костянтин Васильович

кандидат технічних наук, доцент,

професор кафедри інформаційних

технологій проектування

Черкаси – 2017

Page 2: Dis karapetyan

2

ЗМІСТ

ВСТУП ........................................................................................................... 5

Розділ 1. ПРОБЛЕМИ ФОРМУВАННЯ ЕФЕКТИВНИХ МОДЕЛЕЙ ТА

МЕТОДІВ АДАПТИВНОЇ МАРШРУТИЗАЦІЇ ................................................ 11

1.1 Формування еволюційного методу адаптивної маршрутизації в

мережі – необхідна умова ефективної передачі даних...................................... 11

1.2 Аналіз моделей, методів, протоколів і алгоритмів адаптивної

маршрутизації в комп’ютерних мережах ........................................................... 14

1.3 Обгрунтування мети і постановка задачі дослідження .................... 41

Висновки до розділу 1 ................................................................................ 43

Розділ 2. МОДЕЛЮВАННЯ ПРОЦЕСІВ АДАПТИВНОЇ

МАРШРУТИЗАЦІЇ ............................................................................................... 45

2.1. Математичні моделі маршрутизації ................................................... 45

2.2. Цільова функція та критерій ефективності оптимального маршруту

в мережах адаптивної маршрутизації ................................................................ 56

2.3. Визначення коефіцієнтів цільової функції відображення

пріоритетів показників якості стану каналу звязку ........................................... 61

Висновки до розділу 2 ................................................................................ 67

Розділ 3. МЕТОД АДАПТИВНОЇ МАРШРУТИЗАЦІЇ В ЗАДАЧАХ

БАГАТОКРІТЕРІАЛЬНОЇ ОПТИМІЗАЦІЇ ........................................................ 70

3.1 Обґрунтування використання еволюційного моделювання ............. 70

3.2. Формування структури розв’язку задачі оптимізації ...................... 74

3.3. Нейромережевий метод розв’язання задач комбінаторної

оптимізації .............................................................................................................. 92

3.4 Інтегальний еволюційний метод розв’язання задач комбінаторної

оптимізаці їз використанням штрафних функцій .............................................. 95

3.5 Алгоритмізація еволюційного методу адаптивної маршрутизації .. 99

Висновки до розділу 3 .............................................................................. 107

Page 3: Dis karapetyan

3

Розділ 4. РЕАЛІЗАЦІЯ МЕТОДУ ОПТИМІЗАЦІЇ ЗАДАЧІ

МАРШРУТИЗАЦІЇ ТА ВЕРИФІКАЦІЯ ОДЕРЖАНИХ РЕЗУЛЬТАТІВ ..... 109

4.1 Програмна реалізація інформаційно-аналітичної системи з

використанням комбінованого еволюційного методу .................................... 109

4.2 Аналіз результатів досліджень .......................................................... 119

4.3 Експериментальна верифікація одержаних результатів розв’язання

задачі маршрутизації ........................................................................................... 123

Висновки до розділу 4 .............................................................................. 130

ВИСНОВКИ .............................................................................................. 131

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................. 132

ДОДАТКИ

А. Акти впровадження.............................................................................. 147

Б. Інформаційно-аналітична система «EVOLUTION».

Текст програми ...................................................................................... 151

Page 4: Dis karapetyan

4

СПИСОК ПРИЙНЯТИХ СКОРОЧЕНЬ

DVA – дистанційно-векторний алгоритм

LSA – алгоритм стану зв’язків

RIP – протокол маршрутизації інформації

RFC – (Request for Comments) — запит на обговорення, стандарт Інтернету

RT – режим реального часу

nRT – режим нереального часу

OSPF – Open Shortest Path First — протокол маршрутизації за станом каналу

QoS – (Quality of service) — якість обслуговування

NP – nondeterministically polynomial

TSP – (Travelling salesman problem) – зада ча комівояжера

VLSM – маска змінної довжини

ГА – генетичний алгоритм

ІАС – інформаційно-аналітична система

КМ – комп’ютерна мережа

МАІ – метод аналізу ієрархій

МД – модель даних

НМ – нейронна мережа

НМХ – нейронна мережа Хопфилда

ПАС –програмно-алгоритмічні системи

ТМ – таблиця маршрутизації

ШНМ – штучна нейронна мережа

Page 5: Dis karapetyan

5

ВСТУП

Актуальність теми. З кожним роком кількість користувачів

комп'ютерних мереж зростає. Це, в свою, чергу, зумовлює зростання

складності структур мереж і взаємодії між ними. Відповідно ускладнюється і

пошук оптимальних шляхів в мережі для швидкої доставки запитів

користувачів мережі, тобто ускладнюється завдання маршрутизації.

Маршрутизація пакетів в мережі займає одне з важливих місць в

управлінні мережею. Вибір одного з можливих в маршрутизаторі напрямків

залежить від поточної топології мережі, довжин черг у вузлах комутації і т.п.

З причини складності структур сучасних комп'ютерних мереж завдання

маршрутизації не вирішується повною мірою. У більшості випадків це

пов'язано з маршрутизаторами, що не справляються з підтримкою таблиць

маршрутизації і вибором оптимальних маршрутів для даного класу трафіку.

Тому виникає задача дослідження існуючих алгоритмів маршрутизації з

метою поліпшення їх характеристик, або створення нових алгоритмів

маршрутизації.

Завантаження і пропускна спроможність ліній зв'язку глобальної

мережі динамічно змінюються, що, в свою чергу, може призводити до

відносно частого розсилання службової інформації про зміну маршрутів.

Розробка нових, більш ефективних алгоритмів пошуку найкоротших шляхів

дозволяє підвищити швидкодію комп’ютерних мереж. Під прискореної

маршрутизацією розуміють метод пошуку оптимальних маршрутів для

передачі пакетів даних від вузла-відправника до вузла-одержувача в умовах,

коли динамічно змінюється структура мережі і характеристики ліній зв'язку,

що дозволяє скоротити трудомісткість побудови таблиць маршрутизації

шляхом часткової зміни дерева найкоротших шляхів за рахунок

використання додаткової інформації про конфігурацію мережі.

Проблемами вдосконалення методів і алгоритмів маршрутизації в

комп’ютерних мережах займалися такі вчені, як Д. Бертсекас, П. Гупта, А.Б.

Page 6: Dis karapetyan

6

Гольдштейн, Б.С. Гольдштейн, Д. Кантор, Д. Куракін, В. Оліфер, У.

Столлінгс, Е. Таненбаум, А. Філіпс, С. Флойд, Р. Форд, Д. Фулкерсон і інші.

В Україні питаннями розробки методів динамічної маршрутизації

опікувались такі вчені як Р.В. Білоус, О. Я. Кравець, В.Є. Мухін, С.Д.

Погорілий, І. С. Подерский.

Проведений аналіз сучасного стану досліджень у теорії маршрутизації

даних вказує на наявність ряду нерозв’язаних задач. Серед них основними є:

– здійснено формальні постановки задач й описані моделі і методи, що

враховують різні обмеження, в той же час безпосереднє розв’язання

практичних задач за допомогою цих моделей виявляється неможливим як

внаслідок їх великої розмірності та NP-складності, так і тому, що в

практичних задачах необхідно враховувати не лише формальні, але і якісні

критерії та обмеження;

– проблеми розв’язання слабко структурованих задач на даний час

розглядаються в межах окремих наукових дисциплін (починаючи від

системного аналізу і теорії систем і закінчуючи теорією оптимізації), що веде

до розрізненості досліджень, відсутності єдиного підходу;

– розробка математичних і структурних моделей ускладнена

неочевидними залежностями між параметрами, а також невідомими

закономірностями їх впливу на цільові характеристики, має місце пряма

залежність продуктивності мережі від продуктивності маршрутизаторів

міжмережевого трафіку. Через високу завантаженість маршрутизаторів

отримати дійсно оптимальний маршрут передачі даних досить складно;

– недостатньо досліджено проблеми відображення системи переваг

критеріїв стану мережі та їх врахування в цільових функціях.

Оптимізація методів динамічної маршрутизації пов’язана з важливістю

розв’язання вищевизначених задач, що вказує на актуальність розробки

еволюційних моделей та методів на основі врахування інформації про

можливі зміни топології глобальної мережі. У той же час вибір маршруту, що

враховує динаміку мережі, може поліпшити пропускну здатність каналів,

Page 7: Dis karapetyan

7

середню затримку передачі і її варіації. Не зважаючи на це, необхідно

зазначити, що відсутні строго адекватні моделі і методи оцінки критерію

ефективного передавання пакетів даних, а інформація, необхідна для

розробки методів адаптивної маршрутизації, недоступна, тому що код деяких

протоколів автономних систем не документований. Більшість комп’ютерних

мереж використовує при виборі маршруту передачі критерій максимальної

пропускної здатності каналу передачі.

Виходячи з цього, тема дисертаційного дослідження є актуальною.

Зв’язок роботи з науковими програмами, планами, темами.

Дисертаційне дослідження виконувалось на кафедрі інформаційних

технологій проектування в Черкаському державному технологічному

університеті.

Дисертаційне дослідження пов’язане з науково-дослідницькою

роботою Черкаського державного технологічного університету

«Мультиагентні та еволюційні технології розв’язання високорозмірних

задач» (номер державної реєстрації 0115U005344), в якій автор брав участь в

якості виконавця.

Мета і задачі дослідження. Метою дисертаційного дослідження є

підвищення ефективності доставки пакетів даних шляхом розробки нових та

вдосконалення існуючих моделей та методів адаптивної маршрутизації.

Для досягнення поставленої мети необхідно розв’язати наступні задачі:

• на основі аналізу існуючих принципів, моделей, методів та алгоритмів

розв’язання завдань маршрутизації в комп’ютерних мережах з пакетною

обробкою інформації, виявити їх переваги, недоліки і сформулювати

задачі дослідження;

• на основі формалізації задачі наукового дослідження дослідити та

вдосконалити математичну та графоаналітичну моделі розподіленої

комп’ютерної мережі з урахуванням її частих змін, які виникають через

варіації навантаження і пропускної здатності каналів зв’язку та

комунікаційного обладнання;

Page 8: Dis karapetyan

8

• розробити еволюційний метод оптимізації цільової функції задачі

визначення маршрутів в комп’ютерних мережах з урахуванням

інформації про можливі зміни параметрів стану каналів звя’зку, який

дозволить зменшити трудомісткість побудови таблиць маршрутизації.

Об’єктом дослідження є процеси адаптивної маршрутизації пакетів

даних в розподілених комп'ютерних мережах.

Предмет дослідження – моделі, методи та інструментальні засоби

динамічної маршрутизації пакетів даних в комп’ютерних мережах.

Методи дослідження. Аналіз технологій адаптивної маршрутизації

пакетів даних в комп’ютерних мережах здійснено на основі системного

підходу до методів теорії інформації та кодування. Проведені теоретичні

дослідження базуються на використанні апарату теорії графів (побудова

графоаналітичної моделі маршрутизації пакетів даних); математичного

апарату теорії черг, теорії алгоритмів (моделювання адаптивної

маршрутизації шляхом врахування коефіцієнтів ребер та вузлів). Розробка

методів адаптивної маршрутизації виконана на основі технологій

еволюційного моделювання, нейромереж та алгоритмів оптимізації. При

обробленні результатів досліджень використовувались методи

комп'ютерного моделювання. Розробка програмного комплексу проведена із

використанням методів організації комп'ютерних засобів моделювання та

технології об’єктно-орієнтованого програмування і програмної емуляції

роботи алгоритмів.

Достовірність отриманих наукових результатів і висновків перевірено

шляхом проведення обчислювальних експериментів з використанням

створеного програмного комплексу та результатами практичної реалізації.

Наукова новизна одержаних результатів полягає в наступному:

1) вперше розроблено еволюційний метод оптимізації фітнес-функції на

основі генетичних алгоритмів та штучних нейронних мереж, шляхом їх

поєднання та уточнення енергетичної функції Ляпунова, що дало

Page 9: Dis karapetyan

9

можливість використати їх сумісно для підвищення ефективності

адаптивної маршрутизації пакетів даних в комп’ютерних мережах;

2) удосконалено моделі передачі даних в комп’ютерній мережі на основі

врахування її частих змін через варіації навантаження і пропускної

здатності каналів зв’язку та комунікаційного обладнання, шляхом

врахування вимог стану каналів та штрафів за їх невиконання, що дало

можливість підвищити ефективність процесу маршрутизації даних у

комп’ютерній мережі;

3) дістали подальшого розвитку методи еволюційної спрямованої

оптимізації на основі їх адаптації до розв’язання дискретної задачі

формування таблиць маршрутизації шляхом уточнення значень

коефіцієнтів енергетичної функції, що дало можливість скоротити час на

пошук прийнятного маршруту.

Практичне значення одержаних результатів визначається тим, що

запропоновані моделі та методи дозволяють підвищити ефективність процесу

маршрутизації пакетів даних у комп’ютерних мережах. Отримані автором

теоретичні результати доведені до конкретних методик і алгоритмів,

створена інформаційно-аналітична система для моделювання процесів

маршрутизації в комп’ютерних мережах.

Використання розробленої інформаційно-аналітичної системи, за

результатами впровадження, дозволяє отримати оптимальний розв’язок

задачі адаптивної маршрутизації та скоротити час пошуку мінімального

шляху маршруту на 10 – 16%. Результати дисертаційної роботи впроваджені

в ТОВ «Маклаут-Гамма» (Акт впровадження від 17.05.2016 р.), ТОВ «Фірма

«МегаСтайЛ-Сервіс» (Акт впровадження від 26.04.2016 р.), а також,

застосовуються в навчальному процесі Черкаського державного

технологічного університету (Акт впровадження від 18.06.2016 р.).

Особистий внесок здобувача. Всі основні положення та результати,

що виносяться до захисту, отримано автором особисто. У роботах

опублікованих у співавторстві здобувачеві належать, зокрема: аналіз

Page 10: Dis karapetyan

10

принципів нейромережевої мультиагентної маршрутизації потоків даних [1,

11]; узагальнення натуральних методів маршрутизації потоків даних [2];

аналіз існуючих методів багатокритеріальної оптимізації маршруту в

мережах [3, 13, 19]; формалізація багатокритеріальної задачі пошуку

оптимальних шляхів у мережі [4, 14, 16]; аналіз обчислювальної складності

[4, 5, 15]; вдосконалена модель маршрутизації даних [6, 12]; проведення

обчислювального експерименту [8]; узагальнення класифікації методів

маршрутизації [18]; формування та формалізація підходів до пошуку

найкоротших шляхів на графі з кількома критеріями [6, 20]; розробка

еволюційного методу оптимізації фітнес-функції формування шляху

доправлення пакетів даних [9, 17].

Апробація результатів дисертації. Основні положення, результати і

висновки дисертаційного дослідження доповідались і обговорювались на

XVІІ Міжнародній конференції з автоматичного управління "Автоматика-

2010". (м.Харків, 2010 р.); Міжнародній науково-практичній конференції

«Штучний інтелект» (смт. Кацивелі, 2012 р.); VІ, VII Міжнародних школах-

семінарах «Теорія прийняття рішень» (м.Ужгород, 2012 р., 2014 р.);

Всеукраїнській науково-практичній конференції «Інформаційні та

моделюючі технології» ( Черкаси, 2014 р.), І, ІІ, ІІІ Міжнародних науково-

технічних конференціях «Обчислювальний інтелект», (м.Черкаси, 2011 р.,

2013 р., 2015 р.)

Публікації. Результати дисертації викладені в 20 публікаціях, серед

яких 10 статей опубліковано у фахових виданнях, з них 8 – статті у фахових

виданнях та 1 – в закордонному виданні, також 10 тез доповідей – у

матеріалах конференцій та наукових семінарів.

Структура та об’єм роботи. Дисертаційна робота складається з

вступу, чотирьох розділів, висновків, списку використаних джерел (148

найменувань), двох додатків. Основний текст роботи викладено на 126

сторінках. Робота містить 43 рисунки і 10 таблиць.

Page 11: Dis karapetyan

11

Розділ 1. ПРОБЛЕМИ ФОРМУВАННЯ ЕФЕКТИВНИХ МОДЕЛЕЙ ТА

МЕТОДІВ АДАПТИВНОЇ МАРШРУТИЗАЦІЇ

Однією з найпоширеніших функціональних задач мережі є задача про

знаходження найкоротшого маршруту, а саме пошук шляху між двома

визначеними вершинами графа, який відповідає найменшому значенню

певного функціонала за визначеним критерієм. Ця задача застосовується у

сферах транспорту, маршрутизації, комунікації. Принципи побудови

оптимальних маршрутів в задачах динамічної маршрутизації в чому схожі з

методами статичної маршрутизації. Однак до алгоритмів динамічної

маршрутизації пред'являється додаткова вимога: вони повинні

"відстежувати" зміни поточного стану КМ. Тому ці алгоритми повинні мати

невисоку обчислювальну складність і використовувати зворотний зв'язок по

поточному стану КМ. Відомі декілька класичних алгоритмів розв’язання цієї

задачі (Белмана-Форда, Дейкстри, Флойда -Уоршелла, Джонсона).

1.1 Формування еволюційного методу адаптивної маршрутизації в

мережі – необхідна умова ефективної передачі даних.

Багато КМ, включаючи публічні комутовані телефонні мережі, мережі

мобільного зв’язку, локальні обчислювальні мережі і мережу Інтернет,

складаються з множини пристроїв, що адресуються, або вузлів, які повинні

один з одним взаємодіяти. У таких мережах алгоритми маршрутизації

використовуються для визначення правил передачі пакетів даних між

вузлами.

Маршрутизація може бути представлена в вигляді спрямованого

зваженого графа G = (V, E), в якому кожен вузол з множини V являє собою

пристрій, що обробляє і передає дані, а кожне ребро з множини E є лінією

зв'язку. Основним завданням алгоритмів маршрутизації є передача даних з

вузла-джерела у вузол-приймач, максимізуючи при цьому продуктивність

мережі. При моделюванні алгоритмів маршрутизації виникають дві

Page 12: Dis karapetyan

12

проблеми, що ускладнюють процес створення системи. По-перше, потік

даних не є статичним, по-друге, він має стохастичний характер.

Алгоритми маршрутизації повинні виконувати наступні функції:

збір, організація та розподіл інформації про створений користувачем

трафік і стан мережі;

використання зібраної інформації для створення відповідних маршрутів,

максимізація продуктивності об'єктів;

обрання напрямку трафіку за обраним маршрутом.

Спосіб реалізації цих функцій залежить від технології передачі і

комутації пакетів, покладеної в основу мережі, і від особливостей інших

взаємодіючих рівнів додатків. Відправка трафіку користувача може

відбуватися з використанням двох базових операцій мережі: комутація

каналів і комутація пакетів (які також пов'язані з поняттями орієнтований та

неорієнтований на з'єднання). При комутації каналів на стадії встановлення

з'єднання шукаються і резервуються ресурси мережі, які згодом будуть

представлені кожною новою сесією. У цьому випадку всі пакети даних, що

належать одній і тій же сесії, будуть спрямовані по одному і тому ж шляху.

Від маршрутизаторів вимагається зберігання інформації про активні сесії.

При комутації пакетів немає стадії резервування, інформація про стани не

зберігається на маршрутизаторах, і пакети даних можуть відправлятися по

різних шляхах. У кожному проміжному вузлі приймається самостійне

рішення про вибір вихідної лінії, по якій буде відправлений пакет даних у

вузол приймач.

Загальним параметром для всіх видів алгоритмів маршрутизації є

таблиця маршрутизації. ТМ розташовується в кожному вузлі мережі, і

містить всю інформацію про неї. Ця інформація, у свою чергу

використовується маршрутизаторами для створення маршрутів відправки

пакетів даних. Тип інформації, що міститься в маршрутних таблицях,

залежить виключно від алгоритму маршрутизації.

Page 13: Dis karapetyan

13

Існують дві основні характеристики, на які істотно впливає алгоритм

маршрутизації – пропускна здатність (кількість обслуговування) і середня

затримка пакета (якість обслуговування). Маршрутизація вважається

хорошою, якщо їй вдається збільшити пропускну здатність і зменшити

середню затримку пакета.

Маршрутизація взаємодіє з управлінням потоками у визначенні

характеристик за допомогою механізму зворотного зв'язку, представленому

на рисунку 1.1.

Рисунок 1.1 – Взаємодія між маршрутизацією та управлінням потоку за

допомогою механізму зворотного зв'язку

Величини затримки пакетів і пропускної здатності залежать від рішень,

прийнятих алгоритмом маршрутизації. Однак на пропускну здатність

більшою мірою впливає алгоритм управління потоками. Такі алгоритми

зазвичай діють на основі підтримки балансу між пропускною здатністю і

середньої затримкою. Тому якщо алгоритму маршрутизації вдається більш

успішно підтримувати малу затримку, то алгоритм управління потоками

дозволяє приймати мережі більше трафіку. Хоча точний баланс між

затримкою і пропускною здатністю встановлюється алгоритмом управління

потоками, хороша маршрутизація в умовах великого пропонованого трафіку,

дає прийнятну криву затримка-пропускна здатність, за якою діє алгоритм

управління потоками (рис. 1.2) [134].

Знехтуване

навантаження

Затримка

Пропускна

здатність

Пропоноване

навантаження Управління

потоком Маршрутизація

Page 14: Dis karapetyan

14

Рисунок 1.2 – Графіки залежності затримки від пропускної здатності для

хорошої та поганої маршрутизації

1.2 Аналіз моделей, методів, протоколів і алгоритмів адаптивної

маршрутизації в комп’ютерних мережах

Дослідження низки наукових робіт показало велику зацікавленість

науковців до задачі оптимізації шляхів адаптивної маршрутизації.

Різноманітність досліджень в даній області визначається використанням як

сучасних методів і підходів розв’язання даної задачі, так і розробкою нових

або модифікованих методів.

Визначимо основні тенденції сучасного наукового пошуку в напрямку

технологій розв’язання вказаних задач.

1.2.1 Алгоритми маршрутизації

Алгоритми маршрутизації можна класифікувати за локалізацією дії на

централізовані та розподілені; а за характером належності маршрутів – на

статичні і адаптивні; за довжиною маршруту – на мінімальні, оптимальні і

немінімальны та алгоритми маршрутизації, що визначають найкоротший

шлях.

Централізовані алгоритми можуть бути використані тільки в окремих

випадках і для малих мереж, тому що рішення про маршрутизацію приймає

сервер (головний керуючий пристрій). У роботі розглядається тільки

розподілена маршрутизація, що розділяє обчислення маршрутів між вузлами

мережі, які обмінюються необхідною інформацією.

У статичних системах маршрутизації, де трафік мережі відносно

Page 15: Dis karapetyan

15

передбачуваний, а схема мережі відносно проста, маршрут даних

встановлюється адміністратором мережі до початку маршрутизації, без

розгляду поточного стану мережі. Цей шлях зазвичай вибирається як

найкоротший щодо обраного вартісного критерію. Алгоритми, що

використовують статичні маршрути, прості для розробки. Динамічні

алгоритми маршрутизації можуть доповнювати статичні маршрути там, де це

доречно. Адаптивні маршрути можуть адаптувати спосіб маршрутизації до

змін трафіку в масштабі реального часу. Вони виконують це шляхом аналізу

повідомлень про відновлення маршрутизації. Однак, для мереж, не

орієнтованих на з'єднання, адаптивна маршрутизація може привести до

суперечливих ситуацій, які можуть виникнути при виході з ладу вузлів,

каналів зв'язку або при зміні топології.

Мінімальні маршрути дозволяють пакетам вибирати тільки шляхи з

мінімальною вартістю, у той час як немінімальні алгоритми дозволяють

робити вибір між всіма доступними шляхами, використовуючи при цьому

евристики.

Маршрутизація, що визначає найкоротші шляхи, об'єктивно визначає

найкоротший шлях (мінімальну вартість) між двома вузлами. З огляду на

зміст в таблицях маршрутизації різної інформації, алгоритми знаходження

найкоротших шляхів більш гнучкі, вони не вимагають апріорних знань про

моделі трафіку і, на даний момент, найбільш поширені серед алгоритмів

маршрутизації. Ці алгоритми можуть бути поділені на два класи:

дистанційно-векторні і алгоритми стану зв'язку.

Алгоритми стану каналу (відомі також як алгоритми "першочерговості

найкоротшого маршруту") направляють потоки маршрутної інформації в усі

вузли мережі. Проте кожен маршрутизатор посилає тільки ту частину

маршрутної таблиці, яка описує стан його власних каналів.

Алгоритми вектора відстані (відомі також як алгоритми Белмана-

Форда) вимагають від кожного маршрутизатора посилки всієї або частини

своєї маршрутної таблиці, але лише своїм сусідам. Отже, алгоритми стану

Page 16: Dis karapetyan

16

каналів фактично направляють невеликі коректування в усіх напрямках, в

той час як алгоритми вектора відстаней відсилають більш великі коригування

тільки в сусідні маршрутизатори.

Відрізняючись більш швидкою збіжністю, алгоритми стану каналів

трохи менше схильні до утворення петель маршрутизації, ніж алгоритми

вектора відстані. З іншого боку, реалізація та підтримка алгоритмів стану

каналу може бути більш дорогою.

Алгоритми маршрутизації можуть бути також класифіковані за типами:

одношляхові або багатошляхові; однорівневі або ієрархічні; із штучним

інтелектом у сервері або в маршрутизаторі; внутрішньодоменні або зовнішні.

Складні протоколи маршрутизації забезпечують безліч маршрутів до

одного і того ж пункту призначення. На відміну від одношляхових

алгоритмів, багатошляхові дозволяють мультиплексацію трафіку через кілька

ліній зв’язку, тобто, розділяють навантаження (load sharing). Переваги таких

алгоритмів очевидні: значно краща пропускна здатність та надійність.

Деякі алгоритми маршрутизації оперують у плоскому просторі, в той

час як інші використовують ієрархію маршрутизації. В однорівневій системи

маршрутизації всі маршрутизатори рівні по відношенню один до одного. В

ієрархічній системі маршрутизації деякі маршрутизатори формують те, що

становить основу (backbone – базу) маршрутизації.

Основною перевагою ієрархічної маршрутизації є те, що вона імітує

організацію більшості компаній і підтримує їх схеми трафіку. Велика частина

мережевого зв'язку має місце в межах груп невеликих компаній (доменів).

Внутрішньодоменним маршрутизаторам необхідно знати тільки про інший

маршрутизатор в межах свого домену, тому їх алгоритми маршрутизації

можуть бути спрощеними. Втім оптимальний алгоритм внутрішньодоменної

маршрутизації не обов'язково буде оптимальним алгоритмом міждоменної

маршрутизації, тому що природа внутрішних і зовнішних алгоритмів різна.

Компроміс між маршрутизацією з інтелектом у головній

обчислювальній машині і маршрутизацією з інтелектом в маршрутизаторі

Page 17: Dis karapetyan

17

досягається шляхом зіставлення оптимальності маршруту з непродуктивними

витратами трафіку. Системи з інтелектом у головній обчислювальній машині

частіше вибирають найкращі маршрути, тому що вони, як правило, знаходять

всі можливі маршрути до пункту призначення, перш ніж пакет буде

відісланий. Потім вони вибирають найкращий маршрут, ґрунтуючись на

визначенні оптимальності даної системи.

1.2.2 Протоколи адаптивної маршрутизації

Більшість протоколів маршрутизації, які застосовуються у сучасних

мережах з комутацією пакетів, ведуть своє походження від мережі Internet.

Для використання відомостей про призначення й особливості протоколів

маршрутизації, спочатку проаналізуємо структуру мережі Internet, її

термінологію й типи протоколів.

Internet поєднує велику кількість існуючих систем. Із самого початку в

її структурі виділяли магістральну мережу (core backbone network), а мережі,

приєднані до магістралі, розглядалися як автономні системи (autonomous

systems, AS). Магістральна мережа й кожна з AS мали своє власне

адміністративне управління й власні протоколи маршрутизації. AS поєднує

мережі, у яких під загальним адміністративним керівництвом однієї

організації здійснюється маршрутизація, а домен об'єднує комп'ютери (які,

можливо, належать різним мережам), у яких під загальним адміністративним

керівництвом однієї організації здійснюється призначення унікальних

символьних імен. Природно, області дії AS й домена імен можуть в окремому

випадку збігатися, якщо одна організація виконує обидві вказані функції.

Загальна схема архітектури мережі Internet показана на рисунку 1.3.

Шлюзи (маршрутизатори за традиційною термінологією Internet), які

використовуються для утворення мереж і підмереж усередині AS,

називаються внутрішніми шлюзами (interior gateways), а шлюзи, за

допомогою яких AS приєднуються до магістралі мережі, називаються

зовнішніми шлюзами (exteriorgateways). Магістраль мережі також є

Page 18: Dis karapetyan

18

автономною системою. Всі AS мають унікальний 16-розрядний номер, що

виділяється організацією InterNIC. Відповідно протоколи маршрутизації

усередині AS називаються протоколами внутрішніх шлюзів (interior gateway

protocol, IGP), а протоколи, що визначають обмін маршрутною інформацією

між зовнішніми шлюзами й шлюзами магістральної мережі — протоколами

зовнішніх шлюзів (exterior gateway protocol, EGP). Усередині магістральної

мережі також допустимо будь-який власний внутрішній протокол IGP.

Рисунок 1.3- Магістраль і автономні системи Internet

Сенс розподілу всієї мережі Internet на AS - у її багаторівневому

ієрархичному представленні, що необхідно для будь-якої великої системи,

здатної до розширення в великих масштабах. Зміна протоколів

маршрутизації усередині якої-небудь AS ніяк не повинна впливати на роботу

інших автономних систем. Крім того, розподіл Internet на AS повинен

сприяти агрегуванню інформації в магістральних і зовнішніх шлюзах.

Page 19: Dis karapetyan

19

Внутрішні шлюзи можуть використовувати для внутрішньої маршрутизації

досить складні графи зв'язків між собою, щоб вибрати найбільш

раціональний маршрут. Однак якщо інформація такого ступеня деталізації

буде зберігатися у всіх маршрутизаторах мережі, то топологічні бази даних

так розростуться, що будуть вимагати наявності пам'яті гігантських розмірів,

а час прийняття рішень маршрутизації стане неприйнятно великим.

Тому, детальна топологічна інформація залишається всередині

автономної системи, а AS як єдине ціле для іншої частини Internet

представляють зовнішні шлюзи, які повідомляють про внутрішній склад

автономної системи мінімально необхідні відомості - кількість IP-мереж, їхні

адреси й внутрішню відстань до цих мереж від даного зовнішнього шлюзу.

Наведена на рисунку 1.3 структура Internet з єдиною магістраллю

відповідала протоколу обміну маршрутної інформації між автономними

системами EGP, нині застарілому. Отже, коли структура Internet стала

набагато більш складною, з довільним характером зв'язків між AS, виникла

необхідність розпізнавати наявність петель між AS й виключити їх з

міжсистемних маршрутів. Тому нині протокол BGP використовується тільки

в зовнішніх шлюзах AS, які організуються постачальниками послуг Internet.

У своїх повідомленнях він дозволяє вказати різні ваги для маршрутів та

таким чином сприяти вибору найкращого маршруту. Однак призначення цих

ваг не визначається незалежними факторами, наприклад, часом доступу до

ресурсу або числом шлюзів на шляху до ресурсу. Побажання щодо вибору

критеріїв встановлюються адміністратором, що відбиває технічну політику

адміністрації даної AS при доступі з інших автономних систем до її

інформаційних ресурсів.

До внутрішніх протоколів відносяться протоколи OSPF, IGRP (Internet

Gateway Protocol), EIGRP (Enhanced Interior Gateway Protocol), SPF (Shortest

Path First), RIP, IS- IS (Intermediate System to Intermediate System).

а) RIP - протокол маршрутизації в невеликих КМ, який дозволяє

маршрутизаторам динамічно оновлювати маршрутну інформацію

Page 20: Dis karapetyan

20

(напрямок і дальність в хопах), отримуючи її від сусідніх маршрутизаторів,

[29]. Це так званий дистанційно-векторний (DVA) протокол, який оперує

хопами як метрикою маршрутизації. Кожен RIP-маршрутизатор за

замовчуванням сповіщає в мережу свою повну таблицю маршрутизації раз

на 30 секунд, генеруючи досить багато трафіку на низькошвидкісних лініях

зв'язку. У сучасних мережах використання RIP — не найкраще рішення для

вибору в якості протоколу маршрутизації, тому що він поступаються

сучаснішим протоколам, таким як EIGRP, OSPF. RIP не працює з адресами

субмереж. RIP потребує багато часу для відновлення звязку після збою в

маршрутизаторі (хвилини). У процесі встановлення режиму можливі

цикли.Число кроків важливий, але не єдиний параметр маршрута, та й 15

кроків не границя для сучасних мереж. Але внаслідок простоти протоколу

його підтримують практично всі маршрутизатори початкового рівня.

б) OSPF - протокол динамічної маршрутизації, заснований на

технології відстеження стану каналу (link-state technology), що використовує

для знаходження найкоротшого шляху алгоритм Дейкстри (Dijkstra's

algorithm). Остання версія протоколу представлена в RFC 2328, [32]. OSPF

являє собою протокол внутрішнього шлюзу і поширює інформацію про

доступні маршрути між маршрутизаторами однієї AS. Є незапатентованим,

тобто відкритим для громадськості протоколом, таким же, як є протокол RIP.

OSPF має такі характеристики: високу швидкість збіжності

(рекалькуляцію таблиці маршрутизації); підтримує мережні маски змінної

довжини VLSM; не має обмежень досяжності; враховує пропускну здатність

мережі при виборі маршруту. Все це робить OSPF потужним,

масштабованим протоколом маршрутизації. Переваги OSPF: для кожної

адреси може бути кілька маршрутних таблиць, по одній на кожен вид IP-

операції (TOS); кожному інтерфейсу привласнюється безрозмірна ціна, що

враховує пропускну здатність, час транспортування повідомлення; для

кожної IP-операції може бути присвоєна своя ціна (коефіцієнт якості); при

існуванні еквівалентних маршрутів OSFP розподіляє потік рівномірно по

Page 21: Dis karapetyan

21

цих маршрутах; підтримується адресація субмереж (різні маски для різних

маршрутів); при зв'язку точка-точка не потрібно IP-адреси для кожного з

кінців. Недоліки: важко отримати інформацію про переваги каналів для

вузлів, що підтримують інші протоколи, або зі статичної маршрутизацією;

OSPF є лише внутрішнім протоколом.

в) IGRP — це протокол, який використовується в маршрутизаторах

фірми Cisco System [7, 28]. У його основу покладений алгоритм довжини

вектора. Поточна реалізація протоколу призначена для мереж TCP/IP. Для

вибору маршруту використовується комбінація показників, таких як

затримка мережі, смуга пропускання, надійність і завантаженість мережі.

Ваговий коефіцієнт цих показників може вибиратися автоматично або

задаватися адміністратором мережі. Для надійності і завантаженості мережі

це значення від 1 до 255, смуга пропускання — від 1200 біт/сек до

10 Гбіт/сек, затримка може приймати значення до 24-го порядку. Для

підвищення стабільності роботи передбачені механізми утримання змін;

розщеплення горизонта (split-horizon) і коректування скасування.

EIGRP — розвиток протоколу IGRP фірмою Cisco [7, 33]. Він поєднує

в собі переваги алгоритмів вектору відстані та стану каналу, включаючи

низьке завантаження службовим трафіком, швидке відновлення після зміни в

топології мережі та можливість використання маски підмережі в ІР-

адресації. Протокол EIGRP має компонент «виявлення сусіда» — процес,

який маршрутизатори використовують для динамічного отримання

інформації про сусідні маршрутизатори, що перебувають у прямому

з’єднанні. Алгоритм визначення маршруту базується на алгоритмі Дейкстри

пошуку в глибину на графі. EIGRP обчислює і враховує 5 параметрів для

кожної ділянки маршруту між вузлами мережі: Total Delay — затримка

передачі (з точністю до мкс); Minimum Bandwidth — мінімальна пропускна

спроможність (в Кб/с); Reliability — надійність (оцінка від 1 до 255; 255

найбільш надійно); Load — завантаження (оцінка від 1 до 255; 255 найбільш

завантажено); Maximum Transmission Unit (MTU) (не враховується при

Page 22: Dis karapetyan

22

обчисленні оптимального маршруту, береться до уваги окремо) —

максимальний розмір блоку, що можливо передати по ділянці маршруту.

Маршрутні таблиці містять інформацію, яку використовують програми

комутації, для вибору найкращого маршруту. В методах маршрутизації

використовується багато різних показників. Складні методи маршрутизації

можуть базуватися на багатьох показниках, комбінації яких утворюють

єдиний (гібридний) показник.

У наш час в протоколах маршрутизації використовуються такі основні

параметри: довжина маршруту, надійність, затримка. пропускна здатність,

навантаження.

Довжина маршруту є загальним показником маршрутизації. Деякі

протоколи маршрутизації дозволяють адміністраторам мережі призначати

довільні «ціни» на окремий канал мережі. У цьому випадку довжиною

тракту є сума витрат, пов'язаних з кожним каналом. Інші протоколи

маршрутизації визначають «кількість пересилань (хопів)».

Надійність відноситься до надійності кожного каналу мережі, які

зазвичай описуються в термінах співвідношення біт/помилка. При визначені

оцінок надійності через адміністратора мережі можуть бути прийняті до

розрахунку будь-які фактори надійності. Як правило, це довільні цифрові

величини.

Під затримкою маршрутизації розуміють відрізок часу, необхідний

для пересування пакету від джерела до пункту призначення через мережу.

Час затримки залежить від багатьох факторів, які включають в себе

пропускну здатність каналів мережі, черги на порту кожного

маршрутизатора на шляху пересування пакета, перевантаженість мережі на

всіх проміжних каналу мережі та фізичну відстань, на яку необхідно

перемістити пакет. Затримка є найбільш загальним і корисним показником.

Пропускна здатність належить до наявної потужності трафіку будь-

якого каналу і є оцінкою максимально досяжної пропускної здатності

каналу.

Page 23: Dis karapetyan

23

1.2.3 Методи адаптивної маршрутизації

Задачам пошуку найкоротших шляхів передачі інформації притаманні

три основні властивості динамічного програмування: багатоходовий вибір,

адитивність і незалежність оптимального шляху від передісторії.

Дослідження процесу передачі повідомлень від вузла до вузла в мережі

розпадається на окремі етапи (багатоходовий вибір); довжина шляху, що

складається з кількох гілок, дорівнює сумі довжин цих гілок (властивість

адитивності), і, нарешті, найкоротший шлях передачі повідомлень із будь-

якого вузла не залежить від того, як повідомлення потрапило в цей вузол, а

тільки від розташування цього вузла в мережі (властивість незалежності від

передісторії).

При організації мереж одним з основних завдань є розподіл потоків

інформації по найкоротших шляхах (шлях найкоротші за часом передачі або

протяжності, або шлях з мінімальними перешкодами, числом задіяних вузлів,

вартістю і т.п.). У зв'язку з цим маємо сенс проведення порівняльного аналізу

існуючих на сьогодні методів маршрутизації з метою напрацювання

закономірностей еволюції розвитку топології і методики управління

інформаційними потоками.

Було виявлено, що використання адаптивної маршрутизації може

зменшити середній час знаходження пакета в мережі, дозволяє мінімізувати

витрати на його доставку одержувачеві в мережах з різнорідним трафіком і

збільшити загальну надійність мережі за рахунок можливості автоматичного

вибору альтернативного маршруту на підставі даних про топологію мережі.

Однак, дані переваги досягаються збільшенням навантаження на

обчислювальні центри вузлів комутації, тому використання адаптивної

маршрутизації обмежено розмірами AS.

На етапі вибору оптимального маршруту для відправки пакетів до

наступного вузла мережу будемо розглядати як зважений орієнтований граф.

Вершину графа представляють маршрутизатори, а дуги, що з'єднують ці

Page 24: Dis karapetyan

24

вершини, – фізичні лінії між вершинами. Кожній лінії зв'язку відповідає

деяке інтегральне значення, представлене за допомогою «вартості»

пересилки пакету по ній, яке може залежати як від фізичної довжини лінії,

тимчасових витрат при передачі даних, так і від фінансових витрат

транспортування пакета. В даний час відомий ряд математичних методів, що

дозволяють певною мірою описати цей процес з тим, щоб отримувати

результати у формі, зручній для подальших досліджень. Отже необхідно

зробити зусилля по класифікаційному моніторингу відомих методів з метою

оцінки їх прикладної значущості і обмежень їх використання.

На практиці знайшли застосування: метод Флойда-Уоршела, метод

Белмана-Форда, метод Дейкстри, а також менш відомий матричний метод.

Метод Флойда-Уоршела [110], заснований на поняттях про базисну

лінію зв'язку і тернарной операції, застосовується для знаходження

найкоротших відстаней між усіма вершинами зваженого орієнтованого

графа. Переваги даного методу – простота алгоритму, що реалізується і

можливість отримання маршрутної інформації відразу для всіх вузлів мережі,

що робить його застосування доцільним при централізованих структурах

управління інформаційними потоками.

Говорячи про складність даного методу при програмній реалізації,

варто відзначити, що три вкладених цикли містять операцію, виконувану за

константний час, тобто алгоритм має кубічну складність [14].

В даний час існують способи прискорення систем, які використовують

даний метод, що дозволяють знизити складність з )( 3nO до )log/( 3 nnO , де

n – кількість вузлів мережі.

Для більш детального опису алгоритму позначимо через )(n

ijD довжину

найкоротшого шляху від вузла i до вузла j при обмеженні, що тільки вузли

n,...,2,1 можуть використовуватися в якості проміжних вузлів на шляху.

Алгоритм при цьому працює таким чином.

Спочатку ijij dD для всіх .,, jiji (1.1)

Page 25: Dis karapetyan

25

Для ,1,...,1,0 Nn

],min[ )(

)1(

)(

)1(

)()1( n

jn

n

ni

n

ij

n

ij DDDD

для всіх ji . (1.2)

Доведення того, що цей алгоритм призводить до правильного

результату, будемо проводити по індукції. При 0n початковими умовами,

очевидно, є довжини найкоротших шляхів при обмеженні, що шляхи не

містять проміжних вузлів. Тепер припустимо, що для даного n величини

)(n

ijD в алгоритмі є довжинами найкоротших шляхів, для яких в якості

проміжних вузлів використовуються вузли n,...,1 . Тоді найкоротший шлях

від i до j , який має в якості проміжних вузли )1(,...,1 n , або містить вузол

)1( n , або ні. У першому випадку найкоротший шлях від i до j при

зазначеному обмеженні йде спочатку від i до )1( n , а потім від )1( n до j

і має довжину, представлену останнім членом в (1.2). У другому випадку

найкоротший шлях при зазначеному обмеженні буде таким же, як шлях, що

використовує вузли від 1 до n як проміжні, і тому його довжина представлена

першим членом під знаком мінімуму в (1.2) [47].

Метод Белмана-Форда. Метод Белмана-Форда застосовується для

пошуку найкоротшого шляху в зваженому графі. Основною перевагою є

можливість розрахунку шляху в графі, в якому є ребра з від’ємною вагою.

Для підрахунку найкоротшого шляху цим методом потрібно провести всього

)1( n циклів, але на практиці цей алгоритм можна використовувати і для

відстеження від’ємних циклів, провівши рівно n циклів. Якщо при

виконанні останньої ітерації довжина найкоротшого шляху до якої-небудь

вершини строго зменшилася, то в графі є від’ємний цикл. Можна

відстежувати зміни в графі і, як тільки вони закінчаться, подальші ітерації

будуть безглузді. Даний метод використовується в протоколі маршрутизації

RIP (Routing Information Protocol) і його модифікаціях, причому деякі його

модифіковані версії задіяні в невеликих мережах (не більше 15 робочих

Page 26: Dis karapetyan

26

станцій), в яких не потрібно великих обчислювальних потужностей для

розрахунку шляхів, а також – для мереж з майже незмінною структурою [96].

Припустимо, що вузол 1 є вузлом-джерелом і потрібно знайти довжини

найкоротших шляхів від вузла 1 до кожного іншого вузла графа. Для цього

алгоритму дугові відстані можуть бути як додатними, так і від’ємними, але

ми припустимо, що немає циклів від’ємної довжини (це припущення буде

обговорюватися пізніше більш детально). Для спрощення позначень

покладемо ij , якщо в графі відсутня дуга ),( ji . Основна ідея методу

Белмана-Форда полягає в тому, щоб спочатку знайти довжини найкоротших

шляхів, за умови, що шляхи містять не більше однієї дуги, потім довжини

найкоротших шляхів за умови, що шляхи містять не більше двох дуг і т. д.

Найкоротший шлях при умови, що шлях містить не більше h дуг, надалі

називатиметься найкоротшим )( h шляхом.

Нехай )(h

iD – довжина найкоротшого )( h шляху від вузла 1 до вузла i.

Будемо вважати, що 0)( h

iD для всіх h .

Алгоритм Белмана-Форда полягає в наступному.

Спочатку

)0(

iD для всіх 1i . (1.3)

При кожному наступному 0h

i

ji

h

i

h

i dDD ]min[ )()1(

для всіх .1i (1.4)

Для доказу того, що цей алгоритм призводить до правильного рішення,

зауважимо спочатку, що (1.3) і (1.4) дають ii dD 1

)1( для всіх 1i і вони

дійсно є довжинами найкоротших )( h шляхів. Далі проведемо доказ

індукцією по h , припускаючи для даного h , що )(h

iD є довжинами

найкоротших )( h шляхів для всіх 1i , і доводячи, що рівність (1.4) дає

довжину найкоротшого )1( h шляху від вузла 1 до кожного вузла 1i .

Спочатку покажемо, що ліва частина (1.4) більше або дорівнює правій

Page 27: Dis karapetyan

27

частині, а потім доведемо протилежну нерівність. Припустимо, що

),,,...,1( ikm - найкоротший )1( h шлях від 1 до i . Тоді його довжина

дорівнює довжині шляху ),,...,1( km плюс kid . Так як ),,...,1( km містить не

більше h дуг, то

.]min[ )()()1(

i

ji

h

iki

h

k

h

i dDdDD (1.5)

Для доведення зворотної нерівності припустимо, що мінімум в правій

частині (1.4) досягається при kj і що ),,...,1( km є найкоротшим )( h

шляхом, довжина якого за припущенням дорівнює )(h

kD . Тоді довжина шляху

),,,...,1( ikm дорівнює правій частині (1.4). Тому якщо ),,,...,1( ikm –

деякий, шлях, то

.]min[ )()()1(

i

ji

h

iki

h

k

h

i dDdDD

(1.6)

І нарешті, якщо ),,,...,1( ikm не є шляхом (тобто якщо він містить

цикл), то i повинен лежати на шляху ),,...,1( km , а так як всі цикли мають

невід’ємну довжину за припущенням, то, отже, попередня нерівність

зберігається, що й доводить остаточно рівняння (1.4).

Шлях може містити не більше 1N дуг (де N – число вузлів) і тому,

якщо немає циклів від’ємної довжини, то )1( N

iD буде довжиною

найкоротшого шляху від 1 до i . Також легко помітити, що якщо h

i

h

i DD )1(

для всіх i і певного h , то наступні ітерації з великими h не змінять довжин

найкоротших шляхів і )(h

iD буде довжиною найкоротшого шляху для

кожного i . Число ітерацій алгоритму в гіршому випадку дорівнює 1N ,

кожна ітерація має бути проведена для 1N вузла, а для кожного вузла

мінімізації здійснюється щонайбільше по 1N змінної. Таким чином, в

гіршому випадку обсяг обчислень росте як 3N , що записується у вигляді

)( 3NO .

Page 28: Dis karapetyan

28

Позначення ))(( NpO , де )(Np – багаточлен від N , використовується

для залежного від N числа, яке менше )(Ncp для всіх N , де c – деяка

константа, яка не залежить від N .

Дійсно, більш ретельний підрахунок показує, що обсяг обчислень

дорівнює )(mAO , де A – число дуг, a m – число ітерацій

( m також дорівнює максимальному числу дуг, що містяться в

найкоротшому шляху).

Тепер більш уважно досліджуємо вплив циклів від’ємної довжини.

Розглянемо граф, зображений на рис. 1.4.

Довжина найкоротшого переходу від вузла 1 до вузла 2 серед усіх

переходів, що містять не більше трьох дуг, дорівнює і відповідає переходу (1,

2, 3, 2); довжина найкоротшого шляху, однак, дорівнює для шляху (1, 2).

Насправді алгоритм Белмана-Форда відшукує довжину найкоротшого

переходу від 1 до i за умови, що вузол 1 не повторюється в переході. Якщо

існують цикли від’ємної довжини, що не містять вузла 1, то довжини більш

довгих переходів стають все меншими і меншими і алгоритм Белмана-Форда

ніколи не зупиниться. Чи існують від’ємні цикли (що не містять вузла 1),

можна визначити, порівнюючи і для кожного з вузлів.

Якщо для всіх i має місце рівність, то звідси випливає, що 1)( N

i

h

i DD

для всіх i і Nh , і, отже, довжини найкоротших шляхів знайдені і

від’ємних циклів немає (крім, може бути, циклів, що містять вузол 1).

Якщо для якогось i має місце нерівність, то це означає, що існує

перехід від 1 до i з N дугами, що проходить лише одного разу через вузол 1

і має довжину, меншу ніж будь-який перехід від 1 до i з числом дуг, меншим

або рівним 1N . Тому цей перехід повинен містити цикл від’ємної

довжини.

Page 29: Dis karapetyan

29

Рисунок 1.4 – Послідовні ітерації в методі Белмана-Форда

У прикладі на рис. 1.5 можна перевірити, що 1)2(

2 D , а 1)3(

2 D , і це

вказує на існування циклу від’ємної довжини.

Задача знаходження найкоротшого

шляху; довжини дуг вказані

Найкоротші шляхи; що

використовують не більше

однієї дуги

Вузол-джерело

Найкоротші шляхи; що

використовують не більше

двох дуг

Найкоротші шляхи; що

використовують не більше

трьох дуг

Кінцеве дерево найкоротших

шляхів

Page 30: Dis karapetyan

30

Рисунок 1.5 – Граф з від’ємним циклом.

Довжина найкоротшого шляху від 1 до 2 дорівнює 1

Нехай iD – довжина найкоротшого шляху від вузла 1 до вузла i та

01 D . Якщо немає циклів від’ємної довжини, то (1.4) зійдеться до

істинного значення на кроці 1 Nh і тоді його можна буде записати у

вигляді

i

jiji dDD ]min[ для всіх ,1i (1.7а)

01 D (1.7б)

Це рівняння Белмана; воно означає, що довжина найкоротшого шляху

від вузла 1 до i дорівнює сумі довжини шляху до вузла, попередньому вузлу

i (на найкоротшому шляху) і відстані на останній дузі шляху. З рішення

цього рівняння (яке можна отримати, використовуючи алгоритм Белмана -

Форда) легко знайти найкоротші шляхи (а не довжини найкоротших шляхів),

враховуючи, що всі цикли, що не містять вузол 1, мають додатню довжину.

Щоб це зробити, потрібно відібрати для кожного 1i по одній дузі ),( ji , на

якій досягається мінімум в (1.7а), і розглянути підграф, що складається з

відібраних 1N дуг. Щоб знайти найкоротший шлях до довільного вузла i ,

слід почати з вузла i і йти у зворотному напрямку по відповідних дугах

отриманого підграфа до тих пір, поки не прийдемо у вузол 1. Зауважимо, що

при цьому жоден вузол не буде відвіданий двічі до приходу у вузол 1, так як

отриманий в іншому випадку цикл мав би (на підставі рівняння (1.7))

нульову довжину. Оскільки розглянутий підграф з'єднує кожен вузол з

вузлом 1 і має 1N дугу, то він повинен бути остовним деревом. Назвемо

цей підграф остовним деревом найкоротших шляхів і зауважимо, що воно

має особливу структуру; у нього є корінь (вузол 1) і кожна дуга дерева

орієнтована в зворотному від кореня напрямку.

Довжина 1 Довжина 3

1 2 3

Довжина 1

Page 31: Dis karapetyan

31

Частково популярність алгоритму Белмана-Форда пояснюється тим, що

у разі, коли довжини всіх дуг додатні, початкові умови )0(

iD для 1i можуть

бути будь-якими невід'ємними числами і ітерації (1.4) можуть виконуватися

паралельно для різних вузлів, по суті, в довільному порядку, що має велике

значення для додатків з розподіленими алгоритмами [88].

Матричний метод. Матричний метод визначення найкоротших

шляхів між усіма вузлами мережі був запропонований Шімбелом [36].

Можливість повного топологічного аналізу мережі забезпечила широке

застосування цього методу при організації трафіку даних.

При визначенні найкоротших шляхів матричним методом виконуються

наступні операції:

а). За графом телекомунікаційної мережі (Т-мережа) складається матриця ваг

гілок jisS , .

б). Матриця ваг jisS , перетвориться за правилами множення матриць,

але з використанням спеціальних операцій Шімбела, в дисперсійну матрицю

найкоротших шляхів між вузлами мережі, тобто

ji

X

ji

Z DsS ,, )( . (1.8)

в). Дисперсійна матриця ji, потім перетвориться в допоміжну

матрицю MDd ji , , де D- видозмінена матриця ваг S .

г). Значення та індекси матриці jid , послідовно розподіляються по

дистанційним матрицям, що визначають довжину го,...,2,1 k шляхів, і

маршрутним матрицям, що визначають проміжні вузли цих шляхів.

д). Виключаються петлі в найкоротших шляхах таким чином, щоб вага

подальшої гілки на даному шляху топографій не повинна перевищувати ваги

попередньої. Очевидно, що цей крок алгоритму обмежує застосування цього

методу, оскільки перевірити поставлену умову можливо шляхом аналізу всіх

шляхів прямування інформаційних потоків в мережі.

Page 32: Dis karapetyan

32

Однак, матричний метод дозволяє не тільки визначити величини

найкоротших шляхів між усіма вузлами мережі, але також одночасно

отримати довжини всіх можливих шляхів між кожною парою вузлів мережі.

Це дає можливість використовувати матричний метод для відшукування в

мережі обхідних шляхів. Обсяг обчислень при використанні матричного

методу незначно залежить від структури мережі. Метод зручний для

програмної реалізації.

Метод Дейкстри. Метод Дейкстри дозволяє знаходити найкоротші

шляхи від однієї з вершин графа до всіх інших. Метод працює тільки для

графів без ребер від’ємної ваги, хоча в даний час існують узагальнені методи

для усунення даного недоліку (метод Дейкстри з потенціалами). Суть методу

Дейкстри полягає у поетапному нарощуванні дерева найкоротших маршрутів

від вихідного вузла. При цьому необхідно, щоб після додавання на кожному

етапі лінії зв'язку і вузла знову утворений найкоротший маршрут був

мінімально можливим за всіма крайовим вузлам, що ще не ввійшли в дерево.

У процесі побудови дерева найкоротших маршрутів обчислюються вектори

ваг маршрутів і коригуються вектори початкових компонент найкоротших

маршрутів. Складність методу Дейкстри залежить від способу знаходження

вершини V , а також від способу зберігання безлічі невідвіданих вершин і

способи оновлення міток. У графі G , n і m відповідно кількість вершин і

ребер для пошуку вершини з мінімальною довжиною шляху до вершини V ,

розглядається все множиною n . Час роботи алгоритму мінімізації є O(n3+m).

Для розряджених графів (для таких, для яких nm ) при використанні

спеціальних алгоритмів оптимізації швидкість роботи може скласти

)loglog( nmnnO або навіть )log( mnnO .

Метод Дейкстри широко застосовується в мережевому програмуванні і

технологіях, наприклад, його використовують в протоколі OSPF (Open

Shortest Path First) для усунення кільцевих маршрутів. Використання

модифікованого алгоритму Дейкстри як ефективного інструменту для

розподілу вхідних інформаційних потоків в магістральних IP-мережах з

Page 33: Dis karapetyan

33

протоколом OSFP, дозволяє поліпшити працездатність мережі до

інформаційних перевантажень [91]. При цьому можливе в якості критерія

розподілу інформаційних потоків використовувати залишкову пропускну

здатність каналу. Необхідно віднести до позитивних якостей протоколу

відносну простоту практичної реалізації методу.

Цей алгоритм вимагає, щоб довжини всіх дуг були додатні (це

виконується в мережах передачі даних). Обсяг обчислень в гіршому випадку

для цього алгоритму значно менший, ніж у алгоритму Белмана-Форда.

Основна ідея алгоритму полягає в тому, щоб відшукувати найкоротші шляхи

в порядку зростання довжини шляху. Найкоротшим серед усіх найкоротших

шляхів від вузла 1 є шлях, що складається з однієї дуги, що з'єднує вузол 1 з

найближчим сусіднім вузлом, так як будь-який шлях, що складається з

декількох дуг, буде завжди довше за довжину першої дуги внаслідок

припущення про додатність всіх дугових довжин. Наступним найкоротшим

серед найкоротших шляхів повинен бути або шлях з однієї дуги до

наступного найближчого сусіда вузла 1, або найкоротший шлях з двох дуг,

що проходить через вузол, вибраний на першому кроці, і т. д.

Щоб формально описати цю процедуру у вигляді алгоритму, будемо

вважати, що кожен вузол i має позначку iD , що означає оцінку довжини

найкоротшого шляху від вузла 1. Коли оцінка стає незмінною, будемо

вважати, що вузол остаточно позначений, і безліч остаточно помічених

вузлів позначимо через P . Вузол, який буде додано на черговому кроці до P,

є найближчим до вузла 1 серед всіх вузлів, що ще не увійшли до P .

Рисунок 1.6 ілюструє головну ідею. На муk кроці є безліч P з k

найближчих вузлів до вузла 1, iD – найкоротша відстань від вузла 1 до

кожного вузла i з P . Серед усіх шляхів, що з'єднують вузол 1 з яким-небудь

вузлом не з P , найкоротший шлях повинен пройти по вузлах з P (так як

0ijd ). Тому й)1( k найближчий вузол і відповідна найкоротша відстань

виходять мінімізацією по Ро величини }{min ijiPi dD . Ці обчислення

Page 34: Dis karapetyan

34

можна провести ефективно, як обговорюється в тексті, в результаті чого

обчислювальна складність буде порядку )( 2NO .

Рисунок 1.6 – Основна ідея алгоритму Дейкстри

Формально алгоритм працює таким чином. Спочатку }1{P , 01 D і

jj dD 1 для 1j .

Крок 1 (пошук наступного найближчого вузла). Знайти Рi такий, що

jPi

DD

min1 .

Покласти }{: iPP . Якщо P містить всі вузли, то на цьому робота

алгоритму закінчується.

Крок 2 (оновлення міток). Для всіх Рj покласти

],min[: ijijj dDDD .

Перейти до кроку 1.

Робота цього алгоритму показана на рис. 1.7. Для доказу того, що цей

алгоритм призводить до правильного результату, дамо інтерпретацію

оцінками довжини шляху iD для t , що не входять в P . Можна

стверджувати, що iD (на початку кожної ітерації кроку 1) – найкоротша

відстань від вузла 1 до i серед шляхів, для яких всі вузли, крім i , містяться в

безлічі P . Спочатку це має місце і, як легко помітити, на кроці 2 алгоритму

1

Джерело

j

j- це (k+1) і найближчий вузол

Найкоротший шлях до (k+1)-му

найближчий вузлу має пройти

виключно по вузлам із Р

Множина Р із k найближчих Додаток до Р

вузлів до вузла 1

i

Page 35: Dis karapetyan

35

зберігається ця властивість для кожного нового вузла, який додається до P .

Можна помітити, що якщо кожен вузол з P принаймні також близький до

вузла 1, як кожен вузол не з P , то наступний найближчий вузол не з P

повинен мати найкоротший шлях, для якого всі вузли, крім останнього,

лежать в P ; саме цей вузол буде обраний на кроці 1.

Рисунок 1.7 – Приклад використання алгоритму Дейкстри

Тому що число операцій, виконуваних алгоритмом Дейкстри на

кожному кроці, пропорційно N , а кроки ітеруются 1N раз, то обсяг

обчислень в гіршому випадку дорівнює )( 2NO , а не )( 3NO , як у алгоритмі

Белмана-Форда. Однак існує багато задач, в яких 2NA і алгоритм

Белмана-Форда закінчується після дуже малого числа ітерацій )( Nm ; в

цьому випадку обсяг обчислень )(mAO може бути менше ніж )( 2NO у

алгоритму Дейкстри. [48].

Метод Джонсона. Метод Джонсона дозволяє знайти найкоротші

шляхи між усіма парами вершин зваженого орієнтованого графа. Даний

метод працює, якщо в графі містяться ребра з додатньою або від’ємною

вагою, але відсутні цикли з від’ємною вагою. Цей алгоритм або повертає

матрицю, що містить ваги найкоротших шляхів для всіх пар вершин, або

Page 36: Dis karapetyan

36

виводить повідомлення про те, що вхідний граф містить цикл з від’ємною

вагою. У методі Джонсона використовується метод Белмана-Форда і метод

Дейкстри, реалізовані у вигляді підпрограм. Ребра зберігаються у вигляді

списків суміжних вершин.

В алгоритмі Джонсона використовується метод зміни ваги

(reweighting), який працює таким чином. Якщо ваги всіх ребер у графі

),( EVG невід'ємні, можна знайти найкоротші шляхи між усіма парами

вершин, по одному разу запустивши алгоритм Дейкстри для кожної вершини.

Якщо неспадна черга з пріоритетами реалізована у вигляді піраміди

Фібоначчі, то час роботи цього алгоритму дорівнюватиме )lg( 2 EVVVO .

Якщо в графі G містяться ребра з від’ємнивною вагою, але відсутні цикли з

від’ємною вагою, можна просто вирахувати нову множину ребер з

невід'ємними вагами, що дозволяє скористатися тим же методом. Нова

множина, що складається з ваг ребер , має задовольняти двом важливим

властивостям.

1). Для всіх пар вершин Vu , шлях p є найкоротшим шляхом з вершини

u у вершину з використанням вагової функції тоді і тільки тоді, коли

p − також найкоротший шлях з вершини u у вершину з ваговою

функцією .

2). Для всіх ребер ),( u нова вага ),( u

− від’ємна.

Попередню обробку графа G з метою визначити нову вагову функцію

можна виконати протягом часу )( EVO .

Збереження найкоротших шляхів. Як видно з наведеної нижче леми,

легко організувати зміну ваг, яка задовольняє першому з сформульованих

вище властивостей. Значення ваг найкоротших шляхів, отримані за

допомогою вагової функції позначені як , а ваги найкоротших шляхів,

отриманих за допомогою вагової функції − як

.

Page 37: Dis karapetyan

37

Лема 1.1 (Зміна ваг зберігає найкоротші шляхи). Нехай дано зважений

орієнтований граф ),( EVG з ваговою функцією RE : , і нехай

REh : − довільна функція, що відображає вершини на дійсні числа. Для

кожного ребра Eu ),( визначимо

)()(),(),( huhuu

(1.9)

Нехай kp ,...,, 10 − довільний шлях з вершини 0 в вершину

pk є найкоротшим шляхом з ваговою функцією тоді і тільки тоді, коли

він є найкоротшим шляхом з ваговою функцією , тобто рівність

),()( 0 kp рівносильно рівності ),()( 0 kp

. Крім того, граф

G містить цикл з від’ємною вагою з використанням вагової функції тоді і

тільки тоді, коли він містить цикл з від’ємною вагою з використанням вагової

функції

.

Доведення. Почнемо з того, що покажемо справедливість рівності

)()()()( 0 khhpp

. (1.10)

Запишемо ланцюжок співвідношень

)()()()()(),(

))()(),((),()(

01

01

111

11

k

k

ikii

k

iiiii

k

iii

hhphh

hhp

де передостання рівність легко виходить з "телескопічності" суми різниць.

Таким чином, вага будь-якого шляху p з вершини 0 в вершину k

дорівнює )()()()( 0 khhpp

. Якщо один шлях з вершини 0 в

вершину k коротше іншого з використанням вагової функції , то він буде

коротшим і з використанням вагової функції . Таким чином, рівність

),()( 0 kp виконується тоді і тільки тоді, коли ),()( 0 kp

.

Page 38: Dis karapetyan

38

Нарешті, покажемо, що граф G містить цикл з від’ємною вагою з

використанням вагової функції тоді і тільки тоді, коли він містить такий

цикл з використанням вагової функції . Розглянемо довільний цикл

kc ,...,, 10 , де k 0 . У відповідності з рівнянням (1.10),

виконується співвідношення )()()()()( 0 chhcc k

, а отже,

вага циклу c буде від’ємною з використанням вагової функції тоді і

тільки тоді, коли вона від’ємна з використанням вагової функції

.

Генерація невід'ємних ваг шляхом їх зміни. Наступна мета полягає в

тому, щоб забезпечити виконання другої властивості: потрібно, щоб

величина ),( u

була невід’ємною для всіх ребер Eu ),( . Для даного

зваженого орієнтованого графа ),( EVG з ваговою функцією RE :

створимо новий граф ),( EVG , де }{sVV для деякої нової вершини

Vs і }:),{( VusEE . Розширимо вагову функцію таким

чином, щоб для всіх вершин V виконувалося рівність 0),( s .

Зауважимо, що оскільки в вершину s не входить жодне ребро, цю вершину

не містить жоден найкоротший шлях графа G відмінний від того, який

виходить з s . Крім того, граф G не містить циклів з від’ємною вагою тоді і

тільки тоді, коли таких циклів не містить граф G . На рис. 1.8а показаний

граф G , відповідний графу G на рис. 1.8.

Тепер припустимо, що графи G і G не містять циклів з від’ємною

вагою. Визначимо для всіх вершин V величину ),()( sh . Згідно

нерівності трикутника, для всіх ребер Eu ),( виконується

співвідношення ),()()( uuhh . Таким чином, якщо визначити нові

ваги

у відповідності з рівнянням (1.10), то отримаємо

0)()(),(),( huhuu

, так що друга властивість

задовольняється. На рис. 1.8б показаний граф G , отриманий в результаті

перевизначення ваг графа, зображеного на рис. 1.8а.

Page 39: Dis karapetyan

39

в) г) д)

е) є)

Рисунок 1.8 – Робота алгоритму Джонсона, призначеного для пошуку

найкоротших шляхів між усіма парами вершин

Обчислення найкоротших шляхів між усіма парами вершин. В

алгоритмі Джонсона, призначеному для обчислення найкоротших шляхів між

усіма парами вершин, використовується алгоритм Беллмана-Форда і

алгоритм Дейкстри, реалізовані у вигляді підпрограм. Передбачається, що

ребра зберігаються у вигляді списків суміжних вершин. Цей алгоритм

повертає звичайну матрицю ijdD розміром VV , де ),( jidij , або

видає повідомлення про те, що вхідний граф містить цикл з від’ємною вагою.

Передбачається, що вершини пронумеровані від 1 до V , що типово для

-1

-5

-4

1

5

0

0

2

0

2 4

0

13

2

0 4

1 0

1

5

4

0

0

-4

-5

-1

7

3

5

0

-4 2

1

6 4

-5

8

2

4

3

1 0

0 0

0

0

0

0 0

а) б)

0/0

0/-4 2/2

2/1

2/-3

1 4

2

0 3

0

4 2 5

0 10

2 13

0

0/0

2/3

2/-1

0/-4

0/1

1 4

2

0 3

0

4 2 5

0 10

2 13

0

0/0 2/7

0/5

0/4

2/3

1 4

2

0 3

0

4 2 5

10

2 13

0

0/0 2/-2

0/-1

2/2 0/-5

1 4

2

0

3

0

4 2 5

0 10

2 13

0

0/0

4/8

2/5

2/6

2/1

1 4

2

0 3

0

4 2 5

0 10

2 13

0

Page 40: Dis karapetyan

40

алгоритмів, призначених для пошуку найкоротших шляхів між усіма парами

вершин. Якщо неспадна черга з пріоритетами реалізована в алгоритмі

Дейкстри у вигляді піраміди Фібоначчі, то час роботи алгоритму Джонсона

рівний )lg( 2 EVVVO . Більш проста реалізація неспадної черги з

пріоритетами призводить до того, що час роботи стає рівним )lg( VVEO [87].

Метод лінійного програмування. Визначення найкоротшого шляху

методом лінійного програмування − задача відшукання екстремуму деякої

адитивної функції, значення якої обмежені простором, описуваних системою

рівнянь і нерівностей. Цей метод дозволяє оптимізувати шляхи по якомусь

невідомому параметру гілок. В інших методах оптимізації параметри гілок Т-

мережі задаються.

Процес передачі інформації в мережі буде оптимальним, якщо

розподілити допустимі часи передачі інформації по окремих гілках Т-мережі

так, щоб середній час передачі інформації по шляху був мінімальним. Для

цього в якості вихідної умови покладемо загальний час, що витрачається на

передачу інформаційних потоків по кожній колії, не перевищить

встановленого для даного шляху допустимого часу t . Процес проходження

інформаційного потоку по i-му шляху мережі за умови, що трафіки окремих

гілок незалежні, може бути описаний такою лінійною алгебраїчною

нерівністю (1.11):

ttQtQtQtQ innijjiii ,,22,11, ...... , (1.11)

де jiQ , − число пакетів, переданих по i-му шляху в j-й гілці; ,...,2,1i ;

nj ,...,2,1 ; n − максимальне число гілок в мережі; − число можливих

шляхів в мережі; jt − час передачі одного пакета по j-й гілці; it −

допустимий час прямування інформаційного потоку по i-му шляху.

Якщо в мережі можливі шляхів, то, отже, може бути отримана

система лінійних алгебраїчних нерівностей:

Page 41: Dis karapetyan

41

ttQtQtQtQ

ttQtQtQtQ

ttQtQtQtQ

ttQtQtQtQ

nnjj

innijjiii

nnjj

nnjj

,,22,11,

,,22,11,

2,2,222,211,2

1,1,122,111,1

......

......

.....................................................................

......

......

Для вирішення системи лінійних нерівностей складається лінійна

форма (цільова функція):

n

i j

ji

i

ni

j

i j

ji

i

ji

i j

ji

i

i

i j

ji

i

i

tQ

Q

tQ

Q

tQ

Q

tQ

Q

F

,

,

,

,

2

,

2,

1

,

1,

л ......

невідомих jt ( nj ,...,2,1 ).

Серед всіх невід'ємних рішень ),...,,( **

2

*

1 nttt системи лінійних

нерівностей визначається таке рішення ),...,,( )0()0(

2

)0(

1 nttt , при якому лінійна

функція лF приймає найменше можливе значення. Лінійна функція лF

описує час слідування інформаційного потоку по вибраному шляху мережі.

Розв’язання задачі лінійного програмування дозволяє оптимальним чином

оцінити часовий ресурс трафіку передачі пакетів по гілках топології мережі

при мінімізації середнього часу передачі пакету [96].

1.3 Обгрунтування мети і постановка задачі дослідження

Підтримка необхідної якості обслуговування передачі трафіку даних та

забезпечення ефективної маршрутизації повідомлень в умовах відмов

окремих елементів мережі, сплесків трафіку і локальних перевантажень є

сьогодні актуальною проблемою. Завантаження і пропускна спроможність

ліній зв'язку розподіленої мережі динамічно змінюються, що, в свою чергу,

може призводити до відносно частого розсилання службової інформації про

зміну маршрутів. У сучасних мережах має місце пряма залежність

продуктивності мережі від продуктивності маршрутизаторів, які оброблюють

Page 42: Dis karapetyan

42

міжмережевий трафік. Через високу завантаженість маршрутизаторів

отримати дійсно оптимальний маршрут передачі даних досить важко.

За таких обставин, завдання маршрутизації не вирішується повною

мірою. У більшості випадків це пов'язано з маршрутизаторами, які через

девіації напруженого стану трафіку в мережі не виконують побудову таблиць

маршрутизації за визначени час. Тому виникає задача дослідження існуючих

алгоритмів маршрутизації з метою підвищення їх ефективності, або

створення нових алгоритмів маршрутизації.

Проте на даний час недостатню увагу приділено питанням розробки

нових, більш ефективних алгоритмів пошуку найкоротших шляхів для

підвищення ефективності комп’ютерних мереж. Під прискореної

маршрутизацією розуміють метод пошуку оптимальних маршрутів для

передачі пакетів даних від вузла-відправника до вузла-одержувача в умовах,

коли динамічно змінюється структура мережі і характеристики ліній зв'язку,

що дозволяє скоротити трудомісткість побудови таблиць маршрутизації

шляхом часткової зміни дерева найкоротших шляхів за рахунок

використання додаткової інформації про конфігурацію мережі. Виходячи з

цього, тема дисертаційного дослідження «Еволюційні моделі та методи

адаптивної маршрутизації пакетів даних в комп’ютерних мережах» є

актуальною.

Метою дисертаційного дослідження є підвищення ефективності

доставки пакетів даних шляхом розробки нових та вдосконалення існуючих

моделей та методів адаптивної маршрутизації.

Для досягнення поставленої мети необхідно розв’язати наступні задачі:

• на основі аналізу існуючих принципів, моделей, методів та алгоритмів

розв’язання завдань маршрутизації в комп’ютерних мережах з пакетною

обробкою інформації, виявити іх переваги, недоліки і сформулювати задачі

дослідження;

• на основі формалізації задачі наукового дослідження дослідити та

вдосконалити математичну та графоаналітичну моделі розподіленої

Page 43: Dis karapetyan

43

комп’ютерної мережі з урахуванням її частих змін, які виникають через

варіації навантаження і пропускної здатності каналів зв’язку та

комунікаційного обладнання;

• розробити еволюційний метод оптимізації цільової функції задачі

визначення маршрутів в комп’ютерних мережах з урахуванням інформації

про можливі зміни стану маршрутів, який дозволить зменшити

трудомісткість побудови таблиць маршрутизації.

На першому етапі виконано аналіз наукових літературних джерел,

моделей і методів, які застосовувались для розв’язання задачі оптимізації

адаптивної маршрутизації. Виходячи з результатів аналізу, формулюємо мету

та задачі дослідження. Визначаємо інформаційні джерела, виконуємо

попередній аналіз даних та здійснюємо формалізовані математичні

постановки вказаних задач.

На другому етапі на основі вдосконалених математичних та графо-

аналітичних моделей розробляємо еволюційний метод адаптивної

маршрутизації та алгоритм його застосування. Проводимо експериментальні

дослідження та верифікацію отриманих результатів.

Висновки до розділу 1

У першому розділі визначено різні аспекти класичних моделей та

алгоритмів маршрутизації за способом визначення найкоротших маршрутів.

Виконаний аналіз наукових джерел, відомих методів пошуку найкоротших

шляхів у графі, за допомогою яких працюють сучасні протоколи

маршрутизації, а також представлені основні парадигми методів динамічної

маршрутизації, кожна з яких має як сильні, так і слабкі сторони, тому вибір

підходу для розв’язку кожної конкретної задачі визначається її специфікою.

Виявлені переваги та недоліки кожного з методів адаптивної

маршрутизації, а саме: для адаптивного централізованого методу недоліком є

низька надійність та періодично необхідний повторний обрахунок таблиць

маршрутизації; для дистанційно-векторного – погана збіжність, складності

Page 44: Dis karapetyan

44

при розширенні мережі; при відключенні одного з вузлів від мережі виникає

проблема «Count to Infinity»; для методу маршрутизації за станом каналу -

зменшення пропускної здатності каналів передачі даних, складності при

розширенні мережі; методу широкомовної маршрутизації - проблеми при

зміні структури та навантаження мережі. Трудомісткість сучасних методів

визначення оптимальних маршрутів пропорційна квадрату кількості

маршрутизаторів у мережі, тобто не менше O(N2), де N - число

маршрутизаторів у мережі.

Переважна кількість методів маршрутизації оперують лише одним

параметром оптимізації – вагою (ціною) шляху, що виражає сукупність його

адитивних характеристик. Проте, зазвичай, існує декілька параметрів, які

характеризують кожну гілку мережі, наприклад, пропускна здатність,

затримка, швидкість передачі, навантаження, надійність, які можна поділити

на адитивні та неадитивні. Таким чином, у сучасних мережах з’явилась

необхідність розв’язання задачі про найкоротші шляхи з кількома критеріями

оптимізації.

Обчислювальні затрати на розв’язання таких задач експоненційно

зростають із ростом розмірності оброблюваних графів. Саме тому виникає

актуальна необхідність формування нових підходів та алгоритмів розв’язання

задач пошуку оптимальних шляхів з багатьма критеріями, отже, в роботі

запропоновані моделі і еволюційні методи, які розв’язують такі задачі.

На основі виявлених недоліків вказаних методів сформульовано мету

та задачі дослідження.

Результати першого розділу опубліковані в [21, 65, 76].

Page 45: Dis karapetyan

45

Розділ 2. МОДЕЛЮВАННЯ ПРОЦЕСІВ АДАПТИВНОЇ

МАРШРУТИЗАЦІЇ

Проведений аналіз сучасного стану досліджень в галузі інформатики,

теорії алгоритмів, теорії прийняття рішень та теорії штучного інтелекту

вказує на наявність важливої проблеми – теорія графів є визнаною

дисципліною, в класичних роботах якої здійснено формальні постановки

задач, що враховують достатньо різноманітні обмеження, в той же час

безпосереднє розв’язання практичних задач за допомогою цих моделей

виявляється неможливим як внаслідок їх великої розмірності та NP-

складності, так і тому, що в практичних задачах необхідно враховувати не

лише формальні, але і якісні критерії та обмеження.

Методика складання таблиці маршрутизації в автономній системі

перевірена у практичній роботі шлюзів-маршрутизаторів. Виявлено, що при

незмінній стабільній структурі процесу передачі даних застосування наявних

алгоритмів дає відповідні додатні результати. Але на практиці стан каналів

звязку та навантаження на мережу весь час змінюється.

У роботі розглянуто задачі, пов’язані з розподілом навантаження між

маршрутизаторами, формуванням таблиць маршрутизації у шлюзах в умовах

динамічних змін характеристик стану каналів звязку. Представлені розробки

скеровані на створення і вдосконалення методів та засобів розв’язання задач

адаптивної маршрутизації та розподілу ресурсів.

Для розв’язання вказаних задач пропонується використовувати методи

еволюційного моделювання.

2.1. Математичні моделі маршрутизації

2.1.1. Постановка задачі багатокритеріальної оптимізації

Більшість розв'язуваних практичних завдань передбачають пошук

рішення, що є оптимальним згідно з кількома критеріями. Однак більшість

методів, використовуваних для вирішення цих завдань, використовують

єдиний, складовий оптимізаційний критерій. У цьому випадку завдання

Page 46: Dis karapetyan

46

багатокритеріальної оптимізації зводиться до однієї або декількох задач

однокритеріальної оптимізації. Існує величезна різниця між двома цими

завданнями. При однокритеріальній оптимізації здійснюється пошук єдиного

оптимального рішення. При багатокритеріальної оптимізації здійснюється

пошук декількох оптимальних рішень, що дозволяє рівним чином

враховувати всі критерії, що оптимізуються. Пошук безлічі рішень при

багатокритеріальної оптимізації грунтується на концепції Парето-

оптимальності.

Основна її ідея полягає у визначенні поняття не домінування для

окремих рішень оптимізаційної задачі. Рішення 1x домінує інше рішення 2x ,

якщо одночасно виконуються дві наступні умови:

1) рішення 1x не гірше рішення 2x по будь-якому з розглянутих в задачі

критеріїв;

2) рішення 1x суворо краще рішення 2x принаймні по одному з критеріїв.

Якщо не існує жодного рішення, що задовольняє перерахованим вище

умовам, то 2x є не домінуючим або Парето-оптимальним рішенням

багатокритеріальної задачі.

Загальний випадок векторної багатокритеріальної задачі розглянуто в

[81], де потрібно знайти

)].(),...,(),([)(min 21 xfxfxfxf k ,

де T

ni xxxxx ],...,,...,,[ 21 − вектор рішень, ,,...,2,1 ni n − кількість змінних;

Xx , де nRX − множина допустимих рішень; )(xf j − j -й критерій

оцінювання, kj ,...,2,1 .

Вектор )(xf називається критеріальним вектором, а kRYXf )( −

множиною допустимих оцінок, де kR − критеріальний простір.

Оскільки багатокритеріальна оптимізація полягає в пошуку

оптимального рішення, що задовольняє одночасно більш ніж одніу цільову

функцію, то для знаходження компромісного рішення в багатокритеріальних

Page 47: Dis karapetyan

47

моделях в теорії оптимізації введено поняття рішення оптимального за

Парето, яке відоме також як покращене рішення або не домінуюче рішення.

Формальне визначення Парето-оптимального рішення задачі зформулювано

наступним чином:

вектор Xx називають Парето-оптимальним рішенням задачі min f(x)

тоді і тільки тоді, коли не існує іншого вектора рішень Xx * такого, що

)()( * xfxf jj для kj ,...,2,1 , причому хоча б для одного j це обмеження

виконується строго.

Для вирішення такого виду завдань багатокритеріальної оптимізації

розроблені різні методи і підходи, які використовують традиційні техніки

оптимізації та пошуку рішень. Одним з таких добре відомих методів є метод,

що об’єднує критерії, які оптимізуються в одну цільову функцію з

використанням зваженої суми цих критеріїв, взятих з певними вагами. Інший

підхід відомий під назвою «методу функції відстані» (Method of distance

functions).

Генетичні алгоритми добре зарекомендували себе в якості методик

пошуку у багатьох областях практично при повній відсутності інформації

про властивості цільової функцій і обмежень. У різних дослідженнях

[128,132,138] було розроблено декілька методів і підходів використання

генетичних алгоритмів для вирішення багатокритеріальної оптимізації.

Вперше ідею використання генетичного алгоритму для вирішення завдань

багатокритеріальної оптимізації запропонував у своїх роботах Розенберг,

[34]. Практичний метод був розроблений Шаффером, [35] і представлений у

програмі VEGA (Vector Evaluated Genetic Algorithm). Шаффер модифікував

стандартний генетичний алгоритм GENESIS Грефенстіта, розроблений для

однокритеріальної оптимізації таким чином, щоб можна було його

застосувати для вирішення багатокритеріальної оптимізації.

У гібридному алгоритмі для знаходження субоптимальних рішень

даної глобальної проблеми використовується аналітичний метод оптимізації

Page 48: Dis karapetyan

48

за допомогою нейронної мережі. Такий гібридний нейронно-генетичний

алгоритм представлений у публікаціях [82, 125]. У ньому для знаходження

субоптимальних рішень даної багатокритеріальної задачі використовується

апарат нейронної мережї Хопфілда.

Контроль та керування за змінами параметрів КМ за допомогою

службових повідомлень притаманних методам маршрутизації здійснюється з

периодичністью 10-30 с. Виконується також повне оновлення таблиць

маршрутизації за його результатами. Дослідження, проведені в [80, 87],

показали, що варіації вхідного потоку інформації про абонентів відбуваються

кожні 1-2 с. Тому моніторинг КМ з періодичністю, заданою існуючими

протоколами, не дозволяє відстежувати такі зміни вхідного трафіку. У той же

час зменшення періоду між опитуванням стану зв'язку в КМ призведе до

збільшення періодичності потрібної алгоритмам пошуку шляхів передачі

інформації і, як наслідок, перевантаження КМ службовою інформацією і

порушення стійкості роботи мережевого устаткування. Уникнути цього

можна шляхом передобчислювання безлічі шляхів передачі інформації з

«низькою» періодічністю (10-30 с) і управління інформаційними потоками за

знайденими маршрутами з «високою» періодичністю (1-2 с).

У зв'язку з цим доцільним видається наступний підхід до вирішення

завдання адаптивної маршрутизації передачі пакетів даних.

2.1.2 Графоаналітична модель адаптивної маршрутизації

Еволюційні алгоритми використовуються при комбінаторній

оптимізації, зокрема при вирішенні класичних NP-повних проблем, таких як

задача комівояжера, задача упаковки ранця, розбиття чисел і замальовка

графів. До інших не класичних задач, для розв'язання яких застосовано

еволюційні алгоритми, належать обчислення маршрутів, задачі розташування

та транспортування. Еволюційні алгоритми успішно використовувалися для

задач типу функціональної оптимізації і можуть легко бути описані

математичною мовою.

Page 49: Dis karapetyan

49

У задачі про найкоротші шляхи задається зважений орієнтований граф

),( EVG , де V – множина вершин, VVE – множина ребер графа. В

загальному випадку існує декілька вагових функцій REk :,...,1 , кожна з

яких відповідає певному критерію оптимізації.

Довільний шлях ji vvp складається з послідовності ребер

Evvvv jkli ,,...,, і може бути представлений у вигляді послідовності

вершин графа, що належать шляху jli vvvp ,...,, .

Вершини Vvvv jli ,...,, , причому кожна вершина входить до шляху

лише один раз. Наприклад, на рис. 2.1 послідовність (1, 4), (4, 5), (5, 6), (6, 9)

є шляхом з вершини 1 до вершини 9 і відповідає представленню (1, 4, 5, 6, 9).

Рисунок 2.1 - Зважений орієнтований граф. Шлях (1, 4, 5, 6, 9)

Нехай індекс s відповідає початковій, а d – кінцевій вершинам

шуканого шляху .

Визначимо як,

{ ( )

Нехай загальна кількість критеріїв оптимізації задачі k. За кожним

критерієм можна обчислити певний функціонал (цільову функцію), який

відповідає якості шляху з точки зору алгоритму маршрутизації і визначається

як

( ) ( ( ) ) , (i,j) (2.1)

1

9

8

7

6

5

4

3

2

Page 50: Dis karapetyan

50

Для адитивних характеристик шляху (затримка, довжина), що

використовуються як метрики сучасних алгоритмів маршрутизації є

сумою значень вагової функції ребер, які входять до шляху p. Для

неадитивних характеристик шляху (пропускна спроможність, надійність,

навантаження) функціонал є складною функцією від багатьох параметрів і

може враховувати не тільки стан з’єднань, але й стан маршрутизаторів

мережі, зміну середовища передачі даних та ін.

Нехай Р - множина всіх можливих шляхів між вершинами vs та vd.

У загальному випадку задача про найкоротший шлях між двома

визначеними вершинами в графі з багатьма критеріями може бути

сформульована наступним чином:

( ) ( ( ) ) ( ) (2.2)

𝑑

=𝑠 ≠

− ∑ { 𝑠 − 𝑑 −

𝑑

=𝑠 ≠

(2.3)

𝑑

=𝑠 ≠

{≤ ≠ 𝑠 𝑑

(2.4)

Умови (2.3) та (2.4) вимагають, щоб шуканий шлях не містив циклів.

Умова (2.2) вимагає, щоб цільова функція за кожним критерієм оптимізації

по всіх можливих шляхах p = vs→vd досягала найменшого значення на

шуканому шляху.

2.2.3 Еволюційні моделі та алгоритми

Розділ еволюційного моделювання в штучному інтелекті використовує

і моделює процеси природного відбору. З відомих алгоритмів в роботі

використовуємо генетичні алгоритми (ГА) та алгоритм нейроеволюції.

1) ГА відображає природну еволюцію методів вирішення проблем, і в

першу чергу задач оптимізації. ГА — це процедури пошуку, засновані на

механізмах природного відбору і спадкоємства. У них використовується

Page 51: Dis karapetyan

51

еволюційний принцип виживання найбільш пристосованих особин. Функція

ранжування (fitness-функція або «належності») є ключовою в цьому

алгоритмі оптимізації. При виборі fitness- function важливо стежити, щоб її

«рельєф» був «гладким». Причому це модифікація найпростішого алгоритму

випадкового пошуку.

З отриманої безлічі рішень ( «покоління») з урахуванням значення

«пристосованості» вибирають рішення (зазвичай кращі особини мають

велику ймовірність бути обраними), до яких застосовуються «генетичні

оператори» - crossover і - mutation, результатом чого є отримання нових

рішень. Для них також обчислюється значення пристосованості і потім

проводиться відбір ( «селекція») кращих рішень в наступне покоління. Набор

дій повторюється ітеративно, так моделюється «еволюційний процес», що

триває кілька життєвих циклів (поколінь), аж поки не буде виконано критерій

зупинки алгоритму.

ГА відрізняються від традиційних методів оптимізації декількома

базовими елементами. Зокрема, ГА оброблюють не значення параметрів

самого завдання, а їх закодовану форму; здійснюють пошук рішення,

виходячи не з єдиної точки, а з їх деякої популяції; використовують тільки

цільову функцію, а не її похідні або іншу додаткову інформацію;

застосовують імовірнісні, а не детерміновані правила вибору.

Перераховані чотири властивості, які можна сформулювати також як

кодування параметрів, операції на популяціях, використання мінімуму

інформації про завдання і рандомізація операцій, приводять у результаті до

стійкості ГА і до їх переваги над іншими широко уживаними

технологіями[39, 46, 61, 70];

2) алгоритм нейроеволюції – аналогічний генетичному програмуванню,

але геноми являють собою штучні нейронні мережі (ШНМ), в яких

відбувається еволюція ваг при заданої топології мережі, або, крім еволюції

ваг, також проводиться еволюція топології. ШНМ можуть розглядатися як

Page 52: Dis karapetyan

52

спрямований граф зі зваженими зв'язками, у якому штучні нейрони є

вузлами.

Клас задач, які можна вирішити за допомогою ШНМ, визначається

тим, як мережа працює і як вона навчається. Отже, мережі можна застосувати

в ситуації, коли є визначеною відома інформація, а потрібно з неї одержати

якусь поки що невідому інформацію [126, 130].

2.1.4. Модель нейронної мережі

Початок сучасному математичному моделюванню нейронних

обчислень було покладено роботами Хопфілда [17, 18], в яких була

сформульована математична модель асоціативної пам'яті на нейронної

мережі з використанням правила Хеббіана для програмування мережі. Але не

стільки сама модель стала поштовхом до появи робіт інших авторів на цю

тему, скільки введена Хопфілдом функція обчислювальної енергії нейронної

мережі. Вона – аналог функції Ляпунова в динамічних системах. Доведено,

що для одношарової нейронної мережі зі зв'язками типу «все на всіх»

характерна збіжність до однієї з рівноважних точок кінцевої множини, які є

локальними мінімумами функції енергії, яка містить в собі всю структуру

взаємозв'язків у мережі. Розуміння такої динаміки в нейронній мережі було і

в інших дослідників. Однак, Хопфілд і Танк у своїй класичній роботі [40]

показали, як конструювати функцію енергії для конкретної оптимізаційної

задачі. Цей підхід отримав розвиток і для вирішення інших комбінаторних

оптимізаційних задач.

Привабливість підходу Хопфілда полягає в тому, що НМ для

конкретної задачі може бути запрограмована без навчальних ітерацій. Ваги

зв'язків обчислюються на підставі виду функції енергії, сконструйованої для

цього завдання. У роботах [18; 40] зустрічається велика кількість ознак, які

повинна мати задача, щоб можна було ефективно застосувати ШНМ,

наприклад: відсутність алгоритму або невідомі принципи вирішення завдань,

але накопичено достатню кількість прикладів; проблема характеризується

Page 53: Dis karapetyan

53

великими обсягами вхідної інформації; дані неповні, або надлишкові чи

частково суперечливі.

ШНМ може розглядатися як спрямований граф зі зваженими зв'язками,

в якому штучні нейрони є вузлами. За архітектурою зв'язків ШНМ можуть

бути згруповані у два класи, в яких графи не мають петель, і рекурентні

мережі, або мережі зі зворотними зв'язками.

Із можливих варіантів зупиняємо свій вибір на мережі Хопфілда

(рис.2.2), тому що:

- у автоасоціативній мережі Хопфілда вхідний образ може бути відновлений

або виправлений мережею;

Рисунок 2.2 Деталізована нейронна мережа Хопфілда

- у МХ використовується одношарова структура асоціативної пам'яті, в якій

вихідний вектор з'являється на виході тих же нейронів, на які надходить

вхідний вектор;

- МХ базується на аналогії фізики динамічних систем. Початкові

застосування для цього виду мережі включали асоціативну, або адресовану за

змістом пам'ять та вирішували завдання оптимізації.

- у мережі Кохонена є суттєві недоліки:

Шар 0 Шар 1

Page 54: Dis karapetyan

54

а) мережа не дає можливості будувати точні апроксимації (точні

відображення). У цьому мережа значно поступається мережі зі зворотним

поширенням похибки;

б) слабкий теоретичний базис модифікацій мережі зустрічного поширення.

На рисунку 2.2 зображена НМХ за допомогою спеціальної двошарової

структури, в якій нульовий шар не виконує обчислювальних функцій, а лише

збирає виходи мережі і направляє їх назад на входи.

Кожен j-й нейрон першого шару обчислює зважену cуму своїх входів

(за допомогою ваг wij, де i, j = 1,n, а також вагa зміщення w0j), даючи сигнал

NETj, який потім за допомогою нелінійної функції активації F

перетворюється в сигнал OUTj, де j = 1,n.

Як функції активації F може використовувати порогову функцію?

Якщо зважена сума виходів з інших нейронів більше порога Tj - вихід j-го

нейрона буде дорівнювати одиниці, в іншому випадку він дорівнює нулю або

залишається без зміни, якщо сигнал NETj дорівнює порогу Tj. Таким чином,

повинні виконуватися наступні умови:

OUTj = 1, якщо NETj > Tj ; (2.5)

OUTj = 1, якщо NETj < Tj ; (2.6)

OUTj не змінюється, якщо NETj = Tj, (2.7)

де NETj =∑ ≠ Tj (2.8)

У теорії нелінійних динамічних систем під стійкістю розуміють

стійкість за Ляпуновим. Безпосереднє застосування цього методу для

розв’язання оптимізаційних комбінаторних задач досить важко і складно

формалізується.

Нейронна мережа Хопфілда є стійкою за виконання таких умов:

1 ) wij = wji ;

2 ) wii = 0, для всіх i.

Стійкість мережі можна довести у такий спосіб.

Припустимо, що існує функція «енергії мережі» Е, спадна при зміні

стану мережі й сягає мінімуму, гарантуючи тим самим стійкість мережі. Ця

Page 55: Dis karapetyan

55

функція Ляпунова для мереж із зворотними зв'язками може бути

представлена наступним чином:

∑ ∑ − ∑ ∑ (2.9)

У цьому виразі E - функція «енергія мережі»; wij - вага від виходу

нейрона i до входу нейрона j; OUTj - вихід нейрона j, w0j - вага зміщення

нейрона j ; Tj - поріг нейрона j.

Зміну енергії δE, викликану зміною стану нейрона δOUTj, можна

представити як:

[∑ ( ) − ≠ ] −[ − ] (2.10)

У разі, якщо величина NETj більше порога Tj, вираз в дужках буде

додатнім. З умови (1) випливає, що δOUTj ≤ 0, отже δЕ≤0.

Далі, припустимо, що NETj < Tj. Тоді зміна виходу j - го нейрона згідно

(2.2): δOUTj <0 і енергія Е повинна зменшитися або залишитися без зміни.

Якщо зважена сума входів з інших нейронів дорівнює порогу NETj = Tj,

то відповідно до (3): і енергія δOUTj =0 залишається без зміни.

Таким чином, будь-яка зміна стану нейрона або зменшить енергію, або

залишить її без зміни. Завдяки такій властивості до зменшення, енергія,

зрештою, повинна досягти мінімуму і припинити зміни, гарантуючи стійкість

мережі. Стан, до якого з часом сходяться інші стани з деякої ділянки,

називається атрактором. Умова симетричності мережі ( wij=wji ) є

достатньою, але не необхідною умовою стійкості системи.

Основною проблемою, що виникає при використанні функції

Ляпунова, є наявність в мережі декількох атракторів і необхідність ухилення

від локальних мінімумів при знаходженні глобального мінімуму функції.

Привабливість підходу, запропонованого Хопфілдом, полягає в тому, що у

НМ не використовуються навчальні ітерації, а синапсична вага

обчислюються на підставі виду функції енергії AS мережі.

Page 56: Dis karapetyan

56

2.2. Цільова функція та критерій ефективності оптимального

маршруту в мережах адаптивної маршрутизації

У даний час розроблено безліч алгоритмів, які частково вирішують

проблему оптимальної маршрутизації. Виникає питання про те, який

алгоритм є найбільш ефективним. Аналіз літератури [11, 16, 18] показав, що

ряд відомих і широко використовуваних на практиці моделей (графових і

імітаційних) і адаптивних методов маршрутизації, мають як переваги

(невисока обчислювальна складність), так і недоліки (неефективне

використання існуючих ресурсів КМ). Це дозволило зробити висновок про

необхідність комплексного використання цих моделей і методів при

знаходженні безлічі шляхів передачі інформації, контролю розподілу і

управлінні потоком цифрової інформації.

Таблиця маршрутів є центральною частиною модуля IP-базового

елемента технології Internet, і вона використовується для прийняття рішення

про спрямування IP-пакета на той чи інший шлях. Формат таблиці маршрутів

задається протоколом маршрутизації, а зміст її визначає адміністратор

мережі. Пряма маршрутизація має місце при обміні пакетами між машинами,

що входять в одну мережу. Більшість сучасних протоколів маршрутизації є

динамічними, тобто такими, де таблиці маршрутизації змінюються в міру

зміни структури і параметрів навколишнього мережі. Такі протоколи помітно

підвищують надійність мережі в цілому, тому що при виході з ладу будь-

якого вузла або каналу зв'язку потік пакетів може бути автоматично

направлений в обхід по резервному маршруту.

Користувач, пов'язаний тільки з одним сервіс-провайдером, повинен

належати до спільної з ним автономної системи (AS), з локальною мережею

або системой мереж, які мають єдину адміністрацію і загальну маршрутну

політику. Автономна система повинна обов'язково створюватися, коли

оператор мережі пов'язаний з більш ніж однією AS (рис.2.3) із політикою, що

відрізняється від його маршрутної політики.

Page 57: Dis karapetyan

57

Рисунок 2.3- Приклад схеми зв’язку автономних систем Internet

Загальним правилом є використання максимально можливого числа

маршрутів. Це підвищує надійність і сприяє перерозподілу навантаження між

каналами.

Впровадження ідеології AS уможливило істотно полегшити процедуру

маршрутизації, скоротити необхідне число IP-адрес і створити гнучку і

ефективну схему опису маршрутної політики.

Отже, щоб визначити ефективність алгоритму, необхідно побудувати

модель мережі з чергами, що використовує досліджуваний алгоритм

маршрутизації. Модель повинна відтворювати процеси, наближені до

реальності. Модельована мережа, за приклад беремо корпоративну мережу

інтернет-провайдера, є нерегулярною, з неорієентованою на з'єднання

топологією, з мережевим рівнем IP (в термінах ISO-OSI) і з нескладним

транспортним рівнем. Субмережі досліджені як окремі вузли-хости, з'єднані з

вузлами - шлюзами (Gateway), виконують завдання мережевого рівня,

включаючи маршрутизацію. Групи шлюзів сполучені в лінії зв'язку,

розглядаються як канали передачі пакетів елементів даних, основними

характеристиками якості яких є пропускна спроможність, надійність і

затримка передачі. З кожною вхідною лінією зв'язку вузла пов'язані черги

вхідних пакетів. Таким чином, кожен вузол в мережі є вузлом з проміжним

зберіганням пакетів в буфері (ресурс для всіх черг). Вузли діють одночасно і

як хости (кінцева точка сесії), і як зовнішні або внутрішні шлюзи

(маршрутизатори) (рис.1.3). Для транспортних потреб використовують

протокол IP без інкапсуляції в UDP- або TCP-пакети. Маршрутизацію

визначає IP-адреса та тип сервісу.

Канал 1

Канал 2

AS1 AS2 AS3 AS4

193.0.1.1

193.0.1.5

193.0.1.2

193.0.1.6

Page 58: Dis karapetyan

58

Для кожного вхідного пакету маршрутизатор використовує інформацію

з маршрутної таблиці для визначення вихідної лінії зв'язку, по якій буде

скерований. Якщо ресурси лінії зв'язку доступні, то вони резервуються, і

встановлюється режим передачі даних. Час, необхідний на переміщення

пакета з вузла в один із сусідніх вузлів, залежить від розміру пакета і від

характеристик лінії зв'язку. Якщо по прибуттю пакета в буфері недостатньо

місця для його розміщення, то пакет втрачається. Інакше пакет поміщається в

чергу вхідних пакетів для подальшого обслуговування та маршрутизації.

Модель робочого навантаження об'єднує прості механізми управління

потоками. Між парами вузлів мережі встановлюються сесії (потоки пакетів

даних) із заданою швидкістю передачі (пара вузлів, а також швидкість

передачі даних між ними вибирають з використанням певних імовірнісних

законів), регулярно відправляються пакети даних. Кожен маршрутизатор має

повну інформацію про стан усіх інтерфейсів усіх маршрутизаторів АS. Якщо

АS складається з кількох зон, тоді внутрішні маршрутизатори зони можуть і

не мати інформації про топологію іншої частини АS. Мережа звичайно має

спеціальний призначений маршрутизатор, який є джерелом інформації для

інших маршрутизаторів АS.

Цільова функція та критерій ефективності оптимального маршруту

Дуже важливо створити метод, який задовольняв би водночас вимоги

динамічних каналів звязку до пропускної здатності та до затримок пакетів

даних. Найкращим способом цього досягти є використання цільових функцій

окремо для пропускної здатності і затримки пакетів. Тоді виникає наступна

проблема: як визначити пріоритети між даними функціями.

Традиційно для розв’язання задачі складання маршрутів елементів

даних із застосуванням ГА використовують спрощений варіант цільової

функції [14, 130, 133], яка на низькому рівні визначає ступінь придатності

хромосоми до формування наступного покоління.

Для організації оптимізуючого процесу необхідно визначити цільову

функцію, чи, у термінах ГА, фітнес-функцію. Зазвичай, в її якості

Page 59: Dis karapetyan

59

використовується адитивний показник оптимальності, що базується на штра-

фах. Перевагою такого вибору є можливість налаштування алгоритму під

конкретну задачу шляхом варіювання коефіцієнтів і, тим самим, зміни

пріоритетів при пошуку оптимального маршрута.

На вiдмiну від досліджень, які проводились раніше, пропонуємо

вважати критерiальною функцією визначення оптимальності маршруту його

вiдповiднiсть вимогам пропускної здатності канала i затримки повідомлень.

Здійснимо формування такої функції та її формалiзацiю.

Позначимо n

rrrR ,...,,21

– скінчену множину можливих маршрутів. Її

скінченність гарантована скінченністю множини вузлів-шлюзів

m

pppP ,...,,21

, сукупності каналів зв’язку klllL ,...,,

21 та вагів

(параметрів стану) каналів зв’язку v

aaaA ,...,,21

. Задача формування оп-

тимального маршруту з урахуванням вищенаведеного полягає у знаходженні

)(max rFRr

, (2.11)

,),,,( RALSPr (2.12)

де – сукупність обмежень, які визначаються наявністю шлюзів,

розподілом каналів зв’язку у провайдера (пропускною здатністю), затримкою

обслуговування пакетів в чергах буферів маршрутизаторів тощо. Виходячи з

інтересів двох основних суб’єктних множин процесу передачі даних –

пропускної здатності i затримки повідомлень, цільову функцію F

вважатимемо векторною і представлятимемо як LS

FFF , , де S

F – цільова

функція пропускної здатності, L

F – цільова функція затримки.

Тоді задача (2.1) - ( 2.2) трансформується в таку:

),(max rFS

Rr ),(max rF

LRr

).,,,( ALSPr (2.13)

Згідно з теорією прийняття рішень, найчастіше задачу (2.13)

розв’язують, використовуючи метод головного критерію, максимінний метод

і метод адитивної згортки [125]. У відповідності до методу головного

Page 60: Dis karapetyan

60

критерію потрібно з множини критеріїв визначити основний, знайти його

оптимум за умови, що значення інших критеріїв будуть не меншими деяких

констант. Отже, задача (2.13) набуває вигляду:

),(max rFS

Rr ,)(

LLdrF ),,,,( ALSPr (2.14)

де L

d – константа, значення якої залежить від розмірності задачі, даних і

встановлюється особою, що приймає рішення.

За іншим, максимінним критерієм, необхідно знайти такий критерій

оптимальності, який має найменші значення на підмножині шляхів 1

, що

задовольняють умову (2.12), а далі серед маршрутів 1

r знайти такий,

якому відповідає максимальне значення іншого критерію. Задача (2.13)

запишеться так:

)(minmax},{1

rFi

LSir ,

1. (2.15)

Максимінний критерій дозволяє здійснити й іншу інтерпретацію.

Зокрема, можна знайти підмножину маршрутів, які є допустимими та яким

відповідає мінімальне значення одного з критеріїв, і на цій підмножині

знайти шлях маршрутизації, який є оптимальним за іншим критерієм. Задача

(2.3) тоді буде мати такий вигляд:

,)(minarg1*

rFrS

r ),(max

1

* rFrL

r (2.16)

або

( ) ),(max1

* rFrS

r (2.17)

Очевидно, що розв’язуючи задачі (2.16) - (2.17), орієнтовані на

«найгірший» випадок, визначається гарантованв нижня оцінка для S

F або L

F .

Максимінний критерій у порівнянні з методом головного критерію є більш

детермінованим.

Маршрутизатор вирішує проблему оптимізації маршрутів, аналізуючи

орієнтований граф мережі. Якщо маршрут змінюється, то роутер може

припустити, що величина шляху доставки виросте, він затримує пакети в

черзі, сподіваючись передати їх пізніше по більш короткому шляху. Завдання

Page 61: Dis karapetyan

61

маршрутизатора в тому, щоб правильно визначити напрям майбутньої зміни

часу доставки - зростання або скорочення. У ролі об'єктів виступають

ситуації, фактично, моменти часу. Опис об'єкта - це вся передісторія зміни

векторів шляхів маршрутизації і ваг ребер графів моделі адаптивної

маршрутизації, зафіксованих до даного моменту. У простому випадку об'єкти

необхідно класифікувати на три класи, що відповідають можливим

рішенням: передати, затримати або відкинути.

Одне з найважчих питань, яке доводиться вирішувати, - це питання про

те, які вхідні дані є оптимальними. У задачах нелінійної природи серед

параметрів можуть бути взаємозалежні і надлишкові. Наприклад, може

статися так, що кожен із двох параметрів сам по собі нічого не значить, але

обидва вони разом несуть надзвичайно корисну інформацію. Це ж може

стосуватися і сукупності з декількох параметрів. Сказане означає, що спроби

ранжувати параметри за ступенем важливості можуть бути неправильними в

принципі. Єдиний спосіб отримати повну гарантію того, що дані обрані

найкращим чином, полягає в тому, щоб перепробувати всі можливі варіанти

вхідних наборів даних і вибрати з них найкращий. На практиці це зробити

неможливо через величезну кількість варіантів.

Один із дієвих способів вирішення даної задачі - це генетичний

алгоритм. Цей алгоритм виконує велике число експериментів з різними

комбінаціями вхідних даних, будує для кожної з них імовірнісну або

узагальнено-регресійну мережу, оцінює її результати і використовує їх у

подальшому пошуку найкращого варіанта. Еволюційні алгоритми є дуже

ефективним інструментом пошуку в комбінаторних задачах якраз такого

типу (де вимагається приймати ряд взаємопов'язаних рішень «так / ні»).

2.3. Визначення коефіцієнтів цільової функції відображення пріоритетів

показників якості стану каналу звязку

Третій критерій, який може бути використаний для розв’язання задачі

побудови таблиці маршрутизації, записується у вигляді адитивної згортки

Page 62: Dis karapetyan

62

max)()( rFrFLLSS

, ).,,,( ALSPr (2.18)

Вагові коефіцієнти S

і L

визначають вплив компонента цільової

функції на загальний результат. Встановлення значень коефіцієнтів є

емпіричною процедурою. Її формалізація може здійснюватись різними

способами. Наведемо один з них. Вважаючи роутер домінуючим суб’єктом у

каналі зв’язку автономної системи, апріорі раціонально встановити 6,0S

,

4,0L

. При подальшій корекції використати таке правило: якщо

відношення кількiсті елементів пакетів даних в чергах роутерів до кількiсті

елементів пакетів даних в системі відповідає середньостатистичному

значенню, то значення коефіцієнтів не змінюються, якщо реальне

відношення відрізняється від нормативного, то S

і L

потрібно коригувати.

Позначимо S

N – кількість елементів пакетів даних в чергах роутерів,

NL – кількість елементів пакетів даних в системі, Nв – номінальне значення

відношення кількісті елементів пакетів даних в чергах роутерів до кількісті

елементів пакетів даних в системі, визначене умовою ρ утилізації серверу.

Тоді, якщо виконується нерівність

,2

1Nв

N

NNв

L

S то 4,02

1

2

16,0

N

NNв

L

SS (2.19)

в іншому випадку, якщо

,2

3Nв

N

NNв

L

S то .3,02

16,0

N

NNв

L

SS (2.20)

Одержуючи вирази (2.19) і (2.20), припускаємо, що реальне

співвідношення між кількісті елементів пакетів даних в чергах роутерів до

кількісті елементів пакетів даних в системі

NвNв

N

N

L

S

2

3,

2

1. (2.21)

Page 63: Dis karapetyan

63

Так, якщо нормативне значення відношення 10L

S

N

N, то вважатимемо,

що на практиці 15,5L

S

N

N, і це відповідає дійсному стану речей. При

NвN

N

L

S , очевидно, що кількість елементів пакетів даних в чергах роутерів є

порівняно більшою і їх пріоритет у цільовій функції має збільшуватись.

Тому, у цьому випадку 9,0;6,0S

, а 4,0;1,0L

. У протилежному

випадку, при NвN

N

L

S , вважатимемо, що 6,0;2,0S

і 8,0;4,0L

. Таким

чином, використання виразів (2.19)-(2.20) дозволить адекватно реагувати на

динаміку елементів пакетів даних в чергах роутерів і системи в цілому.

Розглянемо аспекти формування цільової функції S

F . Очевидно, що

вхідні пакети в буфері роутера можна розглядати як певну множину, розбиту

на класи (пакети з пріоритетами та звичайні пакети без ознак

першочерговості).

Кожна AS може встановлювати критерії з маршрутизації

інформаційних потоків. Якщо мережа у межах AS задана графовою моделлю,

тобто орграфом G(A,R,W), де А- множина вузлів, R – множина ребер, W -

множина вагів, тоді відповідно до теорії черг (систем масового

обслуговування) [71], приймемо наступні припущення:

а) всі елементи даних, що надходять в систему, зберігаються;

б) якщо сервер простоює (вільний), елемент даних обробляється

негайно. Інакше, елементи даних, що надходять, зберігаються в черзі;

в) після виконання сервером обробки елемента даних, пакет негайно

відправляється за призначенням;

г) якщо в черзі знаходяться інші елементи даних, то один з них негайно

надходить на обробку в сервер.

Отже, якщо ємність черги нескінченна, то має місцє система без втрат

даних - елементи просто чекають в черзі, поки не будуть оброблені. Тоді

Page 64: Dis karapetyan

64

середня швидкість відправлення елементів даних дорівнює середній

швидкості надходження. Якщо ж швидкість надходження елементів даних

збільшується, то зростає навантаження на сервер, а значить, і утилізація

сервера.[72]

Оскільки пакети даних мають індивідуальні переваги, які у тому числі

залежать від використаного протоколу маршрутизації та передачі, то

раціонально ці індивідуальні переваги звести до групових переваг шляхом

визначення їх сукупності.

Необхідно зауважити ще деякі аспекти формування S

F . По-перше,

якщо існуючі вимоги є стандартними за RFC та їх навіть незначне

недотримання неможливе, то вважатимемо їх обмеженнями, що визначає

область допустимих розв’язків. Позначимо такі обмеження dZ . Якщо ж

існують вимоги, які можуть бути певним чином з різних причин недо-

триманими, то відповідні обмеження позначимо vZ і ступінь порушення

обмеження врахуємо шляхом додавання (віднімання) штрафних значень.

Припустимо, що d

k

ddd ZZZZ ,...,,21

, vl

vvv ZZZZ ,...,,21

,

де d

iZ – стандартнi за RFC вимоги, v

jZ – вимоги, які визначаються

маршрутизаторами, ki ,1 , lj ,1 . Вимоги із множини dZ є апріорі відомими

і визначеними RFC. Інші ж вимоги із vZ не є заданими і їх визначення є

однією з перших задач, розв’язання якої потрібне для формування

ефективного методу адаптивної маршрутизації. Пропонуємо такий спосіб.

Усі вимоги на обслуговування пакетів та побудову таблиць маршрутизації

вносяться до єдиного переліку. Якщо в ньому зустрічаються подібні вимоги –

їх об’єднують. В іншому випадку протилежних вимог їх зводять до

узгодженого варіанту вимог або вилучають деякі вимоги взагалі.

Таким чином, одержується множина вимог vZ . Очевидно, що вимоги

vZ є різнопріоритетними для кожного маршрутизатора. Для того, щоб

узгодити індивідуальні переваги, кожному адміністратору надається

можливість визначити перевагу кожної з вимог. Для цього за методом аналізу

Page 65: Dis karapetyan

65

ієрархій [121] будують матриці попарних порівнянь, для яких знаходять

максимальні власні числа та відповідні власні вектори. Нехай max –

максимальне власне число матриці попарних порівнянь, яку одержав i -й

маршрутизатор, mi ,1 , il

iii xxxx ,...,,21

– власний вектор, який відповідає

цьому власному числу. Виконавши нормування елементів цього вектора за

формулою

l

j

i

j

i

jiн

j

x

xx

1

, (2.22)

одержимо, що )1,0(iн

jx і 1

1

l

j

jx . Тоді можна стверджувати, що значення

jx буде вказувати на пріоритет j -го критерію для i -го маршрутизатора.

Оскільки всі роутери в мережі є рівнозначними, то пріоритетність вимог для

їх AS (найчастіше, мережі) визначається як середнє значення пріоритетів

критеріїв для кожного маршрутизатора, тобто

m

i

jjx

mx

1

1, lj ,1 . (2.23)

Таким чином, для мережі роутерів одержано вектор пріоритетів вимог

),...,,(21 l

xxxX .

Без обмеження загальності, перша частина цільової функції (2.18)

набуде вигляду:

,1

l

j

v

jjsssZxF (2.24)

де коефіцієнт s

визначається за (2.19) або (2.20), пріоритети i

x за

формулою (2.23), функція vj

Z є індикатором і записується так:

.,0

,,1

випадкуіншомув

виконаноАякщоA (2.25)

де A – певна вимога.

У виразі (2.24) потрібно детальніше описати обмеження функції-

індикатора (2.25). Але перш ніж це зробити, розглянемо особливості

Page 66: Dis karapetyan

66

формування цільової функції інформаційних потоків L

F . Порівнюючи з

процесом формування S

F , зауважимо, що потоки не мають групових переваг

і врахування їх вимог необхідно здійснювати індивідуально. Нехай M –

кількість груп приоритетів таблиць маршрутизації за крітеріями:

надійність каналу передачі;

вартість каналу звязку;

завантаження мережі.

Зрозуміло, що на практиці потрібно враховувати пріоритети

представників таких груп. Таким чином, нехай K груп критеріїв, тобто

K

TTTT ,...,,21

. За пріоритетністю та порядковою шкалою:

....21 K

TTT (2.26)

Водночас схема переваг (2.26) не дозволяє здійснювати кількісні

оцінки. Тому особа, що приймає рішення, а це може бути адміністратор

мережі, диспетчер служби підтримки, який стежіть за оперативною

обстановкою послуг, що надається клієнтам у мережі, виконує контроль і

диагностику зазначеної автономної системи (домену), формує матрицю

попарних порівнянь: визначає пріоритети AS

,1,)1,0(,,...,,1

21

K

iiiK

yyyyyy (2.27)

Якщо адекватність такої процедури викликає сумніви, то її можна

об’єктивізувати на основі пріоритетів за часом затримки трафіку (RT, nRT).

Кожен інформаційний потік має свої переваги за оперативності

обслуговування, причому кількість таких переваг у різних cистемах буде

різною. Позначимо jin

jj T

i

T

i

T

i

T

iZZZZ ,...,,

21 – вектор переваг i -го вхідного

буферу з j -ї групи пакетів, i

n – кількість його елементів даних, ,,1 Mj

Ki ,1 . Векторам T

iZ відповідатимуть розраховані з використанням методу,

наведеного вище, значення вектора пріоритетів j

i

j

i

j

i

j

iin

dddD ,...,,21

, ,,1 Mi

Kj ,1 . Тоді, другий доданок цільової функції (2.8) буде таким:

Page 67: Dis karapetyan

67

,111

j

iT

il

n

l

j

il

M

iji

K

jjLLL

ZdTLyF

(2.28)

де

.,0

,,1

випадкуіншомув

TгрупіналежитьLормашрутизатякщоTL

ji

ji

Таким чином, з урахуванням (2.24) і (2.28), задача (2.18) перепишеться

так:

max,11 11

j

iT

il

n

l

j

il

l

j

M

iji

K

jjL

v

jjSZdTLyZxrF (2.29)

).,,,( ALSPr

Зауважимо, що:

на цьому етапі обмеження (2.2) залишаються без змін;

завдання r явно в моделі та задачі (2.29) не присутнє;

оскільки значення S

, L

, j

x , j

y , j

ild є відомими, то максимум цільової

функції залежатиме від значень функцій-індикаторів, які вказують на

виконання (невиконання) вимог до пакетів на вході в сервер та в системі в

цілому.

Висновки до розділу 2

У другому розділі виконані математичні постановки задач

дослідження.

Проведено аналіз моделей та методів, які могли б бути використані при

розв’язанні задачі визначення оптимального маршруту передавання пакетів

даних. У зв’язку із тим, що частина з них базуються на ітераційній техніці

пошуку оптимальних рішень, застосування яких вимагає виконання повного

перебору отриманих результатів, в якості базису дослідження обрано

еволюційне моделювання, складовими якого є генетичні алгоритми.

Визначено, що серед усіх еволюційних парадигм для розв’язання задачі

адаптивної маршрутизації найбільш адекватно використовувати генетичні

алгоритми.

Page 68: Dis karapetyan

68

Виконано порівняльний аналіз точності та швидкості класичних

методів розв’язання задач пошуком оптимальних маршрутів та методів, що

базуються на еволюційному моделюванні; такий аналіз показав, що

результати останніх є значно точнішими. У розділі проведено моделювання

процесів адаптивної маршрутизації шляхом врахування коефіцієнтів ребер та

вузлів, які на практиці можна розглядати як маршрутизатори та їх

характеристики.

Запропоновано математичну модель динамічного формування трафіку

в розподілених мережах із регулюванням навантаження, що дозволяють

підвищити ефективність процесів адаптивної маршрутизації в умовах

динамічних змін параметрів ліній зв'язку за рахунок врахування додаткової

інформації про стан черг пакетів елементів даних на входах

маршрутизаторів. Одне з найважчих питань - це питання про те, які вхідні

дані є оптимальними. Найбільш ефективним методом вибору найкоротшого

маршруту є метод безпосереднього повного перебору, але це важко

реалізувати на практиці. Тому в розділі запропоновано використати

еволюційні методи, які забезпечать зменшення обчислювальної складності

пошуку оптимального маршруту. Ці алгоритми виконують велике число

експериментів з різними комбінаціями вхідних даних, будують для кожної з

них імовірнісну або узагальнено-регресійну мережу, оцінюють її результати і

використовують їх у подальшому пошуку найкращого варіанта. Еволюційні

алгоритми є дуже ефективним інструментом пошуку в комбінаторних

задачах якраз такого типу (де вимагається приймати ряд взаємопов'язаних

рішень «так / ні»). Для їх реалізації комп’ютерну мережу необхідно

представити у вигляді зваженого орієнтованого графу.

У розділі досліджена та вдосконалена графоаналітична модель

маршрутизації та модель генетичних алгоритмів. На основі проведеного

аналізу видно, що генетичний алгоритм дав ті ж самі результати, що і

алгоритм Дейкстри. Відмінність тільки у часі виконання, який у генетичного

алгоритму кращий.

Page 69: Dis karapetyan

69

Визначені умови знаходження найкоротшого маршруту по графу з

використанням функції Ляпунова для нейронної мережі Хопфілда, яка

забезпечує швидку збіжність нейронної мережі до необхідних розв’язків.

Отримані результати дозволяють стверджувати, що використання

нейромережевого підходу для розв’язання задачі маршрутизації дозволяє

знаходити розв’язки задачі маршрутизації як по одній, так і по декількох

метриках.

Запропоновані моделі процесів адаптивної маршрутизації в

комп'ютерних мережах дозволяють адаптуватися до перевантаження мережі.

Адаптивна маршрутизація знижує втрати інформації в разі перевантаження

мережі, виконуючи маршрутизацію за маршрутами з максимальною

пропускною здатністю.

Побудовано математичні моделі, які дозволяють підвищити ефективні

визначення оптимальних шляхів пакетів даних на 10-15% у порівнянні з

існуючими моделями внутрішньої маршрутизації.

Результати другого розділу опубліковані в роботах [80, 84].

Page 70: Dis karapetyan

70

Розділ 3. МЕТОД АДАПТИВНОЇ МАРШРУТИЗАЦІЇ В ЗАДАЧАХ

БАГАТОКРІТЕРІАЛЬНОЇ ОПТИМІЗАЦІЇ

Як відомо, ГА призначені, в основному, для рішення задач оптимізації.

Прикладом подібної задачі може слугувати навчання нейромережі, тобто

підбора таких значень ваг, при яких досягається мінімальна похибка. При

цьому в основі ГА лежить метод випадкового пошуку. Основним недоліком

випадкового пошуку є невідома кількість часу для рішення задачі. Для того,

щоб уникнути таких витрат часу при рішенні задачі, застосовуються методи,

що проявилися в біології. При цьому використовуються методи відкриті при

вивченні еволюції і походження видів. Як відомо, у процесі еволюції

виживають найбільш пристосовані особи. Це приводить до того, що

пристосованість популяції зростає, дозволяючи їй краще виживати в умовах,

що змінюються.

3.1 Обґрунтування використання еволюційного моделювання

До перспективних напрямків розвитку методів оптимізації, який наразі

інтенсивно розвивається, слід віднести еволюційне моделювання [117], яке

охоплює математичні методи і принципи природних механізмів прийняття

рішень [77]. Особливо ефективним визнане використання еволюційних

методів для розв’язання тих задач оптимізації, для яких застосування інших

методів є неефективним.

Головна перевага еволюційного моделювання полягає у можливості

розв’язання задач, з великим числом локальних оптимумів за рахунок

комбінування елементів випадковості і спрямованості аналогічно тому, як це

відбувається в природі. Другим важливим чинником еволюцiйного

моделювання є моделювання процесів селекції, розмноження і успадкування.

При цьому одержувані за певними правилами альтернативні розв’язки

можуть породжувати нові розв’язки, які будуть „наслідувати” кращі

характеристики попередніх.

Page 71: Dis karapetyan

71

Згадуючи про еволюційне моделювання, найчастіше мають на увазі ГА.

Вказані алгоритми використовують механізми природної еволюції, що у

загальному вигляді можуть бути сформульовані так: чим вища

пристосованість індивіда, тим вища імовірність того, що у його нащадків ця

пристосованість буде виражена ще сильніше.

Основна перевага ГА полягає у тому, що вони розв’язують задачі, для

яких щe не розроблені стійкі і прийнятні методи, особливо на етапі

формалізації і структуризації системи, в когнітивних системах. Одним з

головних етапів функціонування ГА є оптимізація цільової функції,

адитивниго показника оптимальності, що базується на штрафах, які

встановлюються кожному розв’язку за будь-який конфлікт у каналі звя’зку

[68]. Перевагою такого вибору є можливість налаштування алгоритму під

конкретну задачу шляхом варіювання коефіцієнтів і, тим самим, зміни

пріоритетів під час пошуку оптимального маршруту.

Представимо формування маршруту передачі даних в автономній

системі (AS) як певний еволюційний процес. Процес моделювання еволюції

AS є складною проблемою, тому що не існує строго визначеної процедури її

вирішення, визначення рівнів ієрархії. Оскільки еволюція системи є

процесом переходу із стану в стан у залежності від внутрішньої необхідності

та зовнішніх умов, то організація запам’ятовування інформації, яка

складається із вихідних даних, обмежень, моделей, методів, засобів, критеріїв

оцінки одержаних рішень, становить основу для аналізу ефективності кож-

ного етапу життєвого циклу системи. Отже, моделювання еволюції є більш

інформативним процесом ніж моделювання систем [61].

Зауважимо, що моделювання еволюції систем необхідно здійснювати

на ранніх етапах життєвого циклу. Верифікацію та оптимізацію одержаних

результатів пропонується здійснювати за допомогою еволюційного

моделювання.

Адаптуючи вказані аксіоми до проблеми еволюції AS, зауважимо, що

еволюційне моделювання у цьому випадку повністю виправдане, оскільки:

Page 72: Dis karapetyan

72

1) cпадкова змiнність вказує на можливість AS знаходити кращий маршрут

(удосконалювати існуючі шляхи доставки), що і визначає еволюційні

передумови;

2) природний вiдбір визначається ефективністю розв’язання задачі;

3) контролюючим та направляючим фактором eволюції AS є виконання

заданих обмежень задачі і визначення необхідності розв’язання задач

оптимізації.

Об’єктом, що еволюціонує, є сама AS. Критерієм еволюції є

ефективність AS, структурним елементом є канал звязку. Отже, ми одержали

три складові еволюційного моделювання: модель еволюції, об’єкт еволюції і

критерій еволюції.

Отже, використання стратегій, методів і алгоритмів еволюційного

моделювання шляхом випадкового підбору, комбінування і варіації

параметрів при розв’язанні оптимізаційних задач є якісно новим підходом до

створення і застосування складних штучних систем.

Еволюційні алгоритми успішно використовуються для задач типу

функціональної оптимізації і можуть легко бути описані математичною

мовою. Еволюційні алгоритми використовуються при комбінаторній

оптимізацій, зокрема при вирішенні класичних NP-повних проблем, таких як

задача комівояжера, задача упаковки ранця, розбиття чисел, максимально

незалежну безліч і замальовка графів [12, 57, 126].

В адаптивних методах маршрут вибирається залежно від поточної

інформації, яка міститься на кожному вузлі передачі, тобто у вузлах мережі

аналізуються зміни умов передачі пакетів і відбувається обробка статистики

використання різних маршрутів. На підставі цього проводиться вибір

маршруту. Адаптивна маршрутизація включає в себе функції, які показані на

рис. 3.1. Адаптивні алгоритми маршрутизації повинні відповідати кільком

важливим вимогам. По-перше, вони повинні забезпечувати, якщо не

оптимальність, то хоча б раціональність маршруту. По-друге, алгоритми

повинні бути досить простими, щоб при їх реалізації не витрачалося дуже

Page 73: Dis karapetyan

73

багато мережевих ресурсів, зокрема вони не повинні вимагати занадто

великого обсягу обчислень або породжувати інтенсивний службовий трафік.

І нарешті, алгоритми маршрутизації повинні мати властивість збіжності,

тобто завжди приводити до однозначного результату за прийнятний час.

Рисунок 3.1 – Функції адаптивних методів маршрутизації

Щоб адаптивна маршрутизація була можлива, вузли повинні

обмінюватися інформацією про стан мережі. Чим частіше відбувається обмін

інформацією між вузлами мережі, тим вище якість прийнятих вузлами

рішень про вибір маршрутів. Однак, сама ця інформація надає певне

навантаження на мережу. Це протиріччя є головною проблемою адаптивної

маршрутизації (або маршрутизації взагалі).

ГА добре зарекомендували себе в якості методик пошуку практично

при повній відсутності інформації про властивості цільової функцій і

обмежень. В різних дослідженнях було розроблено декілька методів і підходів

використання ГА для розв’язання багатокритеріальної оптимізації [81].

Алгоритм рішення задачі оптимізації можна вважати ефективним, якщо

він здатний знайти розв’язок задачі за час, поліноміально залежний від

обсягу вхідної інформації. Від останнього залежить обсяг перебору. Таким

чином, оцінка обчислювальних витрат на пошук оптимального розв’яку

Функції адаптивних методів маршрутизації

Контроль

стану

мережі

За об’ємом

глобальний

частковий

локальний

Обробка

інформації

про стан

мережі

Спосіб

централізо-

ваний

розподілений

локальний

Зберігання

маршрутів

Спосіб

для всієї

мережі

локальні

маршрути

Ретрансляція

пакетів

Спосіб

послідовна

відправником

багатошляхова

широкомовна

Обчислення

маршрутів

Алгоритм

Белмана-

Форда

Дейкстри

Page 74: Dis karapetyan

74

задачі адаптивної оптимізації зростає експоненційно з ростом числа

керуючих змінних.

Оскільки алгоритми розв’язання задач цього класу зводяться до

перебору, то в загальному випадку задачі адаптивної оптимізації не мають

ефективного алгоритму, що знаходить розв’язок за поліноміальний час,

залежно від розмірності задачі.

Для розв’язання складних неформалізованих задач оптимізації

застосовуються ШНМ [ 1, 83].

3.2. Формування структури розв’язку задачі оптимізації

3.2.1. Визначення задачі багатокритеріальної оптимізації

Багатокритеріальна оптимізація заснована на відшукуванні рішення,

яке одночасно оптимізує більш ніж одну функцію. В цьому випадку

шукається деякий компроміс, у ролі якого виступає рішення, оптимальне за

Парето. При оптимізації вибирається не єдина хромосома, що представляє

собою закодовану форму оптимального рішення в звичайному змісті, а

множину хромосом, оптимальних за Парето. Користувач обирає оптимальне

рішення з цієї множини. Розглянемо означення рішення, оптимального в

змісті Парето (символами х, у будемо позначати фенотипи).

Існує кілька класичних мeтодів, що відносяться до багатокритеріальної

оптимізації. Один з них - це метод зваженої функції (method of objective

weighting), відповідно до якого оптимізовані функції fi, з вагами wi

утворюють єдину функцію

m

i

ii )x(fw)x(f1

, де wi [0,1] і

m

i

iw1

1.

Розглянемо загальний випадок векторної багатокритеріальної задачі,

наведений в п.2.2.1. Отже, потрібно знайти

(3.1)

Тут − вектор розв’язків, − кількість

змінних; , де − множина допустимих рішень; − -й

)].(),...,(),([)(min 21 xfxfxfxf k

Tnxixxxx ],...,,...,

2,

1[ ,,...,2,1 ni n

Xx nRX )(xj

f j

Page 75: Dis karapetyan

75

критерій оцінювання, . Вектор називається критеріальним

вектором, а − множиною допустимих оцінок, де k

R −

критеріальний простір.

Формальне визначення Парето-оптимального розв’язку задачі

сформульовано наступним чином: вектор називають Парето-

оптимальним рішенням задачі (3.1) тоді і тільки тоді, коли не існує іншого

вектора рішень такого, що для , причому хоча

б для одного це обмеження виконується строго [81].

3.2.2. Графова інтерпретація задачи оптимізації маршрутів

Необхідність у розробці адаптивного методу маршрутизації в

комп'ютерних мережах пов'язана зі змінами режимів роботи мережі і з

можливістю її перевантаження. У разі відсутності перевантаження

комп'ютерної мережі доцільно привласнювати вагу гілкам моделюючого

графа пропорційно критеріям та вимогам до мереж, які сполучають джерела

та отримувачів каналами передачі інформації. У цьому випадку необхідно

вирішувати задачу про найкоротший шлях між вузлом-джерелом і вузлом-

приймачем. У разі перевантаження КМ, коли виникає ризик втрати

інформації внаслідок обмежень пам'яті і пропускної здатності каналів,

передачі інформації, необхідно знаходити маршрути з максимальною

пропускною спроможністю.

Розглянемо процес моделювання графа з додатньою і від’ємною

вагами, коли граф можна представити у вигляді множини фрагментів,

утворених пучком з m спрямованих гілок, що входять в одну вершину

(рис.3.2) [100]. Кожній i-й гілці S-того фрагмента графа співставимо вагу pls ,

l=1,2,.. m, який може приймати від’ємне або додатне значення. Фрагменти

графа сполучають поміж собою у відповідності з топологією модельованого

графа.

kj ,...,2,1 )(xf

kRYXf )(

Xx

Xx * )()*( xjfxjf kj ,...,2,1

j

Page 76: Dis karapetyan

76

Рисунок 3.2 - Граф, представлений у вигляді множини фрагментів

𝑠( )

[ 𝑠 𝑑 𝑠( )]

(3.2)

де d rls - вага r-го вузла фрагмента графа, сполученого з l-ой гілкою S-го

фрагмента. Топологія графа визначає схему з’єднання його фрагментів, яку

можна описати співвідношенням

( ) 𝑑 𝑠( ) (3.3)

Вважаємо, що моделюються графи, в яких відсутні цикли від’ємної

ваги. Модель графа може перебувати в двох станах:

В початковому при t ≤ t0 і в режимі моделювання при t> 0. Ваги всіх

вершин графа формується одночасно згідно з паралельним алгоритмом:

𝑠( ) { ≤

[ 𝑠 𝑑 𝑠( )]

(3.4)

де t > t0 ; q – кількість вершин модельованого графу, D1– вага початкової

вершини графу.

Якщо фрагменти графа з'єднати згідно необхідної топології (3.3) і в

кожній моделі, що моделює фрагмент графа, реалізувати вираз (3.4), то в

моделі графа в момент часу T досягається стаціонарний стан, коли на

виходах всіх моделей встановляться постійні ваги

Dj (T) = Dj (T + Δt), j = 1, 2, ..., q,

де q - кількість моделей, Δt - час реалізації одного кроку обчислень.

У стаціонарному стані моделі графа стале значення ваги Dj (T) на

виході j-ої моделі відповідає вартості оптимального шляху з початкового

j

s r r

prj

ps

Модель j

Модель s Модель r

Page 77: Dis karapetyan

77

вузла Dl в j-тий вузол, де j = 2, 3, ..., q. Вартість оптимального шляху Dj (T)

визначається мінімальною алгебраїчною сумою ваг гілок графа, складеної

вздовж усіх допустимих шляхів з початкового вузла в j-тий вузол.

У разі додатньої ваги всіх гілок модельованого графа в стаціонарному

стані значення ваги Dj (T) на виході j-ої моделі дорівнює довжині

найкоротшого шляху з початкового вузла в j-тий, якщо вага гілок графа

дорівнює довжині шляху з одного вузла в інший. Алгоритм

багатокритеріальної оптимізації реалізовано у програмі Matlab. Селекція

виконана турнірним методом, при цьому «краща» особа у кожній підгрупі

вибирається на основі фітнес-функції, яка унікальна для даної підгрупи.

3.2.3. Формування структури початкової популяції генетичного

алгоритму

Першим кроком при розробці математичної моделі є розробка

структури хромосоми, в якій буде зберігатися розв’язок. У нашому випадку

такою „хромосомою” є таблиця маршрутів. Структура хромосоми повинна

враховувати всі особливості й обмеження шуканого розв’язку.

Таблиця 3.1 - Приклад таблиці маршрутизації мережі

Network Addres Netmask Gateway

Address

Interface Metric

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0 1

0.0.0.0 0.0.0.0 198.21.17.7 198.21.17.5 1

56.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 15

116.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 13

129.13.0.0 255. 255.0.0 198.21.17.6 198.21.17.5 2

198.21.17.0 255.255.255.0 198.21.17.5 198.21.17.5 1

198.21.17.5 255.255.255.255 127.0.0.1 127.0.0.1 1

198.21.17.255 255.255.255.255 198.21.17.5 198.21.17.5 1

213.34.12.0 255.255.255.0 213.34.12.3 213.34.12.3 1

213.34.12.3 255.255.255.255 127.0.0.1 127.0.0.1 1

213.34.12.255 255.255.255.255 213.34.12.3 213.34.12.3 1

224.0.0.0 224.0.0.0 198.21.17.6 198.21.17.6 1

224.0.0.0 224.0.0.0 213.34.12.3 213.34.12.3 1

255.255.255.255 255.255.255.255 198.21.17.6 198.21.17.6 1

Page 78: Dis karapetyan

78

Рисунок 3.3 - Приклад мережі, яка сполучена маршрутизаторами

Якщо уявити, що в якості маршрутизатора Rl в даній мережі (рис.3.3)

працює штатний програмний маршрутизатор MPR OC Microsoft Windows

NT, то його таблиця маршрутизації могла б мати такий вигляд (табл. 3.1).

Розглянемо будову хромосоми. Хромосома є набором генів (фрагментів

таблиці маршрутів (ФТМ)). Один фрагмент в хромосомі – це один шлях у

маршрутній таблиці, який матиме структуру, (табл.3.1), що складається з

п’яти частин закодованої інформації:

перша частина – адреса мережі призначення;

друга – маска мережі;

третя – адреса шлюзу (адреса наступного маршрутизатора);

четверта – адреса інтерфейсу;

п’ята - метрика маршруту.

Page 79: Dis karapetyan

79

Як відстань до мережі стандарти протоколу RIP допускають різні види

метрик: хопи, метрики, що враховують пропускну здатність, які вносять

затримки і надійність мереж (тобто відповідають ознакам D, Т і R в поле

«Якість сервісу» IP-пакета), а також будь-які комбінації цих метрик. Метрика

повинна мати властивість адитивності - метрика складового шляху повинна

дорівнювати сумі метрик складових цього шляху. У більшості реалізацій

використовується найпростіша метрика - кількість хопів, тобто кількість

проміжних маршрутизаторів, які потрібно подолати пакету до мережі

призначення. ФТМ, зазвичай, є бітовим рядком фіксованої довжини, на

кодування якого (в нашому випадку) відводиться 32 біти, а саме: на

кодування першої частини фрагмента відводиться 32 біти (4 байта адреси),

другої – 32 біти (маска субмережі), третьої – 32 біти (адреса наступного

маршрутизатора - шлюзу), четвертої – 32 біти (адреса інтерфейсу порту),

пятої – 8 біт (метрика маршрута). І таких фрагментів буде 70 (5 стовпців по

14 рядків), тобто хромосома матиме 9520 біт.

Далі з хромосом формують початкову популяцію. Популяція – досить

велике співтовариство організмів, що схрещуються між собою. Популяції

притаманні набори ланцюжків генів кожного з об’єктів – хромосом,

сукупність яких визначає генофонд популяції [133]. Для синтезу нового

покоління з кращими показниками із сукупності хромосом потрібно вибрати

кращі для подальшої репродукції. Сам процес відбору та репродукції

хромосом здійснюється у такий спосіб: з поточної популяції випадково

вибирається пара хромосом та з них визначається краща (зрозуміло, таких

хромосом значно менше загальної кількості хромосом в популяції), причому

функція відбору вказує на хромосому лише один раз, що дає можливість

замінювати найгірші хромосоми на кращі в наступній популяції. Щоб

отримати нову популяцію, відібрані хромосоми попарно схрещують між

собою.

Оператори кросовера характеризуються здатністю до руйнування

(disruption) батьківських хромосом. Кросовер для цілочисельного кодування

Page 80: Dis karapetyan

80

вважається більш руйнівним, якщо в результаті його застосування відстань

по Хеммінгу [67] між хромосомами нащадків і хромосомами батьків велика.

Іншими словами, здатність цілочисельного кросовера до руйнування

залежить від того, наскільки сильно він „перемішує” (рекомбінує) вміст

батьківських хромосом. Так, одноточковий кросовер вважається

слабкоруйнівним, а однорідний кросовер в більшості випадків є

сильноруйнівним оператором. Для кросовера для дійсного кодування

здатність до руйнування визначається тим, наскільки велика відстань в

просторі пошуку між точками, що відповідають хромосомам батьків і

нащадків. Таким чином, руйнівний ефект двоточкового кросовера залежить

від вмісту батьківських хромосом. Відповідно, двоточковий кросовер по

руйнуючій здатності займає проміжну позицію по відношенню до

одноточкового і однорідного кросоверам.

Відзначимо, що одночасно зі здатністю до руйнування говорять також

про здатність до створення (creation, construction) кросовером нових особин.

Тим самим підкреслюється, що, руйнуючи хромосоми батьків, кросовер

може створити абсолютно нові хромосоми, що не зустрічалися раніше в

процесі еволюційного пошуку.

Саме тому в задачі складання таблиць маршрутизації було обрано

однорідний кросовер в якості оператора схрещування. Це характеризується

тим, що при більшій руйнації структури хромосоми майже відпадає

можливість використання мутації, принаймні ймовірність виникнення

мутації можна звести до мінімуму.

Наш фрагмент ФТМ представлений 5-ма частинами, кожна з яких –

неподільна, але це не заважає нам точки кросоверу розміщувати не за

границями фрагментів, а саме між частинами фрагмента. Отже, в даній задачі

використовується однорідний кросовер [81]: хромосоми розбивають на

частини, причому фрагмент теж розбивається на частини, і кожна ділянка

хромосоми першого батька має 50-відсотковий шанс обмінятися з

відповідною ділянкою хромосоми другого батька.

Page 81: Dis karapetyan

81

Генетичні операції. Далі представлена схема процедури „Crossover”, що

використовується в еволюційній технології розв’язання задачі складання

таблиць маршрутизації (рисунок 3.4).

Рисунок 3.4 – Схема процедури „ Crossover ”

Після кросоверу до популяції застосовують оператор мутації.

Застосування еволюційних алгоритмів при розв’язанні задачі

адаптивної маршрутизації пов’язане з необхідністю врахування «прокляття

розмірності», оскільки середньостатистична кількість записів в

середньостатистичному маршрутизаторі становить велике число з огляду на

середню продуктивність маршрутизаторів від 2 до 5 млн. пакетів за сек.

Зауважимо, що в таких алгоритмах виконується значна кількість операцій,

які не ведуть до знаходження оптимального розв’язку, і їх практичне

тестування і реалізація наштовхується на проблеми, пов’язані з часом

виконання.

Скоротити кількість операцій можна, використовуючи деякі додаткові

процедури, що оптимізують процес пошуку розв’язку. Певним чином вони

пов’язані з реалізацією оператора мутації.

Зазвичай при реалізації ГА спочатку застосовують оператор

схрещування, а потім оператор мутації, хоча можливі й інші варіанти. Існує

думка, що оператор мутації є основним пошуковим оператором і відомі

Визначення

точок

розриву

„хромосоми”

Ймовірність

кроссоверу

дорівнює

0.5

Обмін відповідними

ділянками

хромосом

Хромосоми

залишаються

без змін

Створення

нової

популяції

Селекція

Перевірка

популяції на

„вдалість”

Створення

популяції

нащадків

„вдала”

„невдала”

так

ні

Page 82: Dis karapetyan

82

алгоритми, які не використовують інших операторів (кросинговер, інверсію

тощо), крім мутації.

Дослідження показали, що в простих задачах, використовуючи ГА з

мутацією (і без кросовера), знаходять розв’язок швидше. Також для такого

методу потрібно менший розмір популяції. Якщо мають місце складні

багатоекстремальні функції, то краще використовувати ГА з кросовером,

оскільки цей метод більш надійний, хоча і вимагає більшого розміру

популяції.

Використовуючи теорему шаблонів, можна стверджувати, що мутація

лише шкодить зростанню кількості представників прийнятних шаблонів,

оскільки зайвий раз їх руйнує. Однак мутація просто необхідна для ГА з

малим розміром популяції. Сутність цього твердження в тому, що для

нечисленних популяцій властива передчасна збіжність (premature

convergence). Це та ситуація, коли в деяких позиціях все індивіди мають один

і той же біт, але такий набір бітів не відповідає глобальному екстремуму. При

цьому кросовер практично не змінює популяції, тому що всі індивіди майже

однакові. У цьому випадку мутація здатна інвертувати «застряглий» біт у

одного з індивідів і знову розширити простір пошуку.

В якості оператора мутації найбільшого поширення набули випадкова і

нерівномірна мутація Міхалевіча [27].

При випадкової мутації ген, який підлягає зміні, приймає випадкове

значення з інтервалу своєї області визначення. У нерівномірній мутації

значення випадково вибраного гена хромосоми або зменшується, або

збільшується на деяке значення , яке залежить від номера поточного

покоління так, що нащадок задовольняє обмеженням задачі:

,1),,(

,0),,(*

приactc

приcbtcc

iii

iii

i (3.5)

,1),( max

1

bt

ryyt

(3.6)

Page 83: Dis karapetyan

83

де – випадкове бінарне число, t – номер поточного покоління, b і a –

допустимі права і ліва границі i -ї змінної, r – рівномірно розподілене

випадкове число, max – кількість поколінь, параметр b відображає ступінь

залежності від номеру покоління. Функція ),( yt повертає значення в

діапазоні y,0 , яке прямує до нуля зі збільшенням номеру поточного

покоління.

Крім того, якщо протягом досить великого числа поколінь не

відбувається збільшення пристосованості, то застосовуються «мала» і

«велика» мутації покоління. При «малій» мутації покоління до всіх особин,

крім 10% кращих, застосовується оператор мутації. При «великій» мутації

кожна особина або мутує, або замінюється на випадково згенеровану. Число

поколінь до реалізації «малої» і «великої» мутації під час роботи алгоритму є

постійним. Також оператор мутації можна застосовувати тільки в тому

випадку, якщо до даної пари батьківських особин не був задіяний оператор

схрещування.

При збільшенні ймовірності мутації і при зменшенні впливу

результатів відбору (наприклад, за рахунок використання інших стратегій

відбору) розмноження представників пристосованих особин сповільнюється,

але зате відбувається інтенсивний пошук інших особин. І навпаки,

зменшення ймовірності мутації і збільшення впливу відбору веде до

інтенсивного використання знайдених хороших особин, але тоді менше уваги

приділяється пошуку нових [21].

У задачі складання таблиць адаптивної маршрутизації розв’язком є

оптимальний, в деякому сенсі, варіант таблиці маршрутів. Оператор мутації

призначений для модифікації одного з таких варіантів саме для того, щоб

внести в популяцію випадкові розв’язки, до яких важко або взагалі

неможливо прийти, застосовуючи тільки оператор схрещування.

Ймовірність мутації залежить від самої задачі, але, зазвичай, має

досить мале значення (від ≈0,001 до ≈0,01 [9]). Оскільки в результаті мутації

Page 84: Dis karapetyan

84

генеруються нові розв’язки і відсутня внесення хаосу в популяцію, в

дослідженні використовується ймовірність виникнення мутації менше 0,01.

Традиційно використовувалася мутація, що базується на розігруванні

випадкової величини, що має рівномірний розподіл. Результати проведених

експериментів вказують на те, що «рівномірний» вибір фрагмента хромосоми

і «рівномірна» його мутація не спрямовані на скорочення часу пошуку

оптимального розв’язку, оскільки однакові шанси для модифікації мають як

«перспективні», так і «неперспективні» розв’язки. Причому мутація в

перших може призводити до появи «неперспективних» розв’язків, а в других

– до появи «перспективних», що вказує на випадковий ненаправлений

характер пошуку оптимального розв’язку.

Зменшимо кількість «помилкових» кроків алгоритму, використовуючи

замість рівномірного розподілу – нормальний. Реалізація такого підходу має

такі етапи. Спочатку визначають ділянку потенційних розв’язків, яка є

однаковою в кожній з них і якій відповідає максимальне або близьке до нього

значення функції належності. Нагадаємо, що фенотип цієї ділянки є дійсне

число, що належить інтервалу, який вказується на початку процесу

кодування елементів початкової вибірки або початкової популяції розв’язків

[21,80]. На наступному етапі розігрується випадкове число, що має

нормальний розподіл із середнім, що відповідає фенотипу ділянки, і

середньоквадратичним відхиленням, таким, щоб інтервал )3,3( mm , де

m – фенотип відповідної ділянки, – середньоквадратичне відхилення, що

збігається з апріорним інтервалом зміни фенотипу. Цей інтервал грає певну

роль при розрахунку величини мутації. Відзначимо також, що

середньоквадратичне відхилення в процесі пошуку рішення змінюється, а

саме, зменшується, що вказує на те, що в міру наближення до оптимального

або квазіоптимального рішень ймовірність значних мутацій зменшується.

Результати експериментів вказують на 30-40% скорочення часу пошуку

рішення в порівнянні з використанням рівномірного розподілу.

Після реалізації мутації цільова функція перераховується.

Page 85: Dis karapetyan

85

Таким чином, помістивши початкову популяцію у створене штучне

середовище і реалізувавши процеси селекції, кросоверу і мутації, ми

одержимо ітераційний алгоритм пошуку оптимального розв’язку, на кожній

ітерації якого виконуються такі дії:

1) Кожен індивід популяції оцінюється за значенням фітнес-функції.

2) Кращі розв’язки (зазвичай, близько 5%) копіюються у нову популяцію

без зміни. Такий принцип (принцип елітизму) запобігає втраті кращих

розв’язків і забезпечує підвищену збіжність алгоритму.

3) На основі пропорційного відбору з поточної популяції вибираються два

розв’язки, що піддаються рекомбінації. Для цього хромосоми батьків

обмінюються відповідними ділянками.

4) Отримана у попередньому пункті таблиця маршрутизації може

виявитися некоректною. У цьому випадку можна повторювати операцію

рекомбінації доти, поки не буде отримана коректна таблиця маршрутів.

5) Якщо нова популяція сформована, то стара вилучається, після чого

переходимо до п.1. В іншому випадку переходимо до п.3.

Розглянутий алгоритм є не лише стійким до локальних мінімумів, але й

завдяки внутрішньому паралелізму, вираженому в роботі не з окремими

розв’язками, а з цілими класами розв’язків, забезпечує відносно швидкий

пошук оптимального розв’язку.

Етапи ГА. Початкова популяція. Першим етапом роботи ГА є вибір

початкової популяції та її розміру. Початкова популяції, що складається з

великої кількості хромосом, дозволяє набагато швидше знайти розв’язок

достатньої точності. Проте такий підхід вимагає значних обчислювальних

затрат для реалізації алгоритму: що більший розмір популяції, то більше

пам’яті обчислювальної системи буде витрачено, і час виконання усіх

генетичних операцій (кросовер, мутація, відбір) значно зростатиме. Існує два

основних підходи вирішення цієї проблеми:

генерація випадкових хромосом;

формування початкової популяції користуючись класичним алгоритмом.

Page 86: Dis karapetyan

86

Перший варіант дозволяє значно спростити процес створення

початкової популяції алгоритму, зменшуючи таким чином час роботи

алгоритму вцілому. Такий підхід також доцільний, якщо не існує класичного

алгоритму розв’язку вихідної задачі.

Другий підхід вимагає значних обчислювальних затрат, проте дозволяє

досягнути бажаного результату роботи генетичного алгоритму за значно

меншу кількість ітерацій.

Для описаної вихідної задачі при кількості параметрів оптимізації

в загальному випадку не тільки не існує класичного алгоритму

розв’язку, але й точного розв’язку взагалі. Тому для задачі пошуку

найкоротших шляхів з багатьма параметрами оптимізації доцільним є

формування початкової популяції випадковим чином. Однак застосування

класичного алгоритму пошуку найкоротших шляхів за одним із критеріїв

дозволить значно скоротити час роботи алгоритму та покращити його

параметри збіжності.

Повернемось до формулювання задачі (3.1). Для позначення

важливості кожного критерію оптимізації введемо вагові коефіцієнти

. Для формування початкового покоління хромосом

застосовується алгоритм Дейкстри за одним із критеріїв оптимізації задачі,

ваговий коефіціент якого i є найбільшим.

Вибір батьківської пари хромосом. Існує декілька підходів до вибору

батьківської пари. Найбільш простий з них – панміксія. Цей підхід являє

собою випадковий вибір батьківської пари. В цьому випадку особина може

стати членом кількох пар. Незважаючи на простоту, такий підхід є

універсальним для розв’язання різних класів задач. Однак він достатньо

критичний до чисельності популяції, оскільки ефективність алгоритму, що

реалізує такий підхід, знижується з ростом чисельності популяції.

При селективному способі вибору особин в батьківську пару сутність

полягає в тому, що "батьками" можуть стати тільки ті особини, значення

2k

kii ...1,

i

Page 87: Dis karapetyan

87

пристосованості яких не менше середнього значення пристосованості по

популяції. Такий підхід забезпечує більш швидку збіжність алгоритму. Однак

через швидку збіжність селективний відбір батьківської пари не підходить,

коли ставиться задача визначення кількох екстремумів, оскільки для таких

задач алгоритм, як правило, швидко збігається до одного з розв’язків. Крім

того, для деякого класу задач із складним ландшафтом пристосованості

швидка збіжність може перетворитись у передчасну збіжність до

квазіоптимального розв’язку. Цей недолік у запропонованій моделі

скомпенсований завдяки використанню відповідного механізму відбору –

турнірного.

Кросовер. Генетична операція кросоверу формує нове покоління розв’язків

задачі, користуючись генами попереднього покоління. У задачі про

найкоротші шляхи кросовер є обміном частковими шляхами обраних

хромосом для формування нового шляху. Застосування класичної операції

кросоверу не можливе, оскільки довжина хромосоми змінюється і кожен ген

не відповідає певній визначеній характеристиці розв’язку задачі.

Початковою та кінцевою вершинами оберемо вершини під номером 1

та 9 відповідно. Нехай випадковим чином було сформовано початкове

покоління розв’язків задачі. Для операції схрещування (кросоверу) оберемо

два довільні шляхи з множини розв’язків. Розглянемо хромосоми, які

підлягають операції кросоверу. Хромосома А (рис. 3.4, а) відповідає шляху

(1, 2, 5, 6, 9) (рис. 3.5, б).

1 2 5 6 9

а б

Рисунок 3.5 – Хромосома А та відповідний шлях на графі

Хромосома Б (рис. 3.6, а) відповідає шляху (1, 4, 5, 7, 8, 9) (рис. 3.6, б).

5

2

1

3

7

8 4

6 9

Page 88: Dis karapetyan

88

1 4 5 7 8 9

а б

Рисунок 3.6 – Хромосома Б та відповідний шлях на графі

Як видно з рис. 3.5, 3.6, у хромосом А та Б є спільний ген, що

відповідає вершині 5. Ген, що відповідає спільній вершині, є точкою

кросоверу. Процедура обміну частковими шляхами та формування наступого

покоління розв’язків зображена на рис. 3.7.

Батьківські хромосоми Хромосоми-нащадки

1 4 5 6 9

1 4 5 6 9

Точка кросоверу

1 4 5 7 8 9

1 2 5 7 8 9

Рисунок 3.7 – Одноточковий кросовер хромосом А та Б

Залежно від кількості спільних вершин у батьківських хромосомах

можна виділити одноточковий та багатоточковий оператори кросоверу.

Приклад багатоточкового кросоверу зображено на рис. 3.8. Шляхи (1, 2, 4, 5,

7, 8, 9) та (1, 3, 4, 6, 5, 9) мають дві спільні вершини (окрім початкової та

кінцевої вершин шляху) – 4 та 5. Ці вершини є точками кросоверу

відповідних хромосом.

Батьківські хромосоми Хромосоми-нащадки

1 2 4 5 7 8 9

1 2 4 6 5 7 8 9

1 3 4 6 5 9

1 3 4 5 8

Рисунок 3.8 – Двоточковий кросовер хромосом А та Б

Внаслідок операції кросоверу можливе формування шляхів, що містять

цикли. Оскільки такі шляхи не задовольняють умов (3.1) задачі, їх необхідно

відкинути і виключити з множини розв’язків. Тому після операції кросоверу

всі хромосоми-нащадки підлягають перевірці на присутність циклів у

5

2

1

3

7

8 4

6 9

Page 89: Dis karapetyan

89

відповідних їм шляхах на графі. Хромосоми, що не проходять перевірку,

відкидаються і не приймають участі в операції відбору.

Мутація. Основне завдання операції мутації в ГА – випадкова зміна

розв’язків задачі з метою розширення множини пошуку цільової функції.

Опишемо алгоритм «одноточкової» мутації на прикладі графа, розглянутого

вище. Оберемо довільний шлях р={1,2,4,6,8,9} на графі, що є розв’язком

задачі на певному етапі роботи генетичного алгоритму (рис. 3.9). Цей шлях

відповідає хромосомі В певного покоління генетичного алгоритму.

1 2 4 6 8 9

а б

Рисунок 3.9 – Хромосома В та відповідний шлях на графі

Для формування операції мутації довільним чином обирається дві

вершини та шляху . Нехай – множина усіх можливих шляхів

між вершинами та . Оберемо довільний шлях і замінимо

ним проміжний шлях між вершинами та в . Сформований таким

чином альтернативний розв’язок задовольняє умовам задачі і може бути

включений до наступного покоління ГА. З точки зору представлення,

операція мутації відповідає заміні послідовності генів у хромосомі між

положеннями генів та альтернативною послідовністю, що відповідає

шляху .

Оберемо в хромосомі В довільним чином точки мутації – вершини 4 та

8. Одним із альтернативних шляхів між цими вершиними є шлях (4, 5, 7, 8,9).

Використавши його для операції мутації, одержимо шлях (1, 2, 4, 5, 7, 8,9).

Загальний вигляд операції мутації для хромосоми В зображено на рис.

3.10.

i j p ),( jiP

i j),(, jiji Pp

i j p

i j

),(, jiji Pp

5

2

1

3

7

8 4

6 9

Page 90: Dis karapetyan

90

В 1 2 4 6 8 9

Хромосома В до мутації

1 2 4 5 7 8 9 Хромосома В після мутації

Рисунок 3.10 – Операція мутації хромосоми В

Як i при операції кросоверу результат операції мутації також може не

задовольняти умову (2.8) задачі. В цьому випадку, аналогічно попередньому,

вводиться операція перевірки результату, а розв’язки, що містять цикли,

відкидаються.

Відбір. Операція вiдбору (відтворення) спрямована на покращення середньої

якості популяції генетичного алгоритму. Запропонований ГА використовує

метод турнірного відбору.

Нехай N – кількість особин популяції. Характеристика кожної i-ї

особини популяції (фенотип) виражається значенням функції

пристосованості . Для відбору певного індивіда створюється група з

випадково обраних особин. Індивід з найбільшою

пристосованістю в групі відбирається, решта – відкидається. Переваги такого

підходу:

відсутність збіжності до локального екстремуму;

відсутність стагнації;

відбір не вимагає глобального впорядкування усіх особин покоління;

немає необхідності явного обрахунку функції пристосованості.

Визначимо відхилення певного розв’язку задачі від ідеального

розв’язку як зважену -норму:

, (3.7)

де , . – точний розв’язок

задачі.

iF

)2( MM

hL

hk

j

h

jj

h

jh

CCCChCr

/1

1

*

,

*);;(

),...,( 1 k

),...,( 1 kCCC

),...,( **

1

*

kCCC

Page 91: Dis karapetyan

91

Параметр визначає характер впливу відхилень за кожним окремим

критерієм. При на загальне відхилення головним чином впливає сума

відхилень розв’язку за всіма критеріями, при збільшенні значення параметра

до підвищується роль відхилення за кожним критерієм окремо.

Такий підхід дозволяє гнучко змінювати не тільки вплив кожного критерію,

але й їх кореляцію.

Для невеликої кількості параметрів оптимізації задачі точний розв’язок

можна знайти користуючись будь-яким класичним алгоритмом. Однак уже

при загального алгоритму розв’язку задачі не існує. У такому випадку

доцільно використати найкращий проміжний розв’язок .

Нехай – множина особин поточної популяції. Значення найкращого

проміжного розв’язку визначається наступним чином:

, . (3.8)

Підставивши вираз (5.7) у формулу (3.6) одержимо значення

відхилення особини :

. (3.9)

Оскільки для “найкращих” особин значення відхилення буде

мінімальним, слід перетворити значення відхилення у значення функції

пристосованості. Позначимо найменше та найбільше відхилення у поточній

популяції та відповідно. Значення функції пристосованості особини

визначимо як

. (3.10)

Оскільки для операції відбору використовується турнірний метод,

немає необхідності обрахунку функції пристосованості в цілому, що значно

спрощує саму процедуру відбору. Для порівняння особин в групі достатньо

h

1h

h h

2k

),...,( ''

1

'

kCCC

P

PppCC ii )(min'ki ...1

p

hk

j

h

jj

h

j CpCpr

/1

1

')()(

minr maxr

p

minmax

max )()(

rr

prrpF

Page 92: Dis karapetyan

92

порівняти значення відхилення кожної особини і залишити одну хромосому,

відхилення якої в групі є мінімальним [119].

Таким чином, запропонований метод адаптивної маршрутизації в КМ,

дозволяє адаптуватися до перевантаження мережі, і в залежності від режиму

її роботи розв’язувати задачу про найкоротший шлях між вузлом-джерелом і

вузлом-приймачем. Адаптивна маршрутизація знижує втрати інформації в

разі перевантаження мережі, виконуючи маршрутизацію за маршрутами з

максимальною пропускною здатністю. Обчислювальна складність

запропонованого методу має оцінку O (L), де L - кількість елементів графа

уздовж найкоротшого шляху. Кількість маршрутизаторів має оцінку О (q), де

q - кількість вершин графа, що моделює КМ. Для проектування еволюційного

методу розв’язку складних неформалізованих задач оптимізації проведемо

оцінку другої компоненти методу - ШНМ [ 1, 83].

3.3. Нейромережевий метод розв’язання задач комбінаторної оптимізації

Клас цільових функцій, які можуть бути мінімізовані НМ досить

широкий: у нього потрапляють всі білінійні і квадратичні форми з

симетричними матрицями. З іншого боку, досить широке коло математичних

задач може бути сформульовано на мові задач оптимізації.

Представимо короткий огляд поточного стану НМ для вирішення задач

комбінаторної оптимізації. Існує два основних типи нейронних підходів, що

використовуються для рішення задач комбінаторної оптимізації – НМХ і

самоорганізаційні підходи. Більш ретельний огляд літератури, пов'язаної з

НМХ, виконано у розділі 2. Звичайно, існують й інші типи НМ, які

використовують для вирішення задач оптимізації, наприклад, машина

Больцмана і метод відпалу, але ці мережі є розширенням НМХ.

Асоціативність пам'яті НМХ не є єдиною її перевагою, яка

використовується на практиці. Іншою важливою властивістю цієї архітектури

є зменшення її функції Ляпунова в процесі нейродинаміки. Отже, НМХ

Page 93: Dis karapetyan

93

можна розглядати як алгоритм оптимізації цільової функції у формі енергії

мережі.

Звичайно, багато варіантів НМХ було запропоновано для поліпшення

якості рішення. Ці підходи можна в цілому розділити на детерміновані та

стохастичні. Стохастичнi підходи в змозі більш успішно поліпшити якість

рішення, адже вони пробують впровадити принципи імітації відпалу в мережі

Хопфілда, щоб уникнути локальних мінімумів.

Безумовно, однією з головних переваг НМ є швидке обчислення

потужності і швидкості, які можуть бути отримані шляхом апаратної

реалізації, і цей факт ще більш цінний в промислових застосуваннях.

Багато проблем дослідження операцій були вирішені за допомогою

нейромережевих методів (зокрема, НМХ), включаючи задачі рюкзака і

проблеми задоволення обмежень, а також задач лінійного і нелінійного

програмування. Хоча є велика колекція дослідження операцій заснованих на

інших методах, для вирішення всіх цих проблем недостатньо простого

порівняння нейронних методів з існуючими методами.

Можливість застосування теорії оптимізації та навчання НМ вкрай

приваблива, оскільки є множина добре випробуваних методів оптимізації,

доведених до стандартних комп'ютерних програм. Зіставлення процесу

навчання з процесом пошуку деякого оптимуму також не позбавлене і

біологічних підстав.

В роботі [18] значна увага приділена розширенню областей

застосування моделі Хопфілда Аналоговий характер нейронів і паралельної

обробки процедури оновлення можуть бути об'єднані, щоб створити швидке і

потужне рішення. Використання запропонованого методу, а саме функції

енергії мережі стає еквівалентною цiльовою функцією оптимізації, яка

повинна бути зведена до мінімуму, в той час як обмеження задачі включені у

функцію енергії, як значення штрафу при певних умовах[40].

Розглянемо задачу оптимiзації:

Page 94: Dis karapetyan

94

( ) [ ]

[ ] (3.15)

де – [A]i – i -й рядок матриці обмежень A;

v – n-мірні вектори; r – число обмежень.

Тоді функція енергії Хопфілда і Танка має вигляд:

( ) ( ) ([ ] − ) − ([ ] − ) ([ ] − )

(3.16)

де α, β1,…, βr – штрафні параметри, які вибираються з урахуванням відносної

важливості кожного доданка в функції енергії.

Такий підхід відповідає обмеженням, хоча при нелінійнійних умовах

робить визначення оптимальних штрафних параметрів малоймовірним.

Відомо, що обмеження мінімуму (3.8) також оптимізує функцію енергії,

оскільки цільова функція, f(v) буде зведена до мінімуму, і задоволення

обмежень означає, що значення штрафних умов будуть дорівнювати нулю.

Як тільки обирається відповідна функція енергії, та визначаються вхідні

параметри мережі (ваги та входи), можна починати розрахунок ваг. Ваги

НМХ Wij, є коефіцієнтами квадратичних членів vivj, і зовнішніх входів, є

коефіцієнти інших лінійних членів vi в обраній функції енергії. Мережі

можуть ініціалізувати, встановивши рівень активності vi кожного нейрона на

малих випадкових збуреннях, близьких до значення 0,5.

Це місце початкового стану системи знаходиться приблизно в центрі n-

мірного гіперкуба, і гарантує, що початковий стан є об'єктивним.

Альтернативні схеми ініціалізації були досліджені у роботі [26], де доведено,

що ініціалізація може мати значний вплив на якість розв’язання

оптимізаційних задач. З моменту своєї ініціалізації асинхронного оновлення

мережі дозволить потім досягти мінімального стану енергії, тому що рівень

енергії ніколи не збільшується під час переходів станів. Розв’язання

оптимізаційних задач можна представити, встановивши параметр активації

функції досить малим, таким, щоб значення функції наближались до її

дискретного порогу (кроку).

Page 95: Dis karapetyan

95

Однак, ці стійкі стани не обов'язково відповідають можливим або

кращим розв’язанням задачі оптимізації, і це – одна з основних проблем у

розробці Хопфілда і Танка. Оскільки енергетична функція включає в себе

кілька термінів (кожен з яких повинен бути зведений до мінімуму), багато

локальних мінімумів, і компромісів, між якими умовами буде зведено до

мінімуму функцію енергії [40]. Неможливі розв’язання проблеми будуть

виникати, коли хоча б одна з умов обмеження відмінна від нуля. У цьому

випадку значення зовсім малі, тому що вони були зведені до мінімуму,

зашкодивши обмеженням умов, таким чином, розв’язання є мінімальним та

придатним, але не представляється можливим. Крім того, всі обмеження

можуть задовольняти, але може бути знайдено локальний мінімум, а не

глобальний мінімум цільової функції. В цьому випадку розв’язання можливе,

але не оптимальне. Звичайно, штрафний параметр може бути збільшений в

силу пов'язаних термінів, щоб звести до мінімуму, але це зазвичай викликає

інші умови знаходження оптимального розв’язання задачі.

Розв’язання цієї задачі полягає в знаходженні оптимальних значень

параметрів, щоб, з точки зору енергетичної функції, забезпечити зведення

кожного члену до мінімуму з однаковим пріоритетом. Тільки в цьому

випадку обмеження умов рівняються нулю (допустиме розв’язання), а

цільова функція буде також зведена до мінімуму, таким чином знаходячи

оптимальне розв’язання.

3.4 Інтегальний еволюційний метод розв’язання задач комбінаторної

оптимізаці їз використанням штрафних функцій

Об'єднання ГА і НМ відомо під абревіатурою COGANN (Combinations

of Genetic Algorithms and Neural Networks) [92]. Це об'єднання може бути

допоміжним (supportive) або рівноправним (collaborative).

Допоміжне об'єднання двох методів означає, що вони застосовуються

послідовно один за одним, причому один з них служить для підготовки

даних, використовуваних при реалізації другого методу.

Page 96: Dis karapetyan

96

При рівноправному об'єднанні обидва методи застосовуються

одночасно. Класифікація цих типів об'єднань генетичних алгоритмів і

нейронних мереж представлена в таблиці 3.2.

У наступній частині цього розділу будуть обговорюватися рівноправне

об’єднання ГА и НМ, які відбиті в таблиці, що приводиться. Підхід,

заснований на використанні генетичного алгоритму для забезпечення роботи

нейронної мережі, схематично представлено на рис. 3.11.

Таблиця 3.2 - Класифікація типів об'єднань ГА і НМ

Характеристика

об'єднання

Приклади використання

Генетичні алгоритми і

нейронні мережі

застосовуються незалежно

для вирішення однієї і тієї

ж задачі

Однонаправленні нейронні мережі,

мережі Кохонена із самоорганізацією

і генетичні алгоритми в задачах

класифікації

Допоміжне

Нейронні мережі для

забезпечення генетичних

алгоритмів

Формування вихідної популяції для

генетичного алгоритму

Генетичні алгоритми для

забезпечення нейронних

мереж

Аналіз нейронних мереж

Підбір параметрів або перетворення

простору параметрів

Підбір параметрів або правила навчання

(еволюція правил навчання)

Рівноправне

Генетичні алгоритми для

навчання нейронних мереж

Еволюційне навчання мережі

(еволюція ваг зв'язків)

Генетичні алгоритми для

вибору топології нейронної

мережі

Еволюційний підбір топології мережі

(еволюція мережевої архітектури)

Системи, що об’єднують

адаптивні стратегії

генетичних алгоритмів і

нейронних мереж

Нейронні мережі для вирішення

оптимізаційних задач із застосуванням

генетичного алгоритму для підбору ваг

мережі Реалізація генетичного алгоритму за

допомогою нейронної мережі

Застосування нейронної мережі для

реалізації оператора схрещування в

генетичному алгоритмі

Можливості застосування ГА для забезпечення роботи нейронних

мереж зараз ще досліджуються. До нечисленних зворотних випадків

Page 97: Dis karapetyan

97

відноситься гібридна система, призначена для рішення задачі трасування, що

класифікується як приклад допоміжного об'єднання НМ і ГА.

Рисунок 3.11 – Допоміжне об'єднання ГА з НМ еволюційного

алгоритму

Рисунок 3.12 – Допоміжне об'єднання НМ мережі з ГА

ДАНІ

(НАПРИКЛАД

ПОЧАТКОВІ ВАГИ)

ЗАДАЧА

ГЕНЕТИЧНИЙ

АЛГОРИТМ

РІШЕННЯ

НЕЙРОННА

МЕРЕЖА

ДАНІ

(НАПРИКЛАД

вихідна популяція)

ЗАДАЧА

НЕЙРОННА

МЕРЕЖА

РІШЕННЯ

ГЕНЕТИЧНИЙ

АЛГОРИТМ

НЕЙРОННА МЕРЕЖА

Page 98: Dis karapetyan

98

У цій системі ГА використовується в якості оптимізаційної процедури,

призначеної для знаходження найкоротшого шляху. НМ застосовується при

формуванні вихідної популяції для генетичного алгоритму. Цей підхід

схематично ілюстровано на рис. 3.12.

ГА також застосовується для підбора параметрів навчання - найчастіше

швидкості навчання (learning rate) і для алгоритму зворотного поширення

похибки. Таке адаптивне уточнення параметрів алгоритму зворотного

поширення (вони кодуються в хромосомах) у результаті еволюції може

розглядатися як перша спроба еволюційної модифікації правил навчання.

Замість безпосереднього застосування ГА для підбору параметрів навчання

розвивається еволюційний підхід, спрямований на побудову оптимального

правила (алгоритму) навчання.

Приведемо два найважливіших аргументи на користь застосування ГА

для оптимізації ваг НМ. Насамперед, ГА забезпечують глобальний перегляд

простору ваг і дозволяють уникати локальні мінімуми.

До рівноправного об'єднання ГА і НМ (табл.3.6) варто віднести

комбінацію адаптивних стратегій обох методів, що складає єдину адаптивну

систему. Можна привести три приклади систем такого типу.

Перший з них - це НМ для оптимізаційної задачі з генетичним алгоритмом

для визначення ваг мережі.

Другий приклад відноситься до реалізації ГА за допомогою НМ. У

цьому випадку нейронні підсистеми застосовуються для виконання

генетичних операцій репродукції і схрещування.

У третьому прикладі, трохи схожому на попередній, НМ також

застосовується як оператор схрещування в ГА, призначеному для рішення

оптимізаційних задач.

Представлені приклади стосуються такого рівноправного об'єднання

ГА і НМ, що у результаті дозволяє одержати більш ефективний алгоритм,

який поєднує кращі якості обох методів.

З точки зору структури даний метод агрегує такі дві альтернативи. З

Page 99: Dis karapetyan

99

одного боку, ШНМ виконує роль генератора початкових популяцій для ГА, а

з другого боку метод ГА виступає у якості ускладненої процедури

оптимізації фітнес-функції. Рішення, що описані, починаючи з єтапу

побудови розвязку, повторюють до виконання умов останову алгоритма ГА -

ШНМ.

Доречність запропонованого комбінування можна довести такими

міркуваннями. Інтеграція цих концепцій потенційно підвищує ймовірність

знаходження більш точних рішень з таких міркувань. По-перше, обидва

базових метода представляють два принципово відмінних підходи

дослідження простору рішення, а по друге, запропоноване поєднання

означених концепцій узгоджено з ідеологією обох методів. При паралельної

реалізації можливо створювати більш складу взаємодію базових методів – ГА

і ШНМ. Розробка та дослідження паралельних інтегральних метаеврістік –

один з важливих напрямків подальших досліджень [57, 127].

3.5 Алгоритмізація еволюційного методу адаптивної маршрутизації

На етапі генерації таблиці маршрутизації спочатку вводяться такі

поняття, як: адреса мережі призначення, маска мережі призначення (для

IPv4-мереж маска / 32) та адреса шлюзу в мережі, на яку необхідно надіслати

пакет, що прямує до вказаної адреси призначення, інтерфейс (залежно від

системи це може бути порядковий номер, GUID або символьне ім'я

пристрою), метрика. В заголовках протоколів ІР та OSPF є інформація про

бажану якість обслуговування пакету, яка виражена у кодах TOS (Type of

Service) таким чином: 0 - Звичайний сервіс; 1 - Мінімізація вартості;

4 - Максимальна надійність; 8 - Максимальна перепускна здатність;

16 - Мінімальна затримка.

Біт E=1, якщо маршрутизатор є граничним для автономної системи,

біт В=1, якщо маршрутизатор є граничним для зони.

На основі саме цих даних і відбувається генерація таблиці

маршрутизації.

Page 100: Dis karapetyan

100

Принцип генерації наступний. Спочатку програма виділяє зони в AS,

де розміщені внутрішні шлюзи та шлюзи-сусіди. Далі випадковим чином,

рівномірно по каналах звязку, але якомога ближче до вимог протоколів

маршрутизації, розміщуються записи про інтерфейси портів кожного шлюзу

для інформаційних потоків; для кожного каналу (лінії) звязку вибирається

зона, або AS, магістральна зона з набору придатних саме для цього трафіку

(даних, медіа). При цьому враховуються наступні дані: а) максимальна

пропускна здатність каналу звязку; б) мінімальна затримка пакета;

в) максимальна надійність; г) мінімізація вартості.

Загальний алгоритм оптимізації вибору маршруту за допомогою

еволюційного моделювання складається з декількох етапів (рис. 3.13).

Рисунок 3.13 – Блок-схема роботи еволюційного алгоритму

У більшості випадків таблиця маршрутизації, особливо статичної,

формується адміністратором, починаючи із нижньої ланки мереж

Початок

формування

початкової популяції

оцінка придатності

хромосом

задоволення умов

завершення пошуку

вивести

результат

кінець

відбір

схрещування

мутація

так

ні

Page 101: Dis karapetyan

101

провайдера, за технологією, схожою до одного із алгоритмів маршрутизації

(протоколи RIP, OSPF). Визначається шлюз за замовчуванням, та інші дані,

що необхідні для контролю та діагностики каналів, а також встановлюють

межі параметрів каналів по навантаженню на мережу, балансуванню трафіка,

та пріоритетам діагностичних даних і даних мережевого керування.

Далі вибирається наступний маршрутизатор (другий за пріоритетом),

для нього формується відповідна його вимогам таблиця маршрутизації, але з

урахуванням таблиці маршрутизації першого маршрутизатора. Такими є

основні кроки і принципи формування таблиць маршрутів у AS. Запишемо їх

формально у вигляді методу, який має такі кроки:

Крок 1. Виконати ранжування шлюзів за пріоритетами, тобто

,...21 m

LLL якщо ,...21 m

ppp (3.13)

де i

L – i -й шлюз, i

p – його пріоритет, m – загальна кількість шлюзів,

mi ,1 , Km й існує не менше ( 1K )-ї пари (1

,jj

pp ), для якої в (3.13)

виконується нерівність 1

jj

pp , 1,1 mj .

Крок 2. Для кожного шлюза в AS виконати ранжування його вимог за

індивідуальними перевагами, тобто

in

iiiVVV ...21 , якщо in

iiiqqq ...21 , (3.14)

де j

iV – j -а вимога i -го шлюза,

in – кількість вимог у i -го шлюза, j

iq –

значення пріоритетності j -ї вимоги i -го шлюза, mi ,1 .

Крок 3. 1i (номер шлюза).

Крок 4. ПОКИ mi виконувати.

Крок 4.1. 1l .

Крок 4.2. Для 1j до i

n виконати

Крок 4.2.1. ЯКЩО j -а вимога i -го шлюза виконується, то 1 ll .

КЯ.

КЦ.

Page 102: Dis karapetyan

102

Крок 4.3. ЯКЩО jl , то формуємо таблицю маршрутів i -го шлюзу, 1 ii

. КЯ.

Крок 4.4. ЯКЩО jl , і 1i

n , і 1i , то таблицю маршрутизації створити

неможливо (не виконується жодна вимога шлюза з найвищим пріоритетом –

вироджений випадок). КЯ.

Крок 4.5. ЯКЩО jl , і 1i

n , і 1i , то 1 ii . КЯ.

Крок 4.6. ЯКЩО jl , і 1i

n , то 1ii

nn . КЯ.

КЦ.

Кроки наведеного методу реалізовуються у припущенні абсолютної

домінантності. Це означає, що вимоги шлюза з вищим пріоритетом будуть

коригуватись тоді, коли не виконується жодна із вимог наступного за

пріоритетом шлюза. Зауважимо неєдиність такого припущення при складанні

дерева маршрутів (таблиці маршрутизації).

Оскільки теоретичне дослідження алгоритмів комбінованої оптимізації

вкрай рідко дозволяє отримувати практично застосовані результати,

прийнято аналізувати показники ефективності шляхом проведення

обчислювальних експериментів. Прикладом задачі, яку можна вирішити за

допомогою як НМ, так і ГА, може служити класична модель - задача

комівояжера (TSP).

Постановка задачі комівояжера. TSP є однією із задач теорії

комбінаторики. Вона належить до числа NP-повних задач. [12]

Проблема формулюється наступним чином: є деяка група міст, відомі

відстані між ними, необхідно знайти найкоротший маршрут разового

відвідування кожного міста з поверненням в стартову точку. Міста, які

необхідно відвідати, позначимо буквами А, В, С ..., відстані між ними

позначимо dAB, dAC,… dBC… Потрібно знайти такий маршрут руху, при якому

сумарна пройдена відстань буде мінімальною. В цьому випадку

впорядкована множина з n міст буде розв’язком.

Page 103: Dis karapetyan

103

Послідовність відвідування міст позначимо матрицею п х п, рядки

будуть відповідати містам послідовності, а стовпці - номерам міст.

Наприклад, маємо п'ять міст А, В, С, D, Е, а послідовність обходу цих міст

задана матрицею (3.15). [44].

З матриці видно, що місто С відвідується першим, місто А- другим,

місто Е - третім і т. д. Довжина маршруту дорівнює dCA + dAE+…+dDC.

Оскільки кожне місто відвідується тільки один раз, тому в кожному стовпці і

в кожному рядку може бути тільки одна одиниця. Матриця являє собою

стани НМ, яка містить N=n2 нейронів. Із n!/2n маршрутів вибирається один з

найменшою довжиною. У цьому полягає суть завдання. Кожен нейрон має

два індекси, які описують його стан (місто і порядковий номер у маршруті).

Для розв’язання даної задачі складається функція енергії для НМ,

призначеної для розв’язання завдачі комівояжера. Нехай стан з найменшою

енергією відповідає найкоротшому маршруту. У загальному вигляді, така

функція для розглянутої НМ може мати наступний вигляд [82]:

, (3.16)

де – штучна енергія мережі, wij– вага від входу нейрона i до входу нейрона j,

Yj – вихід нейрона j, Ij– зовнішній вхід нейрона j, Tj – поріг нейрона j.

Зміна стану j-нейрона викликає зміну енергії, яку можна обчислити по

формулі:

(3.17)

де - зміна вихода j-го нейрона.

j

j

j

j

jjji

i j

ij YTYIYYwE 2

1

E

jjjiij YTIYwE

jY

1 2 3 4 5

А 0 1 0 0 0

В 0 0 0 1 0

С 1 0 0 0 0

D 0 0 0 0 1

Е 0 0 1 0 0

(3.15)

Page 104: Dis karapetyan

104

Енергія стійкого стану менша, ніж у нестійкого. З безлічі станів

необхідно знайти такий, при якому досягається мінімальне значення енергії.

Функція енергії повинна підтримувати стійкі стани в матриці (3.15), а також

підтримувати ті можливі розв’язання, які відповідають коротким

маршрутам. Цим вимогам задовольняє наступна функція енергії (при цьому,

Yxj= 0,1). [82].

(3.18)

Перші три члена виразу (3.18) підтримують першу вимогу, четвертий

член - другу; А, В, С, D - додатні множники. Перший член дорівнює нулю,

якщо кожен рядок х містить не більше однієї одиниці. Другий член дорівнює

нулю, якщо кожен стовпець містить не більше однієї одиниці. Третій член

дорівнює нулю, якщо в матриці виду (3.15) п одиниць. Таким чином, без

урахування четвертого члена функція енергії має мінімуми (Е=0) у всіх

станах, представлених матрицею з однією одиницею в кожному стовпці і

кожному рядку. Всі інші стани мають більше значення енергії. Короткі

маршрути підтримує четвертий член. У ньому індекси i берутся по mod n, для

того щоб показати, що i-те місто сусіднє в маршруті з (n–1)-м і першим,

тобто Yk,n+j =Ykj. Четвертий член чисельно дорівнює довжині маршруту. [83].

Якщо розкрити дужки і прирівняти коефіцієнти квадратичних і

лінійних членів, отримаємо матрицю зв'язків і зовнішні взаємодії:

wxi,kj = -Aδxk(1-δij) - Bδij (1-δxk) - C - Ddxk (δj,i+1+δj,i-1) , (3.19)

де, δij = 1, якщо i = j, в іншому випадку δij = 0. Крім того, кожен нейрон має

змішану вагу Ixi= Cn.

Перший член в (3.19) задає зв'язки нейронів в кожному рядку, другий -

всередині кожного стовпця, третій і четвертий задають глобальні зв'язки. І в

(3.18), і в (3.19), три перші члена відповідають за загальні обмеження для

будь-якої задачі комівояжера і приводять НМ в стійкий стан. Четвертий член

x xk i

ikikxixk

x i

xi

i x k

kixi

x i j

xjxi YYYdD

nYC

YYB

YYA

E 1,1,

2

11 2222

x xk i

ikikxixk

x i

xi

i x k

kixi

x i j

xjxi YYYdD

nYC

YYB

YYA

E 1,1,

2

11 2222

Page 105: Dis karapetyan

105

керує тим, який з n!/2n можливих різних фінальних станів відповідає

найкоротшим маршрутом.

При спільному розвязанні задачі пошуку маршрутів важливим є

взаємозв'язок між маршрутизацією і плануванням послідовності вибору

напряму для передачі по каналах зв'язку, які використовуються. Правильний

вибір маршруту дозволяє спланувати роботу так, щоб мінімізувати час її

виконання. У цьому випадку ступінь вузла визначається як сума всіх вхідних

та вихідних потоків. Показник якості роботи необхідно погоджувати зі

структурою НМХ. За аналогією з моделлю, яка була розглянута вище,

показник «енергії перевантаження» задається формулою :

(3.20)

де Pij – j-ий маршрут між i-ою парою джерело-приймач, - число

вузлів, які спільно використовують маршрути Pij і Pkl, V – вихідна напруга

нейронів; Np(i)– число варіантів маршрутів, визначених між i–ою парою

джерело-приймач (SD).

{

Необхідно якомога краще мінімізувати значення Е з урахуванням того,

що для кожної пари SD (вихідна точка – пункт призначення) вибирається

тільки один маршрут (тобто, Vij=1 для єдиного значення j для кожного

значення i). У цьому випадку енергія перевантаження відповідає сумі числа

загальних вузлів всіх вибраних маршрутів (по одній для кожної SD пари),

узятих попарно.

Розглянемо модель НМХ, яка використана для вибору маршруту між

декількома SD парами в мережі. Вихідні напруги нейронів такої НМ

наближаються до двійкових значень у міру переходу мережі до стану стійкої

рівноваги з мінімальною "енергією". З'єднання між нейронами i і j

описуються вагою Tij, яка додатня при збудливому з'єднанні і від’ємна при

klij

N

i

N

ikk

iN

j

kN

k

klijb VVPPESD SD p p

1 ,1 1 12

1

klij PP

Page 106: Dis karapetyan

106

заборонному з'єднанні. У розглянутій моделі НМ між кожною парою SD

визначається один нейрон.

Відбувається еволюція НМ від деякого початкового стану до стану

рівноваги, який відображає мінімум функції енергії Ляпунова. За аналогією її

можна записати через ваги з'єднань, струми зміщень і напруги виходів

нейрона. Формула має такий вигляд:

(3.21)

У виразі (3.21), цільова функція, яка моделюється за допомогою НМХ,

включає зважені суми добутків пар вихідних напруг нейронів і вихідних

напруг, узятих окремо. Tij,kl – вага з’єднання між нейронами ij та kl; –

струм зміщення, що прикладається до нейрона ij, Np(i) – число маршрутів SD.

У розглянутій моделі ваги з'єднань є симетричними, (тобто Tij,kl=Tkl,ij). Ця

симетрія гарантує збіжність до стійкого стану [82]. Загальне число нейронів

N задається як ∑ ( ) = . Відповідно, ваги з’єднань Tij,kl є елементами

матриці розмірності N*N. [143].

Задачу оптимізації з обмеженнями можна звести до задачі без

обмежень, за допомогою використання множників Лагранжа. Функція енергії

перевантаження при цьому буде виглядати так:

∑ − ∑ ∑ ( )

(3.22)

Обмеженнями для задачі виступають відповідні члени рівняння енергії

перевантаження EС (дорівнюють нулю, якщо обмеження виконується) і

формулюється так [84]:

на SD пару активізується не більше одного маршруту;

в мережі вибирається строго NSD маршрутів;

на SD пару вибирається строго один маршрут.

Підстановка виразів для Еb і Еc в формулу (3.22) дає:

∑ ∑ ∑ ∑ | |

( )

( )

∑ ∑ ∑

( )

( )

ij

N

i

lN

j

ij

N

i

N

k

lN

j

lN

i

klijklijtotal IVVVTEИП pИП ИП p p

1

)(

11 1

)(

1

)(

1

,2

1

ijI

Page 107: Dis karapetyan

107

(∑ ∑ −

( )

)

∑ (∑ −

( )

)

∑ (∑ −

( )

)

− ∑ ∑

( )

Важливим питанням розробки моделі НМХ, а також подальшого

моделювання роботи системи є вибір коефіцієнтів µc. Фактично, будь-які

значения µc приведуть до отримання справедливих виразів Еtotal. Але, у

випадку, коли система будее еволюціонувати, можна гарантувати тільки

локальний мінімум, при якому кінцевий стан залежить від початкового, з

якого почалася еволюція. У більшості досліджень, присвячених

використанню НМХ, величини коефіціентів покладають постійними, кращі

значення яких визначаються в ході випробувань при програмному

моделюванні. Оцінити якість розв’язання завдання звичайно не можливо,

тому що число можливих рішень для великих мереж дуже велике [78].

Висновки до розділу 3

У третьому розділі обґрунтовано використання еволюційного

моделювання для розв’язання задачі адаптивної маршрутизації пакетів даних

в мережах. Представлено особливості формування структури розв’язку задачі

та початкової популяції. Здійснено постановку задачі багатокритеріальної

оптимізації.

Розроблено комбінований еволюційний метод оптимізації фітнес-

функції на основі комбінованого використання ГА та ШНМ, який дозволяє

адаптуватися до перевантаження мережі за рахунок уточнення енергетичної

функції та скорочує час на пошук прийнятного маршруту, і реалізує принцип

машинної адаптації і навчання, що дало можливість підвищити ефективність

адаптивної маршрутизації пакетів даних в комп’ютерних мережах.

Отримали подальший розвиток методи еволюційної спрямованої

оптимізації на основі їх адаптації до розв’язання дискретної задачі

формування ТМ шляхом уточнення значень коефіцієнтів функції Ляпунова,

що дало можливість скоротити затримку в чергах на обслуговування, тобто

(3.23)

Page 108: Dis karapetyan

108

підвищити ефективность алгоритму адаптивної маршрутизації пакетів даних

в комп’ютерних мережах.

Розроблено алгоритм реалізації еволюційного методу оптимізації

фітнес-функції на основі ГА та ШНМ, за яким буде виконана програмна

реалізація.

Результати третього розділу опубліковані в роботах[64, 77,78, 81,83].

Page 109: Dis karapetyan

109

Розділ 4. РЕАЛІЗАЦІЯ МЕТОДУ ОПТИМІЗАЦІЇ ЗАДАЧІ

МАРШРУТИЗАЦІЇ ТА ВЕРИФІКАЦІЯ ОДЕРЖАНИХ РЕЗУЛЬТАТІВ

4.1 Програмна реалізація інформаційно-аналітичної системи з

використанням комбінованого еволюційного методу

4.1.1 Обґрунтування вибору засобів створення програмного продукту

Сучасні технології розробки програмного продукту досягли достатньо

високого рівня розвитку із надання ефективних та зручних засобів як для

розробки програмних систем так і для використання результатів їх роботи.

Для того, щоб програмний продукт ефективно виконував свої функції,

необхідно провести комплексну оцінку кожного з найбільш прийнятних

варіантів та вибрати найбільш оптимальний. Однією з найпоширеніших

технологічних платформ розробки додатків є технологія .NET.

Платформа .NET представляє собою середовище розробки, що

задовольняє потреби в сфері розробки прикладних додатків. Порівняно із

іншими існуючими технологіями .NET має певні особливості: об’єктно-

орієнтована модель платформи; хороший дизайн класів; незалежність від

мови програмування; ефективність доступу до даних; розділення коду;

підвищення безпеки.

Для розробки програми була обрана мова програмування C# яка

працює з .NET Framework версії 4.0 під ОС Windows.

Вибір мови програмування зумовлений рядом переваг:

- платформа .NET ґрунтується на єдиній об’єктно-орієнтованій моделі;

- «збиральник сміття», який входить в склад платформи .NET, звільняє

ресурси, що захищає програми від втрат пам’яті і від необхідності звільняти

ресурси;

- будь-яка програма, розроблена за допомогою .NET, є автономною (не

залежить від інших програм та від ОС);

- використання безпечних типів даних, що підвищує надійність

програми та сумісність;

Page 110: Dis karapetyan

110

- програма взаємодіє з єдиною моделлю обробки помилок;

- програми, написані на різних мовах, можуть легко взаємодіяти;

- можливість використання C# для написання динамічних web-

сторінок;

- вбудована підтримка автоматичної генерації XML-документації.

Об’єктно орієнтовані мови програмування як C# та Java є прямими

нащадками мови С++, адже ці мови спрямовані на вдосконалення та

полегшення написання програми. Для ефективної роботи в оточенні CLR і

підвищення ефективності роботи програмістів у мову C# було внесено

значну кількість спрощень порівняно з C++. Таким чином базовою мовою

програмування було обрано С#, якa для нашого випадку є найбільш

сприятливою.

При дослідженні можливості розв’язання задачі пошуку найкоротшого

шляху графу з використанням функції Ляпунова для НМХа скористалися

пакетом прикладних програм MATLAB 7.11.

Середовищі MATLAB об'єднує математичні обчислення, візуалізацію і

потужну технічну мову; дозволяє інтегрувати зовнішні процедури, написані

на мовах С, Java з MATLAB - додатками.

4.1.2 Структура програми

Перед складанням структури програми інформаційно-аналітичної

системи дамо стислий опис дослідження енергетичної функції знаходження

оптимальних шляхів на графі. Однією з перших робіт із розв’язання задачі

маршрутизації використання НМ є робота Хопфілда. Основним результатом,

запропонованим в роботі [18], є використання функції Ляпунова, яка має

вигляд:

∑∑∑

∑∑∑

(∑∑ −

)

∑∑ ∑ ( )

( )

Page 111: Dis karapetyan

111

де ( ̅̅ ̅̅ ) – вагові коефіцієнти, що дозволяють знаходити

замкнутий шлях на графі, довжина якого гарантовано близька або дорівнює

мінімальному шляху.

Використання даної функції робить можливим знайти маршрути на

довільному графі і між довільними вузлами s і d. Вона має один істотний

недолік: для знаходження шляху потрібно точно знати, яка кількість вузлів

буде задіяна у формуванні шляху. У роботі [143] запропоновано

вдосконалена функція Ляпунова, але при її реалізації виявилося, що з ростом

числа вузлів мережа схильна знаходити шляхи неоптимальної довжини, а

також циклічні шляхи (петлі). Для подолання наведених труднощів у

роботах [80, 82] запропоновано регулювати число дуг, що входять до

маршруту. Була розроблена функція енергії, яка б мінімізувала і сумарну

«вартість» маршруту, і кількість дуг, з яких складається маршрут, та в основі

якої лежить вираз (4.1):

∑ ∑ ( ∑ ( − )

= ≠

)

∑ ∑

= ≠

=

= ≠

=

∑ (∑

= ≠

∑ − = ≠

)

∑ ∑ ( − )

= ≠

=

=

∑ ∑ ( ∑

= ≠

) = ≠

=

∑ ∑

= ≠

= (4.2)

{

{

де hij - елемент матриці штрафів (H) за використання дуги з вузла i у вузол j,

{

У виразі (4.2) введено новий член з коефіцієнтом µ6, використання

якого забезпечує мінімізацію кількості дуг за рахунок обліку функцій

штрафу за кожну додатково використану дугу. Крім того, при використанні

Page 112: Dis karapetyan

112

функції (4.2) коефіцієнт µ6, є таким, що впливає на швидкість збіжності НМХ

і якість обраного рішення.

ІАС реалізована в середовищі Visual Studio 2010 з додатковим

підключенням баз даних в Excel і має наступну модульну структуру

(рис. 4.1).

Рисунок 4.1 – Структурна схема інформаційно-аналітичної системи

«Evolution»

НМХ виступає генератором початкових популяцій для ГА. Механізм

ГА використаний, щоб знайти рішення оптимізаційної функції за значно

коротший термін. Він може знайти кращий розв’язок, аніж алгоритм

Дейкстри і може стати практично ідеальним рішенням для розрахунку 100

турів по вузлах менш ніж за хвилину. Є кілька основних кроків у вирішенні

задачі: по-перше, створити групу з багатьох випадкових турів в популяції.

Цей алгоритм використовує «жадібні» обчислення для розрахунку

Запуск файлу

Evolution.exe

Стан

завершення

Блок під’єднання

бази даних

Введення/виведення/

редагування даних Збереження

змін

Головна форма

інтерфейсу

«TSP»

Очікування в

робочому стані

Постійна

ініціалізація

Блок виконання

алгоритму

Блок графічного

відображення

результатів

Блок аналізу

збіжності

алгоритму

Блок розрахунку

цільової функціті

Page 113: Dis karapetyan

113

початкової популяції. По-друге, вибрати з двох кращих (найкоротших) турів

батьків в популяції і скомбінувати їх, зробити двох нових нащадків.

Сподіваючись, що ці нащадки будуть кращими, ніж будь-який з батьків.

Нащадки турів мутують, аби запобігти ідентичності всіх турів у

популяції. Нові нащадки турів «дитин» замінюють собою довжелезні тури в

популяції. Чисельність особин в популяції залишається незмінною. Нові тури

«дітей» неодноразово створюються до досягнення бажаної мети.

Двома найскладнішими питаннями, з використанням ГА для

розв'язування задачі є питання кодування туру і алгоритм кросовера, який

використовується, щоб об'єднати два тури батьків, для отримання нащадків

туру. Досліджена мережа має вигляд зв'язного графа G = (V, E), з N вузлами

(рис.4.2). Метрика визначається вартістю шляху між вузлами. Мета полягає в

тому, щоб знайти шлях з мінімальною вартістю між вузлом-джерелом Vs і

призначенням Vd.

Рисунок 4.2 - Топологія мережі

Ініціалізація таблиці маршрутизації. Модуль використовується для

генерації всіх можливих шляхів від даного вузла до всіх інших вузлів в

мережі. Вартість зв’язків між вузлами мережі вказана в табл. 4.1.

Таблиця 4.1 - Вартість шляхів між вузлами

1 2 3 4 5 6 7 8 9 10

1 0 15 10 0 0 0 0 0 0 0

2 15 0 3 8 0 0 0 0 0 0

3 10 3 0 0 9 0 0 0 0 0

4 0 8 0 0 0 7 5 0 0 0

5 0 0 9 0 0 6 2 0 0 0

6 0 0 0 7 6 0 0 12 0 0

7 0 0 0 5 2 0 0 0 10 0

8 0 0 0 0 0 12 0 0 10 6

9 0 0 0 0 0 0 10 10 0 8

10 0 0 0 0 0 0 0 6 8 0

Vs

10 6

Vd

1

3

8 6

9 7

4 2

5

1

0

9 2 1

0 8

8 7 1

2 1

5

1

0

5 6 3

Page 114: Dis karapetyan

114

Генерація оптимального шляху. Цей модуль виконує пошук

оптимального шляху з використанням ГА.

Розглянемо різні шляхи від вузла джерела до вузла призначення згідно

топології мережі на рис. 4.2:

Шлях 1: 1-3-5-7-9-10

Шлях 2: 1-2-4-7-9-8-10

Шлях 3: 1-2-4-6-8-10

Шлях 4: 1-2-3-5-6-8-10

Шляхи кодуються з використанням двійкових чисел, де кожен вузол

кодується 4 бітами, як показано в табл. 4.2.

Таблиця 4.2 - Представлення шляхів у двійковій системі

Вузол Двійковий код

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

10 1010

Тепер згідно таблиці 4.2 хромосоми (шляхи) мають наступний вигляд:

Хромосома A: 0001 0011 0101 0111 1001 1010

Хромосома B: 0001 0010 0100 0111 1001 1000 1010

Хромосома C: 0001 0010 0100 0110 1000 1010

Хромосома D: 0001 0010 0011 0101 0110 1000 1010

Як тільки початковий вузол (вузол-джерело) отримує чисельність

населення “m” (скажімо m=10) хромосом, тоді виконуються наступні кроки:

1) розраховується придатність кожної хромосоми. Фітнес-функція

обчислюється за формулою (4.3):

∑ ( ) =

(4.3)

Page 115: Dis karapetyan

115

де ( ) – вартість шляху між вузлами.

Вартість шляхів вказана на рис. 4.2. Якщо шлях недосяжний, його

фітнес-функція дорівнює нулю;

2) в якості батьків обираються дві найкращі хромосоми

(використовуючи метод селекції «колесо-рулетки»);

3) виконується кроссовер (схрещування) з імовірністю 0,7;

4) виконується мутація з імовірністю 0,01;

5) діти поміщаються у популяцію та шукаються хромосоми з кращим

значенням фітнес-функції;

6) якщо критерій зупинки не досягається, тоді повторюють кроки 1-6.

Якщо критерій досягнуто, тоді виконується передача даних до вузла-

призначення;

7) оновити шлях для того, щоб дізнатися поточний стан мережі.

Розрахунок придатності кожної хромосоми. За формулою (4.3)

розраховуємо придатність кожного згенерованого шляху:

∑ ( ) =

∑ ( ) =

∑ ( ) =

∑ ( ) =

Результати відобразимо у табл. 4.3.

Таблиця 4.3 – Значення фітнес-функції для різних шляхів

Популяція Вартість шляху Значення фітнес функції

Хромосома А 39 0.0256

Хромосома B 54 0.0185

Хромосома C 48 0.0208

Хромосома D 51 0.0196

Згідно з результатами з табл. 4.3, мінімальна вартість шляху становить

39 зі значенням фітнес функції 0.0256, а максимальна – 54 і 0.185.

Page 116: Dis karapetyan

116

Розглянемо два рядки:

Батьківська особина А 4 8 7 3 6 5 1 10 9 2

Батьківська особина Б 3 1 4 2 7 9 10 8 6 5

Після схрещування різні гени хромосоми можуть набути однакових

значень:

Батьківська особина А 4 8 7 2 7 9 1 10 9 2

Батьківська особина Б 3 1 4 3 6 5 10 8 6 5

Після кросоверу, потомство виглядає таким чином:

Нащадок А 4 8 6 2 7 9 1 10 5 3

Нащадок Б 2 1 4 3 6 5 10 8 7 9

Кожен нащадок містить генетичну інформацію, яка отримана від обох

батьків. Згенеровані нащадки мають бути підтверджені. Підтвердження

здійснюється перевіркою нащадків з усіма можливими шляхами. Якщо

нащадки належать усім можливим маршрутам, то обчислюється їх функція

придатності і посилається до наступної операції. Якщо нащадки не належать

до всіх можливих маршрутів, то вони виключаються, так як маршрут не

містить допустимих з'єднань вузлів в мережі.

Тепер застосуємо оператор кросоверу для подальших обчислень.

Оберемо дві точки схрещування:

Хромосома A: 0001 0011 0101 0111 1001 1010

Хромосома B: 0001 0010 0100 0111 1001 1000 1010

Хромосома C: 0001 0010 0100 0110 1000 1010

Хромосома D: 0001 0010 0011 0101 0110 1000 1010

Виділені біти хромосоми А міняються місцями з бітами B, а C з D. В

результаті отримуємо:

Хромосома A: 0001 0011 0101 0111 1001 1010

Хромосома B: 0001 0010 0100 0111 1001 1000 1010

Хромосома C: 0001 0010 0100 0101 0110 1010

Хромосома D: 0001 0010 0011 0110 1000 1000 1010

Тепер шляхи виглядають наступним чином:

Page 117: Dis karapetyan

117

Шлях 1 (A): 1-3-5-7-9-10

Шлях 2 (B): 1-2-4-7-9-8-10

Шлях 3 (C): 1-2-4-5-6-10

Шлях 4 (D): 1-2-3-6-8-8-10

В результаті шляхи C і D більше не використовуються, позаяк немає

зв’язків між вузлами 4 і 5, та 3 і 6. Отже, їхня фітнес-функція дорівнює нулю

і цей шлях помічається як недосяжний. Таблиця 4.4 містить значення фітнес-

функції після кросоверу.

Таблиця 4.4 – Значення фітнес-функції після кросоверу

Популяція Вартість шляху Значення фітнес функції

Хромосома А 39 0.0256

Хромосома B 54 0.0185

Хромосома C 0 0

Хромосома D 0 0

Застосовуючи мутацію до хромосом, отримуємо:

Хромосома A: 0001 0011 0101 0110 1001 1010

Хромосома B: 0001 0010 0011 0111 1001 1000 1010

Отже, після використання мутації, не отримано оптимального

результату, тому робота алгоритму зупиняється після кросоверу з знайденою

мінімальною вартістю шляху 39 (1-3-5-7-9-10).

Мета ІАС « EVOLUTION» – знайти найкоротшу відстань між N

різними вузлами. Перевірка всіх варіантів проходу по N вузлам буде N!. Для

розрахунку 30 турів по вузлу доведеться виміряти загальну відстань в

різних турів. Припускаючи близько трильйона операцій за

секунду, це займе 252.333.390.232.297 років. Додавання ще одного вузла

викличе збільшення кількості розрахунків на 31!. Очевидно, що такий шлях

обчислень є неприпустимим.

Для управління роботою ГА використані 6 основних параметрів та 2

додаткових, які можуть бути налаштовані (рис. 4.3):

321065.2

Page 118: Dis karapetyan

118

Рисунок 4.3 – Вікно програми рішення задачі TSP

Чисельність популяції - первісного числа випадкових турів, які

створюються, коли алгоритм починає роботу.

Розмір групи – кожне покоління, це кількість турів, випадково вибране

з популяції. 2 кращих тури – батьки. Гірші 2 тури будуть замінені дітьми.

Великий розмір групи приведе до того, алгоритм буде працювати швидше,

але він не зможе знайти найкраще рішення.

Мутація % - відсоток, що кожний нащадок після кросоверу буде

проходити мутацію. Після мутації туру, з вузлів випадково переїжджає з

однієї точки туру на іншу.

Сусідні вузли - в рамках «жадібної» вихідної популяції, ГА дозволяє

зв’язувати вузли, які знаходяться близько один до одного, щоб створити

початкові тури. При створенні вихідної популяції це число вузлів, які

вважаються близькими.

Сусідні вузли Коефіцієнт % - це відсоткова вірогідність, що будь-який

із зв’язків у випадковому турі у вихідній популяції воліє використовувати

довколишні вузли, а не абсолютно випадкові вузли.

Page 119: Dis karapetyan

119

Максимальна кількість поколінь - кількість кросоверів для

завершення алгоритму.

Випадкове зерно - це зерно для генератора випадкових чисел. Маючи

фіксовані, а не випадкові зерна, можна повторювати попередні результати

до тих пір, поки всі інші параметри такі ж.

Список вузлів - дозволяє імпортувати списки з вузлами XML файлів.

4.2 Аналіз результатів досліджень

Застосовуючи даний алгоритм при різних початкових умовах

(чисельність популяцій, відсоток мутацій, вага найближчих вузлів),

отримуємо такі результати.

Дослід 1. 40 вузлів.

Розмір популяції 10000, 15% мутації, вага найближчих вузлів 0%.

Результати дослідів представлені на рисунку 4.4.

Рисунок 4.4 – Робота програми. Дослід 1

Дослід 2. 45 вузлів.( рисунок 4.5)

Розмір популяції 10000, 15% мутації, вага найближчих вузлів 0%.

Page 120: Dis karapetyan

120

Рисунок 4.5 – Робота програми. Дослід 2

Дослід 3. 45 вузлів. (рисунок 4.6)

Розмір популяції 10000, 5% мутації, вага найближчих вузлів 50%.

Рисунок 4.6 – Робота програми. Дослід 3

Page 121: Dis karapetyan

121

На рисунку 4.7 наведений графік результатів роботи ГА (табл.4.5) для

трьох різних дослідів.

Рисунок 4.7 – Еволюція найкоротшого шляху

Таблиця 4.5 – Порівняльна таблиця дослідів

РЕЗУЛЬТАТИ ДОСЛІДІВ

Дослід 1 Дослід 2 Дослід 3

Ітерація Тривалість

туру Ітерація

Тривалість

туру Ітерація

Тривалість

туру

6282 5144,85 8777 5998,4 9343 5737,99

14333 3634,53 13662 5348,55 20433 4333,22

25364 3026,23 24479 4464,12 25055 4058,96

31278 2742,6 41372 3318,84 40753 3461,64

39355 2581,27 62722 2898,17 51420 3244,98

48014 2286,55 85593 2597,13 71485 2951,9

79343 2203,49 101107 2553,54 83948 2843,87

88723 2146,63 135637 2505,06 105026 2739,95

115516 2127,27 886121 2504,18 146509 2555,04

142258 2114,02 1768136 2502,01 182131 2504,17

375044 2104,71 2213009 2476,38 206007 2475,27

1063165 2104,71 7825301 2426,3 4672430 2443,77

10000000 2104,71 10000000 2426,3 10000000 2443,77

За двома останніми дослідами можна зробити висновки:

- перше мінімально знайдене значення з похибкою між ними в 3% було

знайдено менш ніж за 5 сек;

Page 122: Dis karapetyan

122

- наступні рішення відрізняються похибкою менше 1%.

При правильному завданні розмірів початкової популяції і відсотка мутації

можна прискорити роботу алгоритму.

Користуючись асимптотичною оцінкою складності алгоритмів,

порівняємо ГА із класичними алгоритмами пошуку найкоротших шляхів на

графі. Слід зауважити, що таке порівняння доцільне лише для функціоналів

(3.8), що формуються. Загальна складність ГА для турнірного та

рангового способів відбору дорівнює відповідно

(4.4)

та

(4.5).

Порівняємо асимптотичну оцінку складності алгоритму із класичними

алгоритмами пошуку найкоротших шляхів, що використовуються в сучасних

алгоритмах маршрутизації (табл. 4.6).

Таблиця 4.6 - Асимптотична складність алгоритмів пошуку

найкоротших шляхів на графі [113]

Алгоритм Асимптотична складність

Дейкстри

Белмана-Форда

Джонсона )lg( 2 EVVVO

Флойда-Уоршела

Генетичний алгоритм (турнірний відбір)

Генетичний алгоритм (ранговий відбір)

Слід зазначити, що завданням ГА є не лише пошук єдиного

оптимального розв’язку, а формування певного набору оптимальних шляхів,

що можуть бути використані в протоколах маршрутизації та системах

балансування навантаження в мережі.

)( pCm

))(( MEMNO

))log(( MMEMNO

)log( VEO

)( VEO

)( 3NO

))(( MEMNO

))log(( MMEMNO

Page 123: Dis karapetyan

123

4.3 Експериментальна верифікація одержаних результатів розв’язання

задачі маршрутизації

В роботи пропонується наступна методика проведення

експериментального дослідження запропонованого підходу:

1) визначення кількості стовпців та рядків для масиву вхідних даних;

2) формування та завантаження вибірки вхідних даних;

3) визначення значень вхідних параметрів та часового інтервалу;

4) ініціалізація початкових значень параметрів та ваг НМХ, а також

приведення матриці вхідних даних до квадратного типу шляхом заповнення

додаткових значень;

5) розрахунок та відображення вихідних значень НМ для кожного

нейрона на поточній ітерації;

6) збереження проміжних результатів в масив;

7) визначення маршруту, якій найкраще покриває всі ребра

мультиграфу з використанням функції Ляпунова;

8) визначення оптимального маршруту, який задовольняєь умову

знаходження оптимального маршруту;

9) відображення результату розв’язання задачі у графіках.

При розв’язанні задачі знаходження шляху найменшої довжини для

проведення досліду будуть використовуватися чотири структури мережі з

кількістю вузлів 5,10,15 і 20, які представлені на рисунках 4.8 – 4.11.

Для більш повного уявлення процесу пошуку шляху мінімальної

довжини, необхідно розуміти, яка роль відводиться доданкам функції (4.2) і

ваговим коефіцієнтам µ1, µ2, µ3, µ4, µ5, які знаходяться при складових функції

Для активації НМХ використана функція Ляпунова вигляду:

( )

(4.6)

де а – коефіцієнт, що визначає крутизну активаційної функції; uij – ваги

зв'язків НМ. При малих значеннях а активаційна функція має пологий схил, а

при великих значеннях a активаційна функція прагне до порогової функції.

Page 124: Dis karapetyan

124

Рисунок 4.8-Мережа з 5 вузлами Рисунок 4.9- Мережа з 10 вузлами

Коефіцієнт µ1 і відповідна складова функції (4.2) впливають на

швидкість пошуку мінімальної вартості передачі пакетів по маршруту з вузла

s у вузол d. Введення складової функції при коефіцієнті µ2 обумовлено

використанням тільки існуючих зв'язків. Наприклад, деякі дуги в графі

можуть бути відсутніми, тому відповідний коефіцієнт cij – дорівнюватиме

безкінечності. У цьому випадку γij дорівнюватиме 1. У свою чергу це

призведе до збільшення функції (4.2), а це неприпустимо при вирішенні

задачі мінімізації. При вирішенні задач маршрутизації це гарантує

виключення неіснуючих шляхів за рахунок блокування включення в маршрут

неіснуючих каналів (зв'язків).

Рисунок 4.10- Мережа з 15 вузлами Рисунок 4.11- Мережа з 20 вузлами

Доданок з коефіцієнтом µ3 введено для виконання умови збереження

потоку у вузлі. Доданок з коефіцієнтом µ4 вводиться для забезпечення

виконання умови { }, не дозволяючи отримати перевагу якомусь

Page 125: Dis karapetyan

125

нейрону. Для реалізації процесу пошуку рішення задачі знаходження

найкоротшого шляху необхідно визначити алгоритм зміни ваг зв'язків у

нейронної мережі. Для цього визначимо матрицю ваг в мережі ‖ ‖. В

окремому випадку зміна ваг зв'язків у ШНМ можна проводити,

використовуючи наступний вираз [18]:

𝑑 − −

(4.7)

Це дозволить, використовуючи метод градієнтного спуску,

мінімізувати функцію (4.2) і знайти стійкий стан НМХ, що відповідатиме

найкоротшому шляху між вузлами s і d. При дослідженні можливості

розв’язання задачі пошуку найкоротшого шляху використовувалася система

Matlab. При моделюванні були задані значення коефіцієнтів і змінних,

наведені в таблиці 4.7 та 4.8.

Таблиця 4.7 – Результати проведених досліджень

Кількість

вузлів в

мережі, N

s d Оцінка кількості

правильних рішень, % Pmin Pmax

5

1 5 97,2 0,51 1,68

2 3 100 0,11 1,28

3 5 84,2 0,79 1,6

5 4 99,9 0,33 1,59

4 2 88,9 0,61 1,77

10

1 10 3 0,47 1,68

2 7 10 0,34 1,59

5 3 99 0,34 1,79

3 9 87 0,37 1,63

6 4 92 0,22 1,59

15

1 15 90 1,77 2,14

6 12 87 2,32 3,22

14 6 93 3,18 3,85

7 12 92 1,87 3,73

4 6 90 2,77 3,14

20

1 20 87 3,32 4,22

5 17 93 3,18 4,85

18 3 92 2,87 5,73

17 4 93 3,18 7,85

4 11 92 3,87 6,73

Page 126: Dis karapetyan

126

Таблиця 4.8 – Коефіцієнти для розв’язання задачі пошуку

шляху мінімальної довжини

Деякі результати, отримані при проведенні дослідження, відображені

на рисунках 4.13 та 4.14, де представлені дані про отримані маршрути, їх

довжини та процентні частки таких шляхів в загальній множині

розрахованих маршрутів при реалізації всіх дослідів. При проведенні

досліджень для прикладу використовувалася структура КМ, представлена на

рис. 4.12.

Рисунок 4.12 – Структура мережі для дослідження запропонованої функції

Рисунок 4.13 – Приклад розподілу результатів рішення задачі пошуку

найкоротшого шляху для мережі, що складається з 10 вузлів

Параметр µ4 µ4 µ3 µ4 µ4 а

Значення 950 2500 1900 100 500 50

15,91%

38,80%

45,29%

2015 4915 5736

Обраний шлях

2015

4915

5736

Page 127: Dis karapetyan

127

Рисунок 4.14 – Приклад розподілу результатів рішення задачі пошуку

найкоротшого шляху для мережі, що складається з 5 вузлів

Проведені дослідження показали наступні результати ( рис. 4.15 - 4.18).

Рисунок 4.15 – Граф, що відображає маршрути та результати рішення

задачі маршрутизації для µ6 = 500

Рисунок 4.16 – Граф, що відображає маршрути та результати рішення

задачі маршрутизації для µ6= 100

0,05% 0,37%0,53%

3,56% 4,21% 4,34%4,70%

39,79%

42,46%

15 115 164 1105 1305 1347 1458 12347 13175

Обраний шлях

15

115

164

1105

1305

1347

1458

12347

13175

Page 128: Dis karapetyan

128

Рисунок 4.17 – Граф, що відображає маршрути та результати ішення

задачі маршрутизації при використанні (4.2) для µ6= 250

Рисунок 4.18 – Результати рішення задачі маршрутизації при

використанні виразу (4.1) без регулювання числа використовуваних дуг

Аналіз отриманих результатів дозволив зробити висновок про те, що

коефіцієнтові µ6 необхідно надавати оптимальне значення 250, оскільки при

цьому зберігається висока швидкість збіжності і забезпечується висока якість

розв’язання задачі пошуку маршруту мінімальної «вартості» і з найменшою

кількістю дуг.

З рисунку 4.18 видно, що отримані рішення можуть містити розв’язки з

чотирьох, п'яти і шести дуг, а при використанні виразу (4.2) рішення містять

тільки маршрути з чотирьох і п'яти дуг. Це дозволяє стверджувати, що

запропонований вид функції (4.2) робить можливим розв’язування задачи

маршрутизації з перебуванням шляху мінімальної вартості і з використанням

мінімальної кількості дуг.

Page 129: Dis karapetyan

129

Оцінку ефективності запропонованого методу проведено порівнянням з

методом Дейкстри, як найбільш поширеним в КМ. При порівнянні враховані

кількість вузлів мережі, стан каналів зв’язку та час обробки пакетів в чергах

маршрутизаторів. Результат порівняння (рис.4.19) показує на виграш в часі

нового методу на 10-12%.

Рис 4.19- Порівняння результатів реалізації комбінованого

еволюційного методу адаптивної маршрутизації та методу Дейкстри.

Практичні експерименти показали, що значення коефіцієнту

µ6=250±10, (рис.4.17), забезпечує скорочення часу на пошук найкоротшого

шляху на 16 % за рахунок направленості пошуку оптимуму.

Результати впровадження програмної реалізації комбінованого

еволюційного методу показали доцільність використання наведеної цільової

функції, а також принципову можливість використання апарату

еволюційного моделювання у вирішенні задачі пошуку оптимального шляху

адаптивної маршрутизації. Тестування ІАС «EVOLUTION» здійснено на

прикладі технологічних процесів контролю та управління каналами зв’язку і

комунікаційного обладнання інтернет-провайдерів Черкаського регіону.

0,2197

0,3063

0,3832 0,4197

0,4840

0,6569

0,1451

0,2784

0,3678

0,4023

0,4744

0,5819

0,00

0,10

0,20

0,30

0,40

0,50

0,60

0,70

20 30 40 50 60 70

час

в се

кун

дах

число вузлів Метод Дейкстри Комбінований еволюційний метод

Page 130: Dis karapetyan

130

Висновки до розділу 4

У четвертому розділі обґрунтовано вибір засобів створення

програмного продукту, представлено структурний та функціональний опис

програмної реалізації запропонованого еволюційного методу оптимізації

цільової функції задачі визначення маршрутів в комп’ютерних мережах з

урахуванням інформації про можливі зміни стані маршрутів.

Здійснено опис та аналіз проведених експериментів, який показав

доцільність та ефективність використання комбінованого еволюційного

методу ГА-НМ у порівнянні з методом Дейкстри, а саме скорочення часу на

пошук оптимального розв’язку в середньому на 13-16%. Оцінено

ефективність роботи програмної реалізації розробленого алгоритму реалізації

еволюційного методу.

Проведено експериментальну верифікацію результатів комбінованого

еволюційного методу. Отримані результати дозволяють стверджувати, що

використання комбінованого еволюційного методу ГА-НМ до розв’язання

задачі маршрутизації дозволяє знаходити розв’язки задачі маршрутизації як

по одній, так і по декількох метрикам.

Результати четвертого розділу опубліковані в роботах [21,65,79,82,85].

Page 131: Dis karapetyan

131

ВИСНОВКИ

У дисертаційній роботі розв’язана науково-технична задача підвищення

ефективності доставки пакетів даних шляхом розробки нових та вдосконалення

існуючих моделей та методів адаптивної маршрутизації.

Удосконалено моделі передачі даних в комп’ютерній мережі на основі

врахування її частих змін через варіації характеристик каналів зв’язку та

комунікаційного обладнання, шляхом врахування вимог стану каналів, а саме

часу затримки пакетів, наватаження на мережу, пропускної здатності та

штрафів за їх невиконання. Це дало можливість зменшити трудомісткість

побудови таблиць маршрутизації та підвищити ефективність процесу

маршрутизації даних у комп’ютерній мережі за рахунок зменьшення

обчислювальної складності алгоритму адаптивної маршрутизації.

Розроблено комбінований еволюційний метод оптимізації фітнес-функції

на основі генетичних алгоритмів та штучних нейронних мереж, шляхом їх

поєднання та уточнення енергетичної функції Ляпунова, що забезпечило

мінімізацію кількості дуг на графі та скрочення часу визначення оптимального

маршруту.

Отримали подальший розвиток методи еволюційної спрямованої

оптимізації на основі їх адаптації до розв’язання дискретної задачі формування

таблиць маршрутизації шляхом уточнення значень коефіцієнтів енергетичної

функції, що дало можливість скоротити час на пошук прийнятного маршруту.

Практичним результатом дисертаційної роботи є інформаційна-

аналітична система розрахунку значень цільової функції оптимізації маршрутів,

що реалізована на програмному рівні. Результати експериментального

впровадження свідчать про те, що застосування комбінованого еволюційного

методу забезпечило скорочення часу пошуку прийнятних маршрутів у

порівнянні з методом Дейкстри на 10-16%, що підтвержено відповідними

актами впровадження.

Результати дисертаційного дослідження впроваджено в виробничу

діяльність інтернет-провайдерів ТОВ «Маклаут-Гамма», ТОВ «Фірма»

МегаСтайл-Сервіс», та навчальний процес Черкаського державного

технологічного університету.

Page 132: Dis karapetyan

132

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Ahn C.W., Ramakrishna R.S. Neural Network Based Near-Optimal Routing

Algorithm : [Text] // Proceedings of ICONIP. - 2002. - Vol. 4. - P. 1771-1776.

2. Ali M., Kamoun F. Neural networks for shortest path computation and routing

in computer networks: [Text] // IEEE Trans. on Neural Networks. - 1993. - Vol.

4, No. 6. - P. 941-953.

3. Aloulou M.A. Evaluation Flexible Solutions in Single Machine Scheduling via

Objective Function Maximization: the Study of Computational Complexity:

[Text] / M.A. Aloulou, M.Y. Kovalyov, M.-C. Portmann // RAIRO Oper. Res.

– 2007. – №41. – P. 1-18.

4. Ash G. R., McGraw-Hill Dynamic Routing in TelecommunicationsNetworks:

[Text] / IEEE Communications Magazine ( Vol. 36, Issue: 11, Nov. 1998 ),

p.20

5. Balas E. A Note on the Branch-and-Bound Principle: [Text] / E. Balas. //

Operations Research. – 1968. – №2. – P. 442-444.

6. Christiansen M., Jeffay K., Ott D., Smith F. D., «Tuning Red for Web Traffic»:

[Text] IEEE / ACM Transactions on Networking. Vol. 9. No. 3 (June 2001). pp.

249-264. – Режим доступу: http://www.cs.unc.edu/~ieffav/papers/IEEE-ToN-

01.pdf.

7. Cisco Internetworking Technology Overview Глава 2. - Основы

маршрутизации [Електронний ресурс] Режим доступу:

http://citforum.ck.ua/nets/ito/2.shtml

8. Cisco Systems Inc. Cisco Nexus 9000 Series Switches Router Architecture»:

[Електронний ресурс] – Режим доступу:

http://www.cisco.com/c/en/us/products/switches/nexus-9000-series-

switches/index.html.

9. Davis L. Adapting operator probabilities in genetic algorithms: [Text] / L.

Davis // Proceedings of the Third International Conference on Genetic

Algorithms. – La Jolla, CA: Morgan Kaufmann Publishers, 1989. – P. 60-69.

Page 133: Dis karapetyan

133

10. Di Caro G., Dorigo M. AntNet: Distributed Stigmergetic Control for

Communications Networks: Journal of Artificial Intelligence Research: [Text] -

1998. - №9 - pp. 317-365

11. Dijkstra E. W. A note on two problems in connexion with graphs: [Text] //

Numer. Math — Springer Science+Business Media, 1959. — Vol. 1, Iss. 1. —

P. 269–271.

12. Du J. Minimizing total tardiness on one processor is NP-hard [Text] / J. Du, J.

Y.-T. Leung // Math. Operation Research. – 1990. – Vol. 15. – P. 483-495.

13. Egwali A.O. Synthesis-Algo: An Inclusive Timetable Generating Algorithm:

[Text] / A.O. Egwali, F.A. Imouokhome// African Journal of Computing &

ICT. – 2012. – Vol. 5. – №4. – Р.92-100.

14. Grefenstette J.J. Optimization of control parameters for genetic algorithms:

[Text] / J.J. Grefenstette // IEEE Transaction on systems, man end cybernetics.

SMC-16(1). – 1986. – P. 122-128.

15. Gupta P., Lin S., McKeown N., «Routing lookups in hardware at memory

access speeds», Proc. IEEE Infocom 1998 (San Francisco, CA, April 1998), pp.

1241-1248, – Режим доступу: http://tinytera.stanford.edu/~nickm/papers/

Infocom981ookup.pdf.

16. Hong S.G., Kim S.W. and Lee J.J., 1995. The Minimum Cost Path Finding

Algorithm Using a Hopfield Type Neural Network, Proceedings IEEE

International Conference on Fuzzy Systems 4, pp.719-726.

17. Hopfield J.J., «Neurons with graded response have collective computational

properties like those of two-state neurons», Proc. Natl. Acad. Sci. USA,

Vol.81, pp.3088-3092, 1984.

18. Hopfield J.J., Tank D.W. Neural computation of decisions in optimization

problems// Biol Cybern. 1985. V. 52. №3. P. 141-152.

19. Karaboga D. A comparative study of Artificial Bee Colony algorithm [Text] /

D. Karaboga, B. Akay // Applied Mathematics and Computation. – 2009. – №

214. – P. 108-132.

Page 134: Dis karapetyan

134

20. Kolesnikov K. The Use of Genetic Algorithms in Distributed Computer

Networks / Karapetyan A., Kolesnikov K.// Eastern European Scientific

Journal. – 2016. - №3 – Pp.133-137.

21. Labrador M., Banerjee S., «Packet Dropping Policies for ATM and IP

Networks». IEEE Communications Surveys. Vol. 2. No. 3 (Third Quarter

1999). pp. 2-14. http://www.comsoc.org/livepubs/surveys/public/

3q99issue/banerjee.html.

22. Leland W., Taqqu M., Willinger W., Wilson D. On the Self-Similar Nature of

Ethernet Traffic. [Text] //Proceedings (Extended Veresion). IEEE/ACM

Transactions on Networking. February 1994.

23. Mark J. L. Orr Introduction to Radial Basis Function Networks // Technical

Report.- Center for Cognitive Science, University of Edinburgh (Scotland). -

1996.

24. Michalewicz Z. Genetic Algorithms, Numerical Optimization and Constraints

[Text] / Z. Michalewicz // Proceedings of the 6th International Conference on

Genetic Algorithms, Pittsburgh. – 1995. – P. 151-158.

25. Odim O.M. On the Fitness Measure of Genetic Algorithm for Generating

Institutional Lecture Timetable [Text] / O.M. Odim, B.O. Oguntunde, O.O. Alli

// Journal of Emerging Trends in Computing and Information Since. – 2013. –

Vol. 4 – № 4. – pp. 436-444.

26. Park D.C., Choi S.E. A Neural Network based Multi-destination Routing

Algo­rithm for Communication Network: [Text] // Proc. of IJCNN. - 1998. -

Р.1673-1678.

27. Potts C.N. A branch-and-bound algorithm for the weighted tardiness problem

[Text] / C.N. Potts, L.N. Van Wassenhove // Operations Research. – 1985. –

Vol. 33. – P. 363-377.

28. RFC-1745. BGP4/IGRP for IP ~ OSPF Interaction. K. Varadhan, S. Hares, Y.

Rekhter. December 1994.

29. RFC 2453 (rfc2453) - RIP Version 2 - http://www.faqs.org/rfcs/rfc2453.html.

30. RFC 1142. OSI IS-IS Intra-domain Routing Protocol. D. Oran. 1990.

Page 135: Dis karapetyan

135

31. RFC 1163. A Border Gateway Protocol (BGP). K. Logheed, Y. Rekhter. 1990.

32. RFC 2328 (rfc2328) - OSPF Version 2 - http://www.faqs.org/rfcs/rfc2328.html

33. RFC 7868. Enhanced Interior Gateway Routing Protocol (EIGRP). May 2016

34. Rosenberg R.S. Simulation of genetic populations with biochemical properties,

Mathematical Biosciences. 7. — P. 223–257.

35. Schaffler J. D. A study of control parameters affecting online performance of

genetic algorithm for function optimisation [Text] / [Schaffler J. D., Caruana R.

A., Escheman L. J., Das R.] // Proceedings of the Third International

Conference on Genetic Algorithms and their Applications. – San Mateo, CA:

Morgan Kaufmann Publishers, 1989. – P. 51-60.

36. Shimbel, A. (1955). Structure in communication nets. Proceedings of the

Symposium on Information Networks. New York, NY: Polytechnic Press of the

Polytechnic Institute of Brooklyn. pp. 199–203.

37. Schoonderwoerd R., Holland O., & Bruten J. Ant-like agents for load

balancing in telecommunications networks. In Proceedings of the First

International Conference on Autonomous Agents: ACM Press. - 1997. - pp.

209-216.

38. Subramanian, D., Druschel, P., & Chen, J. Ants and reinforcement learning: A

case study in routing in dynamic networks. In Proceedings of IJCAI-97,

International Joint Conference on Artificial Intelligence: Morgan Kaufmann. -

1997. - pp. 832-838.

39. Syswerda G. Uniform crossover in genetic algorithms: [Text] / G. Syswerda //

Proceedings of the Third International Conference on Genetic Algorithms. –

San Mateo, CA: Morgan Kaufmann Publishers, 1989. – P. 2-9.

40. Tank D.W. and Hopfield J.J., «Simple neural optimization networks: An A/D

converter, signal decision circuit, and a linear programming circuit»,: [Text]

IEEE Trans. Circuits Syst, vol. CAS-33, pp. 533-541, 1986. 86. The ANN Book

-R.M. Hristev Edition 1 (supercede the draft named «Artificial Neural

Networks»), 1998.

Page 136: Dis karapetyan

136

41. Williamson C. Statistical Multiplexing of Self-Similar Network Traffic.

http://www.cs.usask.ca/faculty/-carey/papers/statmuxing.ps.

42. Xiaojun H. The Self-Similar Traffic Modeling in the Internet.

http://www.ee.ust.hk/~heixj/publication/comp660fi/comp660f.html.1.

43. Zadeh L. Fuzzy sets: [Text] // Information and Control. – 1965. – №8. –

P. 338-353.

44. Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе

[Електронний ресурс] Режим доступа: http://habrahabr.ru/post/111361/

45. Беллман Р., Принятие решений в расплывчатых условиях [Текст] / Р.

Беллман, Л. Заде // Вопросы анализа и процедуры принятия решений. –

М.: Мир. – 1976. – С.172-215.

46. Білоус Р.В. Особливості прикладного застосування генетичного

алгоритму пошуку оптимальних шляхів на графі [Текст] / Р.В. Білоус, С.Д.

Погорілий // Реєстрація, зберігання і обробка даних. — 2010. — Т. 12, №

2. — С. 81-87.

47. Берзин Е.А. Оптимальное распределение ресурсов и элементы синтеза

систем [Текст] / Е.А. Берзин. – М.: Сов.радио, 1974. – 304 с.

48. Бертсекас Д., Галлагер Р., Сети передачи данных [Текст]: Пер.с англ. -

М.:Мир 1989. – 544 с.

49. Блэк Ю. Сети ЭВМ: протоколы, стандарты, интерфейсы. [Текст]//- Пер. с

англ. М.: Мир. 1990. 506 с.

50. Вирт Н. Алгоритмы и структуры данных: [Текст]//- / Пер. с англ.

Подшивалова Д.Б. -2-е изд., испр. СПб.: Невский Диалект. 2001. 351 с.

51. Вишневский В.М. Теоретические основы проектирования компьютерных

сетей: [Текст]//- Москва. Техносфера. 2003. 512 с.

52. Волькенштейн М.В. Энтропия и информация: [Текст] / М.В.

Волькенштейн. – М.: Наука, 1986. – 192 с.

53. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-

ориентированного проектирования. Паттерны проектирования: [Текст] //

СПб: Питер. 2003. 368 с.

Page 137: Dis karapetyan

137

54. Гафаров Е.Р. Доказательство NP-трудности частного случая задачи

минимизация суммарного запаздывания для одного прибора: [Текст] / Е.Р.

Гафаров, А.А. Лазарев // Известия АН: Теория и системы управления. –

2006. – №3. – С. 120-128.

55. Горбань А.Н. Использование нейросетевых технологий для проведения

учебно-исследовательских работ: [Текст] / А.Н.Горбань // Методы

нейроинформатики, - К.: КГТУ, 1998. – 205 с.

56. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов:

[Текст] М.: Мир. 1981. 368 с.

57. Гуляницкий Л.Ф., Сиренко С.И. Гибридная метаєвристика, основанная на

оптимизации муравьиніми колониями и Н-методе: [Текст] //

Компьютерная математика. 2009, № 1 с.142-151

58. Гурин Л.С. Задачи и методы оптимального распределения ресурсов:

[Текст]/ Л.С. Гурин, Я.С. Дымарский, А.Д. Меркулов. – М.: Сов. радио,

1968. – 464 с.

59. ДМ: Алгоритми пошуку найкоротших шляхів [Електронний ресурс]

Режим доступу:

http://oim.asu.kpi.ua/files/DM/30_Shortest_path_algorithms.pdf

60. Дейт К. Введение в системы баз данных: [Текст] / К. Дейт. – М.: Наука,

1980. – 348 с.

61. Емельянов В.В., Теория и практика эволюционного моделирования

[Текст] / В.В. Емельянов, В.В. Курейчик, В.М. Курейчик. – М.:

ФИЗМАТЛИТ, 2003. – 432 с.

62. Жалдак М. І. Основи теорії і методів оптимізації: Навчальний посібник

[Текст] / М. І. Жалдак, Ю. В. Триус. – Черкаси: Брама-Україна, 2005. – С.

485-499.

63. Жожикашвили В.А., Вишневский В.М. Сети массового обслуживания.

Теория и применение к сетям ЭВМ. [Текст] М.: Радио и связь. 1988. 192 с.

Page 138: Dis karapetyan

138

64. Карапетян А.Р. Еволюційні методи в задачах адаптивної маршрутизації

даних[Текст] /А.Р.Карапетян// Системи управління, навігації та зв’язку. –

Полтава : ПНТУ, 2016. – Вип. 1(37). – С. 76-79.

65. Карапетян А.Р. Аналіз методів оптимізації маршрутизації потоків

даних/[Текст] А.Р.Карапетян. Вісник Черкаського державного

технологічного університету. Серія: Технічні науки. – Черкаси, 2016. –

вип. 3– с. 11-16.

66. Казиев В.М. Введение в анализ, синтез и моделирование систем [Текст] /

В.М. Казиев // Интеллектуальные системы. – М.: Изд-во „Открытые

системы”. – 2006. – С. 46-49.

67. Касьянов В.Н., Евстигнеев В.А. Графы в программировании: Обработка,

визуализация и применение. [Текст] Спб.: БХВ-Петербург. 2003. 1104 с.

68. Каширина И.Л. Введение в эволюционное моделирование [Текст] / И.Л.

Каширина. – Воронеж: ВГУ, 2007. – 40 с.

69. Кемени Дж. и др. Счетные цепи Маркова [Текст] / Пер. с англ. A.M.

Зубкова, Б.А. Севастьянова. М.: Наука. 1987. 413 с.

70. Кисляков А.В. Генетические алгоритмы: операции скрещивания и

мутации: [Текст] / А.В. Кисляков // Информац. технологии. – 2001. – № 1.

– С. 29-34.

71. Клейнрок Л. Вычислительные системы с очередями, М.: Мир. 1979. 600 с.

72. Клейнрок Л. Теория массового обслуживания: [Текст] / Пер. с англ. И.И.

Грушко; под ред. В.И. Неймана. М.: Машиностроение. 1979. 432 с.

73. Кнут Д.Э. Искусство программирования, том 1. Основные алгоритмы:

[Текст] 3-е изд.: Пер. с англ. М.: Издат. дом «Вильямс». 2001. 720 с.

74. Кнут Д.Э. Искусство программирования, том 3. Сортировка и поиск:

[Текст] / Пер. с англ. под ред. Казаченко Ю.В. 2-е изд., испр. и доп. М.:

Изд. дом «Вильямс». 2000. 822 с.

75. Коваленко И.Н. Случайные процессы: Справочник: [Текст] / И.Н.

Коваленко, Н. Кузнецов, В. Шуренков. Киев: Наук, думка. 1983. 366 с.

Page 139: Dis karapetyan

139

76. Колесніков К.В. Проблеми нейромережевої та адаптивної маршрутизації

даних в розподілених системах комунікацій: [Текст] /А.Р. Карапетян, К.В.

Колесніков, Ю.М. Гришко //Вісник Хмельницького національного

університету. Технічні науки. 2009. – № 3. – С.178-181.

77. Колесніков К.В. Синектика натурних методів маршрутизації потоків

даних у автономних системах телекомунікацій: [Текст] /А.Р.Карапетян,

К.В.Колесніков, О.В.Кравченко//Вісник Хмельницького національного

університету. Технічні науки. 2010.- № 4.– С.72-74.

78. Колесніков К.В. Застосування нейронних мереж Хопфілда до задач

адаптивної маршрутизації даних в телекомунікаціях: [Текст] /

А.Р.Карапетян, К.В.Колесніков, О.В.Кравченко // Праці XVІІ

Міжнародної конференції з автоматичного управління "Автоматика-2010".

–Харків, 2010. – с.162-164.

79. Колесніков К.В. Нейромережевий метод оптимізації маршрутизації даних

[Текст]./ А.Р.Карапетян, К.В.Колесніков // Матеріали Першої

Міжнародної науково-технічної конференції «Обчислювальний інтелект –

2011» (результати, проблеми, перспективи). – Черкаси, 2011. – с. 176-177.

80. Колесніков К.В. Генетичні алгоритми як метод багатокритеріальної

оптимізаціі в мережах адаптивної маршрутизації потоків даних/[Текст]

А.Р.Карапетян, К.В.Колесніков, В.В.Рожнов//Вісник Хмельницького

національного університету. Технічні науки. №6, 2012.- С. 167–170.

81. Колесніков К.В. Генетичні алгоритми для задач багатокритеріальної

оптимізації в мережах адаптивної маршрутизації даних [Текст]

/А.Р.Карапетян, К.В.Колесніков, Т.А.Царенко //Вісник НТУ «ХПІ». Серія

"Нові рішення у сучасних технологіях". – 2013. – № 56 (1029). – С. 44-50.

82. Колесніков К.В. Использование нейросетевых моделей для определения

оптимального маршрута в сетях с адаптивной маршрутизацией пакетов

данных [Текст] /А.Р.Карапетян, К.В.Колесніков, О.Г.Никулин //Вісник

НТУ «ХПІ». Серія "Нові рішення у сучасних технологіях". – 2013. – № 56

(1029). – С. 50-55.

Page 140: Dis karapetyan

140

83. Колесніков К.В. Нейронні мережі в задачах розподіленої схеми

маршрутизації даних/[Текст] А.Р.Карапетян, К.В.Колесніков,

С.С.Плаксієнко // Матеріали Всеукраїнської науково-практичної

конференції «Інформаційні та моделюючі технології -2014». – Черкаси,

2014,– с. 62.

84. Колесніков К.В. Нейросетевые модели оптимизации маршрутов доставки

данных в динамических сетях [Текст] /А.Р.Карапетян, К.В.Колесніков,

А.С.Курков//International Scientific Journal//Міжнародний науковий

журнал// Международный научный журнал, -2015, №6, С.74-78.

85. Колесніков К.В. Аналіз результатів дослідження реалізації задачі

маршрутизації на основі нейронних мереж та генетичних алгоритмів:

[Текст] А.Р.Карапетян, К.В.Колесніков, В.Ю.Баган // Вісник Черкаського

державного технологічного університету. Серія: Технічні науки. –

Черкаси, 2016. – вип. 1– с. 28-34.

86. Комашинский В. И., Смирнов Д. А. Нейронные сети и их применение в

системах управления и связи [Текст]/ М.: Горяч.линия Телеком, 2002. 94 с.

87. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ.

[Текст] М.: Центр непрер.матем. образования. 2000. 960 с.

88. Корнеев В.В. Базы данных. Интеллектуальная обработка информации

[Текст] / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.:

“Нолидж”, 2000. – 352 с.

89. Королев Д.Г. Разработка механизмов определения маршрутов между

произвольными точками [Текст] // Новые информационные технологии.

2001. с. 80-95.

90. Кравец О.Я., A.B. Пономарев, И.С. Подерский. Повышение

эффективности маршрутизации в переходных режимах

функционирования вычислительных сетей [Текст] // Системы управления

и информационные технологии. 2003. № 1-2. с.73-77.

Page 141: Dis karapetyan

141

91. Кузнецов Н. А., Фетисов В. Н. Алгоритм Дейкстры с улучшенной

робастностью для управления маршрутизацией в IP-сетях: [Текст]

//Автоматика и телемеханика, – № 2 – 2008 – C. 80-85.

92. Кононюк А.Ю. Нейроні мережі і генетичні алгоритми : [Текст] –

К.:«Корнійчук», . 2008. – 446 с.

93. Куракин Д.В. Маршрутизаторы для глобальных телекоммуникационных

сетей и реализуемые в них алгоритмы [Текст] // Информационные

технологии. – 1996. №2.

94. Куракин Д.В. Маршрутизация в сетях телекоммуникаций, построенных

на базе международных стандартов взаимосвязи открытых систем:[Текст]

// Автоматизация и современные технологии. 1996. №3. с. 35-43.

95. Куроуз Д., Росс К. Компьютерные сети. Многоуровневая архитектура

Интернета: [Текст] Пер с англ. 2-е изд. М.: СПб.: Питер. 2004. 765 с.

96. Левитин А. В. Алгоритмы: введение в разработку и анализ: [Текст] — М.:

«Вильямс», 2006. — Пер. с англ. М. : Издательский дом "Вильямс", 2006.

576 с

97. Лемешко А. В. Динамическая модель балансировки буферных и

канальных ресурсов транспортной сети телекоммуникационной системы

[Електронний ресурс] 2010. – № 2 (2). – С. 42–49. Режим доступу до

журн.: http://pt.journal.kh.ua/2010/2/2/102_lemeshko_dynamic.pdf

98. Лесин В.В., Лисовец Ю.П., Основы методов оптимизации: [Текст] / В.В.

Лесин, Ю.П. Лисовец - М.: Изд-во МАИ, 1995.-344 с

99. Льюис К. Альтернативы протоколу RIP в больших сетях[Текст] // Сети и

системы связи. 1997. №5. с. 58-64.

100. Люгер Ф.Дж. Искусственный интеллект. Стратегии и методы решения

сложных проблем [Текст] / Ф.Дж. Люгер. М.: “Вильямс”, 2003. 864 с.

101. Майника Э. Алгоритмы оптимизации на сетях и графах: [Текст] Пер. с

англ. М.: Мир. 1981. 323 с.

102. Марков A.A., Нагорный Н.М. Теория алгоритмов. [Текст] М.: Наука.

Гл. ред. физ. — мат. лит. 1984. 432 с.

Page 142: Dis karapetyan

142

103. Мартынова О.П. Метод адаптивной маршрутизации в компьютерных

сетях [Текст]// Государственный университет информационно-

коммуникационных технологий «Вісник ДУІКТ» Т.8, №1, 2010, с.50-58

104. Метод декомпозиций для решения комбинаторных задач упорядочения

и распределения ресурсов [Текст] / [Д.И. Батищев, Э.Д. Гурман, И.П.

Норенков, М.Х. Прилуцкий] // Информационные технологии. – 1997. –

№1. – С. 29-33.

105. Миллер Б.М., Панков А.Р. Теория случайных процессов в примерах и

задачах/[Текст] Под ред. Кибзуна А.И.- М.: Физматлит. 2002. 320 с.

106. Мину М. Математическое программирование. Теория и алгоритмы:

[Текст] Пер. с фр. М.: Наука. Гл. ред. физ-мат. лит. 1990. 488 с.

107. Назаров А. В., Лоскутов А. И. Нейросетевые алгоритмы

прогнозирования и оптимизации систем: [Текст] СПб: Наука и техника,

2003. 384 с.

108. Новиков А.Б. Маршрутизация трафика в IP-сетях с применением

генетических алгоритмов [Текст] // Системы управления и

информационные технологии. 2003. №1-2. с. 78-81

109. Олифер В.Г., Олифер H.A. Новые технологии и оборудование IP-сетей.

[Текст] СПб.: БХВ-Санкт-Петербург. 2001. 512 с.

110. Олифер В.Г., Олифер H.A. Компьютерные сети. Принципы,

технологии, протоколы IP-сетей. 5-е изд.[Текст]//СПб.: Питер. 2016. 992 с.

111. Ope О. Теория графов. [Текст] 2-е изд. М.: Наука. Гл. ред. физ-мат. лит.

1980. 336 с.

112. Перепелкин Д.А., Перепелкин А.И. Разработка алгоритмов адаптивной

маршрутизации в корпоративных вычислительных сетях: [Текст] //

Информатика и прикладная математика: межвуз. сб. науч. тр. РГУ им. С.

Есенина. 2008. с. 100- 105.

113. Погорілий С.Д. Генетичний алгоритм розв’язання задачі маршрутизації

в мережах / С.Д. Погорілий, Р.В Білоус: [Текст] // Проблеми

програмування. – 2010. - №2-3; Спец. вип. – С. 171-178.

Page 143: Dis karapetyan

143

114. Попов Ю.Д. Методи оптимізації [Електронний ресурс] / Ю.Д. Попов,

В.І. Тюптя, В.І. Шевченко. – К.: Ел. вид. Ел. бібл. фак-ту кібернетики КНУ

ім. Т. Шевченка, 2003. – 215 с. – Режим доступу:

http://cyb.univ.kiev.ua/library/books/popov-30.pdf

115. Поповский В.В., Лемешко A.B., Мельникова Л.И., Андрушко Д.В.

Обзор и сравнительный анализ основных моделей и алгоритмов

многопутевой маршрутизации в мультисервисных

телекоммуникационных сетях: [Текст] // Прикладная радиоэлектроника.

2005. Т.4. № 4. с. 372-382.

116. Потемкин В.Г. Matlab 6: среда проектирования инженерных

приложений: [Текст] М.: Диалог-МИФИ. 2003. 448 с.

117. Потьомкін М. М. Шляхи підвищення ефективності еволюційних

методів оптимізації [Електронний ресурс] / М. М. Потьомкін // Матер.

шостої Всеукр. наук.-практ. інтернет-конф. "Українська наука ХХІ

століття" (16-18 червня 2010 р.), Ч. 4. – К.: ТОВ "ТК Меганом", 2010. – С.

42-47. – Режим доступу до журн.: http://intkonf.org/kandidat-tehnichnih-

nauk-potomkin-mm-shlyahi-pidvischennya-efektivnosti-evolyutsiynih-metodiv-

optimizatsiyi/.

118. Прилуцкий М.Х. Многокритериальное распределение однородного

ресурса в иерархических системах: [Текст] / М.Х. Прилуцкий //

Автоматика и телемеханика. – 1996. – №2. – С. 24-29.

119. Ротштейн А.П. Интеллектуальные технологии идентификации:

нечеткая логика, генетические алгоритмы, нейронные сети: [Текст] / А.П.

Ротштейн. Винница: УНИВЕРСУМ-Винница, 1999. 320 с.

120. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети,

генетические алгоритмы и нечеткие системы = Sieci neuronowe, algorytmy

genetyczne i systemy rozmyte: [Текст] — 2-е изд.. — М : Горячая линия-

Телеком, 2008. — 452 с.

121. Саати Т. Принятие решений. Метод анализа иерархий: [Текст] /

Т.Саати. – М.: Радио и связь,1993. – 278 с.

Page 144: Dis karapetyan

144

122. Саати Т. Элементы теории массового обслуживания и ее приложения

:[Текст] Пер. с англ. Е.Г. Коваленко: 2-е изд. М.: Сов. Радио. 1971. 520 с.

123. Седжвик Р. Фундаментальные алгоритмы на С. Анализ, структуры

данных, сортировка, поиск, алгоритмы на графах: [Текст] Пер. с англ.

СПб.: ООО «ДиалогСофтЮП». 2003. 1136 с.

124. Сетлак Г. Решение задач многокритериальной оптимизации с

использованием генетических алгоритмов : [Текст] // System Research and

Information Technologies. Кiev: IASA National Academy of Sciences and

Ministry of Education and Science Ukraine. 2002. № 3. P. 32-42.

125. Сіпко О.М. Моделі та еволюційний метод складання розкладу занять у

вищому навчальному закладі. – Рукопис. Дисертація на здобуття

наукового ступеня кандидата технічних наук за спеціальністю 05.13.06 –

інформаційні технології : [Текст] – Київський національний університет

імені Тараса Шевченка МОН України. – Київ, 2016. 120 с.

126. Скобцов Ю.А., Сперанский Д.В. Эволюционные вычисления: учебное

Пособие: [Текст] -М.: Национальный Открытый Университет «ИНТУИТ»

2015.-331с.

127. Скобцов Ю.А., Федоров Е.Е. Метаэвристики: [Текст] — Донецк:

Ноулидж, 2013. — 426 с.

128. Снитюк В.Е. Аспекты эволюционного моделирования в задачах

оптимизации : [Текст] / В.Е. Снитюк // Искусственный интеллект. – № 4. –

2005. – С. 284-291.

129. Способи маршрутизації [Електронний ресурс] Режим доступу:

http://studall.org/all-46388.html

130. Стариков А. Генетические алгоритмы – математический аппарат

:[Електронний ресурс] / А. Стариков – Режим доступу до ресурсу:

http://www.basegroup.ru/genetic/math.htm.

131. Столлингс В. Современные компьютерные сети: [Текст] — СПб.:

Питер. 2003. 783 с.

Page 145: Dis karapetyan

145

132. Субботин С.А. Метод оптимизации на основе моделирования

перемещения бактерий с применением эволюционных операторов: [Текст]

/ С.А. Субботин, А.А. Олейник // Бионика интеллекта. – № 2 (69). – 2008. –

С. 137-144.

133. Субботін С.О. Неітеративні, еволюційні та мультиагентні методи

синтезу нечіткологічних і нейромережних моделей: [Текст] / С.О.

Субботін, А.О. Олійник, О.О. Олійник. – Запоріжжя: ЗНТУ, 2009. – 375 с.

134. Таненбаум Э., Уэзеролл Д. Компьютерные сети: [Текст] 5-е изд. —

СПб.: Питер, 2012. — 960 с.: ил.

135. Телекомунікаційні системи та мережі. Структура й основні функції.

Том 1 Маршрутизація: мета, основні задачі й протоколи [Електронний

ресурс] Режим доступу: http://www.znanius.com/3820.html

136. Тимофеев А. В. Проблемы и методы адаптивного управления потоками

данных в телекоммуникационных системах: [Текст] // Информатизация и

связь. 2003. № 1, 2. С. 68—73.

137. Трауб Д., Вожняковский X. Общая теория оптимальных алгоритмов:

[Текст] / Перевод с англ. А.Г. Сухарева; под ред. Н.С. Бахвалова. М.: Мир.

1983. 382 с.

138. Трифонов А.Г. Постановка задачи оптимизации и численные методы ее

решения: [электронный ресурс] / А.Г. Трифонов. // SoftLine Со. Режим

доступа: http://matlab.exponenta.ru/optimiz/book_2/index.php (дата

обращения: 25.03.2013).

139. Уваров Д.В., Перепелкин А.И. Динамический алгоритм маршрутизации

в вычислительной сети: [Текст] // Вестник Рязанской государственной

радиотехнической академии. Выпуск 12. Рязань. 2003. с. 77-80.

140. Уоссермен Ф. Нейрокомпьютерная техника. Теория и практика: [Текст]

/ Ф. Уоссермен. – М.: Мир, 1992. – 240 с.

141. Феллер В. Введение в теорию вероятностей и ее приложения: [Текст] В

2-х т. Перев. с англ. под ред. Ю.В. Прохорова. М.: Мир. 1984. 528 с. 738 с.

Page 146: Dis karapetyan

146

142. Филипс Д. Гарсиа-Диас А. Методы анализа сетей: [Текст] пер. с англ.

М.: Мир. 1984. 496 с.

143. Хайкин С. Нейронные сети: полный курс. Издание 2 [Текст]: Пер. с

англ. —М.: Издательский дом «Вильямс», 2006. - 1104 с.

144. Хелеби С., Мак-Ферсон Д. Принципы маршрутизации в Internet:

[Текст] Пер. с англ., 2-е изд. М.: Издательский дом'Вильяме", 2003. 448 с.

145. Цой Ю.Р. Генетический алгоритм: [Текст] / Ю.Р. Цой, В.Г. Спицын.

Представление знаний в информационных системах: учебное пособие. –

Томск: Изд-во ТПУ, 2006. – 146 с.

146. Ченгарь О.В. Разработка «направленного» муравьиного алгоритма для

оптимизации производственного расписания: [Текст] // Вестник

Херсонского нац. техн. унив.-та, ISBN 5-7763-2514-5 – г. Херсон, 2013 -

№1(46) C. 212-217

147. Штовба С.Д., Рудий О. Мурашині алгоритми оптимізації : [Текст] //

Вісник Вінницького політехнічного інституту. – 2004. – №4. – C. 62–69.

148. Юрчак И.Ю. Синтез и использование нейронных сетей с

проективными и упорядоченными латеральными связями. [Текст] / И.Ю.

Юрчак – Львов: ПТК, 1999.– 16 с.

Page 147: Dis karapetyan

147

ДОДАТОК А

Акти впровадження

результатів наукового дослідження

Page 148: Dis karapetyan

148

Page 149: Dis karapetyan

149

Page 150: Dis karapetyan

150

Page 151: Dis karapetyan

151

ДОДАТОК Б

Інформаційно-аналітична система «EVOLUTION».

Текст програми

Page 152: Dis karapetyan

152

Текст програми модуля оптимізації значень фітнес-функції

Tsp.cs

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Text;

using System.Data;

using System.Drawing;

namespace Tsp

{

/// <summary>

/// </summary>

class Tsp

{

/// <summary>

/// </summary>

/// <param name="sender">Об'єкт, що згенерував цю подію.</param>

/// <param name="e">Аргументи події. Містить інформацію про кращі тури.</param>

public delegate void NewBestTourEventHandler(Object sender, TspEventArgs e);

/// <summary>

/// </summary>

public event NewBestTourEventHandler foundNewBestTour;

/// <summary>

/// Випадковий номер генератор обєкта.

/// </summary>

Random rand;

/// <summary>

/// Список вузлів. Використовується тільки для розрахунку відстані між вузлами.

/// </summary>

Cities cityList;

/// <summary>

/// Повний список всіх турів.

/// </summary>

Population population;

/// <summary>

/// Private copy of a flag that will stop the TSP from calculating any more generations.

/// </summary>

private bool halt = false;

/// <summary>

/// The GUI sets this flag to true to stop the TSP algorithm and allow the Begin() function to

return.

/// </summary>

public bool Halt

{

get

Page 153: Dis karapetyan

153

{

return halt;

}

set

{

halt = value;

}

}

/// <summary>

/// Конструктор за замовчуванням

/// </summary>

public Tsp()

{

}

/// <summary>

/// Запускає алгоритм TSP.

/// Щоб зупинити, перш ніж всі покоління розраховуються, встановіть <see cref="Halt"/>

to true.

/// </summary>

/// <param name="populationSize">Кількість випадкових турів для створення перед

запуском алгоритму.</param>

/// <param name="maxGenerations">Кількість разів, щоб виконати операцію кросовера

перед зупинкою.</param>

/// <param name="groupSize">Кількість турів вивчити в кожному поколінні.. Top 2 are

chosen as the parent tours whose children replace the worst 2 tours in the group.</param>

/// <param name="mutation">Odds that a child tour will be mutated..</param>

/// <param name="seed">Seed for the random number generator.</param>

/// <param name="chanceToUseCloseCity">Шанси (з 100), що вузол, яке, як відомо, близько

буде використане в будь-яким посиланням.</param>

/// <param name="cityList">List of cities in the tour.</param>

public void Begin(int populationSize, int maxGenerations, int groupSize, int mutation, int seed,

int chanceToUseCloseCity, Cities cityList)

{

rand = new Random(seed);

this.cityList = cityList;

population = new Population();

population.CreateRandomPopulation(populationSize, cityList, rand, chanceToUseCloseCity);

displayTour(population.BestTour, 0, false);

bool foundNewBestTour = false;

int generation;

for (generation = 0; generation < maxGenerations; generation++)

{

if (Halt)

{

break; // Графічний інтерфейс запит на вихід.

}

Page 154: Dis karapetyan

154

foundNewBestTour = makeChildren(groupSize, mutation);

if (foundNewBestTour)

{

displayTour(population.BestTour, generation, false);

}

}

displayTour(population.BestTour, generation, true);

}

/// <summary>

/// Випадково вибрати групу тури від популяції.

/// Верхній 2 обрані як батьківських турів.

/// Кросовер виконується на цих 2 турах.

/// Діти тури з цього процесу заміни гірші 2 тури в групі.

/// </summary>

/// <param name="groupSize">Кількість турів в цій групі.</param>

/// <param name="mutation">Odds that a child will be mutated.</param>

bool makeChildren(int groupSize, int mutation)

{

int[] tourGroup = new int[groupSize];

int tourCount, i, topTour, childPosition, tempTour;

// вибрати випадкові тури, щоб бути в околиці вузлів групи

// ми дозволяємо для того ж туру, які будуть включені в два рази

for (tourCount = 0; tourCount < groupSize; tourCount++)

{

tourGroup[tourCount] = rand.Next(population.Count);

}

// бульбашкового сортування на околиці міста групи

for (tourCount = 0; tourCount < groupSize - 1; tourCount++)

{

topTour = tourCount;

for (i = topTour + 1; i < groupSize; i++)

{

if (population[tourGroup[i]].Fitness < population[tourGroup[topTour]].Fitness)

{

topTour = i;

}

}

if (topTour != tourCount)

{

tempTour = tourGroup[tourCount];

tourGroup[tourCount] = tourGroup[topTour];

tourGroup[topTour] = tempTour;

}

}

bool foundNewBestTour = false;

Page 155: Dis karapetyan

155

// взяти кращі 2 тури, робити кросовер, і замінити найгірший тур з ним

childPosition = tourGroup[groupSize - 1];

population[childPosition] = Tour.Crossover(population[tourGroup[0]],

population[tourGroup[1]], cityList, rand);

if (rand.Next(100) < mutation)

{

population[childPosition].Mutate(rand);

}

population[childPosition].DetermineFitness(cityList);

// Тепер побачити, якщо перший новий тур має кращий фітнес

if (population[childPosition].Fitness < population.BestTour.Fitness)

{

population.BestTour = population[childPosition];

foundNewBestTour = true;

}

// взяти кращі 2 тури (друга справа), зробити кросовер, і замінити другий найгірший тур з

ним

childPosition = tourGroup[groupSize - 2];

population[childPosition] = Tour.Crossover(population[tourGroup[1]],

population[tourGroup[0]], cityList, rand);

if (rand.Next(100) < mutation)

{

population[childPosition].Mutate(rand);

}

population[childPosition].DetermineFitness(cityList);

// Тепер подивіться, якщо другий новий тур має кращий фітнес

if (population[childPosition].Fitness < population.BestTour.Fitness)

{

population.BestTour = population[childPosition];

foundNewBestTour = true;

}

return foundNewBestTour;

}

/// <summary>

/// Підніміть подію в графічному інтерфейсі для відображення тур.

/// </summary>

/// <param name="bestTour">Кращий тур алгоритм шукає до сих пір.</param>

/// <param name="generationNumber">Скільки поколінь були виконані.</param>

/// <param name="complete">Чи є алгоритм TSP повний.</param>

void displayTour(Tour bestTour, int generationNumber, bool complete)

{

if (foundNewBestTour != null)

{

this.foundNewBestTour(this, new TspEventArgs(cityList, bestTour, generationNumber,

complete));

}

Page 156: Dis karapetyan

156

}

}

}

Link.cs

using System;

using System.Collections.Generic;

using System.Text;

namespace Tsp

{

/// <summary>

/// Індивідуальний зв'язок між 2 вузлами у турі.

/// Цей вузол поєднує в 2 інших вузли.

/// </summary>

public class Link

{

/// <summary>

/// Підключення до першого вузла.

/// </summary>

private int connection1;

/// <summary>

/// Підключення до другого вузла.

/// </summary>

public int Connection1

{

get

{

return connection1;

}

set

{

connection1 = value; ;

}

}

/// <summary>

/// Підключення до другого вузла.

/// </summary>

private int connection2;

/// <summary>

/// Підключення до другого вузла.

/// </summary>

public int Connection2

{

get

{

return connection2;

}

set

{

Page 157: Dis karapetyan

157

connection2 = value;

}

}

}

}

Population.cs

using System;

using System.Collections;

using System.Collections.Generic;

using System.Text;

namespace Tsp

{

class Population : List<Tour>

{

/// <summary>

/// Особиста копія кращий тур знайшов до сих пір по генетичному алгоритму.

/// </summary>

private Tour bestTour = null;

/// <summary>

/// Кращий тур знайшов до сих пір по генетичному алгоритму.

/// </summary>

public Tour BestTour

{

set

{

bestTour = value;

}

get

{

return bestTour;

}

}

/// <summary>

/// Створити початковий набір випадкових турів.

/// </summary>

/// <param name="populationSize">Кількість турів по створенню.</param>

/// <param name="cityList">Список вузлів цього туру.</param>

/// <param name="rand">Генератор випадкових чисел. Проходимо приблизно в той же

генератора випадкових чисел, так що результати між трас відповідають.</param>

/// <param name="chanceToUseCloseCity">Шанси (з 100), що місто, якие, як відомо,

найближче буде використано в будь-яке дане посилання.</param>

public void CreateRandomPopulation(int populationSize, Cities cityList, Random rand, int

chanceToUseCloseCity)

{

int firstCity, lastCity, nextCity;

for (int tourCount = 0; tourCount < populationSize; tourCount++)

{

Page 158: Dis karapetyan

158

Tour tour = new Tour(cityList.Count);

// Створення відправної точки для цього туру

firstCity = rand.Next(cityList.Count);

lastCity = firstCity;

for (int city = 0; city < cityList.Count - 1; city++)

{

do

{

// Keep picking random cities for the next city, until we find one we haven't been to.

if ((rand.Next(100) < chanceToUseCloseCity) && ( cityList[city].CloseCities.Count > 0 ))

{

// 75% шанс,що буде вибраний вузол, який близький до цього

nextCity = cityList[city].CloseCities[rand.Next(cityList[city].CloseCities.Count)];

}

else

{

// В іншому випадку, виберіть повністю випадковий вузол.

nextCity = rand.Next(cityList.Count);

}

// Переконайтеся в тому, що ми не були тут, і переконайтеся, що це не те, де ми

знаходимося в даний час.

} while ((tour[nextCity].Connection2 != -1) || (nextCity == lastCity));

// При переході від вузла А до Б, [1] на A = B і [1] на вузлах B = A

tour[lastCity].Connection2 = nextCity;

tour[nextCity].Connection1 = lastCity;

lastCity = nextCity;

}

// Підключіть останні 2 вузла.

tour[lastCity].Connection2 = firstCity;

tour[firstCity].Connection1 = lastCity;

tour.DetermineFitness(cityList);

Add(tour);

if ((bestTour == null) || (tour.Fitness < bestTour.Fitness))

{

BestTour = tour;

}

}

}

}

}

Program.cs

using System;

using System.Windows.Forms;

Page 159: Dis karapetyan

159

namespace Tsp

{

/// <summary>

/// Містить Main, що починає цю форму.

/// </summary>

static class Program

{

/// <summary>

/// Головна точка входу для програми.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new TspForm());

}

}

}

TspForm.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

using System.IO;

using System.Globalization;

namespace Tsp

{

/// <summary>

/// Main form for the Travelling Salesman Problem

/// </summary>

public partial class TspForm : Form

{

/// <summary>

/// The list of cities where we are trying to find the best tour.

/// </summary>

Cities cityList = new Cities();

/// <summary>

/// The class that does all the work in the TSP algorithm.

/// If this is not null, then the algorithm is still running.

/// </summary>

Tsp tsp;

Page 160: Dis karapetyan

160

/// <summary>

/// The image that we draw the tour on.

/// </summary>

Image cityImage;

/// <summary>

/// The graphics object for the image that we draw the tour on.

/// </summary>

Graphics cityGraphics;

/// <summary>

/// Delegate for the thread that runs the TSP algorithm.

/// We use a separate thread so the GUI can redraw as the algorithm runs.

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

public delegate void DrawEventHandler(Object sender, TspEventArgs e);

/// <summary>

/// Default constructor.

/// </summary>

public TspForm()

{

InitializeComponent();

}

/// <summary>

/// TSP algorithm raised an event that a new best tour was found.

/// We need to do an invoke on the GUI thread before doing any draw code.

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void tsp_foundNewBestTour(object sender, TspEventArgs e)

{

if ( this.InvokeRequired )

{

try

{

this.Invoke(new DrawEventHandler(DrawTour), new object[] { sender, e });

return;

}

catch (Exception)

{

// This will fail when run as a control in IE due to a security exception.

}

}

DrawTour(sender, e);

}

/// <summary>

/// A new "best" tour from the TSP algorithm has been received.

Page 161: Dis karapetyan

161

/// Draw the tour on the form, and update a couple of status labels.

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

public void DrawTour(object sender, TspEventArgs e)

{

this.lastFitnessValue.Text = Math.Round(e.BestTour.Fitness,

2).ToString(CultureInfo.CurrentCulture);

this.lastIterationValue.Text = e.Generation.ToString(CultureInfo.CurrentCulture);

if (cityImage == null)

{

cityImage = new Bitmap(tourDiagram.Width, tourDiagram.Height);

cityGraphics = Graphics.FromImage(cityImage);

}

int lastCity = 0;

int nextCity = e.BestTour[0].Connection1;

cityGraphics.FillRectangle(Brushes.White, 0, 0, cityImage.Width, cityImage.Height);

foreach( City city in e.CityList )

{

// Draw a circle for the city.

cityGraphics.DrawEllipse(Pens.Black, city.Location.X - 2, city.Location.Y - 2, 5, 5);

// Draw the line connecting the city.

cityGraphics.DrawLine(Pens.Black, cityList[lastCity].Location, cityList[nextCity].Location);

// figure out if the next city in the list is [0] or [1]

if (lastCity != e.BestTour[nextCity].Connection1)

{

lastCity = nextCity;

nextCity = e.BestTour[nextCity].Connection1;

}

else

{

lastCity = nextCity;

nextCity = e.BestTour[nextCity].Connection2;

}

}

this.tourDiagram.Image = cityImage;

if (e.Complete)

{

StartButton.Text = "Begin";

StatusLabel.Text = "Open a City List or click the map to place cities.";

StatusLabel.ForeColor = Color.Black;

}

}

/// <summary>

Page 162: Dis karapetyan

162

/// Draw just the list of cities.

/// </summary>

/// <param name="cityList">The list of cities to draw.</param>

private void DrawCityList(Cities cityList)

{

Image cityImage = new Bitmap(tourDiagram.Width, tourDiagram.Height);

Graphics graphics = Graphics.FromImage(cityImage);

foreach (City city in cityList)

{

// Draw a circle for the city.

graphics.DrawEllipse(Pens.Black, city.Location.X - 2, city.Location.Y - 2, 5, 5);

}

this.tourDiagram.Image = cityImage;

updateCityCount();

}

/// <summary>

/// User clicked the start button to start the TSP algorithm.

/// If it is already running, then this button will say stop and we will stop the TSP.

/// Otherwise,

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void StartButton_Click(object sender, EventArgs e)

{

// we are already running, so tell the tsp thread to halt.

if (tsp != null)

{

tsp.Halt = true;

return;

}

int populationSize = 0;

int maxGenerations = 0;

int mutation = 0;

int groupSize = 0;

int numberOfCloseCities = 0;

int chanceUseCloseCity = 0;

int seed = 0;

try

{

populationSize = Convert.ToInt32(populationSizeTextBox.Text, CultureInfo.CurrentCulture);

maxGenerations = Convert.ToInt32(maxGenerationTextBox.Text, CultureInfo.CurrentCulture);

mutation = Convert.ToInt32(mutationTextBox.Text, CultureInfo.CurrentCulture);

groupSize = Convert.ToInt32(groupSizeTextBox.Text, CultureInfo.CurrentCulture);

numberOfCloseCities = Convert.ToInt32(NumberCloseCitiesTextBox.Text,

CultureInfo.CurrentCulture);

Page 163: Dis karapetyan

163

chanceUseCloseCity = Convert.ToInt32(CloseCityOddsTextBox.Text,

CultureInfo.CurrentCulture);

seed = Convert.ToInt32(randomSeedTextBox.Text, CultureInfo.CurrentCulture);

}

catch (FormatException)

{

}

if (populationSize <= 0)

{

MessageBox.Show("You must specify a Population Size", "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error, MessageBoxDefaultButton.Button1

,MessageBoxOptions.DefaultDesktopOnly);

return;

}

if (maxGenerations <= 0)

{

MessageBox.Show("You must specify a Maximum Number of Generations", "Error",

MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

return;

}

if ((mutation < 0) || (mutation > 100))

{

MessageBox.Show("Mutation must be between 0 and 100.", "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

return;

}

if ((groupSize < 2) || ( groupSize > populationSize ))

{

MessageBox.Show("You must specify a Group (Neighborhood) Size between 2 and the

population size.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,

MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

return;

}

if ((numberOfCloseCities < 3) || (numberOfCloseCities >= cityList.Count))

{

MessageBox.Show("The number of nearby cities to evaluate for the greedy initial populations

must be more than 3 and less than the total number of cities.", "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

return;

}

if ((chanceUseCloseCity < 0) || (chanceUseCloseCity > 95))

{

MessageBox.Show("The odds of using a nearby city when creating the initial population must

be between 0% - 95%.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,

MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

return;

}

if (seed < 0)

Page 164: Dis karapetyan

164

{

MessageBox.Show("You must specify a Seed for the Random Number Generator", "Error",

MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

return;

}

if (cityList.Count < 5)

{

MessageBox.Show("You must either load a City List file, or click the map to place at least 5

cities. ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error,

MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

return;

}

this.StartButton.Text = "Stop";

ThreadPool.QueueUserWorkItem( new WaitCallback(BeginTsp));

}

/// <summary>

/// Starts up the TSP class.

/// This function executes on a thread pool thread.

/// </summary>

/// <param name="stateInfo">Not used</param>

private void BeginTsp(Object stateInfo)

{

// Assume the StartButton_Click did all the error checking

int populationSize = Convert.ToInt32(populationSizeTextBox.Text,

CultureInfo.CurrentCulture);

int maxGenerations = Convert.ToInt32(maxGenerationTextBox.Text,

CultureInfo.CurrentCulture); ;

int mutation = Convert.ToInt32(mutationTextBox.Text, CultureInfo.CurrentCulture);

int groupSize = Convert.ToInt32(groupSizeTextBox.Text, CultureInfo.CurrentCulture);

int seed = Convert.ToInt32(randomSeedTextBox.Text, CultureInfo.CurrentCulture);

int numberOfCloseCities = Convert.ToInt32(NumberCloseCitiesTextBox.Text,

CultureInfo.CurrentCulture);

int chanceUseCloseCity = Convert.ToInt32(CloseCityOddsTextBox.Text,

CultureInfo.CurrentCulture);

cityList.CalculateCityDistances(numberOfCloseCities);

tsp = new Tsp();

tsp.foundNewBestTour += new Tsp.NewBestTourEventHandler(tsp_foundNewBestTour);

tsp.Begin(populationSize, maxGenerations, groupSize, mutation, seed, chanceUseCloseCity,

cityList);

tsp.foundNewBestTour -= new Tsp.NewBestTourEventHandler(tsp_foundNewBestTour);

tsp = null;

}

/// <summary>

/// User is selecting a new city list XML file.

/// Not allowed if running the TSP algorithm.

/// </summary>

Page 165: Dis karapetyan

165

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void selectFileButton_Click(object sender, EventArgs e)

{

OpenFileDialog fileOpenDialog = new OpenFileDialog();

fileOpenDialog.Filter = "XML(*.xml)|*.xml";

fileOpenDialog.InitialDirectory = ".";

fileOpenDialog.ShowDialog();

fileNameTextBox.Text = fileOpenDialog.FileName;

}

/// <summary>

/// User has chosen to open the

/// Not allowed if running the TSP algorithm.

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void openCityListButton_Click(object sender, EventArgs e)

{

string fileName = "";

try

{

if (tsp != null)

{

StatusLabel.Text = "Cannot alter city list while running";

StatusLabel.ForeColor = Color.Red;

return;

}

fileName = this.fileNameTextBox.Text;

cityList.OpenCityList(fileName);

DrawCityList(cityList);

}

catch (FileNotFoundException)

{

MessageBox.Show("File not found: " + fileName, "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

}

catch (InvalidCastException)

{

MessageBox.Show("Cities XML file is not valid", "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,

MessageBoxOptions.DefaultDesktopOnly);

}

}

/// <summary>

/// User has selected to clear the city list.

/// Not allowed if running the TSP algorithm.

Page 166: Dis karapetyan

166

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void clearCityListButton_Click(object sender, EventArgs e)

{

if (tsp != null)

{

StatusLabel.Text = "Cannot alter city list while running";

StatusLabel.ForeColor = Color.Red;

return;

}

cityList.Clear();

this.DrawCityList(cityList);

}

/// <summary>

/// User clicked a point on the city map.

/// As long as we aren't running the TSP algorithm,

/// place a new city on the map and add it to the city list.

/// </summary>

/// <param name="sender">Object that generated this event.</param>

/// <param name="e">Event arguments.</param>

private void tourDiagram_MouseDown(object sender, MouseEventArgs e)

{

if (tsp != null)

{

StatusLabel.Text = "Cannot alter city list while running";

StatusLabel.ForeColor = Color.Red;

return;

}

cityList.Add(new City(e.X, e.Y));

DrawCityList(cityList);

}

/// <summary>

/// Display the number of cities on the form.

/// </summary>

private void updateCityCount()

{

this.NumberCitiesValue.Text = cityList.Count.ToString();

}

private void lastTourLabel_Click(object sender, EventArgs e)

{