Politechnika Poznańska Wydział Elektroniki i Telekomunikacji Katedra Sieci Telekomunikacyjnych i Komputerowych Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych Adam Chojnacki Koreferent: prof. dr hab. inż. Maciej Stasiak PRACA DYPLOMOWA MAGISTERSKA wykonana pod kierunkiem dra inż. Piotra Zwierzykowskiego Poznań 2008
97
Embed
Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Politechnika Poznańska
Wydział Elektroniki i Telekomunikacji
Katedra Sieci Telekomunikacyjnych i Komputerowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych
w sieciach pakietowych
Adam Chojnacki
Koreferent:
prof. dr hab. inż. Maciej Stasiak
PRACA DYPLOMOWA MAGISTERSKA
wykonana pod kierunkiem
dra inż. Piotra Zwierzykowskiego
Poznań 2008
Składam serdeczne podziękowania dr inż. Piotrowi Zwierzykowskiemu za cenne uwagi i pomoc w opracowaniu niniejszej pracy oraz mgr inż. Maciejowi Piechowiakowi za wsparcie w przeprowadzeniu badań symulacyjnych.
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 3 –
Streszczenie
Praca dyplomowa została poświecona technologii multicast wykorzystywanej do
realizacji połączeń rozgałęźnych. Multicast pozwala na efektywną komunikację
pomiędzy wieloma odbiorcami w sieci. Istotnym parametrem w tego rodzaju transmisji
są parametry QoS, takie jak m.in. opóźnienie propagacyjne. Udowodniono, że
znalezienie dróg transmisji spełniających parametry QoS należy do klasy problemów
NP-zupełnych. Autor prezentuje techniki trasowania połączeń oparte na powszechnie
znanych rozwiązaniach heurystycznych oraz rozwijających się algorytmach
genetycznych porównując obie kategorie w ramach badań symulacyjnych. Otrzymane,
w toku przeprowadzonych eksperymentów, rezultaty wskazują na efektywność
zaimplementowanych oraz zaproponowanych rozwiązań.
Abstract
The subject of this thesis is the multicast technology used to arrange transmission to
many users at the same time. Multicast routing is an effective way to communicate
among multiple hosts in a network. For multimedia applications the routing algorithms
should consider Quality of Service (QoS) parameters such as delay or cost. However
finding routes with two or more QoS parameters is an NP-hard problem. The author
describes both classic heuristics and novel genetic approaches and compares these
categories using computer simulations. Numerical results show that the genetic
algorithms are able to find better solutions than the most conventional routing schemes.
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 4 –
Spis treści
I. Spis rysunków ............................................................................................................... 7
II. Spis listingów............................................................................................................. 10
III. Spis pseudokodów .................................................................................................... 10
IV. Spis tabel................................................................................................................... 10
1. Wprowadzenie ............................................................................................................ 11
2. Algorytmy trasowania połączeń w sieciach pakietowych .......................................... 14
2.1. Wprowadzenie ..................................................................................................... 14
2.2. Komunikacja punkt-punkt versus punkt-grupa.................................................... 15
warunków – na przykład w postaci nieprzekraczalnej dla wszystkich połączeń (ścieżek)
ustalonej wartości opóźnienia. Jako jedna z pierwszych heurystyk wyznaczających drzewo
Steinera z ograniczeniami została zaproponowana metoda KPP (akronim od nazwisk
autorów: Kompella, Pasquale, Polyzos) [10]. W rozwiązaniu tym został wprowadzony
dodatkowy parametr w postaci ograniczenia na maksymalne opóźnienie wzdłuż ścieżki,
które nie może przekraczać pewnej ustalonej wartości. Algorytm postępowania został
przedstawiony w pseudokodzie 2.2.
Innym reprezentantem klasy algorytmów z wymuszeniami jest heurystyka CSPT
(akronim od Constrained Shortest Path Tree) wyznaczająca drzewo o najmniejszym
koszcie z ograniczeniem na wartość opóźnienia [3, 8]. W przeciwieństwie do omówionych
wcześniej rozwiązań algorytm CSPT nie minimalizuje globalnego kosztu drzewa
transmisji grupowej, lecz stara się znaleźć jak najtańsze ścieżki pomiędzy węzłem
źródłowym, a poszczególnym węzłami odbiorczymi, wchodzącymi w skład grupy
multicastowej. Algorytm CSPT działa według schematu zaprezentowanego
w pseudokodzie 2.3.
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 20 –
Pseudokod 2.1. Algorytm KMB
Pseudokod 2.2. Algorytm KPP
Algorytm KPP Input:
Graf G(V,E); węzeł początkowy s;
węzły odbiorcze m[i]M; maksymalna wartość opóźnienia
Output:
Drzewo transmisji grupowej pomiędzy węzłem początkowym s,
a grupą węzłów odbiorczych
1: Skonstruuj nieskierowany graf N, przy czym: sN oraz m[i] N, nie
zawierający innych węzłów(ścieżki o najmniejszym koszcie w G 2: Wyznacz T - minimalne drzewo rozpinające na grafie N zgodnie funkcją
kosztu f:
resztydla
vuDDdlavuCf T ),(),(
3: Zastąp krawędzie powstałego drzewa oryginalnymi ścieżkami z grafu G 4: Jeżeli drzewo zawiera cykle – usuń je algorytmem Dijkstry
Algorytm KMB Input:
Graf G(V,E); węzeł początkowy s;
węzły odbiorcze m[i]M;
Output:
Drzewo transmisji grupowej pomiędzy węzłem początkowym s,
a grupą węzłów odbiorczych
1: Skonstruuj nieskierowany graf N, przy czym: sN oraz m[i] N, nie
zawierający innych węzłów(ścieżki o najmniejszym koszcie w G 2: Wyznacz T - minimalne drzewo rozpinające na grafie N 3: Skonstruuj podgraf P grafu G zastępując każdą krawędź drzewa T
odpowiadającą jej ścieżką z grafu G 4: Wyznacz S – minimalne drzewo rozpinające grafu P 5: Skonstruuj drzewo Steinera z drzewa S usuwając zbędne węzły
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 21 –
Pseudokod 2.3. Algorytm CSPT
Ostatnie wykorzystywane w toku badań symulacyjnych rozwiązanie w postaci
algorytmu LDC buduje strukturę drzewa o najmniejszych opóźnieniach propagacyjnych
wzdłuż łączy.
Algorytm CSPT Input:
Graf G(V,E); węzeł początkowy s;
węzły odbiorcze m[i]M; maksymalna wartość opóźnienia
Output:
Drzewo transmisji grupowej pomiędzy węzłem początkowym s,
a grupą węzłów odbiorczych
1: Skonstruuj minimalne drzewo rozpinające korzystając z algorytmu
Dijkstry według metryki kosztu 2: Usuń z drzewa gałęzie nie prowadzące do grupy M 3: Usuń z drzewa gałęzie prowadzące do grupy M, dla których
przekroczono maksymalne opóźnienie
4: Skonstruuj minimalne drzewo rozpinające korzystając z algorytmu Dijkstry według metryki opóźnienia tylko dla węzłów skasowanych w kroku 3
5: Scal drzewa uzyskane w kroku 1 i 4 6: Usuń powstałe cykle (rozpoczynając od krawędzi o największym
opóźnieniu)
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 22 –
3. Algorytmy genetyczne
W rozdziale zaprezentowano zagadnienia związane z systemami, w których do
rozwiązywania zadań stosuje się zasady ewolucji i dziedziczności. Na początku, jako
wprowadzenie do dalszych rozważań, został przedstawiony krótki rys historyczny
wybranych prac w rozwoju algorytmów genetycznych. W głównej części rozdziału zostały
omówione poszczególne elementy budowy każdego algorytmu genetycznego wraz
z opisem stosowanej terminologii. Następnie skupiono się na wyjaśnieniu podstawowych
reguł rządzących światem rozwiązań genetycznych oraz genezie zastosowania zasad
doboru naturalnego w celach optymalizacyjnych. Ponadto zaprezentowano różnice między
klasycznym algorytmem genetycznym, a rozwiązaniami pochodnymi (algorytmy
hybrydowe i programowanie ewolucyjne), a także przedstawiane w literaturze rozwiązania
dotyczące metod kodowania i reprezentacji danych w algorytmach genetycznych dla
problemu trasowania połączeń rozgałęźnych.
3.1. Wprowadzenie
Od pewnego czasu obserwujemy tendencje do coraz intensywniejszego badania
systemów opartych na prawach określonych przez teorie ewolucji, w których
optymalizacja opiera się na zasadach rozwoju i dziedziczności. Za prekursora idei
przeniesienia reguł rządzących światem biologii do zadań optymalizacyjnych uważamy
Johna Hollanda, który w pracy „Adaptation in Natural and Artificial Systems” przedstawił
podwaliny założeń implementacji darwinowskiej zasady w systemach komputerowych
[11]. Natomiast początki idei algorytmów genetycznych datujemy na lata sześćdziesiąte
XX wieku, kiedy to powstały prace biologów poświęcone symulacji procesów
genetycznych. Ważniejsze daty związane z procesem budowy i rozwoju metod
programowania ewolucyjnego prezentuje, zgodnie z porządkiem chronologicznym,
Tabela 3.1 [12, 16].
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 23 –
Tabela 3.1. Ważne daty w badaniach algorytmów genetycznych [12, 16]
L.p. Rok Badacz(e) Opis
1) 1962 Holland Zastosowanie algorytmów genetycznych w
zagadnieniach sztucznej adaptacji
2) 1967 Rosenberg Symulowana ewolucja populacji organizmów
jednokomórkowych
3) 1967 Bagley Algorytm genetyczny gry
w 6 pionków
4) 1968 Holland Opracowanie teorii schematów
5) 1971 Holland Pierwsze badania skuteczności algorytmów
genetycznych w optymalizacji funkcji
6) 1975 Holland Publikacja “Adaptation in Natural and
Artificial Systems”
7) 1975 De Jong Fundamentalne badania elementarnego
algorytmu genetycznego
8) 1979 Raghavan
Birchard
Algorytm grupowania oparty na algorytmie
genetycznym
9) 1981 Brindle Badania metod selekcji i dominowania w
algorytmach genetycznych
10) 1982
Etter
Hicks
Cho
Projektowanie filtru adaptacyjnego za
pomocą elementarnego algorytmu
genetycznego
11) 1983 Goldberg
Optymalizacja pracy gazociągu w reżimach
stacjonarnym oraz nieustalonym za pomocą
algorytmu genetycznego
12) 1983 Wetzel Zastosowanie algorytmu genetycznego w
zagadnieniu komiwojażera
13) 1985 Booker Eksperymenty z metodą selekcji przez
nadawanie rang
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 24 –
3.2. Budowa algorytmu i podstawowe pojęcia
W opisie algorytmów genetycznych wykorzystuje się z terminologię zapożyczoną
z biologii, dlatego mówimy, że algorytmy genetyczne charakteryzują się pewnym zbiorem
możliwych rozwiązań rozpatrywanego zadania [49], zwanym „populacją osobników” lub
„chromosomów”. Nie jest to ścisłe zapożyczenie i często może być mylące, jako że każda
komórka („osobnik”) danego organizmu w otaczającym nas świecie zawiera określoną
liczbę chromosomów, co oznacza ze osobnik zazwyczaj jest zbiorem chromosomów.
W przypadku omawianych w następnych rozdziałach implementacjach, zgodnie
z powszechną praktyką stosowaną w modelach komputerowych [16], mówiąc o genotypie
osobnika mamy na myśli tylko pojedynczy chromosom niesparowany (genom
haploidalny), w przeciwieństwie do genotypów dominujących w świecie biologii
charakteryzujących się chromosomami sparowanymi (genom diploidalny) [13]. Jedynie
u nielicznych roślin (mszaki i paprotniki) oraz w procesie rozmnażania mamy do
czynienia, podobnie jak w programowanych rozwiązaniach komputerowych,
z haploidalnym genomem. Chromosomy składają się z „genów” (cech, znaków,
dekoderów) uszeregowanych liniowo. Każdy gen decyduje o dziedziczności jednej lub
kilku cech. Geny pewnych typów są umieszczone w określonych miejscach chromosomu.
Pozycja genu w chromosomie to „locus”, który może przyjmować różne stany, zwane
„allelami” [14]. W analizowanych modelach komputerowych chromosomy mogą być
reprezentowane przez bardzo zróżnicowane struktury danych, począwszy od łańcuchów
binarnych, a skończywszy na złożonych obiektach. Każdy osobnik (chromosom) stanowi
jedno z możliwych rozwiązań rozważanego zadania. W danej iteracji t, zwanej
„generacją” lub „pokoleniem”, poszczególne chromosomy są oceniane na podstawie
pewnej miary ich „dopasowania”, na bazie której następuję wybór najlepiej
przystosowanych osobników. Wybrane osobniki zostaną następnie użyte w kolejnych
krokach iteracji. Taki proces, określany jako ewolucja populacji jest równoważny
przeszukiwaniu przestrzeni potencjalnych rozwiązań, w którym należy jednak pogodzić
ze sobą dwa sprzeczne warunki [15]:
użycia najlepszych jak dotąd otrzymanych rozwiązań,
szerokie badania przeszukiwanej przestrzeni.
Nim jednak dany osobnik populacji stanie się elementem nowej generacji zostaje
poddany ocenie oraz podstawowym operacjom genetycznym zwanym: selekcją,
krzyżowaniem oraz mutacją.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 25 –
Ocena przystosowania chromosomów w populacji jest procesem polegającym na
obliczeniu wartości funkcji przystosowania dla każdego chromosomu z populacji. Im
większa jest wartość tej funkcji tym lepsza „jakość” chromosomów. Funkcja, która określa
jakość każdego rozwiązania powinna spełniać następujące wymagania:
pozwalać na wydzielenie osobników wyznaczających najlepsze rozwiązanie,
nie może „zbyt ostro” selekcjonować osobników1.
Można wyróżnić trzy podstawowe metody selekcji osobników, przy czym każda z nich
może występować w rożnych formach pochodnych i modyfikacjach [16]:
zasada ruletki,
zasada turniejowa,
zasada rankingowa.
Metoda ruletki polega na przyporządkowaniu każdemu osobnikowi z populacji
sektora koła o rozmiarze proporcjonalnym do wartości funkcji przystosowania. Następnie
losujemy fragment koła (liczbę na ruletce), tyle razy, ile jest osobników w populacji,
otrzymując pożądaną liczbę nowych rozwiązań.
W przypadku zasady turniejowej osobniki dzielimy na podgrupy, a z każdej
wybieramy osobnika o najlepszym przystosowaniu. Rozróżnia się metody wyboru:
deterministyczną i losową. Z kolei zasada rankingowa opiera się na posortowaniu
osobników populacji kolejno w zależności od wartości ich funkcji przystosowania.
Każdemu osobnikowi przypisana jest liczba określająca jego kolejność na liście, czyli tzw.
„ranga” [18].
W następnym etapie chromosomy poddaje się operacjom krzyżowania i mutacji.
Głównym zadaniem operatora krzyżowania jest mieszanie genów chromosomów, w celu
przekazania potomkowi jak najlepszego zbioru genów spośród genów obojga
rodziców [17]. Natomiast mutacja ma służyć uniknięciu zakończenia działania w minimum
lokalnym przez losową zmianę genu w chromosomie. W ostatnim kroku każdej iteracji
(„generacji”) następuję sukcesja, czyli utworzenie nowej populacji na bazie osobników
rodzicielskich oraz osobników potomnych, otrzymanych w wyniku zastosowania operacji
genetycznych na rodzicach. Podstawowe elementy budowy typowego algorytmu
genetycznego zaprezentowano na rysunku 3.1.
1 Funkcja powinna zapewniać optymalne, z punktu widzenia zastosowania, zawężenie obszaru wyboru osobników. Nieoptymalne ograniczenie selekcji może prowadzić do wskazywania zbioru suboptylmanych osobników jako zbioru optymalnego. Zatem problemem jest takie określenie funkcji, które zagwarantuje unikanie tzw. minimów lokalnych (rozwiązań suboptymalnych) .
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 26 –
algorytmów genetycznych i proces tworzenia pierwszego pokolenia, zwanego populacją
początkową.
Kolejne podrozdziały zaprezentują operacje genetyczne według różnych
algorytmów krzyżowania (jednopunktowe, dwupunktowe i równomierne) oraz różnych
algorytmów selekcji (rankingowej, turniejowej i metodą ruletki).
Ogólny schemat działania z podziałem na poszczególne etapy działania
algorytmów genetycznych przedstawiono w pseudokodzie 4.1.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 43 –
Pseudokod 4.1. Algorytm genetyczny – cechy wspólne zaimplementowanych rozwiązań
Algorytm genetyczny Input:
Graf G(V,E); węzeł początkowy s;
liczba węzłów odbiorczych w grupie;
węzły odbiorcze m[i]M; liczba ścieżek K;
liczba osobników o; liczba generacji g;
prawdb. mutacji; maks. opóźnienie ;
Output:
Drzewo transmisji grupowej pomiędzy węzłem początkowym s,
a grupą węzłów odbiorczych M
1: for m[i] M do 2: Wybraną metodą generuj K ścieżek od s do m[i] z ograniczeniem
na wartość opóźnienia wzdłuż drogi ≤ ;
3: end for 4: for o[i] O do 5: Inicjalizuj chromosom p[i] 6: end for
7: t 0
8: while( warunek zatrzymania = TRUE )do
9: t t + 1
10: Wybrany model selekcji 11: Wybrany model krzyżowania 12: Mutacja 13: Utworzenie nowej generacji 14: end while 15: Wyprowadzenie najlepszego osobnika
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 44 –
4.3. Reprezentacja danych – tablice trasowania
W procesie optymalizacji zaproponowany algorytm genetyczny korzysta do
wyznaczania najlepszego drzewa transmisji grupowej, spełniającego określone
ograniczenia, z tak zwanych tablic trasowania, krótko omówionych w poprzednim
rozdziale, które stanowią jeden z najbardziej powszechnych sposobów reprezentacji
danych wejściowych przedstawiony w literaturze dla implementowanego rozwiązania.
Rozważmy graf sieciowy G, zdefiniowany jako para G(V, E), gdzie V oznacza
liczbę wierzchołków, a E określa liczbę krawędzi. W tak zdefiniowanym grafie możliwe
jest utworzenie do )1( VVPW par: węzeł nadawczy - węzeł odbiorczy. Każda taka
para może być połączona zestawem różnego rodzaju, następujących po sobie, łączy od
węzła początkowego do węzła końcowego, tworząc tak zwaną „drogę” lub „ścieżkę”.
W związku z tym istnieje wiele możliwości poprowadzenia różnych dróg pomiędzy
wybranym węzłem nadawczym s, a danym węzłem odbiorczym należącym do
zdefiniowanej wcześniej grupy multicastowej M.
Rysunek 4.1. Przykładowa sieć złożona z V = 8 wierzchołków, z zaprezentowaną ścieżką pomiędzy węzłami 1 i 4 zapisaną na drugiej pozycji Tabeli ścieżek 1
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 45 –
Dla tak przedstawionego problemu optymalizacji przestrzeń dopuszczalnych
rozwiązań jest olbrzymia, nawet dla sieci składających się z niewielkiej liczby węzłów.
W tym prostym przykładzie ośmiowęzłowej sieci, zaprezentowanym na rysunku 4.1,
zakładając uwzględnienie jedynie 10K dróg dla każdej relacji: węzeł początkowy –
węzeł końcowy, otrzymujemy łącznie, dla wszystkich 2
)18(8 T = 28 możliwych tablic
ścieżek, gigantyczną liczbą 2810 TK KL zestawów ścieżek [21]. W celu rozsądnego
zarządzania zasobami, dla potrzeb implementacji algorytmów genetycznych, ograniczono
liczbę generowanych dróg dla każdej relacji, w taki sposób, że w każdej tablicy ścieżek
zapisywanych jest co najwyżej k wybranych kandydatów połączeń do drzewa transmisji
grupowej, zamiast wszystkich możliwych dróg. Utworzone tablice trasowania mogą być
porządkowane według określonej metryki, na przykład według kosztu całej drogi,
opóźnienia wzdłuż ścieżki czy liczby węzłów pośredniczących, jednakże z punktu
widzenia algorytmu genetycznego nie ma to żadnego znaczenia czy trasy zostały
posortowane według wybranego klucza, czy też są wymieszane zupełnie losowo.
Dla potrzeb implementacji wybrano następujące dwa algorytmy, służące do generacji dróg
w celu utworzenia tablic trasowania:
algorytm k najkrótszych ścieżek Dijkstry [43, 44], zwany też „zmodyfikowaną
Dijkstrą”,
algorytm przeszukiwania grafu wszerz (ang. BFS - Breadth-First Search).
4.3.1. Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry
Pierwszym zaprogramowanym rozwiązaniem do generacji tablic trasowania jest
algorytm k najkrótszych ścieżek Dijkstry. W procesie przeszukiwania grafu G(V, E)
algorytm „zmodyfikowanej Dijkstry” rozbudowuje kolejkę priorytetową, która w
zastosowanej implementacji została zbudowana na bazie obiektów tworzących drzewo
binarne opisane w następnych rozdziałach (m.in. listing 4.2). Algorytm rozpoczyna od
umieszczenia w kolejce węzła początkowego s, a następnie w każdym kroku algorytmu
wybierany jest element o najniższym koszcie w sieci, który po przetworzeniu zostaje
skasowany z kolejki. Po pobraniu elementu, węzłom sąsiadującym z przetwarzanym
wierzchołkiem, zostają nadane odpowiednie etykiety, a następnie wszystkie nowo
utworzone obiekty są umieszczone we wspomnianej kolejce. Ustawienie etykiety w węźle
końcowym t (jednym z węzłów odbiorczych grupy M) jednoznacznie identyfikuje kolejną
najkrótszą ścieżkę. Algorytm zatrzymuje swoja pracę po przetworzeniu k razy etykiety
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 46 –
przyporządkowanej węzłowi końcowemu (oznacza to znalezienie k ścieżek). Schemat
działania algorytmu zamieszczono w pseudokodzie 4.2.
Pseudokod 4.2. Algorytm k najkrótszych ścieżek Dijkstry
Algorytm k najkrótszych ścieżek Dijkstry
Input:
Graf G(V, E); węzeł początkowy s;
węzeł końcowy t; liczba ścieżek K
Output:
k najkrótszych ścieżek w grafie G(V, E) pomiędzy wierzchołkiem
początkowym s, a wierzchołkiem końcowym t
1: for i V do
2: count i 0
3: end for
4: elm i 1;
5: h(elm) s; h 1 (s) = {elem}; d elem 0; X {elem}
6: p K Ø
7: while (count i < K) i (X != Ø) do
8: k element zbioru X | d k d Xxx
9: X X – {k}; i h(k); count i count i + 1
10: if(i=t) then
11: p ścieżka z 1 do k
12: p K p K { h(p) }
13: end if
14: if(count i K) then
15: for Ejiarc ),( do
16: elm elm + 1; d elem d k + c(i,j)
17: elm k; h(elm) j
18: h 1 (j) h 1 (j) { elm }
19: X X { elm }
20: end for 21: end if 22: end while
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 47 –
Algorytm BFS tworzy w toku działania tak zwane drzewo przeszukiwania wszerz o
korzeniu w wierzchołku początkowym s, które zawiera wszystkie osiągalne z tego punktu
wierzchołki należące do grafu G(V, E). W algorytmie BFS zanim przejdziemy do niższego
poziomu drzewa zaglądamy do tak wielu wierzchołków, jak to jest możliwe, badając listę
sąsiadujących z danym punktem węzłów. Oznacza to, że węzły znajdujące się w odległości
f zostaną odwiedzone przed węzłami znajdującymi się w odległości f + 1. Schemat
Algorytm przeszukiwania grafu wszerz – BFS
Input:
Graf G(V, E); węzeł początkowy s;
węzeł końcowy u; liczba ścieżek K
Output:
K ścieżek w grafie G(V, E) pomiędzy wierzchołkiem
początkowym s, a wierzchołkiem końcowym u
1: for u V-{s} do
2: c[u]
3: ][u NULL
4: p K Ø; ls 0
5: end for 6: while ( Q != Ø ) i (ls < K)
7: u head[Q]
8: for )(uAdjv do
9: if(u=t) then
10: p ścieżka od s do u; ls ls + 1
11: end if
12: c[v] c[u] + c(u,v)
13: ][v u
14: ENQUEUE(Q,v) 15: end for 16: end while
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 48 –
działania zaimplementowanego rozwiązania przedstawiono w pseudokodzie 4.3.
Zastosowane rozwiązanie buduje tablice trasowania dla wszystkich relacji w tym samym
czasie, redukując liczbę potrzebnych przebiegów do jednego uruchomienia.
4.4. Reprezentacja danych – klasy obiektów bazowych
Zarówno w przypadku algorytmu k najkrótszych ścieżek Dijkstry jak i algorytmu
BFS zastosowano ten sam schemat przechowywania informacji na temat przetwarzanych
węzłów w postaci klasy obiektów typu „wezel”, której podstawowa budowa, wraz
z opisem najważniejszych elementów (pól), została zamieszczona na listingu 4.3.
Listing 4.3. Klasa definiująca obiekty typu „wezel”
Kolejki niezbędne do funkcjonowania obu algorytmów zostały zrealizowane
w postaci dynamicznej struktury drzewa binarnego, użytego również do sortowania
obiektów składowych według wybranej metryki – w przypadku k najkrótszych ścieżek
Dijkstry kluczem sortującym dane jest zakumulowany koszt drogi, natomiast w przypadku
algorytmu BFS liczba węzłów (przeskoków) wzdłuż ścieżki. Przedstawiona struktura
bazowa została nie raz wykorzystywana do przechowywania innych klas obiektów, dlatego
została zaimplementowana w postaci szablonu klas [45]. Strukturę zaimplementowanego
drzewa przedstawia rysunek 4.2, natomiast budowa szablonu klasy obiektów użytych do
przechowywania podstawowych elementów informacyjnych w procesie budowy tablic
trasowania, to jest obiektów klasy „wezel”, wraz z opisem składowych pól oraz metod
(funkcji) przedstawiono na listingu 4.4.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 49 –
Rysunek 4.2. Struktura drzewa binarnego użytego do przechowywania obiektów klasy „wezel” oraz obiektów typu „gen”
Listing 4.4. Szablon klasy obiektów bazowych
Wynikiem działania obu algorytmów jest zestaw dróg łączących węzeł nadawczy s
z wszystkim węzłami odbiorczymi grupy multicastowej M, zapisany w postaci
dynamicznie tworzonych tablic liczb całkowitych. Wraz z przebiegiem ścieżki pomiędzy
wierzchołkami zachowywana jest również informacja na temat kosztu danej drogi oraz
liczba węzłów pośredniczących w transmisji wzdłuż wybranej ścieżki. Przykładowa tablica
została przedstawiona na rysunku 4.3.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 50 –
Rysunek 4.3. Format budowy przykładowej tablicy trasowania
4.5. Reprezentacja danych – kodowanie genów chromosomu
Listing 4.5. Definicja klasy obiektów typu „gen”
Reprezentacja osobników, a także zbiór operatorów genetycznych są specyficzne
dla danego zadania i dobierane przez projektanta do konkretnej implementacji
(wspomniane dwa elementy wraz z funkcją dopasowania, sposobem tworzenia populacji
początkowej oraz wartościami parametrów stanowią podstawowe elementy definiujące
każdy algorytm genetyczny [49]). W analizowanym problemie chromosom jest ciągiem
genów o długości m - równej liczbie dróg pomiędzy węzłem nadawczym s,
a poszczególnymi węzłami odbiorczymi grupy multicastowej M. Wszystkie geny każdego
osobnika populacji stanowią liczby naturalne, będące w rzeczywistości wskaźnikami do
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 51 –
odpowiadających im tablic trasowania. Definicja klasy obiektów typu „gen” została
przedstawiona na listingu 4.5.
Pozycja genu w chromosomie odpowiada numerowi tablicy trasowania, a co za tym
idzie numerowi węzła odbiorczego grupy, zgodnie ze schematem kodowania
przedstawionym na rysunku 4.4.
Rysunek 4.4. Struktura budowy przykładowego chromosomu – ciąg genów o długości m = 8
Przedstawiona metoda kodowania została po raz pierwszy zaprezentowana dla
problemu trasowania połączeń typu punkt-punkt. W celu wykorzystania jej w algorytmie
trasowania połączeń typu punkt-grupa, który wymaga drzewa spinającego wszystkie
wierzchołki należące do grupy multicastowej, musi zostać uwzględniona specyfika takich
systemów. A zatem otrzymany rezultat nie może zawierać powtarzających się krawędzi,
które mogą pojawić się niezależnie w ramach różnych dróg łączących inne wierzchołki
docelowe grupy. Co więcej, wszelkie pętle, jakie mogą powstać wyniku przecinania się
dwóch lub większej liczby ścieżek muszą zostać wyeliminowane w procesie optymalizacji
w celu otrzymania wyniku pozbawionego nadmiarowych kosztów.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 52 –
4.6. Inicjalizacja algorytmu genetycznego
Algorytm genetyczny rozpoczyna swoje działanie od stworzenia tak zwanej
„populacji początkowej”, która stanowi pierwszą wykreowana generację osobników
w procesie optymalizacji. Wspominany etap przebiega według następującego schematu –
po utworzeniu pożądanej liczby chromosomów, co jest równoznaczne ze stworzeniem
o obiektów (o odpowiada liczbie osobników) typu „gen” zaprezentowanych na listingu 4.7.
Każdy powstały w ten sposób obiekt należy zainicjować w celu utrzymania struktury
przedstawionej na rysunku 4.4, to jest zestawu genów danego chromosomu powiązanych z
odpowiadającymi im tablicami trasowania. Wartość genu jest uzyskiwana z generatora
liczb opierającym się na działaniu odpowiednio przeskalowanego multiplikatywnego
generatora liczb pseudolosowych. Zakres, z którego generowane są liczby zawiera się
w przedziale [0, jk ] ( jk odpowiada liczbie przechowywanych ścieżek dla danej relacji j).
Zastrzeżenie to wynika z faktu, że choć dla wszystkich połączeń węzłów żądamy tej samej
liczby ścieżek, równej k, to nie zawsze musi istnieć możliwość stworzenia tak licznego
zbioru, spełniającego wszystkiego ograniczenia narzucone w procesie optymalizacji.
Algorytm pozyskiwania liczb pseudolosowych został przedstawiony w pseudokodzie 4.4.
Dla wszystkich powstałych w tym etapie chromosomów, składających się na
przetwarzaną populację, następuje obliczenie „funkcji oceny”, określającej dopasowanie
poszczególnych osobników w celu określenia ich dobroci.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 53 –
Pseudokod 4.4. Generator liczb pseudolosowych
4.7. Proces ewolucji
W trakcie samego procesu ewolucji do przechowywania chromosomów
wykorzystywane są dwie struktury:
dynamiczne tablice wskaźników do obiektu typu „wezel” - w trakcie stosowania
operatorów genetycznych i selekcji;
drzewo binarne – obiekt używany w trakcie sukcesji (tworzenia nowej populacji).
Podział ten jest związany z potrzebą wyboru najlepszych rozwiązań do następnego
pokolenia zgodnie z ideą sukcesji według modelu elitarnego. W zaimplementowanym
rozwiązaniu z populacji rodzicielskiej oraz osobników potomnych uzyskanych w wyniku
operacji genetycznych wybiera się chromosomy o najwyższej wartości funkcji
dopasowania. Natomiast model tablicowy doskonale sprawdza się do stosowania
operatorów genetycznych ze względu na łatwość dostępu bez skomplikowanych procedur
do pożądanego, wylosowanego do reprodukcji, osobnika.
Generator liczb pseudolosowych Input:
ziarno(jądro) generatora do inicjalizacji funkcji
a = 16807, q = 127773, r = 2836;
Output:
X - liczba pseudolosowa typu rzeczywistego
z zakresu od 0.0 do 1.0
1: if Inicjalizacja then
2: X ziarno(jądro) generatora
3: end if 4: else
5: qXh /
6: hrhqXaX )(
7: if 0X then
8: 2147483647 XX
9: end if 10: end else
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 54 –
4.8. Proces ewolucji – ocena dopasowania i sprawdzenie warunków
zatrzymania
Ocena dopasowania poszczególnych osobników wchodzących w skład bieżącej
populacji odbywa się poprzez obliczenie wartości funkcji celu dla poszukiwanego drzewa
transmisji grupowej reprezentowanego przez dany chromosom. Funkcja oceny jest
wyznaczana na podstawie ścieżek z tablic trasowania wskazywanych przez poszczególne
geny pojedynczych osobników populacji. Obliczamy ją sumując koszt wszystkich
krawędzi wchodzących w skład drzewa transmisji grupowej, zdefiniowanego przez dany
chromosom.
W procesie ewolucji, przed przystąpieniem do procesu selekcji i tworzenia nowego
pokolenia następuje sprawdzenie warunków zatrzymania algorytmu. W przypadku
pozytywnego wyniku proces ewolucyjny jest zatrzymywany w celu wyprowadzenia
najlepszego, uzyskanego rozwiązania, zgodnie ze schematem działania zaprezentowanym
w pseudokodzie 4.1. W zaimplementowanym rozwiązaniu warunkiem zakończenia pracy
algorytmu (etykieta „warunek zatrzymania” – pseudokod 4.1) jest rozwój populacji do
określonej w procesie inicjalizacji programu liczby pokoleń (generacji).
4.9. Proces ewolucji – selekcja
Przed przystąpieniem do etapu reprodukcji istniejących osobników i tworzenia
nowego pokolenia algorytm genetyczny dokonuje wyboru chromosomów, które zostaną
desygnowane do zastosowania operacji genetycznych. W implementowanych
rozwiązaniach znalazły się następujące, opisane szerzej, modele selekcji:
selekcja rankingowa [24, 26, 27, 28];
selekcja turniejowa [32, 46];
selekcja metodą ruletki [23, 25, 29, 30, 31, 47, 48].
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 55 –
4.9.1. Selekcja rankingowa
W celu zastosowania selekcji rankingowej w programowanym rozwiązaniu
chromosomy pochodzące z bieżącej populacji, stanowiącej generacje rodzicielską, są
zapisywane w posortowanej tablicy, począwszy od osobników o najwyższej wartości
funkcji przystosowania.
Rysunek 4.5. Ilustracja zaimplementowanego rozwiązania metody
selekcji rankingowej z oznaczonymi rodzicami trzech przykładowych chromosomów („Chromosom 1,2 oraz P”)
Spośród tego zbioru, z prawdopodobieństwem równym jeden, „lepsza połowa”
osobników zostaje wybrana do procesu rozmnażania (chromosomy zaznaczone na rysunku
4.5 jako numery od 1 do P/2). Tak wybranym chromosomom losuje się spośród całej
populacji rodzicielskiej po jednym osobniku do pary.
4.9.2. Selekcja turniejowa
W przypadku zastosowania selekcji turniejowej proces wyboru osobników
z populacji rodzicielskiej przebiega nieco inaczej i można w nim wyróżnić dodatkowy etap
pośredni. W przeciwieństwie do selekcji rankingowej chromosomy w tym wypadku są
poddawane ocenie turniejowej, w której spośród dwóch wybranych osobników z całej
generacji rodziców wybiera się jeden chromosom o wyższej wartości funkcji
przystosowania, który będzie stanowił pierwszy element pary (na rysunku 4.6 został
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 56 –
przedstawiony jako „Chromosom 1a” w sekcji „Zwycięskie Pary”). Podobnie w drodze
turnieju wybiera się drugi element pary rodzicielskiej (na rysunku 4.6 został przedstawiony
jako „Chromosom 1b” w sekcji „Zwycięskie Pary”) i dopiero tak dobrane osobniki
poddaje się procesowi reprodukcji. Proces ten jest powtarzany, aż do otrzymania
oczekiwanej liczby potomków, co oznacza w tym wypadku zrównanie liczebności
generacji rodzicielskiej z generacją potomną.
Rysunek 4.6. Ilustracja zaimplementowanego rozwiązania metody selekcji turniejowej z
oznaczonymi rodzicami dwóch przykładowych chromosomów (Chromosom 1 i 4) wraz z przedstawionym etapem pośrednim kojarzącym zwycięzców turniejów
4.9.3. Selekcja metodą ruletki
Metoda selekcji oparta na tzw. „kole ruletki” jest poprzedzona, podobnie jak
wszystkie pozostałe sposoby wyboru osobników, obliczeniem funkcji dopasowania
każdego chromosomu. Jednakże w procesie losowania osobników korzysta się nie z samej
wartości przystosowania osobnika, a z względnej miary oceny w postaci dystrybuanty.
Sam proces selekcji opiera się na obrocie kołem ruletki i wyborze chromosomu do
reprodukcji wg następującej zasady: wylosuj liczbę z przedziału [0,1] i znajdź
odpowiadający wygenerowanej liczbie fragment koła ruletki, wyznaczony przez wartość
dystrybuanty. W takim samym procesie wybierany jest drugi osobnik do pary, a następnie
tak wylosowane chromosomy poddawane są operacji krzyżowania. Cały proces jest
powtarzany, aż do wypełnienia populacji potomnej. Procedura zgodnie z którą przebiega
selekcja metodą ruletki została schematycznie przedstawiona na rysunku 4.7.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 57 –
Rysunek 4.7. Ilustracja zaimplementowanego rozwiązania metody selekcji ruletkowej z
oznaczonymi rodzicami jednego chromosomu potomnego („Chromosom 1”)
4.10. Proces ewolucji – operatory krzyżowania
Jedną z najważniejszych operacji w trakcie pracy algorytmy genetycznego stanowi
operacja krzyżowania (ang. crossing over), zwana też operacją reprodukcji. Wynikiem
działania wymienionego operatora jest mieszanina genów (cech) otrzymana od dwóch
osobników rodzicielskich biorących udział w procesie, a przekazywana dwóm nowym
potomkom [49]. Wartość prawdopodobieństwa dla operacji krzyżowania ustalono na
poziomie 1cp .
W ramach badanych rozwiązań zaimplementowano modele krzyżowania według
następujących algorytmów:
jednopunktowego [48, 50, 51];
równomiernego (jednolitego, jednostajnego) [34];
dwupunktowego [31, 47].
4.10.1. Krzyżowanie jednopunktowe
Krzyżowanie jednopunktowe jest jedną z odmian operatora krzyżowania w której
przy tworzeniu osobników potomnych wybierany jest dokładnie jeden punkt rozcięcia
materiału genetycznego osobników rodzicielskich, położony na tej samej pozycji u obu
rodziców, a następnie ciągi genów umiejscowione za punktem rozcięcia są zamieniane ze
sobą, zgodnie z algorytmem zaprezentowanym w pseudokodzie 4.5. Efekt działania
operatora krzyżowania jednopunktowego na przykładowych danych przedstawia rysunek
4.8.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 58 –
Rysunek 4.8. Krzyżowanie jednopunktowe
Pseudokod 4.5. Krzyżowania jednopunktowe
Krzyżowanie jednopunktowe Input:
chromosomA1, chromosomA2, długość (liczba genów)
Output:
chromosomB1, chromosomB2
1: i 0
2: punkt_cięcia Random[0,długość)
3: for i < długość do 4: if( i <= punkt_cięcia ) then
5: chromosomB1[i] chromosomA1[i]
6: chromosomB2[i] chromosomA2[i]
7: end if 8: else
9: chromosomB1[i] chromosomA2[i]
10: chromosomB2[i] chromosomA1[i]
11: end else
12: i i + 1
13: end for
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 59 –
4.10.2. Krzyżowanie równomierne
W przypadku krzyżowanie równomiernego definiujemy pewne
prawdopodobieństwo (zazwyczaj zmienna prwdb przyjmuje wartość 0.5), faworyzujące
wybór kolejnego genu od konkretnego rodzica, a transfer genów odbywa się według
pewnego wylosowanego wzorca. I tak w prezentowanym przykładzie jeżeli wylosowana
wartość okaże się większa od zdefiniowanego prawdopodobieństwa to pierwszy osobnik
potomny otrzyma bieżący gen od pierwszego rodzica, komplementarnie drugi rodzic
przekaże swój gen drugiemu potomkowi z pary. Jeżeli natomiast wylosowana wartość
będzie niższa, od ustalonego prawdopodobieństwa to role się odwrócą i pierwszy potomek
z pary otrzyma swój gen od drugiego rodzica natomiast drugi potomek dostanie gen od
pierwszego osobnika rodzicielskiego, tak jak określono w pseudokodzie 4.6.
Pseudokod 4.6. Krzyżowanie równomierne
Krzyżowanie równomierne Input:
chromosomA1, chromosomA2, długość (liczba genów),
prwdb = 0,5
Output:
chromosomB1, chromosomB2
1: i 0
2: for i < długość do 3: if( prwdb <= Random[0,1] ) then
4: chromosomB1[i] chromosomA1[i]
5: chromosomB2[i] chromosomA2[i]
6: end if 7: else
8: chromosomB1[i] chromosomA2[i]
9: chromosomB2[i] chromosomA1[i]
10: end else
11: i i + 1
12: end for
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 60 –
Na rysunku 4.9 przedstawiono wynik operacji krzyżowania równomiernego dla
przykładowych danych przy sześciu genach w chromosomach rodzicielskich, przy
założeniu następującego ciągu liczb losowych:
Random[0,1] < 0.5,
Random[0,1] > 0.5,
Random[0,1] > 0.5,
Random[0,1] < 0.5,
Random[0,1] > 0.5,
Random[0,1] < 0.5.
Rysunek 4.9. Krzyżowanie równomierne
4.10.3. Krzyżowanie dwupunktowe
W przypadku krzyżowania dwupunktowego mamy do czynienia z sytuacją
zbliżoną do warunków przy zastosowaniu operatora krzyżowania jednopunktowego z tą
drobną różnicą, że chromosom dzielą dwa punkty cięcia, a nie jeden, tak jak w przypadku
prostej reprodukcji jednopunktowej. Schematycznie proces krzyżowania dwupunktowego
dla przykładowych danych został przedstawiony na rysunku 4.10, natomiast algorytm
działania zaprezentowano w pseudokodzie 4.7.
Rysunek 4.10. Krzyżowanie dwupunktowe
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 61 –
Pseudokod 4.7. Krzyżowanie dwupunktowe
4.11. Proces ewolucji – operator mutacji
Operacja mutacji stanowi pewną losową zmianę w materiale genetycznym
osobnika, której celem jest poszerzenie obszaru przeszukiwań przestrzeni możliwych
rozwiązań [8] i uniknięcia uwięzienia w lokalnym optimum [17]. W implementowanym
rozwiązaniu algorytmu genetycznego zastosowana mutację punktową, w której z pewnym
prawdopodobieństwem, zwanym prawdopodobieństwem mutacji mp , następuje losowa
zmiana pojedynczego, losowo wybranego genu przetwarzanego osobnika, zgodnie
z wartością wylosowaną przez generator. Operator ten powstał na bazie idei
przedstawionej w [52], z tą różnicą, że na podstawie badań wstępnych ustalono inną
(bardziej optymalną wartość) mp . Efekt działania operatora mutacji na przykładowym
chromosomie zaprezentowano na rysunku 4.11.
Krzyżowanie dwupunktowe Input:
chromosomA1, chromosomA2, długość(liczba genów)
Output:
chromosomB1, chromosomB2
1: i 0
2: punkt_cięcia Random[0,dlugość)
3: punkt_cięcia2 Random[0,dlugość)
4: for i < długość do 5: if( i <= punkt_cięcia or i > punkt_cięcia2) then
6: chromosomB1[i] chromosomA1[i]
7: chromosomB2[i] chromosomA2[i]
8: end if 9: else
10: chromosomB1[i] chromosomA2[i]
11: chromosomB2[i] chromosomA1[i]
12: end else
13: i i + 1
14: end for
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 62 –
Rysunek 4.11. Efekt działania operatora mutacji na przykładowym chromosomie
4.12. Proces ewolucji – redukcja duplikatów
W procesie ewolucji na każdym kroku stosowania operatorów genetycznych
tworzone są nowe osobniki. Nie istnieje jednak żaden naturalny mechanizm, który byłby w
stanie uchronić przed tworzeniem duplikatów chromosomów a priori. Jest to jednak o tyle
istotne, że wprowadzono specjalną metodę redukcji powtarzających się osobników
a posteriori, która zastępuje zduplikowane chromosomy losowo wygenerowanymi
osobnikami w każdej generacji [53]. Proces redukcji duplikatów został przedstawiony na
rysunku 4.12.
Rysunek 4.12. Proces redukcji duplikatów
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 63 –
4.13. Proces ewolucji – sukcesja: tworzenie nowej populacji
W wyniku zastosowania pełnego spektrum operatorów genetycznych, począwszy
na selekcji osobników ocenionych przez funkcję dopasowania, poprzez operację
krzyżowania, a skończywszy na mutacji tworzone jest nowe pokolenie, tzw. populacja
potomna. Na tym etapie procesu ewolucji, przy założeniach przedstawionych
w poprzednich sekcjach, łączna liczba osobników w algorytmie jest dwukrotnie większa
od liczności pojedynczej populacji. W procesie sukcesji następuje wybór osobników
zarówno z populacji potomnej, jak i populacji rodzicielskiej, zgodnie z modelem elitarnym
[18, 54]. Po połączeniu obu zbiorów lista osobników jest sortowana począwszy od
najlepiej przystosowanych, a skończywszy na najgorzej dostosowanych chromosomach.
Do kolejnej generacji przechodzą tylko najlepsze osobniki, natomiast pozostałe nie są
uwzględnianie w procesie. Schemat, zgodnie z którym zachodzi proces tworzenia nowej
populacji i sukcesji osobników został przedstawiony na rysunku 4.13.
Rysunek 4.13. Proces sukcesji osobników do nowej generacji
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 64 –
5. Topologia i metody generacji modeli sieci
W rozdziale przedstawiono metody generowania topologii sieci zaprezentowane
w literaturze oraz modele wykorzystane w toku badań symulacyjnych. Omówione zostały
sposoby odwzorowania struktur istniejących sieci, a także dostępne modele generatorów.
Ponadto scharakteryzowano reguły rządzące procesem tworzenia topologii w ramach
poszczególnych modeli.
5.1. Wprowadzenie
Właściwe odwzorowanie topologii sieci teleinformatycznych jest podstawowym
elementem służącym do modelowania i analizy sieci pakietowych oraz stosowanych lub
implementowanych w niej protokołów [55]. Dynamicznemu rozwojowi sieci pakietowych
towarzyszy wiele problemów związanych z trasowaniem połączeń, rezerwacją zasobów
i administracją poszczególnymi elementami sieci. Niezależnie od rzeczywistej topologii
każdą sieć można przedstawić jako zbiór węzłów, połączonych łączami. Taka
reprezentacja naturalnie desygnuje strukturę grafu do opisu rzeczywistych sieci [42]. Na
rysunku 5.1 zaprezentowano przykładową sieć oraz jej reprezentację w postaci grafu
nieskierowanego.
Rysunek 5.1. Przykładowa sieć oraz jej reprezentacja w postaci grafu nieskierowanego
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 65 –
5.2. Idealny generator
Idealny generator topologii sieci powinien charakteryzować się jak
najdokładniejszą reprezentacją i odwzorowaniem pożądanej struktury [41]. Jednakże
z powodu dynamiki zmian w strukturze sieci, związanej z losowym dołączaniem
i dłączaniem węzłów w sieci, nie istnieją realne możliwości na zbudowanie modelu
przedstawiającego aktualną strukturę. Ponadto użycie takiej hipotetycznej, złożonej
struktury, odwzorowującej dokładnie wszystkie poziomy sieci, zapewne okazało by się
nieekonomiczne i bez wątpienia wysoce skomplikowane obliczeniowo. Z tego powodu
takie modele generowane są na podstawie pomiarów topologii sieci, które nie są
kompletne i całkowicie dokładne. Ograniczenie dokładności wiąże się z faktem zbyt dużej
złożoności sieci [56, 57]. Dokładność odwzorowania sieci jest lepsza na poziomie
Systemów Autonomicznych (rysunek 5.2). Systemem Autonomicznym (ang. AS -
Autonomous System) nazywamy sieć lub grupę sieci pod wspólną kontrolą
administracyjną, w której utrzymywany jest spójny schemat routingu (ang. routing policy).
Wynika to z większej ilości informacji, które można uzyskać na przykład z tablic BGP
(ang. Border Gateway Protocol) routerów umieszczonych pomiędzy szkieletem sieci
Internet, a danym System Autonomicznym [58].
Rysunek 5.2. „Sieć sieci” – zbiór systemów autonomicznych (AS)
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 66 –
Pozyskanie informacji w przypadku próby określenia topologii sieci na poziomie
ruterów jest bardziej skomplikowane i wymaga zewnętrznych systemów do badania trasy
pakietów w sieci [59]. Pomimo prowadzonych prac badawczych poznanie dokładnych
właściwości i praw rządzących strukturami sieci na tym poziomie ciągle pozostaje otwartą
kwestią.
Kolejnym istotnym aspektem badań topologii sieci jest częste zawężanie informacji
do fizycznej budowy sieci, podczas gdy trasowanie połączeń w sieciach często zależy nie
tylko od fizycznych połączeń, ale również od polityki routingu, stąd fizyczna dostępność
węzła nie zawsze jest równoznaczna z jego osiągalnością [41].
Na koniec należy wspomnieć, że nawet możliwa do uzyskania znajomość
aktualnych relacji na poziomie systemów autonomicznych podlega ciągłym zmianom
w czasie i obecna struktura sieci szybko może okazać się nieaktualna.
5.3. Metody generowania sieci
Mimo wymienionych w poprzedniej sekcji niedoskonałości w prezentowanych
w literaturze odwzorowaniach sieci, okazuje się że wystarczające jest badanie ruchu
w pojedynczych domenach (lub Systemach Autonomicznych), a także ruchu
międzydomenowego, albowiem takie badania odzwierciedlają w przybliżeniu większość
zdarzeń w całej sieci [42]. W rozdziale 5.1 wspomniano, że do modelowania sieci
wykorzystuje się grafy. Zatem do generowania topologii sieci można zastosować
następujące metody generowania grafów [60]:
metoda losowa (płaska),
metoda potęgowa,
metoda hierarchiczna,
metoda regularna.
Metoda losowa (płaska), określana w literaturze mianem „random flat”,
charakteryzuje się konstruowaniem grafu poprzez losowe dodawanie krawędzi do
określonego zbioru wierzchołków [42]. Wadą tego rozwiązania jest brak odzwierciedlenia
rzeczywistej struktury sieci, aczkolwiek uzyskana w ten sposób prostota sprzyja jej
popularności i jest często wykorzystywanym modelem w analizie sieci.
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 67 –
W ramach podejścia losowego można wyróżnić dwa najbardziej podstawowe modele [61]:
model G(n, p),
model G(n, k).
W przypadku grafów losowych powstałych na bazie modelu G(n, p) przetwarzane
są niezależnie wszystkie krawędzie grafu pełnego nK i z pewnym prawdopodobieństwem
p wybierane do grafu losowego G(n, p) o liczbie n wierzchołków. Algorytm postępowania
został przedstawiony w pseudokodzie 5.1. Wartość oczekiwana E, liczby krawędzi grafu
G(n, p) jest równa:
E = 2
)1( nnp (5.1)
Pseudokod 5.1. Model G(n, p)
Innym modelem grafów losowych jest metoda G(n, k), w której dana jest liczba
wierzchołków grafu n i liczba jego krawędzi k. Jest to model sekwencyjny, czyli do grafu,
który nie zawiera na początku ani jednej krawędzi, dodaje się pierwszą wylosowaną
krawędź, potem drugą i kolejne, aż do uzyskania grafu o k krawędziach. W związku z tym
w każdym kroku algorytmu należy spełnić warunek jednakowego prawdopodobieństwa
wylosowania jeszcze nie wybranej krawędzi. Ideę działania metody G(n, k) przedstawia
pseudokod 5.2.
Model G(n, p)
Input:
liczba wierzchołków grafu n; prawdopodobieństwo wylosowania krawędzi p;
Output:
kraw – tablica przyległości grafu;
1: Zainicjalizuj tablice kraw o wymiarach [n x n] 2: for a,b: 1 < a < n 1< b < n do 3: if(Random[0,1] <= p) then 4: dodaj krawędź (a,b) do grafu 5: end if 6: end for
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 68 –
Pseudokod 5.2.Model G(n, k)
Bardziej wyrafinowany przykład rozwiązania dodającego krawędzie do
rozpatrywanego zbioru stanowi metoda Waxmana, w której w przeciwieństwie do metody
G(n, p), prawdopodobieństwo dodania krawędzi jest zależne od odległości pomiędzy
węzłami [39]. Wadą tego rozwiązania, podobnie jak poprzednich metod losowych, jest
fakt, że nie narzuca ono żadnej struktury w dużej skali na generowane węzły, korzystając
jedynie z metryki dystansu [62]. Prawdopodobieństwo wystąpienia krawędzi {u, v}
definiuje się w postaci zależności:
P(u, v) = e (5.2)
gdzie: L
d
0 < < 1
0 < < 1
d - odległość euklidesowa pomiędzy węzłami u i v,
L - maksymalna odległość między dwoma dowolnymi węzłami.
Model G(n, k)
Input:
liczba wierzchołków grafu n; liczba krawędzi grafu k;
Output:
kraw – wektor wszystkich krawędzi grafu, którego k elementów o najwyższych indeksach stanowi wylosowany graf
1: Zainicjalizuj wektor kraw[n], w którym znajdują się wszystkie krawędzie
2: h n*(n-1)/2
3: for k > 0 do
4: k k-1
5: wybrany Random[0,h]
6: zamień element kraw[wybrany] z elementem kraw[h] 7: end for
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 69 –
Model Waxmana występuje również w literaturze w zmodyfikowanych postaciach,
zwanych odpowiednio [60]:
Expotential
Locality
W metodzie Expotential wyjściowa postać (wzór 2.2) została zmodyfikowana do
postaci:
P(u, v) = e (5.3)
gdzie: dL
d
0 < < 1
d - odległość euklidesowa pomiędzy węzłami u i v,
L - maksymalna odległość między dwoma dowolnymi węzłami.
W przypadku modelu Expotential prawdopodobieństwo wystąpienia krawędzi dąży
do zera wraz ze wzrostem odległości do wartości L.
Inną modyfikacje metody Waxmana stanowi model Locality, w którym wszystkie
krawędzie dzielone są na dwa podzbiory w celu wyznaczenia prawdopodobieństwa
istnienia krawędzi zgodnie ze wzorem:
P(u, v) =
rd
rd
dla
dla
(5.4)
gdzie: r jest granicą.
Inne podejście, niż opisane powyżej metody, prezentuje model Barabasi-Alberta,
w którym zastosowano metodę tak zwanego „preferencyjnego przyłączenia” oraz
„stopniowy wzrost sieci” [40]. Autorzy tego rozwiązania sugerują, że właśnie te dwa
wymienione czynniki są przyczyną występowania tak zwanych „zależności potęgowych”
(ang. power laws) w liczbie łączy wychodzących z danego węzła.
Wzrost sieci w modelu Barabasi-Alberta jest związany z podłączaniem do
istniejącej struktury nowych węzłów, czego wynikiem jest stopniowe zwiększanie się
rozmiaru sieci, natomiast preferencyjne przełączanie oznacza, że z większym
prawdopodobieństwem nowy węzeł zostanie podłączony do istniejących węzłów o
wysokim stopniu węzła (węzły popularne) [42].
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 70 –
Prawdopodobieństwo przyłączenia węzła u do węzła v, należącego do sieci, określa wzór:
P(u, v) = Vk k
AV
d
d (5.5)
gdzie: AVd - stopień węzła docelowego v,
V - zbiór przyłączonych węzłów,
Vk kd - suma krawędzi wchodzących w skład sieci.
Przedostatnią grupę opisywanych modeli stanowią tak zwane metody regularne
charakteryzujące się tworzeniem struktury według ściśle określonych zasad i ograniczeń,
bez uwzględniania czynnika losowego. Regularne topologie są wykorzystywane do analizy
wydajności algorytmów z powodu prostoty przetwarzania [62]. Na rysunku 5.3
zaprezentowano tak zwaną „kratę” – typowy przykład topologii regularnej.
Rysunek 5.3. „Krata” – przykład topologii regularnej
W przypadku ostatniej klasy – metod hierarchicznych tworzone są małe podgrafy
losowe łączone w większej skali w bardziej rozbudowane struktury [62]. Na każdym
poziomie stosowane są opisane metody generowanie losowych grafów płaskich. Przykład
struktury wielopoziomowej, ze wskazaniem grafów na poszczególnych poziomach,
prezentuje rysunek 5.4.
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 71 –
Rysunek 5.4. Przykład struktury wielopoziomowej
5.4. BRITE – Boston university Representative Internet Topology gEnerator
Generator topologii BRITE (nazwa pochodzi od Boston university Representative
Internet Topology gEnerator) został stworzony jako uniwersalne i elastyczne narzędzie
przeznaczone do tworzenia szeregu modeli sieci, bez ograniczeń narzuconych na metody
generacyjne [41].
Architektura generatora BRITE została przedstawiona na rysunku 5.5. BRITE
dostarcza osiem różnych modeli generacyjnych, podzielonych na odpowiednie kategorie,
zgodnie z zaprezentowanym schematem. Każdy z zaprezentowanych na rysunku 5.5
modeli posiada funkcję „Generate method”, która zwraca graf zawierający wygenerowaną
strukturę o pożądanej topologii.
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 72 –
Rysunek 5.5. Modele klas i pochodnych klas w BRITE [41]
W procesie generacji każdej topologii w generatorze BRITE możemy wyróżnić
następujące etapy [41]:
rozmieszczenie węzłów sieci na płaszczyźnie;
połączenie ze sobą poszczególnych węzłów w celu uzyskania spójnej struktury
z użyciem wybranych metod (szerzej opisanych w rozdziale 5.3);
zapisanie charakterystyk (koszt, opóźnienie, itd.) poszczególnych łączy
pomiędzy węzłami oraz informacji o samych węzłach (numery systemów
autonomicznych);
zapisanie utworzonej struktury w pliku o określonym formacie.
Zgodnie z zaprezentowanym algorytmem postępowania proces rozrastania się
topologii i łączenia węzłów został w generatorze BRITE rozdzielony od procesu
nakładania węzłów na płaszczyznę, co oznacza, że utworzenie nowego węzła poprzez
wybór określonego punktu położenia na płaszczyźnie nie jest tożsame z równoczesnym
podłączeniem go do generowanej topologii.
Klasa „modeli płaskich” (rysunek 5.5) na poziomie routerów udostępnia metodę
„PlaceNodes” pozwalającą na rozmieszczenie węzłów zgodnie z dwoma rozkładami:
losowym,
dalekosiężnym.
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 73 –
W pierwszym przypadku, rozkładu losowego, każdy węzeł zostaje umieszczony na
płaszczyźnie w losowo wybranej lokalizacji. W drugim przypadku, dla rozkładu
dalekosiężnego, generator dzieli płaszczyznę na kwadraty o określanych parametrach,
podanych przed rozpoczęciem procesu [41]. Każdemu kwadratowi przyporządkowana jest
pewna wartość wyznaczona z rozkładu dalekosiężnego określająca liczbę węzłów na
danym polu. W ramach każdego kwadratu węzły lokowane są na płaszczyźnie w sposób
losowy. Różnice w alokacji węzłów pomiędzy rozkładem losowym, a dalekosiężnym
schematycznie prezentuje rysunek 5.6, na którym obserwujemy widoczne zgrupowania
węzłów w ramach wylosowanych kwadratów dla metody dalekosiężnej.
Rysunek 5.6. Schematyczna prezentacja różnic w alokacji węzłów pomiędzy rozkładem losowym, a dalekosiężnym
Po zakończeniu procesu alokacji węzłów na płaszczyźnie następuje etap
przyporządkowania charakterystyk (nałożenia metryk) zgodnie z jednym z czterech
następujących rozkładów:
stałym,
równomiernym,
wykładniczym,
dalekosiężnym.
W przypadku rozkładu stałego wartość metryki przyporządkowanej danemu łączu
określa parametr „BWmin”, który jest taki sam dla wszystkich krawędzi generowanej
struktury. W drugim przypadku, dla rozkładu równomiernego, wartości przyporządkowane
poszczególnym krawędziom są równomiernie rozłożone pomiędzy wartością „BWmin”,
a wartością „BWmax”. Dla trzeciego przypadku przyporządkowane metryki mają rozkład
wykładniczy ze średnią „BWmin”. Wybór ostatniego wariantu oznacza wartości zgodne
z rozkładem dalekosiężnym w przedziale z najmniejszą wartością równą „BWmin”,
a największą równą „BWmax”, o kształcie wybranym przez użytkownika.
Generowane metryki są wartościami bezjednostkowymi, dlatego mogą być
interpretowane i używane zgodnie z potrzebami – na przykład jako wartość opóźnienia
wzdłuż łącza [41].
5. Topologia i metody generacji modeli sieci
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 74 –
Generator BRITE oprócz klasy modeli płaskich na poziomie routerów dostarcza
również modele sieci na poziomie systemów autonomicznych (rysunek 5.5), które są
bardzo podobne do opisanej klasy poziomu routerów. Podstawową cechą odróżniająca
obie klasy jest to, że klasa poziomu AS umieszcza na płaszczyźnie węzły AS, które mogą
zwierać skojarzone topologie na poziomie routerów (dwa poziomi hierarchii) [41]. Oba
poziomy dostarczają metody generacyjne zgodne z modelem Waxmana oraz modelem
Barabasi-Alberta.
BRITE pozwala również na generowanie struktur hierarchicznych zgodnie
z modelem „top-down”, który przebiega następująco: w pierwszym etapie generowana jest
topologia na poziomie AS zgodnie z jednym z dostępnych modeli, a następnie dla każdego
węzła tworzona jest odpowiednia topologia na poziomie routerów [41]. W przypadku
drugiej metody hierarchicznej „bottom-up” proces generacyjny rozpoczyna się odwrotnie,
niż w poprzednim wypadku - od stworzenia poziomu routerów, a następnie, w drugim
etapie, systemom autonomicznym przyporządkowywane są wygenerowane wcześnie
routery. Proces ten może odbywać się na dwa sposoby, przez:
wybieranie losowe,
losowy spacer po grafie (ang. random walk).
W pierwszym przypadku, wybierania losowego, w każdym kroku losowo
wybierany router przypisywany jest do określonego systemu autonomicznego, proces ten
jest powtarzany dla poszczególnych systemów autonomicznych dopóki nie zostanie
osiągnięta pożądana wielkość układu [63].
W drugim przypadku, tak zwanego „losowego spaceru”, w każdym kroku losowo
wybierany węzeł sąsiadujący z aktualnym zostaje przypisany do określanego systemu
autonomicznego. Losowy spacer trwa tak długo, dopóki dany system nie zostanie
zapełniony pożądaną liczbą routerów, po czym rozbudowywany jest kolejny system
autonomiczny, podobnie jak w pierwszym przypadku - aż do osiągnięcia określonej
wielkości układu [63].
Ostatnim istotnym poruszenia aspektem pracy z generatorem BRITE jest
możliwość eksportu oraz importu modeli sieci, którą to funkcjonalność zapewnia klasa
„ImportedFileModel”. Dzięki temu rozwiązaniu istnieje możliwość korzystania z innych
metod generacyjnych, niż te zawarte w projekcie BRITE.
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 75 –
6. Badania symulacyjne
Niniejszy rozdział został poświecony prezentacji wyników przeprowadzonych
badań symulacyjnych. W pierwszej części przedstawiono porównanie wyników
otrzymywanych przy zastosowaniu różnych rozwiązań genetycznych, analizując wpływ
zastosowanych metod na szybkość (wymaganą liczbę generacji) osiągania stanu nasycenia
poszczególnych algorytmów oraz względną złożoność w różnych warunkach pracy.
W drugiej części zaprezentowano zestawienie otrzymanych wyników wartości kosztu
drzewa transmisji grupowej dla różnych topologii sieci na tle rezultatów zwracanych przez
popularne rozwiązania heurystyczne w postaci algorytmów: KPP, CSPT oraz drzewa
minimalnych opóźnień LDC. Przeprowadzone badania symulacyjne zweryfikowały
poprawność działania algorytmu w funkcji wielu parametrów sieci, takich jak: liczba
węzłów sieci, średni stopień węzła czy liczba węzłów w grupie transmisji grupowej.
Badania zostały przeprowadzone dla 95% przedziału ufności. Wszystkie eksperymenty
wykonano zarówno dla topologii Waxmana, jak i sieci wygenerowanych zgodnie
z modelem Barabasi-Alberta.
6.1. Analiza wydajności różnych rozwiązań genetycznych
Na następnych stronach pracy przedstawiono rezultaty uzyskane w wyniku
zastosowania różnych rozwiązań genetycznych. Krótkie podsumowanie
zaimplementowanych algorytmów, wraz z oznaczeniami zastosowanymi na wykresach
prezentuje tabela 6.1.
Tabela 6.1. Elementy charakterystyczne rożnych rozwiązań genetycznych
Oznaczenie algorytmu
Metoda generacji danych
Metoda krzyżowania
Metoda selekcji
AG 1 BFS Model 2-punktowy
Model rankingowy
AG 2 / AG2brd2
k najkrótszych ścieżek
Model 1-punktowy
Model ruletkowy
AG 3 k najkrótszych
ścieżek Model 2-punktowy
Model ruletkowy
AG 4 k najkrótszych
ścieżek Model
równomierny Model
ruletkowy
2 brd (bez redukcji duplikatów) oznacza algorytm opisany w źródle. Przeprowadzone badania wykazały lepszą efektywność algorytmów po zastosowaniu redukcji. Rozwiązania rozbudowane o tą metodę nie posiadają rozszerzenia w nazwie.
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 76 –
AG 5 k najkrótszych
ścieżek Model 1-punktowy
Model rankingowy
AG 6 / AG6brd3
k najkrótszych ścieżek
Model 2-punktowy
Model rankingowy
AG 7 k najkrótszych
ścieżek Model
równomierny Model
rankingowy
AG 8 k najkrótszych
ścieżek Model 1-punktowy
Model turniejowy
AG 9 k najkrótszych
ścieżek Model 2-punktowy
Model turniejowy
AG 10 k najkrótszych
ścieżek Model
równomierny Model
turniejowy
Rozwiązania oznaczone w tabeli jako AG2brd jest wzorowane na artykule [23]
oraz [25]. Natomiast rozwiązanie oznaczone jako AG6brd opiera się na opisach
przedstawionych w artykułach [27] oraz [24]. Pozostałe rozwiązania testują różne
algorytmy prowadzenia operacji genetycznych, metod selekcji, oraz metod generacji tablic
szeroko opisane w pracy. Niestety wspomniane na początku artykuły (jak i większość
źródeł poświęconych problemowi trasowania połączeń z użyciem metod genetycznych)
nie precyzują wszystkich parametrów opisywanych rozwiązań, dlatego programowane
algorytmy są pewnym przybliżeniem przedstawianych w literaturze rozwiązań. Ponadto
w celu stworzenia jednolitych warunków porównawczych dokonano pewnej standaryzacji
wszystkich zaimplementowanych rozwiązań do kategorii DCLC (ang. Delay Constrained
Least Cost) związanej z redukcją niektórych ograniczeń narzuconych przez autorów prac
(jak chociażby maksymalny stopień węzła drzewa transmisji grupowej w [27]).
6.2. Ustalenie parametrów (punktu) pracy algorytmu
Przed przystąpieniem przez algorytm genetyczny do procesu optymalizacji
rozważanego problemu konieczne jest znalezienie optymalnych parametrów pracy.
Efektywność działania zaimplementowanego rozwiązania jest zależna od wielu
czynników, które łącznie wpływają na otrzymywany wynik. Dokonując generalnego
podziału parametrów możemy wyróżnić dwie kategorie w postaci elementów pośrednich
oraz bezpośrednich. Do klasy czynników bezpośrednich można zaliczyć takie parametry
jak liczbę węzłów w grupie multicastowej czy oczekiwaną liczbę ścieżek dla wszystkich
3 brd (bez redukcji duplikatów) oznacza algorytm opisany w źródle. Przeprowadzone badania wykazały lepszą efektywność algorytmów po zastosowaniu redukcji. Rozwiązania rozbudowane o tą metodę nie posiadają rozszerzenia w nazwie.
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 77 –
relacji łączących poszczególne węzły grupy multicastowej z węzłem źródłowym. Innym
elementem bezpośrednim jest obrana metoda generacji dróg, która może istotnie wpłynąć
na ograniczenie zbioru rozwiązań dopuszczalnych. Wymienione elementy bezpośrednio
wpływają na wielkość obszaru przeszukiwań oraz możliwość osiągnięcia przez algorytm
genetyczny punktów optymalnych w analizowanej przestrzeni. Drugą klasę stanowią
elementy wpływające na szybkość konwergencji zaimplementowanych rozwiązań w
ramach ograniczeń wprowadzonych w poprzedniej klasie, decydując jednocześnie o
jakości rozwiązania analizowanego problemu. Schematycznie proces wyznaczania punktu
pracy został przedstawiony na rysunku 6.1.
Rysunek 6.1. Ustalanie parametrów pracy rozwiązań genetycznych w problemie trasowania połączeń rozgałęźnych
Zależność otrzymywanego rozwiązania może być przedstawiona jako funkcja wielu
zmiennych postaci:
))),,((,,,( gm MmkKIgpof , (6.1)
gdzie: o – liczba osobników w pojedynczej generacji (iteracji),
mp – prawdopodobieństwo mutacji,
g – liczba generacji,
)),,(( gMmkKI – funkcja odpowiadająca za generacje tablic trasowania,
K(k, m) – funkcja odpowiadająca za liczbę ścieżek na jednej z m liczby
relacji,
k – oczekiwana liczba ścieżek,
m – liczba węzłów w grupie multicastowej,
gM – metoda generacji.
6.3. Analiza porównawcza różnych algorytmów genetycznych
W kolejnych podpunktach zaprezentowano i przeanalizowano wpływ różnych
parametrów na efektywność pracy poszczególnych algorytmów genetycznych, począwszy
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 78 –
od wpływu metody generowania ścieżek na otrzymywany rezultat końcowy, poprzez
zależność szybkości osiągania stanu nasycenia algorytmów dla różnych wartości
prawdopodobieństwa mutacji oraz różnych rozwiązań genetycznych.
6.3.1. Metody generacji ścieżek
Na rysunku 6.2 przedstawiono wykres zależności kosztu drzewa transmisji
grupowej w funkcji liczby generowanych ścieżek K dla każdej relacji. Analiza została
przeprowadzona dla sieci o n = 100 wierzchołkach, k = 200 krawędziach i grupie
multicastowej M o wielkości 10 węzłów. Czas rozwoju populacji ograniczono do 1000
generacji. Prezentowana na wykresie zależność jednoznacznie wskazała lepsze
rozwiązanie w postaci algorytmu k najkrótszych ścieżek Dijkstry w stosunku do
przeszukiwania wszerz - BFS, niezależnie od liczby generowanych dróg. Wraz ze
wzrostem liczby generowanych ścieżek obserwujemy wyrównywania się otrzymywanych
wyników, jednakże należy mieć na uwadze fakt, że większa liczba dróg oznacza większe
wymagania w procesie optymalizacji, co tym bardziej potwierdza skuteczność rozwiązania
opartego na algorytmie Dijkstry.
Rysunek 6.2. Wykres zależności kosztu drzewa transmisji grupowej w funkcji oczekiwanej liczby generowanych ścieżek dla każdej relacji
6.3.2. Prawdopodobieństwo mutacji
Na rysunku 6.3 przedstawiono wykres zależności znormalizowanej liczby iteracji
(generacji) w funkcji wartości prawdopodobieństwa mutacji. Analiza została
przeprowadzona dla sieci o n = 100 wierzchołkach, k = 200 krawędziach i grupie
multicastowej M o wielkości 10 węzłów. Wielkość tablic trasowania ustalono na poziomie
K = 50. Czas rozwoju populacji ograniczono do 1000 generacji. Dla wszystkich rozwiązań
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 79 –
genetycznych w analizowanym problemie trasowania połączeń zwiększanie
prawdopodobieństwa mutacji prowadziło do zwiększenia czasu rozwoju populacji.
Zaprezentowana zależność jest zgodna z ogólną tendencją do traktowania mutacji jako
operatora drugorzędnego w stosunku do operatora reprodukcji o niskim
prawdopodobieństwie zajścia zdarzenia mającym na celu unikanie zatrzymanie procesu
w jednym punkcie.
Rysunek 6.3. Wykres zależności znormalizowanej liczby iteracji (generacji) w
funkcji prawdopodobieństwa mutacji
6.3.3. Redukcja duplikatów
Zastosowanie w procesie optymalizacji modułu redukującego duplikaty
(powtarzające się w danej iteracji chromosomy) prowadzi do poprawy otrzymywanych
rezultatów w postaci kosztu drzewa transmisji grupowej. Jednakże proces ten jest
okupiony zwiększeniem liczby generacji potrzebnych do osiągnięcia najlepszego wyniku.
Zależność ta została zaprezentowana na rysunku 6.4, analizę przeprowadzono dla sieci
o n = 100 wierzchołkach, k = 200 krawędziach i grupie multicastowej M o wielkości 10
węzłów. Wielkość tablic trasowania ustalono na poziomie K = 50, a liczbę osobników o =
100. Czas rozwoju populacji ograniczono do 1000 generacji.
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 80 –
Rysunek 6.4. Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej w funkcji znormalizowanej liczby generacji
6.3.4. Model ruletkowy
Rysunek 6.5. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego
Na rysunku 6.5 zaprezentowano wykres zależności znormalizowanej liczby
pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego.
Wykres został znormalizowany względem najlepszego rozwiązania, to jest krzyżowania
według algorytmu równomiernego, które pozwoliło uzyskać względnie najmniejszą liczbę
generacji, niezależnie od symulowanej w danym pokoleniu liczby osobników. Analiza
została przeprowadzona dla sieci o n = 100 wierzchołkach, k = 200 krawędziach i grupie
multicastowej M o wielkości 10 węzłów. Wielkość tablic trasowania ustalono na poziomie
K = 50. Czas rozwoju populacji ograniczono do 1000 generacji.
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 81 –
Rysunek 6.6. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby
osobników w pojedynczej generacji dla modelu ruletkowego
Na podstawie otrzymanej zależności należy przypuszczać, że zwiększanie
wielkości populacji prowadzi do redukcji liczby pokoleń, a co za tym idzie szybszej pracy
danego rozwiązania.
Jednakże taka hipoteza była by zbyt pochopna na tle danych przedstawionych na
rysunku 6.6. Prezentowany wykres zależności znormalizowanej liczby wywołań funkcji
oceny w funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego
jednoznacznie pokazuję, że każdy dodatkowy organizm w populacji zwiększa liczbę
wywołań wspomnianej funkcji. Wykres został znormalizowany względem najlepszego
rezultatu (model równomierny). Analiza została przeprowadzona dla sieci o n = 100
wierzchołkach, k = 200 krawędziach i grupie multicastowej M o wielkości 10 węzłów.
Wielkość tablic trasowania ustalono na poziomie K = 50. Czas rozwoju populacji
ograniczono do 1000 generacji.
6.3.5. Model rankingowy
Rysunek 6.7 przedstawia wykres zależności znormalizowanej liczby pokoleń w
funkcji liczby osobników w pojedynczej generacji dla modelu rankingowego. Otrzymane
wartości zostały znormalizowane względem najlepszego rozwiązania, to jest krzyżowania
według algorytmu równomiernego. Analiza została przeprowadzona dla sieci o n = 100
wierzchołkach, k = 200 krawędziach i grupie multicastowej M o wielkości 10 węzłów.
Wielkość tablic trasowania ustalono na poziomie K = 50. Czas rozwoju populacji
ograniczono do 1000 generacji. Analogicznie jak w modelu ruletkowym, również w
przypadku rozwiązania rankingowego najlepiej sprawdza się algorytm równomierny,
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 82 –
zgodnie z tendencją, w której zwiększanie liczby osobników tworzących populacje w
pojedynczym przebiegu prowadzi do zmniejszania liczby generacji.
Rysunek 6.7. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w
pojedynczej generacji dla modelu rankingowego
Podobnie ma się sytuacja w przypadku wykresu zależności znormalizowanej liczby
wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu
rankingowego przedstawionego na rysunku 6.8 względem najlepszego rozwiązania, to jest
krzyżowania według algorytmu równomiernego. Analiza została przeprowadzona dla sieci
o n = 100 wierzchołkach, k = 200 krawędziach i grupie multicastowej M o wielkości 10
węzłów. Wielkość tablic trasowania ustalono na poziomie K = 50. Czas rozwoju populacji
ograniczono do 1000 generacji.
Wykres na rysunku 6.8 prezentuje wzrost liczby wywołań funkcji wraz ze
zwiększaniem wielkości populacji.
Rysunek 6.8. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby
osobników w pojedynczej generacji dla modelu rankingowego
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 83 –
6.3.6. Model turniejowy
Na rysunku 6.9 zaprezentowano wykres zależności znormalizowanej liczby
pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego.
Analiza została przeprowadzona dla sieci o n = 100 wierzchołkach, k = 200 krawędziach i
grupie multicastowej M o wielkości 10 węzłów. Wielkość tablic trasowania ustalono na
poziomie K = 50. Czas rozwoju populacji ograniczono do 1000 generacji.
Rysunek 6.9. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego
Wykres został znormalizowany względem najlepszego rozwiązania, to jest wartości
uzyskanej dla 150 osobników przy krzyżowanie zgodnie z algorytmem równomiernym,
który podobnie jak w pozostałych modelach okazał się najbardziej wydajnym
rozwiązaniem dla wszystkich wielkości populacji.
Rysunek 6.10. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 84 –
Rysunek 6.10 przedstawia wykres zależności znormalizowanej liczby pokoleń w
funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego. Analiza
została przeprowadzona dla sieci o n = 100 wierzchołkach, k = 200 krawędziach i grupie
multicastowej M o wielkości 10 węzłów. Wielkość tablic trasowania ustalono na poziomie
K = 50. Czas rozwoju populacji ograniczono do 1000 generacji.
6.3.7. Porównanie zbiorcze modeli
Rysunek 6.11. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji – porównanie zbiorcze
Na rysunku 6.11 zaprezentowano zbiorcze podsumowanie zależności
przedstawionych w poprzednich rozdziałach. Zamieszczony wykres jednoznacznie
desygnuje algorytm krzyżowania zgodnie z modelem równomiernym przy selekcji
turniejowej (oznaczony na wykresach jako AG 10) jako najlepsze rozwiązanie dla
wszystkich liczebności zbioru osobników tworzących populacje, pozwalające uzyskać
najlepszy wynik w najmniejszej liczbie generacji. Podobnie prezentuje się zależność
znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji,
przedstawiona na rysunku 6.12, w której najlepszym wynikiem (rozumianym jako
złożoność obliczeniowa potrzebna do osiągnięcia najlepszego stanu w ramach zadanych
ograniczeń rozwoju populacji) również odznacza się rozwiązanie równomierne oparte na
modelu turniejowym (AG 10). Rysunek 6.13 przedstawia zależność znormalizowanego
kosztu drzewa transmisji grupowej w funkcji liczby osobników. Niezależnie od liczby
generacji potrzebnej do znalezienia najlepszego rozwiązania wszystkie algorytmy
wyposażone w proces „redukcji duplikatów” prędzej czy później (liczba generacji) zbliżają
się do tego samego rezultatu, tym lepszego im więcej osobników znalazło się w
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 85 –
pojedynczej iteracji w ramach narzuconych ograniczeń. Można również zaobserwować
pewne nasycenie wraz ze wzrostem wielkości populacji, różnice w otrzymywanych
rezultatach są coraz mniejsze w stosunku do zmian wartości kosztu drzewa transmisji
grupowej dla małych populacji.
Rysunek 6.12. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji
liczby osobników w pojedynczej generacji – porównanie zbiorcze
Rysunek 6.13. Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej w funkcji
liczby osobników w pojedynczej generacji – porównanie zbiorcze
6.4. Analiza porównawcza rozwiązań genetycznych z klasycznymi heurystykami
Na podstawie analizy porównawczej przeprowadzonej w poprzednim rozdziale
desygnowano najlepszy algorytm genetyczny (AG), który posłuży do testów
porównawczych z klasycznymi rozwiązaniami heurystycznymi. W kolejnych podpunktach
zaprezentowano uzyskany w toku badań koszt drzew transmisji grupowej otrzymany w
wyniku zastosowania rozwiązań genetycznych z wartościami zwracanymi przez klasyczne
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 86 –
heurystyki stosowane w trasowaniu połączeń rozgałęźnych w postaci algorytmów: KPP,
CSPT oraz drzewem minimalnych opóźnień LDC. Badania symulacyjne przeprowadzono
dla szerokiego zestawu parametrów określających właściwości sieci testowych. Symulacje
uwzględniają metody generowania sieci zgodnie z modelem Waxmana oraz modelem
Barabasi-Alberta.
6.5. Koszt drzewa transmisji grupowej w funkcji liczby węzłów sieci
W pierwszym etapie badań wyznaczono koszt generowanych drzew w funkcji
liczby węzłów sieci z zakresu n = [20, 1000]. Wyniki przeprowadzonych eksperymentów
zostały podzielone na dwie kategorie: badania prowadzone na modelach Waxmana oraz na
modelach Barabasi-Alberta.
6.5.1. Model Waxmana
Na rysunku 6.14 przedstawiono wykres zależności kosztu drzewa transmisji
grupowej w funkcji liczby węzłów w sieci (skala log) bez ograniczeń na opóźnienie ()
wzdłuż łącza, przy grupie multicastowej M o liczebności 10 węzłów dla topologii
Waxmana. Czas rozwoju populacji ograniczono do 1000 generacji. Otrzymane rezultaty
plasują rozwiązanie genetyczne na drugim miejscu, tuż za bezwzględnym faworytem -
algorytmem KPP, zwracając średni koszt drzewa tylko o 1,00 - 1,05 procent gorszy niż
najlepsza wśród testowanych klasycznych heurystyk.
Rysunek 6.14. Wykres zależności kosztu drzewa transmisji grupowej w funkcji liczby węzłów w
sieci (skala log) dla topologii Waxmana, bez ograniczeń na opóźnienie wzdłuż łącza
Wykres na rysunku 6.15 przedstawia analogiczną zależność kosztu drzewa
transmisji grupowej w funkcji liczby węzłów w sieci (skala log), przy grupie multicastowej
M o liczebności 10 węzłów; tym razem po wprowadzeniu ograniczeń na maksymalne
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 87 –
opóźnienie wzdłuż łącza ustalone na poziomie = 2000 jednostek. Czas rozwoju populacji
ograniczono do 1000 generacji. Podobnie jak w poprzednim przypadku algorytm
genetyczny uzyskuje drugie w kolejności od najlepszych rezultaty. Jednakże przy ostrym
warunku opóźnienia dystans pomiędzy średnimi kosztami zwracanym przez heurystykę
KPP i rozwiązanie genetyczne nieznacznie zwiększa się do 1,05 - 1,10.
Rysunek 6.15. Wykres zależności kosztu drzewa transmisji grupowej w funkcji liczby węzłów w
sieci (skala log) dla topologii Waxmana, z ograniczeniem na opóźnienie =2000
6.5.2. Model Barabasi-Alberta
Na rysunku 6.16 zaprezentowano wykres zależności kosztu drzewa transmisji
grupowej w funkcji liczby węzłów w sieci (skala log) bez ograniczeń na opóźnienie ()
wzdłuż łącza, przy grupie multicastowej M o liczebności 10 węzłów dla topologii
Barabasi-Alberta. Czas rozwoju populacji ograniczono do 1000 generacji.
Rysunek 6.16. Wykres zależności kosztu drzewa transmisji grupowej w funkcji liczby węzłów w
sieci (skala log) dla topologii Barabasi-Alberta, bez ograniczeń na opóźnienie wzdłuż łącza
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 88 –
W przypadku badań symulacyjnych przeprowadzanych na odmiennym modelu
topologii sieci rozkład zwracanych rezultatów pozostał niezmieniony. Algorytm
genetyczny poradził sobie równie dobrze dla modelu Barabasi-Alberta, ponownie tylko
nieznacznie ustępując algorytmowi KPP. Koszt drzew transmisji grupowej uzyskanych po
nałożeniu ograniczeń na maksymalne opóźnienie wzdłuż ścieżki na poziomie = 2000
jednostek prezentuje rysunek 6.17.
Rysunek 6.17. Wykres zależności kosztu drzewa transmisji grupowej w funkcji liczby węzłów w
sieci (skala log) dla topologii Barabasi-Alberta, z ograniczeniem na opóźnienie =2000
6.6. Koszt drzewa transmisji grupowej w funkcji średniego stopnia węzła
W drugim etapie badań wyznaczono koszt generowanych drzew w funkcji
średniego stopnia węzła w sieci, zdefiniowanego jako:
n
kDAV
2 (6.1)
gdzie: n – liczba węzłów,
k – liczba krawędzi.
Wyniki przeprowadzonych eksperymentów dla zakresu AVD = [4, 20] zostały
podzielone na dwie kategorie: badania prowadzone na modelach Waxmana oraz na
modelach Barabasi-Alberta.
6.6.1. Model Waxmana
Na rysunku 6.18 przedstawiono wykres zależności kosztu drzewa transmisji
grupowej w funkcji średniego stopnia węzła w sieci AVD = [4, 20] bez ograniczeń na
opóźnienie wzdłuż łącza (), przy sieci o n = 100 liczbie węzłów i grupie multicastowej M
o liczebności 10 węzłów dla topologii Waxmana. Czas rozwoju populacji ograniczono do
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 89 –
1000 generacji. Uzyskane wyniki dają drugą pozycję algorytmowi genetycznemu,
niezależnie od wartości średniego stopnia węzła. Podobnie jak w przypadku pierwszego
etapu badań różnice w stosunku do KPP kształtują się na poziomie jednego procenta.
Rysunek 6.18. Wykres zależności kosztu drzewa transmisji grupowej w funkcji
średniego stopnia węzła w sieci dla topologii Waxmana, bez ograniczeń na opóźnienie wzdłuż łącza
Wykres na rysunku 6.19 przedstawia analogiczną zależność kosztu drzewa
transmisji grupowej w funkcji średniego stopnia węzła w sieci AVD = [4, 20], przy sieci o n
= 100 liczbie węzłów i grupie multicastowej M o liczebności 10 węzłów dla topologii
Waxmana, przy ograniczeniu maksymalnego opóźnienia = 2000. Czas rozwoju populacji
ograniczono do 1000 generacji. Algorytm genetyczny utrzymuje swoją pozycję wciąż tak
samo blisko najlepszej przebadanej heurystyki - KPP.
Rysunek 6.19. Wykres zależności kosztu drzewa transmisji grupowej w funkcji
średniego stopnia węzła w sieci dla topologii Waxmana, z ograniczeniem na opóźnienie =2000
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 90 –
6.6.2. Model Barabasi-Alberta
Na rysunku 6.20 przedstawiono wykres zależności kosztu drzewa transmisji
grupowej w funkcji średniego stopnia węzła w sieci AVD = [4, 20] bez ograniczeń na
opóźnienie wzdłuż łącza (), przy sieci o n = 100 liczbie węzłów i grupie multicastowej M
o liczebności 10 węzłów dla topologii Barabasi-Alberta. Czas rozwoju populacji
ograniczono do 1000 generacji. Analogiczny wykres, po wprowadzeniu ograniczeń na
opóźnienie ( = 2000), przedstawia rysunek 6.21
Rysunek 6.20. Wykres zależności kosztu drzewa transmisji grupowej w funkcji średniego
stopnia węzła w sieci dla topologii Barabasi-Alberta, bez ograniczeń na opóźnienie wzdłuż łącza
Rysunek 6.21. Wykres zależności kosztu drzewa transmisji grupowej w funkcji średniego stopnia węzła w sieci dla topologii Barabasi-Alberta,
z ograniczeniem na opóźnienie =2000
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 91 –
6.7. Koszt drzewa transmisji grupowej w funkcji liczby węzłów grupy
multicastowej
Ostatni etap badań dotyczył zbadania zależności kosztu generowanych drzew
w funkcji liczby węzłów grupy multicastowej m = [10, 90]. Wyniki przeprowadzonych
eksperymentów zostały podzielone na dwie kategorie: badania prowadzone na modelach
Waxmana oraz na modelach Barabasi-Alberta.
6.7.1. Model Waxmana
Na rysunku 6.22 przedstawiono zależność kosztu drzewa transmisji grupowej
w funkcji liczby węzłów grupy multicastowej. Analiza została przeprowadzona dla sieci
o n = 100 wierzchołkach, k = 200 krawędziach. Wielkość tablic trasowania ustalono na
poziomie K = 10. Czas rozwoju populacji ograniczono do 1000 generacji. Algorytm
genetyczny wciąż zachowuje drugą pozycje, jednakże dla ustalonych parametrów
używanych w poprzednich etapach nie radzi sobie tak samo dobrze przy wielokrotnym
zwiększaniu liczby węzłów odbiorczych. Mimo wszystko, wciąż sprawdza się lepiej niż
heurystyka CSPT.
Rysunek 6.22. Wykres zależności kosztu drzewa transmisji grupowej w funkcji
liczby węzłów grupy multicastowej w sieci dla topologii Waxmana, z ograniczeniem na opóźnienie =2000
6. Badania symulacyjne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 92 –
6.7.2. Model Barabasi-Alberta
Rysunek 6.23 przedstawia zależność kosztu drzewa transmisji grupowej w funkcji
liczby węzłów grupy multicastowej. Analiza została przeprowadzona dla sieci o n = 100
wierzchołkach, k = 200 krawędziach. Wielkość tablic trasowania ustalono na poziomie
K = 10. Czas rozwoju populacji ograniczono do 1000 generacji. Rezultaty są bardzo
podobne do wyników uzyskanych dla topologii sieci zgodnej z modelem Waxmana
przedstawionych na rysunku 6.22.
Rysunek 6.23. Wykres zależności kosztu drzewa transmisji grupowej w funkcji
liczby węzłów grupy multicastowej w sieci dla topologii Barabasi-Alberta, z ograniczeniem na opóźnienie =2000
Dla wszystkich przeprowadzonych testów zaproponowane do porównania
rozwiązanie genetyczne uplasowało się ze zwracanymi wynikami na drugiej lokacie, tylko
niewiele ustępując algorytmowi KPP w większości zbadanych przypadków (m.in.
rys. 6.14, 6.18).
7. Podsumowanie
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 93 –
7. Podsumowanie
W pracy sprawdzono możliwości zastosowania rozwiązań genetycznych do
trasowania połączeń rozgałęźnych oraz oceniono efektywność ich działania na tle
klasycznych rozwiązań heurystycznych. Łącznie porównano dziewięć wersji różnych
schematów prowadzenia operacji genetycznych oraz dwie metody generacji danych
wejściowych (BFS i k najkrótszych ścieżek), bazując na rozwiązaniach opisanych
w literaturze oraz proponując metody nie testowane dla tych algorytmów (Tabela 6.1).
Wyniki przeprowadzonych badań jednoznacznie wskazują, że algorytm
krzyżowania stosujący model równomierny przy selekcji turniejowej okazał się
najlepszym rozwiązaniem dla wszystkich liczebności zbioru osobników tworzących
populacje w analizowanym problemie (rys. 6.11). Zaproponowane rozwiązanie pozwala
również na uzyskanie najlepszych wyników we względnie najmniejszej liczbie operacji
(rys. 6.12). Podobnie prezentuje się znormalizowany koszt drzewa transmisji grupowej
w funkcji liczby osobników (rys. 6.13).
Uzyskane, w wyniku licznych eksperymentów obliczeniowych, rezultaty dla
rozwiązań genetycznych zostały porównane z kosztami drzew otrzymanymi po
IEEE/ACM Transactions on Networking, pp. 286-292, 1993 7 Karp R, “Reducibility Among Combinatorial Problems”, Complexity of Computer Computations,
pp. 85-104, 1972. 8 Crawford J.S., Markowsky G., Berman L., “Heuristics for ATM Multicast Routing”, Computer
Science, University of Kent at Canterbury, 1998. 9 Sun Q., Langendoerfer H., “Efficient Multicast Routing for Delay-Sensitive Applications”,
PROMS’95, pp. 452-458, 1995 10 Kompella V.P., Paquale J.C., Polyzos G.C., ”Multicasting for multimedia applications”,
IEEE/ACM Transactions on Networking, pp 286-292, 1993. 11 Holland J.H., “Adaptation in Natural and Artificial Systems”, University of Michigan Press,
1975. 12 Walkowiak T., ”Genetic Algorithms – Internet Distance Learning Module”, in: 9th International
Conference on Soft Computing MENDEL 2003, Brno 2003. 13 Winter P.C., Hickey G.I., Fletcher H.L., “Genetyka”, Wydanie 2, PWN, 2005. 14 Rutkowska D., Piliński M., Rutkowski L., ”Sieci neuronowe, algorytmy genetyczne i systemy
rozmyte”, Wydawnictwo Naukowe PWN, 1997. 15 Booker, L. B., “Improving Search in Genetic Algorithms,” Genetic Algorithms and Simulated
Annealing (L. Davis, editor), Pitman, London, pp. 61-73 (1987). 16 Goldberg D.E., ”Algorytmy genetyczne i ich zastosowanie”, WNT, 17 Gwiazda T.D., ”Algorytmy genetyczne”, Wydawnictwo Naukowe PWN, 2007. 18 Arabas J., “Wykłady z algorytmów ewolucyjnych”, WNT, 2004. 19 Davis L., “Adopting Operator Probabilities in Genetic Algorithms”, Proceedings of the third
international conference on Genetic algorithms, pp 61-69, San Mateo, CA, 1989 20 Palmer C. C., Kershenbaum A., “Representing Trees in Genetic Algorithms”, Proceedings of the
First IEEE Conference on Evolutionary Computation, 1994.
8. Literatura
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 95 –
21 Schmamoto N., Hiramatu A., Yamasaki K., “A dynamic routing control based on a genetic
algorithm”, IEEE International Conference on Neural Networks, pp. 1123-1128, 1993. 22 Wang Z., Crowcroft J., “Quality-of-service routing for supporting multimedia applications”,
Journal on Selected Area in Communications, 14(7):1228-1234, 1996. 23 Wang J., Wang X., Huang M., “A Hybrid Intelligent QoS Multicast Routing Algorithm in NGI”,
in Proceedings of the Sixth International Conference on Parallel and Distributed Computing,
Applications and Technologies, no. 0-7695-2405-2/05. IEEE, 2005. 24 Hamdan M., El-Hawary M., “A Novel Genetic Algorithm Searching Approach for Dynamic
Constrained Multicast Routing”, Canadian Conference on Electrical and Computer Engineering,
2003. 25 Wang J., Wang X., Huang M., “An Intelligent QoS Multicast Routing Algorithm under
Inaccurate Information”, International Conference on Computational Intelligence and Security,
2006. 26 Bhattacharya R., Venkateswaran P., Sanyal S., Nandi R., “Genetic Algorithm Based Efficient
Routing Scheme For Multicast Networks”, IEEE International Conference on Personal Wireless
Communications 2005, pp. 500-504, 2005. 27 Hamdan M., El-Hawary M., “Multicast Routing with Delay and Delay Variation Constraints
Using Genetic Algorithm”, Canadian Conference on Electrical and Computer Engineering, pp.
2363-2366, 2004. 28 Chojnacki A., Piechowiak M., Zwierzykowski P., “Nowy algorytm genetyczny dla połączeń
rozgałęźnych w sieciach pakietowych”, XII Poznańskich Warsztatach Telekomunikacyjnych,
PWT’2007. 29 Chen L., Yang Z., Xu Z.Q., „A Degree-Delay-Constrained Genetic Algorithm for Multicast
Routing Tree”, in: Proc. of 4th Int. Conf. on Comp. and Inf. Technology (CIT'04), 2004. 30 Garrozi C. , Araújo A., “Multiobjective Genetic Algorithm for Multicast Routing,”, IEEE
Congress on Evolutionary Computation. IEEE, 2006. 31 Araújo A., Garrozi C., Leitao A., Jr M. G., “Multicast Routing Using Genetic Algorithm Seen as
a Permutation Problem”, in 20th International Conference on Advanced Information Networking
and Applications. IEEE, 2006. 32 Mao S., Cheng X., Hou Y.T., Sherali H., „Multiple Description Video Multicast in Wireless Ad
Hoc Networks”, Broadband Networks, 2004. BroadNets 2004. Proceedings. First International
Conference on Volume , Issue , 25-29 Oct. 2004 Page(s): 671 - 680 33 Ke Z., Li L., Sun Q., Chen N., „A QoS Multicast Routing Algorithm for Wireless Mesh
Networks”, Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed
Computing, 2007. SNPD 2007. 34 Karabi, M., Fathy, M., Defighan, M., ”QoS multicast routing based on a heuristic genetic
algorithm”, Electrical and Computer Engineering, 2004. Canadian Conference on Volume 3,
Issue 2-5, May 2004.
8. Literatura
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 96 –
35 Gottlieb J., Julstrom B.A., Raidl G.A., Rothlauf F., “Prüfer Numbers – A Poor Representation of
Spanning Trees for Evolutionary Search”, Proceedings of the Genetic and Evolutionary
Computation Conference , GECCO, 2001. 36 Koyama A., Nishie T., Arai J., Barolli L., “A New Quality of Service Multicast Routing Protocol
Based on Genetic Algorithm”, in Proceedings of the 11th International Conference on Parallel
and Distributed Systems. IEEE, 2005. 37 Oliveira G., Ararújo P., “Determining Multicast Routes with QoS and Traffic Engineering
Requirements Based on Genetic Algorithm”, in Proceedings of the 2004 IEEE Conference on
Cybernetics and Intelligent Systems, IEEE, 2004. 38 Banerjee N., Das S.K., “MODeRN: multicast on-demand QoS-based routing in wireless
networks”, Vehicular Technology Conference, 2001 Page(s):2167 - 2171 vol.3 39 Waxman B., “Routing of multipoint connections”, IEEE J. Select. Areas. Commun., vol. 6, pp.
1617–1622, Dec. 1988. 40 Barabasi A. L., Albert R., “Emergence of Scaling in Random Networks”, Science, pp. 509-512,
1999. 41 Medina A., Lakhina A., Matta I., "BRITE: An Approach to Universal Topology Generation",
IEEE/ACM MASCOTS, pp. 346-356, 2001. 42 Piechowiak M., Zwierzykowski P., „Modelowanie topologii Internetu”, PWT, 2004. 43 Dijkstra E., “A note on two problems in connexion with graphs”, Numerische Mathematik, vol.
1, pp. 269-271, 1959. 44 Martins E., Pascoal M., Santos J., “The k shortest paths problem”, Research Report,
CISUC, 1998. 45 Grębosz J., „Pasja C++”, Oficyna Kallimach, 1999. 46 Vijayalakshmi K., Radhakrishnan S., “Dynamic Routing from One to Group of Nodes using
Elitism Based GA - Novel Multi parameter Approach”, in IEEE Indicon Conference. IEEE,
2005. 47 Xianwei Z., Changjia C., Gang Z., “A Genetic Algorithm for Multicasting Routing Problem”,
International Conference on Communication Technology Proceedings, 2000. 48 Liu C., Chiang T., Huang Y., “A Near-optimal Multicast Scheme for Mobile Ad Hoc Networks
Using a Hybrid Genetic Algorithm”, in 20th International Conference on Advanced Information
Networking and Applications. IEEE, 2006. 49 Michalewicz Z., „Algorytmy genetyczne + struktury danych = programy ewolucyjne”,
WNT, 2003. 50 Tran H. , Harris R., “Solving QoS Multicast Routing with Genetic Algorithms”, Proceedings of
the 2003 Joint Conference of the Fourth International Conference on Information,
Communications and Signal Processing and the Fourth Pacific Rim Conference on Multimedia,
12 2003.
8. Literatura
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 97 –
51 Yuanwei J., Chengjun Y., “Solving the Problem of the Link Optimizing and Delay-constrained
Multicast Routing Based on GA”, in Proceedings of the 25th Chinese Control Conference. IEEE,
2006. 52 Hamdan M., El-Hawary M.E., “Multicast Routing with Delay Variation Constraints Using
Genetic Algorithm”, CCECE 2004, Niagara Falls, May 2004. 53 Hwang R.H., Do W., Yang S., “Multicast Routing Based on Genetic Algorithms”, Journal of
Information Science and Engineering, pp 885-901, 2000. 54 Pan Y., Yu Z., Wang L., “A Genetic Algorithm for the Overlay Multicast Routing Problem”,
Proceedings of the 2003 International Conference on Computer Networks and Mobile
Computing, 2003. 55 Paxson V., Flyd S., “Why We Don’t Know How To Simulate The Internet”, In Proceedings of
the 1997 Winter Simulation Conference, Atlanta, GA, January 1997. 56 Govindon R. Tangmunarunkit H., “Heuristic for Internet Mapping”, In Proceedings of IEEE
INFO-COM’00, March 2000. 57 Theilmann W., Rothermel K., “Dynamic distance maps of the Internet”, In Proceedings of
IEEEINFO-COM’00, March 2000. 58 Gao L., “On Inferring Autonomous System Relationships in the Internet”, IEEE Global Internet,
November 2000. 59 Claffy K.C., McRobb D., “CAIDA Macroscopic Topology Measurements”,
http://www.caida.org/tools/measurement/skitter/, Last Modified: Fri Apr-11-2008 10:7:41. 60 Zegura E. W., Calvert, K., Donahoo M. J., “A quantitative comparison of graph-based models
for Internet topology”, IEEE/ACM Transactions on Networking, December 1997. 61 Balińska K., “Projektowanie algorytmów i struktur danych”, Wydawnictwo PP, 2003. 62 Medina A., Matta I., Byers J., “On the origin of Power Laws in Internet Topologies”, ACM
Computer Communication Review, vol. 30, no. 2, pp. 18--28, Apr. 2000. 63 Medina A., Lakhina A., Matta I., Byers J., “BRITE: Universal Topology Generation from a