Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych"

Transkrypt

1 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

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

3 Streszczenie Praca dyplomowa została poświecona technologii multicast wykorzystywanej do realizacji połączeń rozgałęźnych. Multicast pozwala na efektywną komunikację pomiędzy wieloma odbiorcami w sieci. Istotnym parametrem w tego rodzaju transmisji są parametry QoS, takie jak m.in. opóźnienie propagacyjne. Udowodniono, że znalezienie dróg transmisji spełniających parametry QoS należy do klasy problemów NP-zupełnych. Autor prezentuje techniki trasowania połączeń oparte na powszechnie znanych rozwiązaniach heurystycznych oraz rozwijających się algorytmach genetycznych porównując obie kategorie w ramach badań symulacyjnych. Otrzymane, w toku przeprowadzonych eksperymentów, rezultaty wskazują na efektywność zaimplementowanych oraz zaproponowanych rozwiązań. Abstract The subject of this thesis is the multicast technology used to arrange transmission to many users at the same time. Multicast routing is an effective way to communicate among multiple hosts in a network. For multimedia applications the routing algorithms should consider Quality of Service (QoS) parameters such as delay or cost. However finding routes with two or more QoS parameters is an NP-hard problem. The author describes both classic heuristics and novel genetic approaches and compares these categories using computer simulations. Numerical results show that the genetic algorithms are able to find better solutions than the most conventional routing schemes. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 3

4 Spis treści I. Spis rysunków... 7 II. Spis listingów III. Spis pseudokodów IV. Spis tabel Wprowadzenie Algorytmy trasowania połączeń w sieciach pakietowych Wprowadzenie Komunikacja punkt-punkt versus punkt-grupa Multicast definicja Algorytmy niewymuszone, a algorytmy z ograniczeniami Algorytmy genetyczne Wprowadzenie Budowa algorytmu i podstawowe pojęcia Przykład optymalizacji funkcji Reprezentacja Populacja początkowa i funkcja oceny Operatory genetyczne i tworzenie nowej populacji Zakończenie procesu ewolucji Reprezentacja danych Reprezentacja danych w problemie trasowania połączeń rozgałęźnych Tablice ścieżek Ciągi Prüfera Krawędzie lub węzły do każdego odbiorcy Lista lub macierz krawędzi Metoda zmodyfikowanego wyznacznika (MDC) Specyficzne operacje genetyczne dla problemu trasowania połączeń rozgałęźnych Zastosowana implementacja opis własnych rozwiązań Sposób generowania struktur grafowych oraz format przechowywania informacji o topologii sieci Algorytmy genetyczne etapy działania Reprezentacja danych tablice trasowania Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 4

5 Generacja tablic algorytm k najkrótszych ścieżek Dijkstry Generacja tablic algorytm przeszukiwania grafu wszerz Reprezentacja danych klasy obiektów bazowych Reprezentacja danych kodowanie genów chromosomu Inicjalizacja algorytmu genetycznego Proces ewolucji Proces ewolucji ocena dopasowania i sprawdzenie warunków zatrzymania Proces ewolucji selekcja Selekcja rankingowa Selekcja turniejowa Selekcja metodą ruletki Proces ewolucji operatory krzyżowania Krzyżowanie jednopunktowe Krzyżowanie równomierne Krzyżowanie dwupunktowe Proces ewolucji operator mutacji Proces ewolucji redukcja duplikatów Proces ewolucji sukcesja: tworzenie nowej populacji Topologia i metody generacji modeli sieci Wprowadzenie Idealny generator Metody generowania sieci BRITE Boston university Representative Internet Topology generator Badania symulacyjne Analiza wydajności różnych rozwiązań genetycznych Ustalenie parametrów(punktu) pracy algorytmu Analiza porównawcza różnych algorytmów genetycznych Metody generacji ścieżek Prawdopodobieństwo mutacji Redukcja duplikatów Model ruletkowy Model rankingowy Model turniejowy Porównanie zbiorcze modeli Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 5

6 6.4. Analiza porównawcza rozwiązań genetycznych z klasycznymi heurystykami Koszt drzewa transmisji grupowej w funkcji liczby węzłów sieci Model Waxmana Model Barabasi-Alberta Koszt drzewa transmisji grupowej w funkcji średniego stopnia węzła Model Waxmana Model Barabasi-Alberta Koszt drzewa transmisji grupowej w funkcji liczby węzłów grupy multicastowej Model Waxmana Model Barabasi-Alberta Podsumowanie Literatura Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 6

