zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · generacja tablic –...

97
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

Upload: doannguyet

Post on 28-Feb-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 2: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 3: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 4: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 5: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 6: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 7: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 8: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 9: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 10: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 11: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 12: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ść

Page 13: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 14: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 15: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 16: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 17: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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)

Page 18: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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:

Page 19: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 20: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 21: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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)

Page 22: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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].

Page 23: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 24: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ą.

Page 25: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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) .

Page 26: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 27: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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;

Page 28: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 29: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ł,

Page 30: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 31: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 32: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 33: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 34: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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]).

Page 35: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 36: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 37: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 38: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 39: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 40: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ą.

Page 41: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 42: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 43: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 44: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 45: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 46: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 47: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 48: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 49: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 50: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 51: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 52: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 53: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 54: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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].

Page 55: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ł

Page 56: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 57: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 58: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 59: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 60: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 61: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 62: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 63: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 64: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 65: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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)

Page 66: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 67: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 68: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 69: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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].

Page 70: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 71: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 72: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 73: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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].

Page 74: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 75: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 76: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 77: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 78: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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ń

Page 79: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 80: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 81: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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,

Page 82: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 83: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 84: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 85: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 86: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 87: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 88: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 89: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 90: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 91: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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

Page 92: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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).

Page 93: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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”.

Page 94: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 95: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 96: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.

Page 97: Zastosowanie algorytmów genetycznych do realizacji ... algorytmów... · Generacja tablic – algorytm k najkrótszych ścieżek Dijkstry.....45 4.3.2. Generacja tablic – algorytm

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.