Tomasz Bartczak, Piotr Zwierzykowski Politechnika Poznańska Instytut Elektroniki i Telekomunikacji ul. Piotrowo 3A, 60-965 Poznań e-mail: pzwierz@et.put.poznan.pl 2005 Poznańskie Warsztaty Telekomunikacyjne Poznań 8-9 grudnia 2005 ALGORYTMY GENETYCZNE DLA POŁACZEŃ ROZGAŁEŹNYCH Streszczenie: W artykule przedstawiono przeglad algorytmów genetycznych wykorzystywanych do wielokryterialnej optymalizacji połaczeń rozgałęźnych w sieci pakietowej. Omówione zostały trzy - zdaniem autorów - najbardziej reprezentatywne algorytmy: Nilanjan Banerjee i Sajal K. Das (alg. BD) [1], Zhou Xianwei, Chen Changjia i Zhu Gang(alg. XCG) [2] oraz algorytm Multiobject Multicasting Routing [3]. Opisane algorytmy charakteryzuja się różnymi metodami wyznaczania rozwiazania kompromisowego 1. Wprowadzenie Coraz więcej aplikacji i protokołów stosowanych w sieciach teleinformatycznych wykorzystuje model transmisyjny jeden do wielu. Model ten można realizować na wiele różnych sposobów, z których na uwagę zasługuje połączenie rozgałęźne (ang. multicast connection ). Połączenie typu "multicast" umożliwia efektywniejsze wykorzystanie dostępnej przepływności poprzez znaczne ograniczenie ruchu, co jest możliwe dzięki ograniczeniu liczby kopii pakietów, przesyłanych w ramach danego połączenia indywidualni odbiorcy reprezentowani są przez grupę [4]. Nowe usługi w sieciach pakietowych wymagają zapewnienia odpowiednich parametrów jakościowych (ang. quality of service). Wymagania dotyczące jakości zestawianych połączeń wyraża się przy pomocy metryk [5]. Współcześnie stosowane protokoły routingu dla sieci IP (ang. Internet Protocol) biorą pod uwagę tylko jedną metrykę i jest to w wielu zastosowaniach niewystarczające. Wang i Crowcroft wykazali, że algorytmy zestawiania połączeń punkt punkt, w których pod uwagę brane jest więcej niż jedno kryterium, są NP zupełne [5]. Zatem, także algorytmy połączeń punkt grupa są NP zupełne, a to oznacza, że wszystkie algorytmy dokładne wymagają na tyle dużych zasobów obliczeniowych, że wyklucza to je w zastosowaniach praktycznych [6]. Istnieje zatem potrzeba wprowadzenia rozwiązań przybliżonych. Algorytmy umożliwiające wyznaczanie rozwiązań przybliżonych można podzielić na algorytmy deterministyczne oraz niedeterministyczne. Algorytmy deterministyczne wyznaczają drzewa połączeń z punktu widzenia poszczególnych odbiorników, starając się aby jak najwięcej krawędzi było wspólnych dla wielu ścieżek [7], [8]. Takie podejście uniemożliwia stworzenie uniwersalnych metod deterministycznych o małej złożoności obliczeniowej. Inne podejście cechuje algorytmy wykorzystujące metody niedeterministycznego przeszukiwania zbioru rozwiązań, których reprezentantem są algorytmy genetyczne. Algorytmy niedeterministyczne umożliwiają wyznaczenie rozwiązania dla szerokiego zakresu topologii sieci a ich struktura wprowadza możliwości zrównoleglenia obliczeń. W artykule przedstawiono przykładowe algorytmy genetyczne umożliwiające wielokryterialną optymalizację połączeń rozgałęźnych. Artykuł składa się z pięciu części. Część druga opisuje podstawowe operacje, z których składają się algorytmy genetyczne. W części trzeciej zaprezentowano formalny opis problemu realizacji wielokryterialnych połączeń grupowych z ograniczeniami. W rozdziale czwartym omówiono trzy algorytmy genetyczne: BD (Banerjee i Das), XCG (Xianwei, Changjia i Gang) oraz MMR (Crichigno i Barán). W ostatniej części artykułu przedstawiono porównanie omawianych metod oraz uzasadnienie wyboru prezentowanych algorytmów. 2. Algorytmy genetyczne Algorytmy genetyczne (dalej oznaczane AG) służą do rozwiązywania problemów optymalizacyjnych, a więc do znajdowania najlepszego rozwiązania w zbiorze wielu możliwych rozwiązań [11]. AG zostały opracowane przez Johna Hollanda [10] i są oparte na darwinowskiej zasadzie ewolucji naturalnej. Podstawowym pojęciem algorytmów genetycznych jest populacja. Populacja jest zbiorem osobników z których każdy reprezentowany jest przez ciąg kodowy przedstawiający jedno z możliwych rozwiązań danego problemu (oznaczanego P o ). Ciągi kodowe składają się z genów. W genetyce wyróżnia się różne rodzaje genów np. inny gen opowiada za kolor oczu zwierzęcia a inny za jego wzrost. Podobne znaczenie przypisuje się genom w algorytmach, gdzie oznaczają jedną z cech rozwiązania (np. krawędź w grafie). W wyniku iteracyjnego procesu stan populacji ulega zmianie i dlatego wprowadzono pojęcie pokolenia, które określa stan populacji w danej iteracji t. W każdej iteracji przeprowadza się takie operacje elementarne jak: reprodukcja, krzyżowanie oraz mutacja. Reprodukcja jest to proces powielania indywidualnych ciągów kodowych w zależności od ich przystosowania. Przystosowanie oznacza jakość generowanych rozwiązań i określa się je poprzez funkcje celu, która określa dobroć danego ciągu kodowego. Rezultatem operacji reprodukcji jest zbiór powielonych osobników R, a liczba reprezentantów danego ciągu kodowego w zbiorze R bezpośrednio zależy od jego przystosowania. Zatem dany osobnik może posiadać tam kilka egzemplarzy, jednakże w przypadku słabego przystosowania może w ogóle nie być zakwalifikowa- PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 1/6
ny do tego zbioru. W kolejnym kroku następuje operacja krzyżowania. W pierwszej fazie poszczególne osobniki ze zbioru R w sposób losowy łączone są w pary. Natomiast w drugim etapie - także w sposób losowy - określa się miejsce krzyżowania i następuje wymiana genów pomiędzy osobnikami w ramach danej pary. Przedstawiony sposób poszukiwania rozwiązań może prowadzić do znalezienia rozwiązania optymalnego lokalnie. Z tego względu wprowadza się operację mutacji. Mutacja w sposób losowy z pewnym małym prawdopodobieństwem zmienia wartość genu dla danego osobnika. Prowadzi to do genetycznego zróżnicowania i tym samym maleje prawdopodobieństwo znalezienia się w minimum lokalnym. AG należą do grupy metod probabilistycznych, jednak niedeterministyczne przeszukiwanie zbioru rozwiązań jest ukierunkowane dzięki operacjom reprodukcji i krzyżowania [11]. 3. Sformułowanie problemu Problem budowy drzew transmisyjnych typu multicast obejmuje cały szereg zagadnień. W przypadku jednokryterialnych algorytmów drzew rozgłoszeniowych z jednym źródłem można go zdefiniować następująco [12]. Rozważana jest sieć teletransmisyjna reprezentowana przez graf G = (E, V ), gdzie E jest zbiorem krawędzi, a V jest zbiorem wierzchołków. W celu oszacowania jakości zestawianych połączeń każdej krawędzi l ze zbioru E przypisuje się koszt c(l). Koszt ten może wyrażać opóźnienie łącza, opłatę za jego wykorzystanie, prawdopodobieństwo błędów lub inne parametry. Dodatkowo w grafie wyróżniony został wierzchołek s będący źródłem transmisji rozgłoszeniowej oraz zbiór odbiorników M taki, że M V i s M. Jednokryterialne drzewo transmisji grupowej MT definiuje się jako drzewo o wierzchołku w źródle s, które łączy wszystkie węzły ze zbioru M, a koszt C(MT ) spełnia następujący warunek: C(MT ) = min c(l). (1) l MT W przypadku algorytmów wielokryterialnych - oprócz wymienionego powyżej kosztu - należy rozważyć dodatkowe warunki [7]. Często jednym z nich jest ograniczenie opóźnienia każdej ścieżki łączącej źródło s z dowolnym odbiornikiem v do wartości, które można wyrazić następująca zależnością: p MT D(e), (2) e p gdzie D(e) to opóźnienie krawędzi e. 4. Prezentacja wybranych AG Główną trudnością jaką stanowią problemy wielokryterialne jest wzajemna sprzeczność poszczególnych kryteriów. Oznacza to, że rozwiązanie optymalne dla jednego kryterium może być mało optymalne z punktu widzenia innego kryterium. W takim przypadku AG są szczególnie użyteczne, ponieważ w tym przypadku, zbudowanie efektywnego algorytmu deterministycznego, zarówno pod względem szybkości działania, jak i jakości otrzymywanych rozwiązań, jest bardzo trudne. Wielokryterialne algorytmy genetyczne można podzielić na trzy grupy: algorytmy, w których określa się kryteria decyzyjne a następnie szuka się rozwiazania; algorytmy, w których naprzemiennie następuje szukanie i podejmowania decyzji oraz algorytmy, w których najpierw realizowany jest proces poszukiwania rozwiazań, a następnie podejmowana jest decyzja [15]. Pierwszy przypadek oznacza, że kryteria wyboru najlepszego rozwiązania określane są jeszcze przed wykonaniem algorytmu. W praktyce w do tej grupy klasyfikuje się metody agregacyjne, które sprowadzają wiele kryteriów do jednej metryki. W artykule reprezentantem tej grupy jest algorytm Nilanjan Banerjee a i Sajal K. Das a przedstawiony w rozdziale 4.1 oraz algorytm zaproponowany przez Zhou Xianwei, Chen Changjia i Zhu Gang a (rozdz. 4.2.). Kolejna grupa obejmuje metody, w których proces szukania rozwiązań i wyboru najlepszego następuje iteracyjnie. Jest to grupa, która ma szczególne znaczenie w przypadku problemów związanych ze wspomaganiem decyzji i nie jest zaprezentowana w artykule, ponieważ nie są znane autorom AG należące do tej klasy, które są wykorzystywane w problemach optymalizacji połączeń rozgałęźnych. Ostatnia grupa składa się z algorytmów, które najpierw szukają rozwiązań np. najlepszych w ramach poszczególnych kryteriów, a dopiero potem podejmowana jest decyzja o wyborze najlepszego czyli rozwiązuje problem typu MOP (ang. Multiobjective Optimization Problem) [9]. Reprezentantem tej grupy jest opisany w rozdziale 4.3. algorytm MMR (ang. Multiobjective Multicasting Routing). Algorytmy genetyczne rozwiązujące problem wielokryterialnych połączeń typu jeden-do-wielu można podzielić także ze względu na cechy typowe dla AG takie jak sposób kodowania rozwiązań w postaci chromosomów czy podejście do operacji krzyżowania. Przy czym podstawowym kryterium jest sposób kodowania rozwiązań w postaci chromosomów, który można realizować wykorzystując: listę ścieżek [1], [3], listę wierzchołków Steinera [16], [2], ciąg Prüfer a [17] oraz metodę Palmera [18]. Natomiast podstawowymi metodami realizacji operacji krzyżowania są: krzyżowanie jednopunktowe [11], [1], krzyżowanie dwupunktowe [11], [2] i krzyżowanie równomierne [13]. A. Algorytm Nilanjan Banerjee a i Sajal K.Das a Nilanjan Banerjee i Sajal K. Das zaproponowali własną wersję heurystyki opartą o algorytm genetyczny rozwiązującą problem drzewa Steinera z ograniczeniami (algorytm BD) [1]. W modelu sieci przyjętym na potrzeby algorytmu BD, poszczególne krawędzie nie mają ściśle zdefiniowanego kosztu i opóźnienia, lecz prawdopodobieństwo przyjęcia przez opóźnienie i pasmo określonych wartości. Wprowadzono także ograniczenie, zgodnie z którym opóźnienie pomiędzy źródłem s a dowolnym odbiornikiem nie może przekroczyć wartości progowej oraz ograniczenie przepustowości połączenia źródło-odbiornik (co najmniej B). W pierwszej fazie działania algorytmu dla każdej pary źródło odbiornik (s, r i ) (gdzie i to numer odbiornika) wyznacza się zbiór łączących je ścieżek R i, a następnie spośród poszczególnych zbiorów R i usuwa się wszystkie ścieżki nie spełniające ograniczeń. Ciąg kodowy danego PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 2/6
określany mianem algorytmu XCG [2]. Algorytm BD korzystał ze zbiorów ścieżek łączących źródło s z poszczególnymi odbiornikami i na tej podstawie znajdował najbardziej optymalną kombinację ścieżek z poszczególnych zbiorów. Algorytm XCG cechuje się innym podejściem. Drzewo Steinera składa się ze źródła transmisji typu multicast, zbioru odbiorników M oraz zbioru pewnej liczby wierzchołków S należących do V \(M s) zwanych wierzchołkami Steinera. Wierzchołki Steinera nie są odbiornikami transmisji grupowej, są jednak punktami pośredniczącymi w transmisji. Zarówno źródło, jak i odbiorniki, są obowiązkową częścią drzewa Steinera, natomiast zbiór wierzchołków Steinera może być dowolny. Drzewa składające się z różnych kombinacji wierzchołków Steinera będą odznaczać się różnymi właściwościami. Algorytm XCG opiera się na tym spostrzeżeniu. Dla danego źródła s, zbioru odbiorników M i zbioru wierzchołków Steinera S wyznaczany jest graf zupełny, którego krawędziami są najkrótsze ścieżki łączące dane wierzchołki. Następnie dla takiego grafu wyznaczane jest drzewo rozpinające będące drzewem rozgłoszeniowym. W tym celu wykorzystywana jest zmodyfikowana wersja algorytmu KMB [19], która oprócz źródła s i zbioru M pod uwagę bierze także zbiór wierzchołków Steinera S. W algorytmie XCG, algorytm genetyczny użyty jest do znalezienia optymalnego zbioru S. XCG pozwala rozwiązywać problem budowy minimalnych w sensie kosztu drzew transmisji grupowej nawet jeśli pod uwagę brane jest wiele kryteriów i oparta jest na jednokryterialnym algorytmie zaproponowanym przez Esbensena [16]. Jednakże, w przeciwieństwie do poprzednio opisywanego algorytmu BD, ograniczenia nie są tu tak ścisłe. Rozwiązania, które w niewielkim stopniu przekraczają zadane kryteria ograniczające, także brane są pod uwagę w iteracyjnym procesie obliczania rozwiązania końcowego. Kolejną kluczową różnicą pomiędzy algorytmem BD a XCG jest odmienne traktowanie ograniczeń. W przypadku algorytmu BD nie były one w ogóle uwzględniane przez algorytm genetyczny, natomiast w przypadku metody XCG ograniczenia są częścią funkcji celu. W przypadku algorytmu XCG ciąg kodowy, który określa które wierzwww.pwt.et.put.poznan.pl osobnika składa się z m = M genów, z których każdy gen reprezentuje ścieżkę ze zbioru R i. Populacja początkowa składa się z kilku osobników wybranych w sposób losowy. W celu określania stopnia przystosowania definiuje się agregacyjną funkcję celu, która określona jest jako suma trzech czynników: f = F 1 + F 2 + F 3. (3) Definicje czynników F 1, F 2, F 3 oparte są na prawdopodobieństwie, ponieważ krawędzie opisane są prawdopodobieństwem przyjęcia określonej wartości opóźnienia i pasma. Tak więc, znając wartość funkcji celu dla danego osobnika, można wyznaczyć prawdopodobieństwo jego reprodukcji: f(i) P r (i) = i=n (4) i=1 f(i), gdzie czynnik f(i) oznacza wartość funkcji celu dla danego osobnika i. Czynnik F 1 określa prawdopodobieństwo zdarzenia, że dane drzewo transmisji grupowej M T spełnia ograniczenia nakładane na opóźnianie. MT spełnia to ograniczenie jeśli poszczególne ścieżki łączące źródło i odbiornik, także je spełniają. A zatem prawdopodobieństwo spełnienia ograniczenia nakładanego na opóźnienie przez całe drzewo można wyrazić wzorem: F 1 = p( ) = f P ( ), (5) P M gdzie f P oznacza prawdopodobieństwo spełnienia ograniczeń nakładanych na opóźnienie przez ścieżkę P. W podobny sposób wyznacza się czynnik F 2 określający prawdopodobieństwo, że M T spełnia warunki ograniczające pasmo: b p (B) = b l (B), l P (6) F 2 = p(b) = b p (B), (7) p M gdzie czynnik b l (B) dla krawędzi l określa prawdopodobieństwo osiągnięcia przepustowości B. Ostatni czynnik F 3 pozwala wpływać na faworyzowanie ścieżek o mniejszym wykorzystaniu pasma: F 3 = R = l M (c l b l ) l M c, (8) l gdzie czynnik c l oznacza pojemność łącza, a b l oznacza wielkość aktualnie wykorzystanego pasma. Analizując wzór (8) można zauważy, że preferowane są łącza z jak najmniejszym wykorzystaniem pasma. Schemat działania algorytmu BD został przedstawiony na listingu 1. Algorytm BD należy do klasy algorytmów genetycznych. Zatem schemat jego działania polega na iteracyjnym procesie reprodukcji, krzyżowania i mutacji (listing 1 linie 8-13). Populację początkową wybiera się w sposób losowy. B. Algorytm genetyczny zaproponowany przez Zhou Xianwei, Chen Changjia i Zhu Gang a Kolejnym spośród omawianych algorytmów jest algorytm zaproponowany przez Zhou Xianwei, Chen Changjia i Zhu Gang a, który w dalszej części artykułu będzie 1 2 3 4 5 6 7 8 9 10 11 12 13 input : graf G(E, V ), źródło s, zbiór odbiorników M output: graf transmisji typu multicast MT forall m M do R m = wyznacz zbiór wszystkich ścieżek łączących źródło s z odbiornikiem m; forall m M do ze zbioru R m usuń ścieżki nie spełniające ograniczeń; wylosuj populację początkową; while -condition do oblicz wartość funkcji celu; wykonaj operację reprodukcji; wykonaj operację krzyżowania; wykonaj operację mutacji; Listing 1: Schemat algorytmu BD PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 3/6
chołki ze zbioru V \(M {s}) staną się wierzchołkami Steinera. Ciąg kodowy składa się z szeregu 0 i 1. 0 na pozycji i oznacza, że wierzchołek i należący do V \(M {s}) nie jest wierzchołkiem Steinera, w przeciwnym wypadku na pozycji i jest 1. Przyjęty schemat kodowania oznacza to, że długość ciągu kodowego wynosi V \(M {s}). Przy założeniu, że długość ciągu kodowego oznaczymy z można określić funkcję mapującą π jako: π : {0, 1,..., z 1} {0, 1,..., z 1}. Funkcja π używana jest do kodowania genotypów, które przyjmują postać: {(π(0), t π(0) ), (π(1), t π(1) ),..., (π(z 1), t π(z 1 )}, gdzie t k {0, 1}, k = 0, 1,..., z 1. Funkcją celu dla algorytmu XCG określona jest wzorem (9). C(x i ) jest czynnikiem proporcjonalnym do kosztu rozwiązania oraz odwrotnie proporcjonalny do stopnia w jakim dane rozwiązanie spełnia nakładane ograniczenia. Z uwagi na to, że to czynnik minimalizowany, a funkcja celu jest funkcją, którą się maksymalizuje stąd wprowadzono wartość odniesienia C max : f(x i ) = gdzie C(x) oznacza : { Cmax C(x i ) gdy C(x i ) < C max, w przeciwnym wypadku, (9) C(x) = c(x) + K(x). (10) Drugi człon we wzorze (10) oznacza funkcję kary K(x): K(x) = β b Φ[b i (x)], (11) i=1 gdzie β jest to współczynnik kary, a Φ[b i (x)] wyraża się zależnością: Φ[b i (x)] = b 2 i (x). (12) Czynnik b i (x) oznacza stopień spełnienia danego ograniczenia i (np. może to być ograniczenie nakładane na opóźnienie lub na szerokość pasma). Znając funkcję celu można wykonać proces reprodukcji. Prawdopodobieństwo reprodukcji danego osobnika wyraża się wzorem: p i (k) = f(x i )/ n f(x j ), (13) j=1 gdzie stała n oznacza liczbę osobników w populacji. Kolejnym krokiem algorytmu jest krzyżowanie. W algorytmie XCG stosowane jest krzyżowanie dwupunktowe. Losowane są dwa punkty krzyżowania: r i r, dwa osobniki x 1 (k) i x 2 (k) krzyżowane są ze sobą tak, że powstają dwa nowe ciągi kodowe x 1 (k + 1) i x 2 (k + 1) (k oznacza numer populacji). Sposób krzyżowania przedstawiają wzory (14) i (15): oraz: i x1(k+1) = i x2(k+1) = i x1(k) gdy j r, i x2(k) gdy r < j < r i x1(k) gdy r j, i x2(k) gdy j r, i x1(k) gdy r < j < r i x2(k) gdy r j,, (14). (15) gdzie symbol i x1(k+1) oznacza, że wierzchołek i występuje w genotypie x 1 na pozycji j, a oznaczenie (k + 1) jest to number populacji. Operacja mutacji dokonywana jest z prawdopodobieństwem 0,001 na osobniku x 1 (k). W przedziale losowo generowanych liczb r i r następuje inwersja bitów. Algorytm XCG działa zgodnie ze schematem przedstawionym na listingu 2. 1 2 3 4 5 6 7 8 9 10 11 input : graf G(E, V ), źródło s, zbiór odbiorników M output: graf transmisji typu multicast wylosuj populację początkową; while -condition do forall o in P opulation do St = zbiór wierzchołków Steinera reprezentowanych przez dany osobnik; wykorzystując algorytm KMB wyznacz rozwiązanie w oparciu o zbiór M i St; oblicz przystosowaniu poszczególnych odbiorników; wykonaj operację reprodukcji; wykonaj operację krzyżowania; wykonaj operację mutacji; Listing 2: Schemat działania algorytmu XCG C. Algorytm MMR Ostatnim spośród omawianych algorytmów jest algorytm MMR (ang. Multiobjective Multicasting Routing) zaproponowany został przez Jorge Crichigno i Benjamín Barán a [3]. Klasa problemów, w których optymalizowane jest wiele zmiennych określana jest mianem MOP (ang. Multiobjective Optimization Problem) [9]. Problem MOP składa się z n zmiennych decyzyjnych, k funkcji celu i m ograniczeń. Funkcje celu jak i ograniczenia są funkcjami zmiennych decyzyjnych. Można to zapisać w następującej formie: optymalizuj: y = f(x) = (f 1 (x), f 2 (x),..., f k (x)), (16) przy ograniczeniu: e(x) = (e 1 (x), e 2 (x),..., e m (x)) >= 0, (17) gdzie x = (x 1, x 2,..., x n ) X jest wektorem zmiennych decyzyjnych, a y = (y 1, y 2,..., y k ) Y jest wektorem funkcji celu. X oznacza przestrzeń decyzyjną, a Y przestrzeń rozwiązań. Zbiór rozwiązań e(x) >= 0 wyznacza przestrzeń decyzyjną X r X oraz przestrzeń rozwiązań Y r Y. Z reguły nie istnieje jedno, najlepsze rozwiązanie dla problemu MOP, spełniające wszystkie kryteria. Należy więc określić kryteria optymalności rozwiązania. Dla wektorów funkcji celu przy założeniu, że u, v X r można określić następujące operatory : f(u) = f(v) gdy i 1, 2,..., k : f i (u) = f i (v), (18) f(u) f(v) gdy i 1, 2,..., k : f i (u) f i (v), (19) PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 4/6
f(u) < f(v) gdy i 1, 2,..., k : f i (u) f i (v). (20) Znając operatory opisane wzorami (18), (19) i (20) można określić zależność dominacji oraz nieporównywalności dla wektorów decyzyjnych u i v. Wektor u dominuje wektor v jeśli f(u) < f(v). Wektory u i v są nieporównywalne jeśli f(u) (f(v) i f(v) f(u). Określenie: wektor u dominuje wektor v oznacza, że wszystkie funkcje celu osiągają lepsze wartości dla wektora u niż dla wektora v. Jeśli wektory u i v są nieporównywalne oznacza to, że żaden z wektorów zmiennych decyzyjnych nie osiąga lepszej wartości dla wszystkich kryteriów. Co więcej oznacza to, że dla pewnych kryteriów u jest lepszy niż v, a dla innych wektor v jest lepszy niż u. Jeśli wektor zmiennych decyzyjnych x X r nie jest zdominowany przez żaden inny wektor ze zbioru X r to nazywany jest on optymalnym rozwiązaniem Pareto. Zbiór rozwiązań Pareto jest to zbiór rozwiązań, które nie są zdominowane przez żadne inne i oznaczany jest jako P nd. Załóżmy, że dany jest graf G = (E, V ) dla każdej krawędzi (i, j) E określone są: przepustowość łącza z(i, j), koszt c(i, j), opóźnienie d(i, j) oraz bieżące wykorzystanie łącza t(i, j). Dodatkowo określony jest parametr φ, który oznacza minimalną wymaganą przepustowość. W takim przypadku funkcje optymalizacyjne oraz ograniczenia dla algorytmu MMR zdefiniowane są w następujący sposób: maksymalne opóźnienie: D M = Max n N d(i, j) (21) koszt drzewa: C = (i,j) T (i,j) p T (s,n) maksymalne wykorzystanie łącza: α T = Max (i,j) T { φ + t(i, j) z(i, j) średnie opóźnienie: D A = 1 N n N przy ograniczeniu: c(i, j); (22) (i,j) p T (s,n) } ; (23) d(i, j) ; (24) φ + t(i, j) z(i, j), (i, j) T. (25) Algorytm działa zgodnie ze schematem przedstawionym na listingu 3. W pierwszym kroku działania algorytmu wylicza się tablicę trasowania, biorąc przy tym pod uwagę ograniczenia. Tablica trasowania jest to zbiór R najkrótszych ścieżek, dla każdej pary źródło-odbiornik wyznaczonych na podstawie kosztu, opóźnienia i aktualnego wykorzystania ścieżek. Chromosom składa się z N genów. Każdy gen g i reprezentuje jedną ze ścieżek łączącą źródło s z odbiornikiem n i. Populacja początkowa P budowana jest w sposób losowy. Jak widać na listingu 3 w punkcie 4 z danej populacji usuwa się osobniki, które się duplikują. Jeden ze zduplikowanych osobników zastępowany jest losowo wygenerowanym chromosomem. W kroku 5 dla każdego chromosomu oblicza się 1 2 3 4 5 6 7 8 9 10 11 input : graf G(E, V ), źródło s, zbiór odbiorników M output: graf transmisji typu multicast Oblicz tablice trasowania; Określ populację początkową P; while -condition do Porzuć osobniki wielokrotnie występujące w populacji; Oblicz wektor funkcji celu; Uaktualnij zbiór rozwiązań niezdominowanych P nd ; Oblicz wartość przystosowania; Dokonaj selekcji; Dokonaj krzyżowania; Dokonaj mutacji; Listing 3: Schemat działania algorytmu MMR wartość funkcji optymalizacyjnych. Następnie w punkcie 6 następuje sprawdzenie, czy któreś z rozwiązań w zbiorze rozwiązań niezdominowanych P nd nie jest zdominowane przez któryś z wektorów decyzyjnych w populacji P. Jeśli tak jest, to zbiór P nd jest uaktualniany. Przystosowanie (krok 7) liczone jest zgodnie z procedurą SPEA [9]. Wartość funkcji celu w odmienny sposób obliczana jest dla osobników ze zbioru Pareto P nd, a inaczej dla osobników w zbiorze P. Każdemu rozwiązaniu i P nd przypisywana jest moc s i [0, 1). s i jest proporcjonalne do liczby osobników j P dla których i j. Oznaczmy przez n liczbę osobników w P zdominowanych przez i, a przez N rozmiar zbioru P. Przy takim założeniu moc dla osobnika s i opisana jest wzorem (26): s i = n N + 1. (26) Dobroć osobnika j P określa się jako sumę mocy wszystkich chromosomów ze zbioru P nd, które dominują osobnik j plus 1: k i = 1 + s i. (27) i,i j Wybór osobników do reprodukcji następuje zgodnie z zasadą ruletki [11]. Ze wzorów (26) i (27) wynika, że im mniejsza jest wartość obliczonych współczynników tym rozwiązanie jest lepsze. W przypadku osobników należących do zbioru P jest to oczywiste, gdyż duża wartość współczynnika k i oznacza, że jest on zdominowany przez wiele innych rozwiązań. Tym sam prezentuje on słabe rozwiązanie i jego szanse reprodukcji powinny być małe. Wydawać się może zaskakującym, że duża wartość współczynnika s i jest niepożądana dla osobników ze zbioru rozwiązań Pareto P nd. Podejście takie jest zrozumiałe biorąc pod uwagę, że minimalizuje ona prawdopodobieństwo znalezienia się w minimum lokalnym [9]. Przystosowanie odbiorników określane jest następującym wzorem (28): S s P i Pl P p i = f i = (S k l)+ n P (S s, gdy i P nd n) nd P S k P i l P (S k l)+ n P (S s, gdy i P, nd n) (28) PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 5/6
gdzie S = s i + k j. (29) i P nd j P Przystosowanie f i określa jednocześnie prawdopodobieństwo reprodukcji danego osobnika. Po obliczeniu przystosowania osobników następuje reprodukcja, krzyżowanie oraz mutacja. 5. Wnioski W artykule zaprezentowano trzy, zdaniem autorów reprezentatywne, algorytmy genetyczne rozwiązujące NP trudny problem wielokryterialnych połączeń rozgałęzionych z ograniczeniami. Algorytmy przedstawione w artykule zostały wyselekcjonowane w taki sposób, aby pokazać przykłady metod wielokryterialnych należących zarówno do klasy pierwszej, jak i trzeciej. Klasa pierwsza oznacza metody, w których z góry znane są kryteria selekcji najlepszego rozwiązania, natomiast klasa trzecia to zbiór metod, które dokonują wstępnej selekcji i na jej podstawie wybrane jest najlepsze rozwiązanie. Dodatkowym kryterium, bardzo istotnym w przypadku algorytmów genetycznych, była chęć ukazania różnego podejścia do kodowania rozwiązań w postaci chromosomów oraz sposób podejścia do ograniczeń. Jako pierwszy przedstawiono algorytm BD. Algorytm BD należy do klasy pierwszej problemów wielokryterialnych, gdyż sprowadza wiele optymalizowanych kryteriów do jednego, poprzez zastosowanie znanej przed rozpoczęciem obliczeń funkcji agregacyjnej. Metoda ta ściśle przestrzega nakładanych ograniczeń, gdyż ze zbiorów ścieżek obliczanych w początkowej fazie działania algorytmu usuwane są wszystkie te, które ich nie spełniają. Przyjęty sposób kodowania zapewnia prostotę i szybkość działania algorytmu. Założenie, że dla każdej krawędzi znane są prawdopodobieństwa spełniania wymagań czyni ten algorytm odpowiednim do zastosowań, które charakteryzują się dużą fluktuacją ruchu. Algorytm XCG podobnie jak BD także agreguje wiele kryteriów do jednego co oznacza, że podobnie jak BD należy do klasy pierwszej. W przeciwieństwie do poprzedniej metody ograniczenia nie są traktowane tak ściśle, gdyż są one częścią funkcji celu. Odmienny jest także sposób kodowania, które w tym wypadku oparte jest na zbiorze wierzchołków Steinera. Niewątpliwą zaletą algorytmu jest rozmycie ograniczeń, dzięki czemu rozwiązania naruszające je w niewielkim stopniu także brane są pod uwagę. Odmienne kodowanie rozwiązań od algorytmu BD pozwala na rozszerzenie przestrzeni poszukiwań, która nie jest ograniczona do z góry określonych zbiorów połączeń. Wadą tego podejścia jest zwiększenie czasu działania algorytmu. Ostatnim zaprezentowanym algorytmem jest algorytm MMR. W przeciwieństwie do dwóch wcześniej przedstawionych metod należy on do trzeciej klasy algorytmów wielokryterialnych. Zatem najpierw określa się zbiór rozwiązań Pareto, który następnie staje się podstawą do określenia rozwiązania optymalnego. Podobnie jak algorytm BD metoda MMR bierze pod uwagę ograniczenia jeszcze przed rozpoczęciem obliczeń. Z punktu widzenia kodowania algorytm MMR podobny jest do XCG, gdyż wykorzystuje do tego listy ścieżek. Zaletą algorytmu MMR jest wykorzystywanie zbioru rozwiązań Pareto, dzięki temu nie trzeba określać funkcji agregujących. Dodatkowo zastosowanie procedury SPEA minimalizuje prawdopodobieństwo znalezienia się w w minimum lokalnym. Autorom znane są wyniki ukazujące efektywność działania omówionych algorytmów, ale ze względu na ograniczone możliwości prezentacji nie zostały one przedstawione w artykule. SPIS LITERATURY [1] N. Banerjee, S. Das, Fast Determination of QoS-based Multicast Routes in Wireless Networks using Genetic Algorithm, IEEE International Conference on Communications, s. 2588-2592, 2001. [2] Z. Xianwei Ch. Changjia Z. Gang, A Genetic Algorithm for Multicasting Routing Problem International Conference on Communication Technology, s. 1248-1253, 2000. [3] J. Crichigno, B. Baran, Multiobjective Multicast Routing Algorithm ICCCN, s. 301-306, 2004 [4] H. Laxman Sahosrabuddhe, B. Mukherjee, Multicast Roufing Algorithms and Protocols: A Tutorial, IEEE Networks, No. 1, s. 90-102, 2000. [5] Z. Wang, J. Crowcroft, Quality of Service Routing for Supporting Multimedia Applications, IEEE Journal on Selected Area in Communications, Vol. 14, No 7, s. 1228-1234, 1996. [6] J. Korycki, Dokładne algorytmy dla połączeń rozgałeźnych w sieciach transportowych, Krajowe Sympozjum Telekomunikacji, Bydgoszcz, Vol. C-4.06, s. 45-51, 2001. [7] L. Hun-Young, Y. Chan-Hyun, Scalable Multicast Routing Algorithm for Delay-Variation Constrained Minimum-Cost Tree, IEEE International Conference on Communications, s. 1348-1352, 1999. [8] Q. Zhu, M. Parsa, J. Garcia-Luna-Aceves, A Source-based algorithm for near-optimal delay-constrained minimum-cost multicasting, IEEE INFOCOM, pp. 1348-1352, s. 377-385, 1995. [9] E. Zitzler, L. Thiele, Multiobjective Evolutionary Algorithms: A comparative Case Study and the Strength Pareto Approach, IEEE Trans. Evolutionary Comp., Vol. 3, No 4, s. 257-271, 1999. [10] J. Holland, Adaption in Natural and Artifcial Systems, University of Michigan Press, Boston 1975. [11] D. E.Goldberg, Algorytmy genetyczne i ich zastosowania, Wydawnictwa Naukowo-Techniczne, Warszawa 1998. [12] K. Bhararh-Kumar, J. Jaffe, Routing to Multiple Destinations in Computer Networks, IEEE Transactions on Communications, Vol. 31, No 3, s. 343-351, 1983. [13] G.Syswerda, J. Palmucci, The Application of Generic Algorithms to Resource Scheduling, Fourth International Conference on Genetic Algorithms, s. 502-508, 1991. [14] P. B. Wilson, M. D. Macleod, Low implementation cost IIR digital filter design using genetic algorithms, IEE/IEEE Workshop on Natural Algorithms in Signal Processing, s. 4/1-4/8, 1993. [15] C. Coello, A Comprehensive Survey of Evolutionary-Based Mulitobjective Optimization Techniques, Knowledge and Information Systems, Vol. 1, No. 3, s. 129-156, 1999. [16] H. Esbensen, Computing near-optimal solutions to the steiner problem in a graph using a genetic algorithm, IEEE Networks, Vol. 26, s. 173-185, 1995. [17] F. Abuali, D. Schoenefeld, R. Wainwright, Designing telecommunications networks using genetic algorithms and probabilistic minimum spanning trees, ACM Symposium on Applied Computing Proceedings, s. 242 246, 1994. [18] Ch. Palmer, A. Kershenbaum, Representing Trees in Genetic Algorithms, IEEE WCCI, s. 379-384, 1993. [19] L. Kou, G. Markowsky, L. Berman, A Fast Algorithm for Steiner Trees, Acta Informatica, No 15, s. 141-145, 1981. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 6/6