7 I. Spis rysunków Rysunek 2.1. Transmisja danych zgodnie z modelem punkt-punkt Rysunek 2.2. Transmisja danych zgodnie z modelem punkt-grupa Rysunek 3.1. Schemat blokowy algorytmu genetycznego Rysunek 3.2. Wykres badanej funkcji celu f(x) (wzór 3.1) Rysunek 3.3. Proponowany przez Michalewicza rozdział klasycznej metody genetycznej od programowania ewolucyjnego [45] Rysunek 3.4. Tablica trasowania dla relacji węzeł nr 3 węzeł nr Rysunek 3.5. Pierwszy krok tworzenia ciągu Prüfera odcięcie węzła nr 1 od węzła nr Rysunek 3.6. Drugi krok tworzenia ciągu Prüfera odcięcie kolejnego węzła Rysunek 3.7. Przykładowe drzewo zakodowane w postaci ciągu Prüfera Rysunek 3.8. Mała lokalność reprezentacji Prüfera mutacja na 2 genie, a układ krawędzi Rysunek 3.9. Przykładowy graf zakodowany w postaci węzłów do każdego odbiorcy 36 Rysunek Przykładowy graf zakodowany w postaci listy krawędzi Rysunek Przykładowy graf zakodowany w postaci macierzy krawędzi Rysunek Przykładowe drzewo zakodowane metodą zmodyfikowanego wyznacznika 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 Rysunek 4.2. Struktura drzewa binarnego użytego do przechowywania obiektów klasy wezel oraz obiektów typu gen Rysunek 4.3. Format budowy przykładowej tablicy trasowania Rysunek 4.4. Struktura budowy przykładowego chromosomu ciąg genów o długości m = Rysunek 4.5. Ilustracja zaimplementowanego rozwiązania metody selekcji rankingowej z oznaczonymi rodzicami trzech przykładowych chromosomów( Chromosom 1,2 oraz P ) 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 7

8 Rysunek 4.7. Ilustracja zaimplementowanego rozwiązania metody selekcji ruletkowej z oznaczonymi rodzicami jednego chromosomu potomnego ( Chromosom 1 ) Rysunek 4.8. Krzyżowanie jednopunktowe Rysunek 4.9. Krzyżowanie równomierne Rysunek Krzyżowanie dwupunktowe Rysunek Efekt działania operatora mutacji Rysunek Proces redukcji duplikatów Rysunek Proces sukcesji osobników do nowej generacji Rysunek 5.1. Przykładowa sieć oraz jej reprezentacja w postaci grafu nieskierowanego Rysunek 5.2. Sieć sieci zbiór systemów autonomicznych (AS) Rysunek 5.3. Krata przykład topologii regularnej Rysunek 5.4. Przykład struktury wielopoziomowej Rysunek 5.5. Modele klas i pochodnych klas w BRITE [37] Rysunek 5.6. Schematyczna prezentacja różnic w alokacji węzłów pomiędzy rozkładem losowym, a dalekosiężnym Rysunek 6.1. Ustalanie parametrów pracy rozwiązań genetycznych w problemie trasowania połączeń rozgałęźnych Rysunek 6.2. Wykres zależności kosztu drzewa transmisji grupowej w funkcji oczekiwanej liczby generowanych ścieżek dla każdej relacji Rysunek 6.3. Wykres zależności znormalizowanej liczby iteracji (generacji) w funkcji prawdopodobieństwa mutacji Rysunek 6.4. Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej w funkcji znormalizowanej liczby generacji Rysunek 6.5. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego Rysunek 6.6. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu ruletkowego Rysunek 6.7. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu rankingowego Rysunek 6.8. Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu rankingowego Rysunek 6.9. Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 8

9 Rysunek Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego Rysunek Wykres zależności znormalizowanej liczby pokoleń w funkcji liczby osobników w pojedynczej generacji porównanie zbiorcze Rysunek Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji porównanie zbiorcze Rysunek Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej w funkcji liczby osobników w pojedynczej generacji porównanie zbiorcze Rysunek 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 Rysunek 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 = Rysunek 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 Rysunek 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 = Rysunek 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 Rysunek 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 = Rysunek 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 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 = Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 9

10 Rysunek 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 = Rysunek 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 = II. Spis listingów Listing 4.1. Plik z danymi konfiguracyjnymi dla generatora sieci Listing 4.2. Przykładowa zawartość pliku z danymi sieci Listing 4.3. Klasa definiująca obiekty typu wezel Listing 4.4. Szablon klasy obiektów bazowych Listing 4.5. Definicja klasy obiektów typu gen III. Spis pseudokodów Pseudokod 2.1. Algorytm KMB Pseudokod 2.2. Algorytm KPP Pseudokod 2.3. Algorytm CSPT Pseudokod 4.1. Algorytm genetyczny cechy wspólne zaimplementowanych rozwiązań Pseudokod 4.2. Algorytm k najkrótszych ścieżek Dijkstry Pseudokod 4.3. Algorytm przeszukiwania grafu wszerz BFS Pseudokod 4.4. Generator liczb pseudolosowych Pseudokod 4.5. Krzyżowania jednopunktowe Pseudokod 4.6. Krzyżowanie równomierne Pseudokod 4.7. Krzyżowanie dwupunktowe Pseudokod 5.1. Model G(n, p) Pseudokod 5.2.Model G(n, k) IV. Spis tabel Tabela 3.1. Ważne daty w badaniach algorytmów genetycznych [12, 16] Tabela 6.1. Elementy charakterystyczne rożnych rozwiązań genetycznych Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 10

11 1. Wprowadzenie 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 11

12 1. Wprowadzenie 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ść Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 12

13 1. Wprowadzenie 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 13

14 2. Algorytmy trasowania połączeń w sieciach pakietowych 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 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 14

