zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · generacja tablic –...
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
2.3. Multicast – definicja ............................................................................................ 17
2.4. Algorytmy niewymuszone, a algorytmy z ograniczeniami ................................. 19
3. Algorytmy genetyczne................................................................................................ 22
3.1. Wprowadzenie ..................................................................................................... 22
3.2. Budowa algorytmu i podstawowe pojęcia ........................................................... 24
3.3. Przykład optymalizacji funkcji ............................................................................ 27
3.3.1. Reprezentacja................................................................................................ 27
3.3.2. Populacja początkowa i funkcja oceny......................................................... 28
3.3.3. Operatory genetyczne i tworzenie nowej populacji...................................... 29
3.3.4. Zakończenie procesu ewolucji...................................................................... 29
3.4. Reprezentacja danych .......................................................................................... 29
3.5. Reprezentacja danych w problemie trasowania połączeń rozgałęźnych ............. 32
3.5.1. Tablice ścieżek.............................................................................................. 32
3.5.2. Ciągi Prüfera ................................................................................................. 33
3.5.3. Krawędzie lub węzły do każdego odbiorcy.................................................. 35
3.5.4. Lista lub macierz krawędzi ........................................................................... 36
3.5.5. Metoda zmodyfikowanego wyznacznika (MDC)......................................... 37
3.6. Specyficzne operacje genetyczne dla problemu trasowania połączeń
rozgałęźnych ............................................................................................................... 38
4. Zastosowana implementacja – opis własnych rozwiązań........................................... 40
4.1. Sposób generowania struktur grafowych oraz format przechowywania informacji
o topologii sieci........................................................................................................... 40
4.2. Algorytmy genetyczne – etapy działania............................................................. 42
4.3. Reprezentacja danych – tablice trasowania ......................................................... 44
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 5 –
4.3.1. Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry....................... 45
4.3.2. Generacja tablic – algorytm przeszukiwania grafu wszerz .......................... 47
4.4. Reprezentacja danych – klasy obiektów bazowych............................................. 48
4.5. Reprezentacja danych – kodowanie genów chromosomu ................................... 50
4.6. Inicjalizacja algorytmu genetycznego ................................................................. 52
4.7. Proces ewolucji .................................................................................................... 53
4.8. Proces ewolucji – ocena dopasowania i sprawdzenie warunków zatrzymania ... 54
4.9. Proces ewolucji – selekcja ................................................................................... 54
4.9.1. Selekcja rankingowa ..................................................................................... 55
4.9.2. Selekcja turniejowa....................................................................................... 55
4.9.3. Selekcja metodą ruletki................................................................................. 56
4.10. Proces ewolucji – operatory krzyżowania ......................................................... 57
4.10.1. Krzyżowanie jednopunktowe ..................................................................... 57
4.10.2. Krzyżowanie równomierne......................................................................... 59
4.10.3. Krzyżowanie dwupunktowe ....................................................................... 60
4.11. Proces ewolucji – operator mutacji.................................................................... 61
4.12. Proces ewolucji – redukcja duplikatów ............................................................. 62
4.13. Proces ewolucji – sukcesja: tworzenie nowej populacji .................................... 63
5. Topologia i metody generacji modeli sieci................................................................. 64
5.1. Wprowadzenie ..................................................................................................... 64
5.2. Idealny generator ................................................................................................. 65
5.3. Metody generowania sieci ................................................................................... 66
5.4. BRITE – Boston university Representative Internet Topology gEnerator .......... 71
6. Badania symulacyjne .................................................................................................. 75
6.1. Analiza wydajności różnych rozwiązań genetycznych ....................................... 75
6.2. Ustalenie parametrów(punktu) pracy algorytmu ................................................. 76
6.3. Analiza porównawcza różnych algorytmów genetycznych................................. 77
6.3.1. Metody generacji ścieżek.............................................................................. 78
6.3.2. Prawdopodobieństwo mutacji....................................................................... 78
6.3.3. Redukcja duplikatów .................................................................................... 79
6.3.4. Model ruletkowy........................................................................................... 80
6.3.5. Model rankingowy........................................................................................ 81
6.3.6. Model turniejowy.......................................................................................... 83
6.3.7. Porównanie zbiorcze modeli......................................................................... 84
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 6 –
6.4. Analiza porównawcza rozwiązań genetycznych z klasycznymi heurystykami... 85
6.5. Koszt drzewa transmisji grupowej w funkcji liczby węzłów sieci ...................... 86
6.5.1. Model Waxmana........................................................................................... 86
6.5.2. Model Barabasi-Alberta................................................................................ 87
6.6. Koszt drzewa transmisji grupowej w funkcji średniego stopnia węzła ............... 88
6.6.1. Model Waxmana........................................................................................... 88
6.6.2. Model Barabasi-Alberta................................................................................ 90
6.7. Koszt drzewa transmisji grupowej w funkcji liczby węzłów grupy multicastowej
.................................................................................................................................... 91
6.7.1. Model Waxmana........................................................................................... 91
6.7.2. Model Barabasi-Alberta................................................................................ 92
7. Podsumowanie ............................................................................................................ 93
8. Literatura..................................................................................................................... 94
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 7 –
I. Spis rysunków
Rysunek 2.1. Transmisja danych zgodnie z modelem punkt-punkt ............................... 16
Rysunek 2.2. Transmisja danych zgodnie z modelem punkt-grupa ............................... 16
Rysunek 3.1. Schemat blokowy algorytmu genetycznego ............................................. 26
Rysunek 3.2. Wykres badanej funkcji celu f(x) (wzór 3.1) ............................................ 27
Rysunek 3.3. Proponowany przez Michalewicza rozdział „klasycznej metody
genetycznej” od „programowania ewolucyjnego” [45]................................................. 31
Rysunek 3.4. Tablica trasowania dla relacji węzeł nr 3 – węzeł nr 6............................. 33
Rysunek 3.5. Pierwszy krok tworzenia ciągu Prüfera – odcięcie węzła nr 1 od węzła nr
4 ...................................................................................................................................... 34
Rysunek 3.6. Drugi krok tworzenia ciągu Prüfera – odcięcie kolejnego węzła ............. 34
Rysunek 3.7. Przykładowe drzewo zakodowane w postaci ciągu Prüfera ..................... 35
Rysunek 3.8. Mała lokalność reprezentacji Prüfera – mutacja na 2 genie, a układ
krawędzi.......................................................................................................................... 35
Rysunek 3.9. Przykładowy graf zakodowany w postaci węzłów do każdego odbiorcy 36
Rysunek 3.10. Przykładowy graf zakodowany w postaci listy krawędzi....................... 36
Rysunek 3.11. Przykładowy graf zakodowany w postaci macierzy krawędzi ............... 37
Rysunek 3.12. Przykładowe drzewo zakodowane metodą zmodyfikowanego
wyznacznika.................................................................................................................... 38
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.............. 44
Rysunek 4.2. Struktura drzewa binarnego użytego do przechowywania obiektów klasy
„wezel” oraz obiektów typu „gen” ................................................................................. 49
Rysunek 4.3. Format budowy przykładowej tablicy trasowania .................................... 50
Rysunek 4.4. Struktura budowy przykładowego chromosomu – ciąg genów o długości
m = 8 ............................................................................................................................... 51
Rysunek 4.5. Ilustracja zaimplementowanego rozwiązania metody selekcji rankingowej
z oznaczonymi rodzicami trzech przykładowych chromosomów(„Chromosom 1,2 oraz
P”) ................................................................................................................................... 55
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 ........... 56
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 8 –
Rysunek 4.7. Ilustracja zaimplementowanego rozwiązania metody selekcji ruletkowej z
oznaczonymi rodzicami jednego chromosomu potomnego („Chromosom 1”).............. 57
Rysunek 4.8. Krzyżowanie jednopunktowe ................................................................... 58
Rysunek 4.9. Krzyżowanie równomierne....................................................................... 60
Rysunek 4.10. Krzyżowanie dwupunktowe ................................................................... 60
Rysunek 4.11. Efekt działania operatora mutacji ........................................................... 62
Rysunek 4.12. Proces redukcji duplikatów..................................................................... 62
Rysunek 4.13. Proces sukcesji osobników do nowej generacji ...................................... 63
Rysunek 5.1. Przykładowa sieć oraz jej reprezentacja w postaci grafu nieskierowanego
........................................................................................................................................ 64
Rysunek 5.2. „Sieć sieci” – zbiór systemów autonomicznych (AS) .............................. 65
Rysunek 5.3. „Krata” – przykład topologii regularnej ................................................... 70
Rysunek 5.4. Przykład struktury wielopoziomowej ....................................................... 71
Rysunek 5.5. Modele klas i pochodnych klas w BRITE [37]......................................... 72
Rysunek 5.6. Schematyczna prezentacja różnic w alokacji węzłów pomiędzy rozkładem
losowym, a dalekosiężnym............................................................................................. 73
Rysunek 6.1. Ustalanie parametrów pracy rozwiązań genetycznych w problemie
trasowania połączeń rozgałęźnych.................................................................................. 77
Rysunek 6.2. Wykres zależności kosztu drzewa transmisji grupowej w funkcji
oczekiwanej liczby generowanych ścieżek dla każdej relacji ........................................ 78
Rysunek 6.3. Wykres zależności znormalizowanej liczby iteracji (generacji) w funkcji
prawdopodobieństwa mutacji ......................................................................................... 79
Rysunek 6.4. Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej
w funkcji znormalizowanej liczby generacji .................................................................. 80
Rysunek 6.5. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby
osobników w pojedynczej generacji dla modelu ruletkowego ....................................... 80
Rysunek 6.6. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w
funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego ................ 81
Rysunek 6.7. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby
osobników w pojedynczej generacji dla modelu rankingowego .................................... 82
Rysunek 6.8. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w
funkcji liczby osobników w pojedynczej generacji dla modelu rankingowego ............. 82
Rysunek 6.9. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby
osobników w pojedynczej generacji dla modelu turniejowego ...................................... 83
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 9 –
Rysunek 6.10. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w
funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego............... 83
Rysunek 6.11. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby
osobników w pojedynczej generacji – porównanie zbiorcze.......................................... 84
Rysunek 6.12. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w
funkcji liczby osobników w pojedynczej generacji – porównanie zbiorcze .................. 85
Rysunek 6.13. Wykres zależności znormalizowanego kosztu drzewa transmisji
grupowej w funkcji liczby osobników w pojedynczej generacji – porównanie zbiorcze
........................................................................................................................................ 85
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.................................................................................................................... 86
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............................................................................................................................ 87
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 ................................................................................................. 87
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 ......................................................................................................... 88
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.................................................................................................................... 89
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............................................................................................................................ 89
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 ................................................................................................. 90
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 ......................................................................................................... 90
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 10 –
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 ......................................................................................................... 91
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 .................................................................................................... 92
II. Spis listingów
Listing 4.1. Plik z danymi konfiguracyjnymi dla generatora sieci ................................. 41
Listing 4.2. Przykładowa zawartość pliku z danymi sieci .............................................. 42
Listing 4.3. Klasa definiująca obiekty typu „wezel” ...................................................... 48
Listing 4.4. Szablon klasy obiektów bazowych.............................................................. 49
Listing 4.5. Definicja klasy obiektów typu „gen” .......................................................... 50
III. Spis pseudokodów
Pseudokod 2.1. Algorytm KMB ..................................................................................... 20
Pseudokod 2.2. Algorytm KPP ....................................................................................... 20
Pseudokod 2.3. Algorytm CSPT..................................................................................... 21
Pseudokod 4.1. Algorytm genetyczny – cechy wspólne zaimplementowanych
rozwiązań ........................................................................................................................ 43
Pseudokod 4.2. Algorytm k najkrótszych ścieżek Dijkstry ............................................ 46
Pseudokod 4.3. Algorytm przeszukiwania grafu wszerz – BFS..................................... 47
Pseudokod 4.4. Generator liczb pseudolosowych .......................................................... 53
Pseudokod 4.5. Krzyżowania jednopunktowe................................................................ 58
Pseudokod 4.6. Krzyżowanie równomierne ................................................................... 59
Pseudokod 4.7. Krzyżowanie dwupunktowe.................................................................. 61
Pseudokod 5.1. Model G(n, p)........................................................................................ 67
Pseudokod 5.2.Model G(n, k)......................................................................................... 68
IV. Spis tabel
Tabela 3.1. Ważne daty w badaniach algorytmów genetycznych [12, 16] .................... 23
Tabela 6.1. Elementy charakterystyczne rożnych rozwiązań genetycznych .................. 75
1. Wprowadzenie
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 11 –
1. Wprowadzenie
Intensywny rozwój współczesnych sieci informacyjnych sprzyja transmisji danych
multimedialnych w czasie rzeczywistym, takich jak audycje radiowe i telewizyjne, wideo
na żądanie i wiele innych [22]. Transmisja informacji multimedialnych coraz częściej
opiera się na rozgałęźnym schemacie połączeń (ang. multicast), który umożliwia
efektywniejsze wykorzystanie zasobów sieciowych. Równocześnie, wraz ze wzrostem
ilości przesyłanych danych, zwiększają się również wymagania jakościowe. Istotnym
aspektem zapewnienia poprawnej transmisji tego typu danych, oprócz odpowiedniego
pasma, stają się parametry QoS (ang. Quality of Service), wśród których duże znaczenie
ma utrzymanie maksymalnego opóźnienia poniżej granicznej wartością między węzłem
źródłowym, a węzłami odbiorczymi korzystającymi z połączenia rozgałęźnego.
W procesie optymalizacji transmisji pomiędzy węzłami grupy multicastowej stosuje się
różne techniki budowy tzw. drzewa transmisji grupowej, zakorzenionego w wierzchołku
źródłowym i prowadzącego do wszystkich węzłów odbiorczych. Można wyróżnić dwa
podstawowe rodzaje drzew: minimalne drzewo Steinera (ang. MST - Minimum Steiner
Tree) oraz drzewo najkrótszych ścieżek między węzłem źródłowym, a każdym spośród
węzłów odbiorczych (ang. SPT – Shortest Path Tree). Znalezienie minimalnego drzewa
Steinera, prowadzi do struktury o minimalnym koszcie całkowitym, ale jest problemem
NP-zupełnym [7]. Drzewo najkrótszych ścieżek minimalizuje koszt każdej ścieżki między
nadawcą, a każdym z członków grupy multicastowej tworząc drzewo ze ścieżek
o najmniejszym koszcie. Jeżeli zbiór węzłów minimalnego drzewa Steinera zawiera
wszystkie węzły danej sieci, to problem sprowadza się do znalezienia minimalnego drzewa
rozpinającego, z wykorzystaniem algorytmu Dijkstry [43] lub Bellmana-Forda [4].
Z uwagi na złożoność problemu w wielu pracach do znalezienia drzewa proponuje
się zastosowanie algorytmów genetycznych (m.in. [5, 24, 27]) i heurystycznych (m.in.
[2, 3, 5, 6, 8, 10]). W przytoczonych przykładach z literatury prym wiodą badania nad
klasycznymi rozwiązaniami heurystycznymi, natomiast prace na temat rozwiązań
genetycznych zwykle ograniczają się do wąskich badań dla małych sieci, niejednokrotnie
ograniczonych do zaprezentowania własnych wyników lub porównania własnych
propozycji z wybranymi znanymi algorytmami.
Celem pracy jest sprawdzenie możliwości zastosowania rozwiązań genetycznych
do trasowania połączeń rozgałęźnych oraz ocena efektywności ich działania na tle
klasycznych rozwiązań heurystycznych.
1. Wprowadzenie
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 12 –
Pracę podzielono na 6 rozdziałów.
W rozdziale 2 przedstawiono krótkie wprowadzenie do idei stosowania połączeń
rozgałęźnych, następnie zostały rozważone wady i zalety takiej transmisji oraz
podstawowe definicje. Po krótkim wstępie do tematyki zaprezentowano popularne
heurystyki: KMB, KPP, CSPT, z których dwie ostatnie wraz z drzewem minimalnych
opóźnień LDC zostały wykorzystane do oceny efektywności rozważanych rozwiązań
genetycznych.
Rozdział 3 prezentuje zagadnienia optymalizacji oparte na podejściu genetycznym.
Na początku, jako wprowadzenie do dalszych rozważań, został przedstawiony krótki rys
historyczny wybranych prac w rozwoju algorytmów genetycznych. Następnie zostały
omówione poszczególne elementy budowy każdego algorytmu genetycznego wraz
z opisem stosowanej terminologii. W głównej części skupiono się na wyjaśnieniu
podstawowych reguł rządzących światem algorytmów genetycznych oraz genezie
zastosowania zasad doboru naturalnego w celach optymalizacyjnych. Ponadto
przedstawiono różnice między klasycznym algorytmem genetycznym, a rozwiązaniami
pochodnymi (algorytmy hybrydowe i programowanie ewolucyjne), a także prezentowane
w literaturze rozwiązania dotyczące metod kodowania i reprezentacji danych
w algorytmach genetycznych dla problemu trasowania połączeń rozgałęźnych.
W rozdziale 4 omówiono szczegóły techniczne zaimplementowanych rozwiązań,
przedstawione od strony teoretycznej w poprzednich rozdziałach, a w szczególności
zastosowane sposoby reprezentacji danych na różnych etapach prowadzonych symulacji.
Na początku tego rozdziału został przedstawiony sposób generowania struktur grafowych
oraz ujednolicony format przechowywania informacji o topologii sieci. Następnie zostały
zaprezentowane poszczególne rozwiązania reprezentacji danych zastosowane w procesie
przygotowawczym oraz w kolejnych elementach składowych algorytmów genetycznych.
Ponadto został omówiony sposób inicjalizacji algorytmu genetycznego, a także
zastosowane w procesie optymalizacji operatory genetyczne.
Rozdział 5 przedstawia 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.
W rozdziale 6 zaprezentowano wyniki przeprowadzonych badań symulacyjnych.
W pierwszej części przedstawiono porównanie wyników otrzymywanych przy różnych
podejściach genetycznych, analizując wpływ zastosowanych rozwiązań na wydajność
1. Wprowadzenie
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 13 –
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.
Pracę kończy podsumowanie wyników badań będących przedmiotem pracy.
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 14 –
2. Algorytmy trasowania połączeń w sieciach pakietowych
Niniejszy rozdział poświecony jest prezentacji przedstawionych w literaturze
istniejących rozwiązań heurystycznych. Rozdział rozpoczyna krótkie wprowadzenie do
idei stosowania połączeń rozgałęźnych, następnie zostały wprowadzone podstawowe
definicje oraz przeanalizowano wady i zalety zastosowania transmisji zgodnie ze
schematem rozgałęźnym. Po wprowadzeniu do tematyki przedstawiono algorytmy
działania popularnych klasycznych rozwiązań heurystycznych: KMB, KPP, CSPT,
z których dwie ostatnie wraz z drzewem minimalnych opóźnień LDC zostały
wykorzystane do oceny efektywności rozwiązań genetycznych rozważanych w następnych
rozdziałach.
2.1. Wprowadzenie
W wyniku intensywnego rozwoju sieci teleinformatycznych tak zwana „globalna
sieć” staje przed wieloma nowymi wyzwaniami związanymi z transmisją danych. Oprócz
coraz powszechniejszego wykorzystywania nowych technologii multimedialnych, a co za
tym idzie zwiększonego zapotrzebowania na wyższe przepływności łączy, istotny wpływ
na działanie sieci ma liczba użytkowników, która według obecnych prognoz wzrasta
zgodnie z trendem wykładniczym [1]. Zgodnie z podobną tendencją zwiększa się również
liczba sieci składających się na Internet, a co za tym idzie liczba urządzeń aktywnych,
w szczególności routerów.
W związku z diametralnym wzrostem globalnej sieci, w której zanika model
superkomputera z wieloma terminalami na rzecz wielu porównywalnych jakościowo
maszyn, zwiększa się również liczba aplikacji, wcześniej dostępnych tylko dla nielicznych
użytkowników pracujących na wyjątkowo wydajnym sprzęcie. Ten intensywny rozwój
współczesnych sieci telekomunikacyjnych połączony z coraz większą wydajnością
urządzeń pozwala aplikacjom na coraz szerszą transmisję w czasie rzeczywistym danych
multimedialnych, takich jak audycje radiowe i telewizyjne, wideo na żądanie i wiele
innych [22]. Równocześnie, wraz ze wzrostem ilości przesyłanych danych, zwiększają się
również wymagania stawiane takiemu rodzajowi transmisji. Istotnym aspektem dla
zapewnienia poprawnej transmisji tego typu informacji, oprócz odpowiedniego pasma,
staje się kwestia utrzymania maksymalnego opóźnienia między węzłami grupy transmisji
grupowej poniżej granicznej wartości.
W przeszłości istniały dobrze zdefiniowane różnice pomiędzy typami sieci, a co się
z tym wiąże rodzajem przenoszonych przez nie danych [1]. I tak dla przykładu klasyczne
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 15 –
sieci telefoniczne były nastawione na przesył głosu w postaci analogowej, natomiast sieci
komputerowe wymieniały informacje w postaci cyfrowej. Takim postrzeganiem sieci, jako
wyspecjalizowanych nośnikach danych, zachwiała tak zwana „cyfrowa rewolucja”, która
umożliwiła przesyłanie różnorodnych informacji tym samym medium. Jednakże duża
liczba, często sprzecznych, wymagań transmisyjnych stanowi istotne wyzwanie dla
współczesnych sieci teleinformatycznych. Ponadto wiele aplikacji korzystających
z transmisji w czasie rzeczywistym zaczęło stosować, zamiast modelu transmisji jeden
nadawca-jeden odbiorca, model jeden nadawca-wielu odbiorców (czy nawet wielu
nadawców-wielu odbiorców). Powszechność tego typu aplikacji może jednak w łatwy
sposób doprowadzić do przeciążenia sieci w sytuacji, gdy te same pakiety muszą być
wysyłane do wszystkich odbiorców oddzielnie, nawet jeśli w dużej mierze podróżują tą
samą drogą. Wykorzystując ideę multicast można uniknąć niepotrzebnej duplikacji
danych, za pomocą bardziej wyrafinowanych metod dystrybucji informacji w sieci [1].
2.2. Komunikacja punkt-punkt versus punkt-grupa
Podstawową metodą transmisji pomiędzy dwoma węzłami sieci stanowi model
punkt-punkt (ang. unicast). Takie rozwiązanie pozwala na prostą i skuteczną kontrolę
połączenia, zamiany prędkości czy ponowną transmisje błędnych pakietów. Jednakże
wiele aplikacji angażuje w dane połączenie więcej niż jednego odbiorcę. W takiej sytuacji
możemy dostarczać informacje odmiennymi metodami, korzystając z rozwiązania:
punkt-punkt dla poszczególnych odbiorców,
punkt-grupa (ang. multicast).
W pierwszym przypadku, dla modelu punkt-punkt, źródło wysyła indywidualne
kopie pakietów do każdego z odbiorców Na rysunku 2.1 zaprezentowano przykład
transmisji danych video do trzech odbiorców. W takiej sytuacji liczba podłączonych
odbiorników jest ograniczona, w najlepszym razie, dostępną przepływnością na łączu
nadawcy, nim sieć zostanie nasycona. Pomimo tego, że pakiety, aż do ostatniego routera,
podróżują tą samą drogą, są wysyłane jako oddzielne strumienie. W ten sposób na tak
długim odcinku - począwszy od źródła, a skończywszy na ostatnim routerze
transmitujemy, nadmiarowo, dokładnie trzy takie same kopie pakietów.
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 16 –
Rysunek 2.1. Transmisja danych zgodnie z modelem punkt-punkt
W drugim wypadku, dla modelu punkt-grupa, po utworzeniu grupy multicastowej
z zaprezentowanych na rysunku 2.1 trzech odbiorców oraz źródła informacji możemy
znacząco zredukować liczbę redundantnych pakietów, istotnie zyskując na wymaganej do
poprawnej transmisji przepływności. Wyidealizowany model tej sytuacji przedstawia
rysunek 2.2 – pakiety są replikowane dopiero wtedy, kiedy rzeczywiście zaistnieje taka
potrzeba, dzięki czemu rezygnujemy z równoległej transmisji tych samych danych, tak jak
miało się to w sytuacji przedstawionej na rysunku 2.1.
Rysunek 2.2. Transmisja danych zgodnie z modelem punkt-grupa
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 17 –
2.3. Multicast – definicja
Na tle przedstawionych informacji możemy wprowadzić definicję techniki
mutlicast jako rozwiązania pozwalającego na równoległe przesyłanie danych w sieci od
węzła nadawczego do grupy węzłów odbiorczych w którym rozgałęzienia pakietów
następują tylko w tych węzłach, które prowadzą bezpośrednio do sieci z odbiorcami [2].
Transmisja grupowa (ang. multicasting) przy niewątpliwym zysku związanym
z oszczędnością pasma i minimalizacją powielania tych samych pakietów w sieci niesie ze
sobą również pewne wady. Istotnym problemem stojącym na przeszkodzie w użytkowaniu
tego rozwiązania jest konieczność stosowania specjalizowanych rozwiązań
wyznaczających drzewo o minimalnym koszcie między węzłem nadawczym,
a poszczególnymi węzłami odbiorczymi [3].
Przyjrzyjmy się zatem definicji kosztu takiego drzewa multicast (drzewa transmisji
grupowej). Załóżmy, że sieć jest reprezentowana w postaci spójnego grafu G(V, E), przy
czym V oznacza zbiór węzłów sieci, a E stanowi zbiór krawędzi (łączy) pomiędzy
poszczególnymi węzłami sieci. Istnienie łącza e = (u, v) między węzłem u i v pociąga za
sobą istnienie łącza e' = (v,u) dla dowolnych u, v V (odpowiednik łączy
dwukierunkowych w sieciach komunikacyjnych). Z każdym łączem (krawędzią) e E
skojarzone są dwa parametry:
koszt C(e),
opóźnienie D(e).
Koszt połączenia – C(e) – reprezentuje wykorzystanie zasobów łącza, jest zatem
funkcją wielkości ruchu w danym łączu i pojemności bufora wymaganej dla tego ruchu.
Opóźnienie w łączu – D(e) – jest z kolei sumą opóźnień wprowadzanych przez propagację
w łączu, kolejkowanie i przełączanie w węzłach sieci. Grupa multicast – M – jest zbiorem
węzłów będących odbiorcami ruchu grupowego (identyfikacja odbywa się na podstawie
unikalnego adresu i każdego węzła grupy):
M = {m1, m2, m3, ... , mn} V, gdzie n = |M| |V|.
Węzeł s V jest źródłem dla grupy multicast M. Drzewo multicast T(s,M) E jest
drzewem zakorzenionym w węźle źródłowym s i obejmującym wszystkich członków
grupy multicast M. Całkowity koszt drzewa multicast T(s,M) można określić jako:
),()(
MsTttC . (2.1)
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 18 –
Ścieżka P(s, M) T(s, M) jest zbiorem łączy między węzłem źródłowym s,
a węzłami odbiorczymi m M. Koszt ścieżki P(s, M) można przedstawić jako:
),()(
MsPppC . (2.2)
Opóźnienie mierzone między początkiem i końcem ścieżki:
),()(
MsPppD . (2.3)
Na podstawie wzoru 2.3 możemy wyznaczyć maksymalne opóźnienie w drzewie
jako:
),()(max
MsPpMmpD . (2.4)
W procesie optymalizacji zdefiniowanych powyżej zależności można wyróżnić
dwa rodzaje drzew:
drzewo najkrótszych ścieżek (ang. SPT - Shortest Path Tree),
minimalne drzewo Steinera (ang. MST - Minimum Steiner Tree).
W przypadku rozwiązań budujących drzewo najkrótszych ścieżek algorytmy oparte
na tej zasadzie minimalizują niezależnie koszt poszczególnych ścieżek rozpoczynających
się w węźle początkowym, a zakończonych w węzłach odbiorczych. Do wyznaczania
składowych dróg tworzących takiego rodzaju drzewo stosuję się w ogólności:
algorytm Dijkstry,
algorytm Bellmana-Forda [4].
W drugim przypadku, metody konstruujące minimalne drzewo Steinera dążą do
łącznej minimalizacji całkowitego kosztu wszystkich dróg składowych wchodzących
w skład drzewa transmisji grupowej. Niestety - w związku ze złożonością metody
pozwalającej na otrzymanie struktury o minimalnym koszcie w postaci drzewa Steinera,
należącego do klasy -zupełnych, stosowane są rozwiązania przybliżone [5, 6, 7].
W literaturze przedstawiono różnego rodzaju algorytmy heurystyczne pozwalające na
rozwiązanie analizowanego problemu w czasie wielomianowym [8, 9].
W podobnym czasie można wyznaczać szczególną postać minimalnego drzewa
Steinera zawierającą wszystkie węzły w sieci, albowiem oznacza to znalezienie
minimalnego drzewa rozpinającego (ang. MST - Minimum Spanning Tree) korzystając
z algorytmów takich jak:
2. Algorytmy trasowania połączeń w sieciach pakietowych
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 19 –
algorytm Prima,
algorytm Kruskala.
2.4. Algorytmy niewymuszone, a algorytmy z ograniczeniami
Algorytmami niewymuszonymi nazywamy rozwiązania jednokryterialne
optymalizujące tylko funkcje kosztu drzewa, co oznacza, że w procesie działania
wykorzystywana jest tylko jedna metryka – koszt krawędzi (łączy) w grafie. Dobrym
przykładem algorytmu realizującego powyższe zadanie jest heurystyka znana jako KMB
(akronim od nazwisk autorów: Kou, Markovsky, Bermann) [3, 5].
Zaprezentowane rozwiązanie pozwala uzyskać koszt drzew średnio tylko
nieznacznie gorszy (na poziomie 5%) w stosunku do optymalnego rozwiązania
wyznaczającego minimalne drzewo Steinera. I choć algorytm KMB zwraca gorsze
rezultaty to charakteryzuje się znacznie lepszą (wielomianową) złożonością obliczeniową,
co przy niewielkiej różnicy w otrzymywanych rezultatach stanowi istotną zaletę tego
rozwiązania. Algorytm postępowania został przedstawiony w pseudokodzie 2.1.
Algorytmy z ograniczeniami (z wymuszeniami) stosowane są do optymalizacji
problemu znalezienia minimalnego kosztu drzewa, zakładając spełnienie dodatkowych
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 –
Rysunek 3.1. Schemat blokowy algorytmu genetycznego
Najważniejsze elementamy, które odróżniają metody genetyczne od tradycyjnych
metod to [16]:
brak bezpośredniego przetwarzania parametrów zadania lecz ich zakodowaną
postać,
prowadzanie poszukiwania, wychodząc nie z jednego punktu, lecz z pewnej
grupy (populacji),
wykorzystywanie w procesie tylko funkcji celu, nie zaś jej pochodnych lub
innych informacji pomocniczych,
stosowanie metod probabilistycznych, a nie deterministycznych reguł wyboru.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 27 –
3.3. Przykład optymalizacji funkcji
W celu lepszego wyjaśnienia działania algorytmów genetycznych przedstawionych
w rozdziale 3.2 rozważmy przykład optymalizacji prostej funkcji zmiennej x):
f(x) = 5 + x cos(10 x ), gdzie x [-1 ; 0,5] (3.1)
Wykres przebiegu analizowanej funkcji został zaprezentowany na rysunku 3.2.
4
4,5
5
5,5
6
-2 -1 0 1 2
x
f(x)
Rysunek 3.2. Wykres badanej funkcji celu f(x) (wzór 3.1)
Dla rozważanego problemu został przedstawiony prosty algorytm genetyczny do
znalezienia minimum przedstawionej na wykresie funkcji.
3.3.1. Reprezentacja
Chromosom posiada reprezentacje w postaci wektora binarnego, którego długość
zależy od pożądanej dokładności otrzymanego rozwiązania, ustalonej w tym wypadku na 3
cyfry po przecinku. Dziedzina x ma długość równą 1,5, a zatem dla uzyskania oczekiwanej
dokładności przedział ten należy podzielić na co najmniej 150010005,1 części. W tym
prostym wypadku chromosom przyjmie długość 11 bitów, zgodnie z zależnością:
102 <1 500 < 112 .
Przekształcenie rozwiązania prezentowanego przez dany chromosom odbywa się
w dwu etapowej transformacji [49]:
zamiana łańcucha binarnego na system dziesiętny
{b11, b10,...,b0} -> d;
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 28 –
przekształcenie otrzymanej liczby dziesiętnej na wartość x z przedziału [-1; 0,5]
x = -1,0 + 1,5 * d / ( 112 -1).
Dla przykładu chromosom {11111111111} odpowiada liczbie dziesiętnej d = 2047,
co po transformacji daje wartość x = 0,5; natomiast chromosom {00000000000}
reprezentuje drugi koniec przedziału, czyli x = -1,0.
3.3.2. Populacja początkowa i funkcja oceny
Inicjalizacja algorytmu odbywa się poprzez wylosowanie populacji początkowej
złożonej z określonej liczbie osobników (chromosomów). Każdy osobnik stanowi ciąg
binarny o długości 11 bitów. Poszczególne bity są wyznaczane przez prostą funkcję
losową zwracająca tylko dwie wartości – jeden lub zero.
Do oceny dopasowania poszczególnych chromosomów wykorzystuje się funkcję
f(x) (wzór 3.1), która określa potencjalne rozwiązania reprezentowane przez osobniki
w kolejnych pokoleniach procesu ewolucji.
Na bazie zaprezentowanego wzoru oraz metody transformacji ciągów binarnych
składających się na osobniki populacji możemy przyporządkować poszczególnym
chromosomom odpowiadające im wartości, zgodnie z zaprezentowanymi danymi.
Przykładowym osobnikom:
B1 = {11001100110} = 1638,
B2 = {11000001000} = 1544,
B3 = {11111100000} = 2016,
odpowiadają wartości x:
x1 = 0,2,
x2 = 0,131,
x3 = 0,477.
To z kolei oznacza wartość funkcji dopasowania na poziomie:
f(x1) = 5,2,
f(x2) = 4,92,
f(x3) = 4,6.
Na tej podstawie wnioskujemy, że chromosom B3 o wartości dopasowania f(x3)
jest najlepszym rozwiązaniem spośród trzech zaprezentowanych przykładów w procesie
optymalizacji polegającym na znalezienia minimum analizowanej funkcji.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 29 –
3.3.3. Operatory genetyczne i tworzenie nowej populacji
W rozważanym przypadku zaprezentujemy działanie klasycznych operatorów
genetycznych, w postaci:
binarnej mutacji,
binarnego krzyżowania.
Dla przykładowego chromosomu B1 = {11001100110} mutacja na pierwszym
bicie do postaci B1’ = {01001100110} doprowadziła do zmiany dopasowania osobnika z
f(x1) = 5,200 na f(x1’) = 5,005, co oznacza poprawienie jakości rozwiązania
prezentowanego przez chromosom B1 w procesie minimalizacji funkcji.
Z kolei krzyżowanie osobników B2 = {110 | 00001000} i B3 = {111 | 11100000},
po losowo wybranym, trzecim genie, daje w wyniku dwa nowe rozwiązania
B2’ = {111 | 00001000} i B3’ = {110 | 11100000} o nowych wartościach funkcji oceny:
f(x2’) = 4,735; f(x3’) = 4,725 (w stosunku do wartości przed krzyżowaniem: f(x2) = 4,92;
f(x3) = 4,6). W wyniku czego otrzymujemy rozwiązania plasujące się pomiędzy
rozwiązaniami oferowanymi przez poprzednie pokolenie.
W toku ewolucji, algorytm za każdym razem wybiera najlepsze rozwiązania
spośród dotychczas uzyskanych chromosomów potomnych oraz osobników rodzicielskich,
dążąc do znalezienia jak najmniejszej wartości funkcji dopasowania.
3.3.4. Zakończenie procesu ewolucji
Istnieją różne metody aby przerwać prace algorytmy genetycznego. Jednym
z najprostszych rozwiązań jest zatrzymanie działania procesu ewolucji po określonej
liczbie pokoleń. Innym rozwiązaniem jest testowanie czasu, który upłynął od ostatniej
modyfikacji najlepszego chromosomu. Można zauważyć, że wraz z kolejnymi pokoleniami
zmniejsza się częstość znajdowania lepszego rozwiązania, jak i stopień uzyskiwanej
poprawy [18]. Podobnie możemy zakończyć działanie algorytmu po osiągnięciu określonej
wartości rozwiązania.
3.4. Reprezentacja danych
W początkowych etapach rozwoju algorytmów genetycznych uważano je jako
narzędzia użyteczne w optymalizacji wielu trudnych zadań, niczym „ogólne narzędzie do
wszystkiego” [49]. Taki trend utrzymywał się dość długo, aż do roku 1987 kiedy to Glover
w prowadzonych przez siebie badaniach nad optymalnym układem klawiatury zauważył,
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 30 –
że klasyczne operatory oraz reprezentacja binarna nie do końca sprawdzają się
w rozważanym problemie, bowiem dla tylko 40 klawiszy, reprezentowanych w systemie 3
bitowym, jedynie jedna z 1016 struktur możliwych do uzyskania z 120 bitowych ciągów
jest rozwiązaniem optymalnym. Podobnie De Jong w 1990 roku, rozważając zadanie
komiwojażera, zauważa, że standardowe operatory rozpatrują przestrzeń wszystkich
możliwych kombinacji miast w analizowanym problemie. Podczas gdy istotnym
elementem jest przestrzeń permutacji, która stają się bardzo mała częścią wspomnianego
zbioru dla większej liczby miast do odwiedzenia. Dlatego też rozwiązania, które
implementują w strukturę chromosomu wiedzę specyficzną dla analizowanego problemu i
dostosowane do nich operatory sprawdzają się lepiej, niż klasyczny algorytm genetyczny
pracujący ze zwykłymi ciągami binarnymi [49]. Michalewicz w swojej pracy [49]
proponuje następujące rozróżnienie algorytmów, ze względu na sposób kodowania
zadania:
(klasyczny) algorytm genetyczny – transformacja zadania do postaci reprezentacji
binarnej w celu stosowania klasycznych operatorów binarnych;
program ewolucyjny – transformacja algorytmu genetycznego do zadania
z użyciem bardziej skomplikowanych struktur niż ciągi binarne i zastosowanie
złożonych operatorów genetycznych będących w stanie działać na utworzonych
strukturach.
Rysunek 3.3 przedstawia schematycznie różnice w odmiennym podejściu do
problemu kodowania informacji analizowanego problemu.
Zaprezentowana idea wywodzi się z prac Davisa [19], który zauważa, że większość
zadań trudno reprezentować prostą reprezentacją binarną i binarnymi operatorami
genetycznymi i sugeruje użycie istniejącej wiedzy w algorytmach genetycznych,
implementując ją w strukturę chromosomu lub dostosowując odpowiednio operatory.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 31 –
Rysunek 3.3. Proponowany przez Michalewicza rozdział „klasycznej metody genetycznej” od „programowania ewolucyjnego” [49]
Davis również wprowadza pojęcie „hybrydowego algorytmu genetycznego”, jako
połączenie metody algorytmów genetycznych ze znanym algorytm spełniające następujące
zasady:
zachowanie kodowania – użycie kodowania ze znanego algorytmu w algorytmie
genetycznym;
uwzględniania dodatnich cech znanego algorytmy w algorytmie genetycznym;
adaptacja operatorów genetycznych – tworzenie operatorów genetycznych przez
analogie z operatorami dla łańcuchów binarnych z uwzględnieniem dziedziny
pracy.
Hybrydowe algorytmy genetyczne, podobnie jak programowanie ewolucyjne
charakteryzuję się odejściem od klasycznych łańcuchów binarnych w stronę bardziej
złożonych problemów z zastosowaniem odpowiednich operatorów genetycznych.
W następnych rozdziałach stosowany będzie jednolity termin „algorytm genetyczny” wraz
z opisem przyjętego kodowania i operatorów w celu uniknięcia niejednoznaczności.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 32 –
3.5. Reprezentacja danych w problemie trasowania połączeń rozgałęźnych
W rozważanym problemie trasowania połączeń rozgałęźnych kodowanie
chromosomów oznacza formę reprezentacji drzewa transmisji grupowej w zakodowanej
postaci ciągu genów. W celu optymalnej pracy rozwiązań genetycznych forma
reprezentacji danych powinna spełniać następujące wymagania: możliwość zakodowania
dowolnego drzewa, każde drzewa posiada taką samą liczbę reprezentacji, brak możliwości
reprezentacji grafów nie będących drzewami, łatwość przeprowadzania operacji
kodowania i rozkodowywania reprezentacji, lokalność oraz dziedziczność [20]. Warunek
posiadania takiej samej liczby reprezentacji związany jest z nadaniem takich samych szans
algorytmowi w przeszukiwaniu wszystkich miejsc w dopuszczalnej przestrzeni rozwiązań,
natomiast zabronienie możliwości kodowania innych form niż drzewa pozwala na prostą
generację populacji początkowej, unikając ryzyka utworzenia struktur nie będących
drzewami, a także w konsekwencji potomków również nie spełniających tych warunków.
Prostota przeprowadzania operacji konwersji miedzy formą jawną, a zakodowaną pozwala
na szybkie wyznaczenie wartości funkcji oceny oraz sprawdzenie wszelkich warunków
i ograniczeń, bez oczekiwania na zakończenie skomplikowanych przekształceń
reprezentacji. Lokalność operacji oznacza proporcjonalność wielkości zmian reprezentacji
w stosunku do zmian struktury drzewa (małe zmiany w strukturze grafu oznaczają małe
zmiany w reprezentacji). Dziedziczność oznacza podobieństwo potomków do osobników
rodzicielskich.
W literaturze zostało przedstawionych kilka realizacji kodowania osobników,
przystosowanych do problemu trasowania połączeń rozgałęźnych, w postaci:
tablic ścieżek (trasowania) [21, 22, 23, 24, 25, 26, 27, 28];
ciągów Prüfera [29, 35];
krawędzi lub węzłów do każdego odbiorcy [30, 31];
listy lub macierzy krawędzi [32, 33];
zmodyfikowanego wyznacznika (ang. Modified Determinant Encoding) [34].
3.5.1. Tablice ścieżek
Reprezentacja oparta na tablicach ścieżek (tablicach trasowania) polega na
przedstawieniu drzewa transmisji grupowej w postaci zbioru wybranych dróg łączących
określone relacje, czyli zestawu krawędzi od węzła początkowego do węzła końcowego.
Główną zaletą tego rozwiązania jest brak konieczności stosowania żadnych procedur
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 33 –
naprawczych po użyciu operatorów genetycznych, ponieważ zmiana ścieżki na wybranej
relacji w postaci zmiany wartości genu w dopuszczalnym zbiorze rozwiązań nie niszczy
spójności drzewa. Warto jednak zauważyć, że przygotowanie dozwolonego zbioru
rozwiązań wiąże się z czasochłonnym procesem generacji tabel oraz koniecznością
przechowywania w trakcie pracy algorytmu całego wygenerowanego zestawu dróg dla
każdej relacji. Ponadto potencjalne ryzyko niesie wybór odpowiedniej metody
generowania tablic trasowania, po pierwsze ze względu na wspomnianą złożoność, ale
także ze względu na jakość tworzonych zestawów, co może okazać się kluczowym
aspektem pracy algorytmu na tle otrzymywanych rezultatów. Prezentowana metoda
charakteryzuje się dobrą lokalnością oraz bardzo dobrą dziedzicznością cech.
Schematycznie idea tablic trasowania została zaprezentowana, dla wybranej relacji
łączącej węzeł nr 3 z węzłem nr 6, na rysunku 3.4. Przedstawiona metoda zostanie również
dokładniej opisana w następnym rozdziale.
Rysunek 3.4. Tablica trasowania dla relacji węzeł nr 3 – węzeł nr 6 posortowana według liczby przeskoków wzdłuż ścieżki
3.5.2. Ciągi Prüfera
W przypadku kodowania chromosomów za pomocą ciągów Prüfera mamy do
czynienia ze zwartą reprezentacją, w której potrzebujemy jedynie 2V liczb do
przechowywania pełnego drzewa, co jest ogromna zaletą tej metody (V odpowiada liczbie
wierzchołków drzewa). Kodowanie drzewa rozpoczyna się od usunięcia wierzchołka o
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 34 –
stopniu równym jeden i najmniejszym numerze porządkowym, zapisaniu numeru węzła do
którego był przyłączony oraz usunięciu krawędzi, tak jak pokazano na rysunku 3.5.
Rysunek 3.5. Pierwszy krok tworzenia ciągu Prüfera – odcięcie węzła nr 1 od węzła nr 4
W kolejnym kroku sytuacja powtarza się dla następnego wierzchołka spełniającego
wymienione wymagania - o stopniu równym jeden i najmniejszym numerze. Drugi krok
kodowania przykładowego drzewa zaprezentowano na rysunku 3.6.
Rysunek 3.6. Drugi krok tworzenia ciągu Prüfera – odcięcie kolejnego węzła
Proces kodowania jest powtarzany tak, jak długo istnieje w grafie więcej niż jedna
krawędź. W wyniku zakodowania przykładowego drzewa otrzymujemy ciąg
zaprezentowany na rysunku 3.7. Niewątpliwą wadą przedstawionego tego rozwiązania jest
potrzeba dekodowania ciągu po jego zakodowaniu (operacje transformacji reprezentacji
mają złożoność VVE log [20]).
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 35 –
Rysunek 3.7. Przykładowe drzewo zakodowane w postaci ciągu Prüfera
Ponadto metoda ta charakteryzuje się dość słabą dziedzicznością cech, a także małą
lokalnością operacji genetycznych [35]. Ilustracje powyższego problemu przedstawia
rysunek 3.8. Dla niewielkiej zmiany w ciągu na pozycji drugiego genu następuje istotna
zmiana w strukturze reprezentowanego przez chromosom drzewa.
Rysunek 3.8. Mała lokalność reprezentacji Prüfera – mutacja na 2 genie, a układ krawędzi
3.5.3. Krawędzie lub węzły do każdego odbiorcy
W przypadku kodowania danych o ścieżkach bezpośrednio w osobnikach
(bez wykorzystania tabel używanych w pierwszej opisanej metodzie) mamy do czynienia z
reprezentacją o zmiennej długości. Na każdy chromosom składa się informacja na temat
poszczególnych węzłów (krawędzi) wchodzących w skład drzewa transmisji grupowej.
Metoda ta cechuje się dobrą dziedzicznością oraz lokalnością operacji genetycznych.
Jednakże operatory łatwo mogą uszkodzić spójność drzewa i w takim wypadku wymusić
stosowanie procedur naprawczych. Schemat według którego następuje zapisanie
informacji zgodnie z tą metodą kodowania został przedstawiony na rysunku 3.9.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 36 –
Rysunek 3.9. Przykładowy graf zakodowany w postaci węzłów do każdego odbiorcy
3.5.4. Lista lub macierz krawędzi
W przypadku kodowania w chromosomach informacji na temat krawędzi
wchodzących w skład drzewa transmisji grupowej stosuje się zasadniczo dwa podejścia:
listę krawędzi,
macierz krawędzi.
W pierwszym przypadku, kodowania krawędzi w postaci listy rezygnujemy z
pewnej nadmiarowości, z jaką wiąże się zastosowanie drugiej metody, a mianowicie
zapisujemy informacje tylko o istniejących w grafie krawędziach.
Rysunek 3.10. Przykładowy graf zakodowany w postaci listy krawędzi
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 37 –
W tym wypadku potrzebujemy jedynie k2 komórek pamięci ( k odpowiada
liczbie krawędzi w drzewie). Schemat według którego następuje zapis informacji zgodnie
z tą metodą kodowania został przedstawiony na rysunku 3.10.
W drugim przypadku, reprezentacji krawędzi w postaci macierzy, kodowanie
odbywa się z dodatkowym narzutem związanym z zapisywaniem informacji o tym czy
dane łącze istnieje w grafie czy też nie. To wiąże się koniecznością alokacji większej ilości
pamięci na rzecz przechowywanej struktury – macierz kwadratowa o wielkości nn
(n odpowiada liczbie wierzchołków w całym grafie), którą w grafach nieskierowanych
można zredukować do macierzy trójkątnej. Przykład grafu zakodowanego w postaci
macierzy krawędzi przedstawia rysunek 3.11.
Zaprezentowane metody reprezentacji danych charakteryzują się lokalnością
działania operatorów genetycznych, natomiast istotną wadą obu tych rozwiązań jest
konieczność stosowania procedur naprawczych po wszelkich operacjach genetycznych.
Rysunek 3.11. Przykładowy graf zakodowany w postaci macierzy krawędzi
3.5.5. Metoda zmodyfikowanego wyznacznika (MDC)
Metoda zmodyfikowanego wyznacznika polega na zakodowaniu informacji
o drzewie w postaci jednowymiarowej tablicy liczb całkowitych. Utworzona w ten sposób
tablica ma długość 1V , równą liczbie węzłów w grafie pomniejszoną o jeden.
Sam proces kodowania odbywa się zgodnie z następującą zasadą – liczba
w zlokalizowana w tablicy na pozycji 1j oznacza istnienie krawędzi łączącej węzeł o
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 38 –
numerze w z węzłem o numerze j . Wartość zerowa oznacza brak danej krawędzi.
Poważną wadą tego rozwiązania jest konieczność ciągłej kontroli prawidłowej struktury
drzewa poprzez eliminacje zbędnych węzłów (w kontekście pętli w drzewie) jak i redukcję
potencjalnych pętli. Idea działania tej metody kodowania została przedstawiona na
przykładowych danych na rysunku 3.12.
Rysunek 3.12. Przykładowe drzewo zakodowane metodą zmodyfikowanego wyznacznika
3.6. Specyficzne operacje genetyczne dla problemu trasowania połączeń rozgałęźnych
Oprócz wymienionych w poprzednich rozdział uniwersalnych operatorach
genetycznych należy wspomnieć również o zaproponowanych w literaturze specyficznych
rozwiązaniach dedykowanych do problemu optymalizacji trasowania połączeń
rozgałęźnych, takich jak:
wyszukiwanie wspólnych poddrzew [36, 37, 38];
budowanie drzewa z krawędzi rodziców [33];
wymiana tras [30, 31];
eliminacja lub zamiana losowego węzła [31];
eliminacja pętli [30];
wymiana lub rekonstrukcja ścieżki [30].
Metoda wyszukiwania wspólnych drzew polega na znalezieniu w osobnikach
rodzicielskich powtarzających się elementów w celu ich losowego połączenia. W innej
postaci początkowo z chromosomów wybierane są losowe poddrzewa, których wspólne
dla obu osobników fragmenty łączone są krawędziami losowo wybieranymi od rodziców.
3. Algorytmy genetyczne
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 39 –
W przypadku drugiej metody na bazie grafu otrzymanego z połączenia krawędzi
wchodzących w skład osobników rodzicielskich następuje losowe przyłączanie nowych
łączy w celu utworzenia nowego drzewa transmisji grupowej.
Wymiana tras polega na zamianie ścieżek pochodzących z różnych osobników
według określonego wzorca. Decydującym czynnikiem może być na przykład koszt danej
drogi. Tańsze połączenia trafiają do jednego potomka, droższe do drugiego.
W metodzie eliminacji losowego węzła następuje odłączenie wybranego
wierzchołka od struktury drzewa, a następnie odtworzenie spójności za pomocą wybranej
metody naprawczej. Podobnie działa metoda zamiany losowego węzła, jednakże nie jest
on usuwany całkowicie lecz wymieniany z innym istniejącym w drzewie wierzchołkiem.
Mimo wszystko to rozwiązanie też może doprowadzić do przerwania spójności i wymaga
procedur naprawczych.
Metoda eliminacji pętli polega na odnalezieniu wszystkich występujących pętli
oraz losowym zastąpieniu wybranej.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 40 –
4. Zastosowana implementacja – opis własnych rozwiązań
Niniejszy rozdział poświecony jest szczegółom technicznym zaimplementowanych
rozwiązań omówionych teoretycznie w poprzednich rozdziałach, a w szczególności
zastosowanym sposobom reprezentacji danych na różnych etapach prowadzonych
symulacji. Na początku tego rozdziału, jako wprowadzenie do dalszych rozważań, został
przedstawiony sposób generowania struktur grafowych oraz ujednolicony format
przechowywania informacji o topologii sieci. Następnie zostały zaprezentowane
poszczególne rozwiązania reprezentacji danych wykorzystywane w procesie
przygotowawczym oraz w kolejnych elementach składowych algorytmu. Ponadto został
omówiony sposób inicjalizacji algorytmu genetycznego, a także zastosowane w procesie
optymalizacji operatory genetyczne.
4.1. Sposób generowania struktur grafowych oraz format przechowywania informacji o topologii sieci
Głównym celem pracy jest analiza możliwości użycia algorytmów genetycznych do
trasowania połączeń rozgałęźnych w sieciach pakietowych oraz analiza ich skuteczności na
tle istniejących algorytmów heurystycznych. W trakcie badań do modelowania topologii
sieci zostały wykorzystane dwa modele: Waxmana [39] oraz Barabasi-Alberta [40]. Przy
tworzeniu struktur sieci zgodnych z zaprezentowanymi szerzej w rozdziale 5 modelami
zastosowano generator BRITE [41] (Boston university Representative Internet Topology
gEnerator).
W ramach procesu generacji modeli przyjęto następujące założenia dotyczące
parametrów topologii sieci:
węzły znajdują się na kwadratowej siatce o wymiarach 1000 na 1000 jednostek,
parametr odpowiedzialny za wzrost liczby krawędzi w grafie [42], α = 0.15,
parametr odpowiedzialny za wzrost stosunku krawędzi długich do krótkich [42],
β = 0.20.
Do tak wygenerowanej sieci zostały dodane metryki określające poszczególne
krawędzie w grafie:
koszt krawędzi c z zakresu od 10 do 1000,
opóźnienie d wynikające z odległości pomiędzy dwoma wierzchołkami
incydentnymi z tą samą krawędzią.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 41 –
Wymienione informacje stanowią dane wejściowe dla generatora modeli sieci i są
przechowywane w pliku konfiguracyjnym, tak jak zostało to przedstawione na listingu 4.1.
Listing 4.1. Plik z danymi konfiguracyjnymi dla generatora sieci
Po wygenerowaniu poszczególnych struktur są one zapisywane do odpowiednich
plików tekstowych, zgodnie z formatem nazwy pliku:
e_LiczbaWęzłów_LiczbaKrawędzi_Model___LiczbaSieci.txt
Na przykład: „e_10_20_W___100.txt” oznacza plik z danymi o stu sieciach,
wygenerowanymi metodą Waxmana, dla V = 10 węzłów i E = 20 krawędzi w grafie.
Informacje w pliku są zapisane w postaci tablicowej według następującego szablonu:
sieć_nr1
numer_krawędzi1 węzeł_1a węzeł_1b koszt_krawędzi1 opóźnienie
numer_krawędzi2 węzeł_2a węzeł_2b koszt_krawędzi2 opóźnienie
numer_krawędzi3 węzeł_3a węzeł_3b koszt_krawędzi3 opóźnienie
sieć_nr2
Przykładowe dane z pliku z sieciami dla V = 10, E = 20 znajdują się na listingu 4.2.
Informacje zostały zapisane zgodnie z zaprezentowanym powyżej formatem danych.
4. Zastosowana implementacja – opis własnych rozwiązań
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 42 –
Listing 4.2. Przykładowa zawartość pliku z danymi sieci dla V = 10 węzłów i E = 20 krawędzi
4.2. Algorytmy genetyczne – etapy działania
W działaniu każdego algorytmu genetycznego możemy wyróżnić następujące
etapy [14]: utworzenie populacji początkowej oraz proces ewolucyjny, w którego skład
wchodzą: funkcja dopasowania i operatory genetyczne. Duże znaczenie dla efektywności
i jakości rozwiązania ma również sposób reprezentacji danych i kodowania chromosomów
od którego rozpoczyna się opis zastosowanej implementacji.
W kolejnych podrozdziałach zostaną przedstawione poszczególne moduły, które
były analizowane i porównywane w toku badań symulacyjnych. Zostały przedstawione
metody generacji tablic trasowania zgodnie z algorytmem k najkrótszych ścieżek oraz
algorytmem przeszukiwania wszerz grafu. Zaprezentowano szczegóły inicjalizacji
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 –
4.3.2. Generacja tablic – algorytm przeszukiwania grafu wszerz
Drugim zaprogramowanym rozwiązaniem do generacji tablic trasowania jest
algorytm przeszukiwania grafu wszerz (ang. BFS - Breadth-First Search).
Pseudokod 4.3. Algorytm przeszukiwania grafu wszerz – BFS
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
zastosowaniu klasycznych algorytmów heurystycznych. Symulacje uwzględniły metodę
generowania topologii sieci zgodną z modelem Waxmana oraz modelem Barabasi-Alberta.
Otrzymane wyniki wskazują na poprawność przetestowanych i zaproponowanych
rozwiązań oraz efektywność pozwalającą na osiągnięcie rezultatów lepszych od
klasycznych rozwiązań heurystycznych, takich jak algorytm CSPT. Ponadto w wielu
przypadkach uzyskany koszt drzew zbliżony jest do wyników, uznawanego za najbardziej
efektywny, algorytmu KPP (rys. 6.14, 6.18).
W ramach prowadzonych badań powstały artykuły na konferencje: PWT’07 [28]
oraz KST’08 (w recenzji: „Porównanie wydajności operatorów genetycznych na tle liczby
generacji w problemie trasowania połączeń rozgałęźnych”), natomiast w przygotowaniu
znajduje się: „The Implementation of the K-Shortest Path Algorithm in Multicast Routing”.
8. Literatura
Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych – 94 –
8. Literatura 1 Kosiur D., “IP Multicasting: The Complete guide to interactive corporate networks”, Wiley
Computer Publishing, May 1998. 2 Piechowiak M., Zwierzykowski P., “Przegląd protokołów routingu multicast”, VIII Poznańskie
Warsztaty Telekomunikacyjne, 2003. 3 Piechowiak M., Zwierzykowski P., “Wpływ parametrów topologii sieci na efektywność
algorytmów połączeń rozgałęźnych”, PWT, 2005. 4 Bellman R., “On a routing problem”, Quarterly of Applied Mathematics, vol. 16, pp 87-91, 1958. 5 Kou L., Markowsky G., Berman L., “A fast algorithm for Steiner trees”, Acta Informatica, 15,
pp.-141-145, 1981. 6 Kompella V.P., Pasquale J.C., Polyzos G.C., “Multicasting for multimedia applications”,
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
User’s Perspective”, Manual, April 12, 2001.