15 2. Algorytmy trasowania połączeń w sieciach pakietowych 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] 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 15

16 2. Algorytmy trasowania połączeń w sieciach pakietowych 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 16

17 2. Algorytmy trasowania połączeń w sieciach pakietowych 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 = {m 1, m 2, m 3,..., m n } 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: (, ) ( t) t T s M C. (2.1) Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 17

18 2. Algorytmy trasowania połączeń w sieciach pakietowych Ś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: (, ) ( p) p P s M C. (2.2) Opóźnienie mierzone między początkiem i końcem ścieżki: (, ) ( p) p P s M D. (2.3) jako: Na podstawie wzoru 2.3 możemy wyznaczyć maksymalne opóźnienie w drzewie max m M p P( s, M ) D ( p). (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: Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 18

19 2. Algorytmy trasowania połączeń w sieciach pakietowych algorytm Prima, algorytm Kruskala 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 19

20 2. Algorytmy trasowania połączeń w sieciach pakietowych 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: s N 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 Pseudokod 2.1. Algorytm KMB 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: s N 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: C( u, v) dla DT D( u, v) f dla reszty 3: Zastąp krawędzie powstałego drzewa oryginalnymi ścieżkami z grafu G 4: Jeżeli drzewo zawiera cykle usuń je algorytmem Dijkstry Pseudokod 2.2. Algorytm KPP Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 20

21 2. Algorytmy trasowania połączeń w sieciach pakietowych 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) 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 21

22 3. Algorytmy genetyczne 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 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]. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 22

23 3. Algorytmy genetyczne Tabela 3.1. Ważne daty w badaniach algorytmów genetycznych [12, 16] L.p. Rok Badacz(e) Opis 1) 1962 Holland 2) 1967 Rosenberg 3) 1967 Bagley Zastosowanie algorytmów genetycznych w zagadnieniach sztucznej adaptacji Symulowana ewolucja populacji organizmów jednokomórkowych Algorytm genetyczny gry w 6 pionków 4) 1968 Holland Opracowanie teorii schematów 5) 1971 Holland 6) 1975 Holland 7) 1975 De Jong Pierwsze badania skuteczności algorytmów genetycznych w optymalizacji funkcji Publikacja Adaptation in Natural and Artificial Systems 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 12) 1983 Wetzel 13) 1985 Booker Optymalizacja pracy gazociągu w reżimach stacjonarnym oraz nieustalonym za pomocą algorytmu genetycznego Zastosowanie algorytmu genetycznego w zagadnieniu komiwojażera Eksperymenty z metodą selekcji przez nadawanie rang Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 23

24 3. Algorytmy genetyczne 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ą. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 24

25 3. Algorytmy genetyczne 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ów 1. 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 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). Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 25

26 3. Algorytmy genetyczne 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 26

27 3. Algorytmy genetyczne 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 ,5 f(x) 5 4, 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 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 1, części. W tym prostym wypadku chromosom przyjmie długość 11 bitów, zgodnie z zależnością: 10 2 <1 500 < 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; Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 27

28 3. Algorytmy genetyczne przekształcenie otrzymanej liczby dziesiętnej na wartość x z przedziału [-1; 0,5] x = -1,0 + 1,5 * d / ( ). Dla przykładu chromosom { } odpowiada liczbie dziesiętnej d = 2047, co po transformacji daje wartość x = 0,5; natomiast chromosom { } reprezentuje drugi koniec przedziału, czyli x = -1, 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 = { } = 1638, B2 = { } = 1544, B3 = { } = 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 28

29 3. Algorytmy genetyczne 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 = { } mutacja na pierwszym bicie do postaci B1 = { } 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 = { } i B3 = { }, po losowo wybranym, trzecim genie, daje w wyniku dwa nowe rozwiązania B2 = { } i B3 = { } 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 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 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ł, Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 29

30 3. Algorytmy genetyczne ż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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 30

31 3. Algorytmy genetyczne 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 31

32 3. Algorytmy genetyczne 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] 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 32

33 3. Algorytmy genetyczne 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 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 V 2 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 33

34 3. Algorytmy genetyczne 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ść E V logv [20]). Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 34

35 3. Algorytmy genetyczne 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 35

36 3. Algorytmy genetyczne Rysunek 3.9. Przykładowy graf zakodowany w postaci węzłów do każdego odbiorcy 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 Przykładowy graf zakodowany w postaci listy krawędzi Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 36

37 3. Algorytmy genetyczne W tym wypadku potrzebujemy jedynie 2 k 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 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 (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 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. n n Rysunek Przykładowy graf zakodowany w postaci macierzy krawędzi 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ść V 1, 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 j 1 oznacza istnienie krawędzi łączącej węzeł o Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 37

38 3. Algorytmy genetyczne 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 Rysunek 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 38

39 3. Algorytmy genetyczne 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 39

40 4. Zastosowana implementacja opis własnych rozwiązań 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 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], β = 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ą. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 40

41 4. Zastosowana implementacja opis własnych rozwiązań 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 41

42 4. Zastosowana implementacja opis własnych rozwiązań 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 42

43 4. Zastosowana implementacja opis własnych 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 : Wybrany model selekcji 11: Wybrany model krzyżowania 12: Mutacja 13: Utworzenie nowej generacji 14: end while 15: Wyprowadzenie najlepszego osobnika Pseudokod 4.1. Algorytm genetyczny cechy wspólne zaimplementowanych rozwiązań Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 43

44 4. Zastosowana implementacja opis własnych rozwiązań 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 P W V ( V 1) 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 44

45 4. Zastosowana implementacja opis własnych rozwiązań 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 K 10 dróg dla każdej relacji: węzeł początkowy 8 (8 1) węzeł końcowy, otrzymujemy łącznie, dla wszystkich T = 28 możliwych tablic 2 T 28 ścieżek, gigantyczną liczbą L K 10 zestawów ścieżek [21]. W celu rozsądnego K 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) 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 45

46 4. Zastosowana implementacja opis własnych rozwiązań przyporządkowanej węzłowi końcowemu (oznacza to znalezienie k ścieżek). Schemat działania algorytmu zamieszczono w pseudokodzie 4.2. 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 x x X 9: X X {k}; i h(k); count i count i : 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 arc( i, j) E 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 Pseudokod 4.2. Algorytm k najkrótszych ścieżek Dijkstry Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 46

47 4. Zastosowana implementacja opis własnych rozwiązań Generacja tablic algorytm przeszukiwania grafu wszerz Drugim zaprogramowanym rozwiązaniem do generacji tablic trasowania jest algorytm przeszukiwania grafu wszerz (ang. BFS - Breadth-First Search). 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 v Adj(u) do 9: if(u=t) then 10: p ścieżka od s do u; ls ls : end if 12: c[v] c[u] + c(u,v) 13: [v] u 14: ENQUEUE(Q,v) 15: end for 16: end while 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 47

48 4. Zastosowana implementacja opis własnych rozwiązań 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 48

49 4. Zastosowana implementacja opis własnych rozwiązań 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 49

50 4. Zastosowana implementacja opis własnych rozwiązań 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 50

51 4. Zastosowana implementacja opis własnych rozwiązań 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 51

52 4. Zastosowana implementacja opis własnych rozwiązań 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, k ] ( k odpowiada liczbie przechowywanych ścieżek dla danej relacji j). j 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 52

53 4. Zastosowana implementacja opis własnych rozwiązań Generator liczb pseudolosowych Input: ziarno(jądro) generatora do inicjalizacji funkcji a = 16807, q = , 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: h X / q 6: X a ( X q h) r h 7: if X 0 then 8: X X : end if 10: end else 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 53

54 4. Zastosowana implementacja opis własnych rozwiązań 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) 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]. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 54

55 4. Zastosowana implementacja opis własnych rozwiązań 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 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ł Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 55

56 4. Zastosowana implementacja opis własnych rozwiązań 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 56

57 4. Zastosowana implementacja opis własnych rozwiązań Rysunek 4.7. Ilustracja zaimplementowanego rozwiązania metody selekcji ruletkowej z oznaczonymi rodzicami jednego chromosomu potomnego ( Chromosom 1 ) 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 p 1. c 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] 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 57

58 4. Zastosowana implementacja opis własnych rozwiązań Rysunek 4.8. Krzyżowanie 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 : end for Pseudokod 4.5. Krzyżowania jednopunktowe Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 58

59 4. Zastosowana implementacja opis własnych rozwiązań 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. 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 : end for Pseudokod 4.6. Krzyżowanie równomierne Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 59

60 4. Zastosowana implementacja opis własnych rozwiązań 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 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 Krzyżowanie dwupunktowe Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 60

61 4. Zastosowana implementacja opis własnych rozwiązań 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 : end for Pseudokod 4.7. Krzyżowanie dwupunktowe 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 p m, 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ść) chromosomie zaprezentowano na rysunku p m. Efekt działania operatora mutacji na przykładowym Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 61

62 4. Zastosowana implementacja opis własnych rozwiązań Rysunek Efekt działania operatora mutacji na przykładowym chromosomie 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 Rysunek Proces redukcji duplikatów Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 62

63 4. Zastosowana implementacja opis własnych rozwiązań 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 Rysunek Proces sukcesji osobników do nowej generacji Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 63

64 5. Topologia i metody generacji modeli sieci 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 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 64

65 5. Topologia i metody generacji modeli sieci 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) Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 65

66 5. Topologia i metody generacji modeli sieci 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 66

67 5. Topologia i metody generacji modeli sieci 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 K n 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 = p n ( n 1) 2 (5.1) 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 67

68 5. Topologia i metody generacji modeli sieci 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 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: gdzie: P(u, v) = e (5.2) d L 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 68

69 5. Topologia i metody generacji modeli sieci 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: d L 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) = dla d dla d r r (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]. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 69

70 5. Topologia i metody generacji modeli sieci Prawdopodobieństwo przyłączenia węzła u do węzła v, należącego do sieci, określa wzór: d P(u, v) = k V AV d k (5.5) gdzie: d AV - stopień węzła docelowego v, V - zbiór przyłączonych węzłów, k V dk - 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 70

71 5. Topologia i metody generacji modeli sieci 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 71

72 5. Topologia i metody generacji modeli sieci 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 72

73 5. Topologia i metody generacji modeli sieci 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]. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 73

74 5. Topologia i metody generacji modeli sieci 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 74

75 6. Badania symulacyjne 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 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 / AG2brd 2 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 75

76 6. Badania symulacyjne AG 5 k najkrótszych ścieżek Model 1- punktowy Model rankingowy AG 6 / AG6brd 3 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]) 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 76

77 6. Badania symulacyjne 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: f o, p, g, I( K( k, m), M )), (6.1) ( m g gdzie: o liczba osobników w pojedynczej generacji (iteracji), p m prawdopodobieństwo mutacji, g liczba generacji, I K( k, m), M ) funkcja odpowiadająca za generacje tablic trasowania, ( g K(k, m) funkcja odpowiadająca za liczbę ścieżek na jednej z m liczby relacji, k m M g oczekiwana liczba ścieżek, liczba węzłów w grupie multicastowej, metoda generacji 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 77

78 6. Badania symulacyjne 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 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 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ń Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 78

79 6. Badania symulacyjne 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 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 79

80 6. Badania symulacyjne Rysunek 6.4. Wykres zależności znormalizowanego kosztu drzewa transmisji grupowej w funkcji znormalizowanej liczby generacji 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. Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 80

81 6. Badania symulacyjne 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 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, Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 81

82 6. Badania symulacyjne 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 82

83 6. Badania symulacyjne 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 Wykres zależności znormalizowanej liczby wywołań funkcji oceny w funkcji liczby osobników w pojedynczej generacji dla modelu turniejowego Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 83

84 6. Badania symulacyjne 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 Porównanie zbiorcze modeli Rysunek 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 Zastosowanie algorytmów genetycznych do realizacji połączeń rozgałęźnych w sieciach pakietowych 84

NOWY ALGORYTM GENETYCZNY DLA POŁĄCZEŃ ROZGAŁĘŹNYCH W SIECIACH PAKIETOWYCH

NOWY ALGORYTM GENETYCZNY DLA POŁĄCZEŃ ROZGAŁĘŹNYCH W SIECIACH PAKIETOWYCH POZNAN UNIVERSITY OF TECHNOLOGY ACADEMIC JOURNALS Adam CHOJNACKI* Maciej PIECHOWIAK* Piotr ZWIERZYKOWSKI* 2007 Poznańskie Warsztaty Telekomunikacyjne Poznań 6-7 grudnia 2007 NOWY ALGORYTM GENETYCZNY DLA

Bardziej szczegółowo

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Algorytm Genetyczny zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Dlaczego Algorytmy Inspirowane Naturą? Rozwój nowych technologii: złożone problemy obliczeniowe w

Bardziej szczegółowo

Algorytm genetyczny (genetic algorithm)-

Algorytm genetyczny (genetic algorithm)- Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie

Bardziej szczegółowo

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009 Algorytmy genetyczne Paweł Cieśla 8 stycznia 2009 Genetyka - nauka o dziedziczeniu cech pomiędzy pokoleniami. Geny są czynnikami, które decydują o wyglądzie, zachowaniu, rozmnażaniu każdego żywego organizmu.

Bardziej szczegółowo

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne 9 listopada 2010 y ewolucyjne - zbiór metod optymalizacji inspirowanych analogiami biologicznymi (ewolucja naturalna). Pojęcia odwzorowujące naturalne zjawiska: Osobnik Populacja Genotyp Fenotyp Gen Chromosom

Bardziej szczegółowo

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą

Bardziej szczegółowo

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Zadanie 5 - Algorytmy genetyczne (optymalizacja) Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania

Bardziej szczegółowo

RECENZJA rozprawy doktorskiej mgr. inż. Macieja Piechowiaka

RECENZJA rozprawy doktorskiej mgr. inż. Macieja Piechowiaka Prof. dr hab. inż. Wojciech Kabaciński Katedra Sieci Telekomunikacyjnych i Komputerowych Politechnika Poznańska Poznań, dnia 10 maja 2010 r. RECENZJA rozprawy doktorskiej mgr. inż. Macieja Piechowiaka

Bardziej szczegółowo

Metody przeszukiwania

Metody przeszukiwania Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania

Bardziej szczegółowo

ALGORYTMY GENETYCZNE ćwiczenia

ALGORYTMY GENETYCZNE ćwiczenia ćwiczenia Wykorzystaj algorytmy genetyczne do wyznaczenia minimum globalnego funkcji testowej: 1. Wylosuj dwuwymiarową tablicę 100x2 liczb 8-bitowych z zakresu [-100; +100] reprezentujących inicjalną populację

Bardziej szczegółowo

Algorytmy genetyczne w optymalizacji

Algorytmy genetyczne w optymalizacji Algorytmy genetyczne w optymalizacji Literatura 1. David E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998; 2. Zbigniew Michalewicz, Algorytmy genetyczne + struktury danych = programy

Bardziej szczegółowo

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy ewolucyjne NAZEWNICTWO Algorytmy ewolucyjne http://zajecia.jakubw.pl/nai NAZEWNICTWO Algorytmy ewolucyjne nazwa ogólna, obejmująca metody szczegółowe, jak np.: algorytmy genetyczne programowanie genetyczne strategie ewolucyjne

Bardziej szczegółowo

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Obliczenia ewolucyjne (EC evolutionary computing) lub algorytmy ewolucyjne (EA evolutionary algorithms) to ogólne określenia używane

Bardziej szczegółowo

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki, pojęć

Bardziej szczegółowo

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba Algorytmy ewolucyjne - algorytmy genetyczne I. Karcz-Dulęba Algorytmy klasyczne a algorytmy ewolucyjne Przeszukiwanie przestrzeni przez jeden punkt bazowy Przeszukiwanie przestrzeni przez zbiór punktów

Bardziej szczegółowo

6. Klasyczny algorytm genetyczny. 1

6. Klasyczny algorytm genetyczny. 1 6. Klasyczny algorytm genetyczny. 1 Idea algorytmu genetycznego została zaczerpnięta z nauk przyrodniczych opisujących zjawiska doboru naturalnego i dziedziczenia. Mechanizmy te polegają na przetrwaniu

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia stacjonarne i niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki,

Bardziej szczegółowo

Generowanie i optymalizacja harmonogramu za pomoca

Generowanie i optymalizacja harmonogramu za pomoca Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Dobór parametrów algorytmu ewolucyjnego

Dobór parametrów algorytmu ewolucyjnego Dobór parametrów algorytmu ewolucyjnego 1 2 Wstęp Algorytm ewolucyjny posiada wiele parametrów. Przykładowo dla algorytmu genetycznego są to: prawdopodobieństwa stosowania operatorów mutacji i krzyżowania.

Bardziej szczegółowo

Równoważność algorytmów optymalizacji

Równoważność algorytmów optymalizacji Równoważność algorytmów optymalizacji Reguła nie ma nic za darmo (ang. no free lunch theory): efektywność różnych typowych algorytmów szukania uśredniona po wszystkich możliwych problemach optymalizacyjnych

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

Bardziej szczegółowo

Sprawozdanie do zadania numer 2

Sprawozdanie do zadania numer 2 Sprawozdanie do zadania numer 2 Michał Pawlik 29836 Temat: Badanie efektywności algorytmów grafowych w zależności od rozmiaru instancji oraz sposobu reprezentacji grafu w pamięci komputera 1 WSTĘP W ramach

Bardziej szczegółowo

Algorytmy ewolucyjne 1

Algorytmy ewolucyjne 1 Algorytmy ewolucyjne 1 2 Zasady zaliczenia przedmiotu Prowadzący (wykład i pracownie specjalistyczną): Wojciech Kwedlo, pokój 205. Konsultacje dla studentów studiów dziennych: poniedziałek,środa, godz

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS Algorytmy ewolucyjne Łukasz Przybyłek Studenckie Koło Naukowe BRAINS 1 Wprowadzenie Algorytmy ewolucyjne ogólne algorytmy optymalizacji operujące na populacji rozwiązań, inspirowane biologicznymi zjawiskami,

Bardziej szczegółowo

a) 7 b) 19 c) 21 d) 34

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

Algorytmy genetyczne (AG)

Algorytmy genetyczne (AG) Algorytmy genetyczne (AG) 1. Wprowadzenie do AG a) ewolucja darwinowska b) podstawowe definicje c) operatory genetyczne d) konstruowanie AG e) standardowy AG f) przykład rozwiązania g) naprawdę bardzo,

Bardziej szczegółowo

Optymalizacja. Wybrane algorytmy

Optymalizacja. Wybrane algorytmy dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek Problem zapożyczania kanałów z wykorzystaniem narzędzi optymalizacji Wprowadzenie Rozwiązanie problemu przydziału częstotliwości prowadzi do stanu, w którym każdej stacji bazowej przydzielono żądaną liczbę

Bardziej szczegółowo

Wybrane podstawowe rodzaje algorytmów

Wybrane podstawowe rodzaje algorytmów Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

przetworzonego sygnału

przetworzonego sygnału Synteza falek ortogonalnych na podstawie oceny przetworzonego sygnału Instytut Informatyki Politechnika Łódzka 28 lutego 2012 Plan prezentacji 1 Sformułowanie problemu 2 3 4 Historia przekształcenia falkowego

Bardziej szczegółowo

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl OBLICZENIA EWOLUCYJNE LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność

Bardziej szczegółowo

Wstęp do Sztucznej Inteligencji

Wstęp do Sztucznej Inteligencji Wstęp do Sztucznej Inteligencji Rozwiązywanie problemów-i Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki Rozwiązywanie problemów Podstawowe fazy: Sformułowanie celu -

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Algorytmy ewolucyjne. wprowadzenie

Algorytmy ewolucyjne. wprowadzenie Algorytmy ewolucyjne wprowadzenie Gracjan Wilczewski, www.mat.uni.torun.pl/~gracjan Toruń, 2005 Historia Podstawowy algorytm genetyczny został wprowadzony przez Johna Hollanda (Uniwersytet Michigan) i

Bardziej szczegółowo

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne) Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne) 1 2 Wstęp Termin zaproponowany przez Pablo Moscato (1989). Kombinacja algorytmu ewolucyjnego z algorytmem poszukiwań lokalnych, tak że algorytm poszukiwań

Bardziej szczegółowo

Obliczenia ewolucyjne - plan wykładu

Obliczenia ewolucyjne - plan wykładu Obliczenia ewolucyjne - plan wykładu Wprowadzenie Algorytmy genetyczne Programowanie genetyczne Programowanie ewolucyjne Strategie ewolucyjne Inne modele obliczeń ewolucyjnych Podsumowanie Ewolucja Ewolucja

Bardziej szczegółowo

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Piotr Rybak Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Piotr Rybak (Migacz UWr) Odkrywanie algorytmów kwantowych 1 / 17 Spis

Bardziej szczegółowo

Problemy z ograniczeniami

Problemy z ograniczeniami Problemy z ograniczeniami 1 2 Dlaczego zadania z ograniczeniami Wiele praktycznych problemów to problemy z ograniczeniami. Problemy trudne obliczeniowo (np-trudne) to prawie zawsze problemy z ograniczeniami.

Bardziej szczegółowo

Gospodarcze zastosowania algorytmów genetycznych

Gospodarcze zastosowania algorytmów genetycznych Marta Woźniak Gospodarcze zastosowania algorytmów genetycznych 1. Wstęp Ekonometria jako nauka zajmująca się ustalaniem za pomocą metod statystycznych ilościowych prawidłowości zachodzących w życiu gospodarczym

Bardziej szczegółowo

Standardowy algorytm genetyczny

Standardowy algorytm genetyczny Standardowy algorytm genetyczny 1 Szybki przegląd 2 Opracowany w USA w latach 70. Wcześni badacze: John H. Holland. Autor monografii Adaptation in Natural and Artificial Systems, wydanej w 1975 r., (teoria

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa Wydział Zarządzania AGH Katedra Informatyki Stosowanej Algorytmy ewolucyjne Treść wykładu Wprowadzenie Zasada działania Podział EA Cechy EA Algorytm genetyczny 2 EA - wprowadzenie Algorytmy ewolucyjne

Bardziej szczegółowo

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

ALGORYTMY GENETYCZNE (wykład + ćwiczenia) ALGORYTMY GENETYCZNE (wykład + ćwiczenia) Prof. dr hab. Krzysztof Dems Treści programowe: 1. Metody rozwiązywania problemów matematycznych i informatycznych.. Elementarny algorytm genetyczny: definicja

Bardziej szczegółowo

9.9 Algorytmy przeglądu

9.9 Algorytmy przeglądu 14 9. PODSTAWOWE PROBLEMY JEDNOMASZYNOWE 9.9 Algorytmy przeglądu Metody przeglądu dla problemu 1 r j,q j C max były analizowane między innymi w pracach 25, 51, 129, 238. Jak dotychczas najbardziej elegancka

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny Algorytmy stochastyczne, wykład 01 J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-21 In memoriam prof. dr hab. Tomasz Schreiber (1975-2010) 1 2 3 Różne Orientacyjny

Bardziej szczegółowo

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2 Document: Exercise*02*-*manual ---2014/11/12 ---8:31---page1of8 PRZEDMIOT TEMAT KATEDRA MECHANIKI STOSOWANEJ Wydział Mechaniczny POLITECHNIKA LUBELSKA INSTRUKCJA DO ĆWICZENIA NR 2 Wybrane zagadnienia z

Bardziej szczegółowo

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach Adam Stawowy Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach Summary: We present a meta-heuristic to combine Monte Carlo simulation with genetic algorithm for Capital

Bardziej szczegółowo

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ Zalety: nie wprowadzają żadnych ograniczeń na sformułowanie problemu optymalizacyjnego. Funkcja celu może być wielowartościowa i nieciągła, obszar

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik Zadanie transportowe i problem komiwojażera Tadeusz Trzaskalik 3.. Wprowadzenie Słowa kluczowe Zbilansowane zadanie transportowe Rozwiązanie początkowe Metoda minimalnego elementu macierzy kosztów Metoda

Bardziej szczegółowo

Metody Rozmyte i Algorytmy Ewolucyjne

Metody Rozmyte i Algorytmy Ewolucyjne mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb

Bardziej szczegółowo

Programowanie genetyczne, gra SNAKE

Programowanie genetyczne, gra SNAKE STUDENCKA PRACOWNIA ALGORYTMÓW EWOLUCYJNYCH Tomasz Kupczyk, Tomasz Urbański Programowanie genetyczne, gra SNAKE II UWr Wrocław 2009 Spis treści 1. Wstęp 3 1.1. Ogólny opis.....................................

Bardziej szczegółowo

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG PLAN WYKŁADU OPTYMALIZACJA GLOBALNA Wykład 2 dr inż. Agnieszka Bołtuć Historia Zadania Co odróżnia od klasycznych algorytmów Nazewnictwo Etapy Kodowanie, inicjalizacja, transformacja funkcji celu Selekcja

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo

Wstęp do Sztucznej Inteligencji

Wstęp do Sztucznej Inteligencji Wstęp do Sztucznej Inteligencji Algorytmy Genetyczne Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki Metody heurystyczne Algorytm efektywny: koszt zastosowania (mierzony

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania

Bardziej szczegółowo

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z

Bardziej szczegółowo

Strategie ewolucyjne (ang. evolu4on strategies)

Strategie ewolucyjne (ang. evolu4on strategies) Strategie ewolucyjne (ang. evolu4on strategies) Strategia ewolucyjna (1+1) W Strategii Ewolucyjnej(1 + 1), populacja złożona z jednego osobnika generuje jednego potomka. Kolejne (jednoelementowe) populacje

Bardziej szczegółowo

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

Modyfikacje i ulepszenia standardowego algorytmu genetycznego Modyfikacje i ulepszenia standardowego algorytmu genetycznego 1 2 Przypomnienie: pseudokod SGA t=0; initialize(p 0 ); while(!termination_condition(p t )) { evaluate(p t ); T t =selection(p t ); O t =crossover(t

Bardziej szczegółowo

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania

Bardziej szczegółowo

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311 Sztuczne sieci neuronowe Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311 Wykład 7 PLAN: - Repetitio (brevis) -Algorytmy miękkiej selekcji: algorytmy ewolucyjne symulowane wyżarzanie

Bardziej szczegółowo

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Teoria grafów dla małolatów Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Wstęp Matematyka to wiele różnych dyscyplin Bowiem świat jest bardzo skomplikowany wymaga rozważenia

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy wyznaczania centralności w sieci Szymon Szylko Algorytmy wyznaczania centralności w sieci Szymon Szylko Zakład systemów Informacyjnych Wrocław 10.01.2008 Agenda prezentacji Cechy sieci Algorytmy grafowe Badanie centralności Algorytmy wyznaczania centralności

Bardziej szczegółowo

Routing. mgr inż. Krzysztof Szałajko

Routing. mgr inż. Krzysztof Szałajko Routing mgr inż. Krzysztof Szałajko Modele odniesienia 7 Aplikacji 6 Prezentacji 5 Sesji 4 Transportowa 3 Sieciowa 2 Łącza danych 1 Fizyczna Aplikacji Transportowa Internetowa Dostępu do sieci Wersja 1.0

Bardziej szczegółowo

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku DWA ZDANIA O TEORII GRAFÓW Krawędź skierowana Grafy a routing Każdą sieć przedstawić składającego przedstawiają E, inaczej węzłami). komunikacyjną można w postaci grafu G się z węzłów V (które węzły sieci)

Bardziej szczegółowo

Redukcja kosztów połączeń telekomunikacyjnych przy wykorzystaniu central ISDN PABX

Redukcja kosztów połączeń telekomunikacyjnych przy wykorzystaniu central ISDN PABX Andrzej Białas, Waldemar Fuczkiewicz Aksonet Poznań Wojciech Kabaciński Instytut Elektroniki i Telekomunikacji Politechnika Poznańska Redukcja kosztów połączeń telekomunikacyjnych przy wykorzystaniu central

Bardziej szczegółowo

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski Podejście memetyczne do problemu DCVRP - wstępne wyniki Adam Żychowski Na podstawie prac X. S. Chen, L. Feng, Y. S. Ong A Self-Adaptive Memeplexes Robust Search Scheme for solving Stochastic Demands Vehicle

Bardziej szczegółowo

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Zadania laboratoryjne i projektowe - wersja β

Zadania laboratoryjne i projektowe - wersja β Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Jest to technika probabilistyczna rozwiązywania problemów obliczeniowych, które mogą zostać sprowadzone do problemu znalezienie

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Zaawansowane programowanie

Zaawansowane programowanie Zaawansowane programowanie wykład 1: wprowadzenie + algorytmy genetyczne Plan wykładów 1. Wprowadzenie + algorytmy genetyczne 2. Metoda przeszukiwania tabu 3. Inne heurystyki 4. Jeszcze o metaheurystykach

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Algorytm kolonii mrówek Idea Smuga feromonowa 1 Sztuczne mrówki w TSP Sztuczna mrówka agent, który porusza się z miasta do miasta Mrówki preferują miasta połączone łukami z dużą

Bardziej szczegółowo

Schemat programowania dynamicznego (ang. dynamic programming)

Schemat programowania dynamicznego (ang. dynamic programming) Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten

Bardziej szczegółowo

Programowanie sieciowe. Tadeusz Trzaskalik

Programowanie sieciowe. Tadeusz Trzaskalik Programowanie Tadeusz Trzaskalik 8.1. Wprowadzenie Słowa kluczowe Drzewo rozpinające Minimalne drzewo rozpinające Najkrótsza droga w sieci Wierzchołek początkowy Maksymalny przepływ w sieci Źródło Ujście

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych mgr inż. Robert Nowotniak Politechnika Łódzka 1 października 2008 Robert Nowotniak 1 października 2008 1 / 18 Plan referatu 1 Informatyka

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo