Poznańskie Warsztaty Telekomunikacyjne PWT2004
Transkrypt
Poznańskie Warsztaty Telekomunikacyjne PWT2004
www.pwt.et.put.poznan.pl Maciej Piechowiak*, Piotr Zwierzykowski Politechnika Poznańska Instytut Elektroniki i Telekomunikacji ul. Piotrowo 3A, 60-965 Poznań {mpiech,pzwierz}@et.put.poznan.pl 2004 Poznańskie Warsztaty Telekomunikacyjne Poznań 9 - 10 grudnia 2004 ALGORYTMY TYPU «MULTICAST» W SIECIACH PAKIETOWYCH Streszczenie: W artykule dokonano przeglądu najważniejszych algorytmów wyznaczania minimalnych drzew «multicast» w sieciach pakietowych przeznaczonych do transmisji danych w czasie rzeczywistym. Zaproponowano także własny podział istniejących rozwiązań biorąc pod uwagę liczbę kryteriów (metryk) oraz przedstawiono nowe techniki służące efektywnemu rozwiązaniu powyższego problemu. 1. WPROWADZENIE Technika multicast polega na równoległym przesyłaniu danych w sieci od węzła nadawczego do grupy węzłów odbiorczych (wcześniej zdefiniowanych) [1]. Na przestrzeni kilku ostatnich lat algorytmy multicast zaczęły odgrywać coraz większą rolę ze względu na specyfikę danych przesyłanych w sieciach transportowych. Wzrost przepustowości współczesnych sieci pozwolił na transmisję danych multimedialnych w czasie rzeczywistym (transmisja radiowa i telewizyjna, video na żądanie, telekonferencje, itp.) [19]. W celu zapewnienia niezawodnej transmisji aplikacje multimedialne stawiają wysokie wymagania parametrom jakościowym (quality-of-service). Wymagania jakościowe dotyczące m.in. stałej gwarantowanej wartości opóźnień związanych z przejściem pakietu pomiędzy węzłem nadawczym i odbiorczym po określonej ścieżce w sieci, ciągle są wyzwaniem dla projektantów aplikacji czasu rzeczywistego. Najprostszym przykładem tego typu aplikacji jest transmisja głosu. Z transmisją głosu w pakietach wiążą się liczne opóźnienia m.in. opóźnienia kolejkowania, opóźnienia propagacji, opóźnienia wprowadzane przez kodeka, oraz opóźnienia serializacji. Opóźnienia kolejkowania zależą głównie od użytych algorytmów planowania, które mogą wyznaczać wartość opóźnienia poprzez określenie maksymalnej wartości (najgorszy przypadek) lub wartości średniej (w sensie statystycznym). Literatura szeroko prezentuje rozwiązania gwarantujące pasmo i opóźnienie dla pojedynczych strumieni, bazujące na najgorszym przypadku (strumienie takie traktowane są osobno) [19]. Grupowanie strumieni usługi, dla której mamy zagwarantowaną wartość opóźnienia, pozwala obniżyć wykorzystanie zasobów sieci, ponieważ czas propagacji może być uważany za stały atrybut łącza, zależny jedynie * autor jest pracownikiem Instytutu Mechaniki Środowiska i Informatyki Stosowanej Akademii Bydgoskiej PWT 2004, Poznań 9 - 10 grudnia 2004 od odległości między węzłem nadawczym i odbiorczym. Zatory oraz opóźnienia propagacji w łączach znacznie obniżają wydajność sieci Internet. A zatem znając największą wartość opóźnienia kolejkowania (obliczoną na podstawie liczby skoków między węzłami) oraz czas propagacji - można przypisać poszczególnym łączom w sieci pojedynczą metrykę opóźnienia (będącą sumą powyższych parametrów). W ciągu ostatnich kilku lat zaproponowano algorytmy routingu multicast dla aplikacji czasu rzeczywistego [2, 13]. Jednakże nie dokonano porównania wydajności tych algorytmów w identycznych warunkach sieciowych (z wykorzystaniem tych samych topologii sieci). Takie badania są niezbędne w celu określenia czy dane algorytmy są zdolne do konstruowania drzewa multicast z uwzględnieniem parametrów charakterystycznych dla aplikacji czasu rzeczywistego (małe wartości opóźnień między węzłem nadawczym i odbiorczym). W pracach [5, 9] udowodniono, że znalezienie drzewa multicast jest problemem N P-zupełnym dla jednego i większej liczby parametrów QoS. Z uwagi na złożoność problemu prezentowane algorytmy stosują techniki przybliżające rozwiązanie dokładne tj. algorytmy heurystyczne czy algorytmy genetyczne. W rozdziale 2 przedstawiono algorytmy typu multicast bazujące na jednej, bądź dwóch metrykach. Omówiono algorytmy niewymuszone (unconstrained) oraz wymuszone (constrained). Rozdział 3 prezentuje zagadnienie optymalizacji wielokryterialnej. Artykuł podsumowuje rozdział 4. 2. ALGORYTMY JEDNOKRYTERIALNE I DWUKRYTERIALNE A. Wprowadzenie Załóżmy, że sieć komunikacyjna reprezentowana jest jako skierowany, spójny graf N = (V, E), gdzie V jest zbiorem węzłów, a E - zbiorem łączy między węzłami sieci. Istnienie łącza e = (u, v) między węzłem u i v pociąga za sobą istnienie łącza e0 = (v, u) dla dowolnych u, v ∈ V (odpowiednik łączy dwukierunkowych w sieciach komunikacyjnych). Z każdym łączem e ∈ E skojarzone są dwa parametry: koszt C(e) oraz opóźnienie D(e). Koszt połączenia reprezentuje wykorzystanie zasobów łącza C(e) jest zatem funkcją wielkości ruchu w danym 1 www.pwt.et.put.poznan.pl łączu i pojemności bufora wymaganej dla tego ruchu. Opóźnienie w łączu z kolei jest sumą opóźnień wprowadzanych przez propagację w łączu, kolejkowanie i przełączanie w węzłach sieci. Grupa multicast jest zbiorem węzłów będących odbiorcami ruchu grupowego (identyfikacja odbywa się na podstawie unikalnego adresu i), G = {g1 , ..., gn } ⊆ V , gdzie n = |G| ≤ |V |. Węzeł s ∈ V jest źródłem dla grupy multicast G. Drzewo multicast T (s, G) ⊆ E jest drzewem zakorzenionym w węźle źródłowym s i obejmującym wszystkich członków grupy G. Całkowity koszt P drzewa T (s, G) można określić jako t∈T (s,G) C(t). Ścieżka P (s, G) ⊆ T (s, G) jest zbiorem łączy między s a gP ∈ G. Koszt ścieżki P (s, G) można przedstawić jako p∈P (s,G) C(p), natomiast opóźnienie mierzone P między początkiem i końcem ścieżki: p∈P (s,G) D(p). Stąd też maksymalne opóźnienie w drzewie można P wyznaczyć jako maxg∈G [ p∈P (s,G) D(p)]. Algorytmy takie można sklasyfikować w dwóch kategoriach. Pierwsza z nich to algorytmy najkrótszej ścieżki, które minimalizują koszt każdej ścieżki między węzłem źródłowym a węzłem będącym członkiem grupy odbiorców. Przedstawicielami tej klasy algorytmów są algorytmy Bellmana-Forda [7] oraz Dijkstry [4]. Inną kategorią są algorytmy znajdujące minimalne drzewo Steinera - ich głównym zadaniem jest minimalizacja całkowitego kosztu takiego drzewa. Ze względu jednak na złożoność obliczeniową tego algorytmu (problem N P-zupełny) [9] stosuje się algorytmy heurystyczne. Jeżeli zbiór węzłów minimalnego drzewa Steinera zawiera wszystkie węzły danej sieci, wtedy problem sprowadza się do znalezienia minimalnego drzewa rozpinającego (rozwiązanie to można uzyskać w czasie wielomianowym). W celu zapewnienia wsparcia dla aplikacji czasu rzeczywistego, protokoły sieciowe powinny zapewniać parametry QoS 1 . B. Algorytmy niewymuszone Algorytmy niewymuszone (unconstrained) próbują optymalizować daną funkcję kosztu nie biorąc pod uwagę wymagań QoS aplikacji. Dostępne publikacje zawierają bardzo niewiele algorytmów realizujących powyższe założenie [2]. Problem znajdowania minimalnego drzewa Steinera w sieciach skierowanych rozwiązywany jest raczej z uwzględnieniem specjalnych warunków (np. sieci acykliczne). W przypadku sieci nieskierowanych (łącza symetryczne) istnieją algorytmy heurystyczne pozwalające rozwiązać problem w akceptowalnym czasie. Kou, Markovsky i Bermann zaproponowali następujący algorytm heurystyczny (KMB) wyznaczający minimalne drzewo multicast [5]: • dla danego spójnego, nieskierowanego grafu N = (V, E) zawierającego zbiór węzłów odbiorczych G skonstruuj spójny, nieskierowany graf N1 = (V1 , E1 ), 1 Przykładowo górna gwarantowana granica opóźnienia między dwoma końcowymi punktami w sieci, ∆, musi być zapewniona w celu prawidłowej transmisji w aplikacjach multimedialnych. Z punktu widzenia tych aplikacji ważne jest zapewnienie gwarantowanej wartości opóźnienia - nie ma potrzeby minimalizowania tej wielkości. PWT 2004, Poznań 9 - 10 grudnia 2004 składający się tylko z węzła nadawczego s oraz zbioru węzłów odbiorczych G (ścieżki między węzłami grafu N1 stanowią ścieżki o najmniejszym koszcie w grafie pierwotnym N ), • wyznacz minimalne drzewo rozpinające T1 grafu G1 (jeśli rozwiązań jest więcej - wybierz jedno), • skonstruuj podgraf GS grafu G poprzez zastąpienie każdej krawędzi drzewa T1 odpowiadającej jej ścieżce z grafu G, • wyznacz minimalne drzewo rozpinające TS grafu GS (jeśli minimalnych drzew jest więcej - wybierz jedno), • skonstruuj drzewo Steinera TKM B z drzewa TS poprzez usunięcie liści, które nie zawierają węzłów odbiorczych. 2 1 8 1 10 7 2 7 2 6 5 8 8 2 4 8 4 8 2 2 8 1 2 8 4 3 (b) 3 4 8 (a) 2 1 8 1 8 1 7 4 2 2 2 2 2 6 5 7 4 2 8 4 3 (c) (d) 2 1 4 3 8 2 1 8 1 7 2 2 2 6 4 2 5 (e) 2 2 6 4 4 4 3 2 2 5 4 4 3 (f) Rys. 1. Działanie algorytmu KMB na przykładowej sieci Przykład przedstawiony na Rys. 1 pokazuje, że całkowity koszt drzewa multicast wynosi 16 i jest zarazem minimalnym drzewem Steinera. Doar i Leslie [14] wykazali, że całkowity koszt drzew generowanych z wykorzystaniem heurystyki KMB (Kou, Markowsky, Bermann) jest średnio tylko o 5% gorszy w porównaniu z metoda dokładną (minimalne drzewo Steinera) - pozwala to jednak uzyskać złożoność obliczeniową O(|G||V |2 ). Z kolei algorytm Dijkstry (znajdowania najkrótszych ścieżek) używany w wielu protokołach komunikacyjnych multicast (np. MOSPF) [1] pozwala uzyskać zadowalającą wydajność. Jest to algorytm najtańszego kosztu (LC) minimalizujący koszt ścieżki między węzłem źródłowym, a każdym węzłem będącym członkiem grupy odbiorczej z osobna. C. Algorytmy z wymuszeniami Działanie algorytmów z wymuszeniami (constrained) sprowadza się do rozwiązania problemu DCLC 2 www.pwt.et.put.poznan.pl (Delay Constrained Least Cost), czyli znalezieniu minimalnego kosztu ścieżki (lub drzewa - przy wielu węzłach odbiorczych) w ten sposób, by nie przekroczyć ustalonego opóźnienia dla całej ścieżki (drzewa). Dla danego skierowanego grafu N = (V, E) posiadającego krawędzie E o nieujemnym koszcie c(e) oraz opóźnieniu d(e), węzeł źródłowy s, grupę węzłów odbiorczych G oraz ograniczenie opóźnienia ∆ całego drzewa należy wyznaczyć: min t∈T 0 (s,G) X 2,1 1 c(e) 8 1,2 7 10,5 (1) 2,1 gdzie T (s, G) jest zbiorem drzew multicast spełniających warunek ograniczenia opóźnienia, tzn.: 7,6 2 2,2 5 8,10 2 4,2 8,4 DCLC jest problemem N P-trudnym [9]. Istnieje jednak wiele heurystyk rozwiązujących powyższy problem. Jako jedna z pierwszych heurystyk wyznaczających drzewo Steinera z wymuszeniem (Constrained Steiner Tree) zaproponowana została metoda KPP (Kompella, Pasquale, Polyzos) [6]. Autorzy metody wprowadzają dodatkowy parametr (opóźnienie) dla każdej ścieżki w sieci definiując najkrótszą ścieżkę z wymuszeniem (constrained shortest path) jako ścieżkę o minimalnym koszcie przy założeniu, że wartość opóźnienia wzdłuż ścieżki nie przekracza ustalonej wartości ∆. Metoda ta zakłada, że opóźnienia w łączach oraz graniczna wartość opóźnienia ∆ są wartościami całkowitymi. Podobnie jak KMB, proponowany algorytm uwzględnia maksymalną wartość opóźnienia ∆ przy wyznaczaniu drzewa: • dla danego spójnego, nieskierowanego grafu N = (V, E) zawierającego zbiór węzłów odbiorczych G skonstruuj spójny, nieskierowany graf N1 = (V1 , E1 ), składający się tylko z węzła nadawczego s oraz zbioru węzłów odbiorczych G (ścieżki między węzłami grafu N1 stanowią ścieżki o najmniejszym koszcie w grafie pierwotnym N ) - innymi słowy N1 to graf połączeń każdy z każdym, • wyznacz drzewo rozpinające T1 grafu G1 biorąc pod uwagę każdą parę węzłów (u, v) i związane z daną ścieżką metryki: koszt C(u, v) oraz opóźnienie D(u, v) wg poniższej funkcji kosztów fc : ½ C(u, v) jeżeli Ds (u) + D(u, v) < ∆ fc = (3) ∞ p.p. zastąp krawędzie powstałego drzewa oryginalnymi ścieżkami z grafu G (jeśli tak powstała struktura zawiera cykle - usuń je korzystając z algorytmu Dijkstry, wykorzystując opóźnienie jako kryterium). W przykładzie przedstawionym na Rys. 2 przyjęto maksymalną wartość opóźnienia między węzłem źrodłowym, a poszczególnymi członkami grupy multicast ∆ = 10. W przeciwieństwie do metody KMB ścieżka 2-6-5-3 nie spełnia warunku nałożonego na opóźnienie (suma opóźnień łączy w ścieżce wynosi 11), w związku z czym powstaje inne drzewo multicast o koszcie całkowitym równym 21. • PWT 2004, Poznań 9 - 10 grudnia 2004 8,3 2,7 6 3 8,4 4,1 (b) 4 3 8,6 2,1 1 8 1,2 (2) e∈T 4 8,6 (a) d(e) ≤ ∆ 8,5 1 2,3 e∈T 0 X Wyznaczenie domknięcia grafu odbywa się w czasie O(∆|V |3 ). Zarówno KMB, jak i KPP wykorzystują algorytm [7] do wyznaczenia minimalnego drzewa rozpinającego domknięcia grafu. Jednak algorytm ten jest zoptymalizowany dla sieci nieskierowanych i zastosowanie go w sieciach skierowanych może mieć wpływ na wydajność całego rozwiązania. 7 2,1 1 8,5 4 2 7,6 2,2 6 5 8,4 2 8,4 (c) 3 2,3 4,1 4 3 (d) Rys. 2. Działanie algorytmu KPP na przykładowej sieci Widyono [2] zaproponował cztery algorytmy niewymuszone oraz cztery heurystyki wyznaczające drzewo Steinera z wymuszeniem (Constrained Steiner Tree). Te ostatnie wykorzystują algorytm Bellmana-Forda z wymuszeniami - CBF (Constrained Bellman-Ford) [15]. Metoda ta przeszukuje graf wszerz (breadth-first search) w celu znalezienia najtańszych ścieżek od źródła do pozostałych węzłów w sieci z uwzględnieniem warunku na całkowite opóźnienie (między węzłem źródłowym a docelowym). Proponowany w [2] algorytm CMIC (Constrained Minimum Incremental Cost) bazuje na wywołaniach algorytmu CBF dla każdego węzła odbiorczego (w dowolnej kolejności). Po każdym wywołaniu koszt otrzymanej ścieżki jest ustawiany na wartość zerową dla pozostałych węzłów docelowych. Algorytm CAO (Constrained Adaptive Ordering) posiada najlepszą wydajność z proponowanych przez Widyono. Wykorzystuje on algorytm Bellmana-Forda z wymuszeniami w celu jednoczesnego podłączenia grupy odbiorczej do węzła nadawczego. Podczas każdego przebiegu algorytmu Bellmana-Forda niepodłączony jeszcze członek grupy jest dołączany do istniejącego poddrzewa po ścieżce z minimalnym kosztem. Inne podejście prezentuje algorytm BSMA (Bounded Shortest Multicast Algorithm) [18]. Pierwszy etap algorytmu to wyznaczenie drzewa o najmniejszym opóźnieniu dla danego źródła s i grupy multicast G. W kolejnych iteracjach superkrawędzie (ścieżki między dwoma rozgałęzieniami, między dwoma węzłami będącymi członkami grupy multicast lub między węzłem multicast a rozgałęzieniem) w drzewie T (s, G) zastępowane są superkrawędziami o mniejszym koszcie nienależącymi do drzewa bez przekraczania założonej granicy maksymalnego opóźnienia (dopóki całkowitego kosztu drzewa nie będzie już 3 www.pwt.et.put.poznan.pl można zminimalizować). Złożoność obliczeniowa algorytmu wynosi O(k|V |3 log|V |), k może być dużą liczbą w przypadku sieci gęstych, co może stanowić trudność w uzyskaniu akceptowalnego czasu działania algorytmu. BSMA zawsze znajduje drzewo multicast z ograniczeniami (jeśli takie istnieje), ponieważ na początku generuje drzewo o najmniejszym opóźnieniu (LD). Prosta metoda zaproponowana przez Lee [21] nie wyznacza optymalnej ścieżki - wyznacza jednak rozwiązanie heurystyczne dla problemu DCLC. Algorytm Fallback zakłada, że w sieci istnieją metryki uszeregowane (stopniowane). W pierwszym etapie algorytm wyznacza najkrótszą ścieżkę dla pierwszej z metryk (np. koszt), następnie sprawdza czy wartość ta pozwala spełnić pozostałe wymagania QoS. Jeśli znaleziona ścieżka na to nie pozwala, algorytm szuka następnej z wykorzystaniem kolejnej metryki. W rezultacie znaleziona zostanie właściwa ścieżka lub żadna z metryk nie pozwoli uzyskać rozwiązania. Powyższy algorytm jest bardzo prosty, szybki i zawsze zwraca właściwe rozwiązanie (jeśli tylko ono istnieje). Nie daje jednak gwarancji znalezienia optymalnej trasy oraz nie mówi nic o jakości znalezionej ścieżki. ce krawędzie o najmniejszych wartościach opóźnienia (użyj algorytmu Dijkstry [4]) - zatrzymaj algorytm, gdy osiągnięte zostaną wszystkie węzły z grupy multicast pominięte w poprzednim drzewie (u najtańszych krawędziach), • scal drzewa uzyskane w obydwu etapach i usuń powstałe cykle (spośród gałęzi tworzących cykl usuń tę o największym opóźnieniu). Złożoność obliczeniowa algorytmu wynosi O(|V |2 ), ponieważ używa on algorytmu Dijkstry do wyznaczenia obydwu drzew [4]. 3. ALGORYTMY WIELOKRYTERIALNE A. Wprowadzenie Problem routingu rozsiewczego (multicast) w sieciach transportowych uwzględniający jedno lub wiele kryteriów jak koszt i opóźnienie, jest zazwyczaj traktowany jako problem optymalizacji jednokryterialnej. W zadaniu takim wyznaczany jest całkowity koszt drzewa pod warunkiem zachowania z góry nałożonych ograniczeń na opóźnienie między węzłem nadawczym, a poszczególnymi węzłami odbiorczymi. Wielokryterialny problem optymalizacyjny MOP (ang. Multiobjective Optimization Problem) [23] składa się ze zbioru n zmiennych decyzyjnych, k funkcji kryterialnych i m ograniczeń. Funkcje kryterialne i ograniczenia są z kolei funkcjami zmiennych decyzyjnych: y = f (x) = (f1 (x), f2 (x), . . . , fk (x)) e(x) = (e1 (x), e2 (x), . . . , em (x)) Rys. 3. Działanie algorytmu CSPT na przykładowej sieci Heurystyka CSPT (Constrained Shortest Path Tree) wyznacza drzewo ograniczone o najmniejszym koszcie [22]. Jeśli opóźnienie na ścieżce do dowolnego węzła odbiorczego przekroczy ustaloną wartość graniczną, ścieżka ta zostaje zastąpiona ścieżką o najmniejszym koszcie. Tak więc, jeśli drzewo o najmniejszym koszcie przekracza graniczną wartość opóźnienia, wyznaczane jest drzewo o minimalnym opóźnieniu i obydwa drzewa są scalane. Algorytm przedstawia się następująco: • wyznacz minimalne drzewo rozpinające o najtańszych krawędziach (z użyciem algorytmu Dijkstry [4]), • usuń z drzewa gałęzie, które nie zawierają członków grupy multicast oraz gałęzie zawierające członków grupy multicast, dla których najtańsza ścieżka do węzła źródłowego przekracza maksymalne opóźnienie ∆, • wyznacz minimalne drzewo rozpinające zawierają- PWT 2004, Poznań 9 - 10 grudnia 2004 gdzie x = (x1 , x2 , . . . , xn ) ⊆ X jest wektorem decyzyjnym, a y = (y1 , y2 , . . . , yk ) ⊆ Y - wektorem kryterialnym. X określa przestrzeń decyzyjną, natomiast Y - przestrzeń kryteriów. Zbiór ograniczeń e(x) ≥ 0 wyznacza z kolei zbiór możliwych rozwiązań X f ⊆ X i odpowiadający mu zbiór wektorów kryterialnych Y f ⊆ Y . Problem wielokryterialny polega zatem na znalezieniu takiego x, które optymalizuje funkcję f (x). Rozwiązanie takiego problemu to w zasadzie zbiór wielu możliwych rozwiązań, z których żadne nie jest lepsze, gdyż każde optymalizuje inne kryterium. B. Algorytmy genetyczne Najnowsze proponowane metody routingu [12, 23] opierają się na algorytmach genetycznych - technice odzwierciedlającej naturalną ewolucję. W pierwszym kroku algorytm generuje losową konfigurację (zwaną populacją początkową). Każdy osobnik w populacji tworzy łańcuch symboli (genów). Taki łańcuch symboli nazywa się chromosomem, który reprezentuje rozwiązanie problemu optymalizacyjnego. W każdej iteracji algorytmu osobniki w bieżącej populacji wyznaczane (oceniane) są z użyciem funkcji dopasowania. Na podstawie tej funkcji wybierane są osobniki najlepiej dopasowane (rodzice). Prawdopodobieństwo selekcji osobników jest proporcjonalne do ich dopasowania. W kolejnym kroku stosuje się operacje genetyczne w celu wyprodukowania nowych osobników 4 www.pwt.et.put.poznan.pl (potomstwo), które staną się częścią nowego pokolenia. W ten sposób proces ewolucyjny przegląda przestrzeń poszukiwań, znajdując coraz lepsze rozwiązania, aż do osiągnięcia warunku zatrzymania. Dla analizowanej sieci opisanej za pomocą grafu N = (V, E) istnieje |V ||V − 1| par węzeł nadawczy odbiorca. Dla każdej pary konstruowana jest tablica routingu zawierająca R takich ścieżek (rozmiar tablicy routingu R jest parametrem algorytmu). Chromosom jest reprezentowany przez łańcuch liczb całkowitych o długości l (liczba węzłów odbiorczych). Pojedynczy gen jest kolejnym numerem ścieżki między węzłem s a węzłem gi w tablicy routingu. 2 1 8 1 10 7 nich istnieje większe prawdopodobieństwo wybrania do reprodukcji), • dokonaj krzyżowania dwupunktowego dla każdej pary osobników (ten operator reprezentuje mechanizm przeszukiwania lokalnego zwracając uwagę na osobniki z wyższymi wartościami dopasowania badając dostępne informacje o rodzicach), • dokonaj mutacji - zmień z prawdopodobieństwem Pmut kilka genów w każdym chromosomie z nowej generacji (pozwala to generować lepsze chromosomy w celu uzyskania nowych przestrzeni poszukiwań). • jeśli kryterium zatrzymania algorytmu nie zostanie spełnione - przejdź do punktu 3 algorytmu. Przedstawiony algorytm został użyty w celu optymalizacji następujących funkcji kryterialnych: • maksymalne opóźnienie: 2 2 2 2 2 6 4 8 f1 = ∆max = max[d(pT (s, gi ))]; 5 g∈G 4 • 3 Tablica routingu dla wêz³a 2 4 8 Tablica routingu dla wêz³a 3 Tablica routingu dla wêz³a 4 nr d œcie¿ka nr d œcie¿ka nr d 1 2 3 4 5 7 8 10 16 24 1-8-7-6-2 1-8-5-6-2 1-2 1-8-5-3-2 1-8-5-4-3-2 1 2 3 4 5 8 11 15 16 16 1-8-5-3 1-8-7-6-5-3 1-8-7-6-2-3 1-8-5-6-2-3 1-8-5-4-3 1 2 3 4 5 1-8-5-4 8 11 1-8-7-6-5-4 1-2-6-5-4 18 21 1-2-6-7-8-5-4 1-2-3-4 26 3 2 3 g1 g2 g3 całkowity koszt drzewa multicast: X c(u, v); f2 = C = Rys. 4. Wyznaczanie chromosomów, genów i tablic routingu dla przykładowej sieci W przedstawionym przykładzie (Rys. 3) tablica routingu została stworzona z użyciem metryki opóźnienia (ta metoda kodowania została zaproponowana przez Hwanga [12]). Proponowany algorytm znajduje rozwiązanie optymalne w sensie Pareto [17]. Oznacza to, że rozwiązanie jest paretooptymalne, jeżeli nie jest możliwe znalezienie rozwiązania lepszego z uwagi na co najmniej jedno kryterium bez pogorszenia z uwagi na pozostałe. Algorytm przedstawia się następująco: • konstruuj tablicę routingu dla każdego węzła odbiorczego, • inicjalizuj populację początkową P poprzez wygenerowanie |P | chromosomów; podobnie, zewnętrzny niezdominowany zbiór Pareto oznacz jako Pnd (populacja niezdominowana), • usuń ze zbioru P powtarzające się chromosomy (lub zastąp je nowymi wygenerowanymi losowo), • oceń P wyznaczając funkcje kryterialne dla każdego osobnika w zbiorze P , • zastosuj algorytm SPEA (Strength Pareto Evolutionary Algorithm) [11] - a) zaznacz osobniki niezdominowane w zbiorze P ; b) zaktualizuj zbiór niezdominowany Pnd ; c) wyznacz intensywność Pnd oraz P ; d) wyznacz dopasowanie w zbiorze P i Pnd , • przeprowadź operację selekcji w trakcie każdej generacji na zbiorze Pnd ∪ P (zaimplementuj procedurę ruletki jako operator selekcji) - osobniki ze zbioru Pnd są lepiej dopasowane niż osobniki ze zbioru P (dla PWT 2004, Poznań 9 - 10 grudnia 2004 (5) (u,v)∈T œcie¿ka chromosom (l=3) (4) • maksymalne wykorzystanie łącza (φ oznacza żądany ruch dla całej grupy multicast [b/s], natomiast t(u, v) - bieżący zaalokowany ruch w łaczu (u, v) [b/s]): ¸ · φ + t(u, v) ; (6) f3 = α = max c(u, v) (u,v)∈T • średnie opóźnienie: f2 = ∆AV = 1 X [d(pT (s, gi ))]. |G| (7) g∈G C. Relaksacja Lagrange’a Relaksacja Lagrange’a jest popularną techniką pozwalającą wyznaczyć dolne ograniczenia w celu znalezienia rozwiązania problemu DCLC [13]. Technika ta została po raz pierwszy zastosowana przez Helda i Karpa w celu rozwiązania problemu komiwojażera [10]. W pracy [13] zaproponowano algorytm heurystyczny LARAC (Lagrange Relaxation based Aggregated Cost) rozwiązujący problem DCLC. Prezentowana technika polega na minimalizowaniu zmodyfikowanej funkcji kosztu cλ = c + λd. Dla danej wartości λ można w prosty sposób wyznaczyć minimalną ścieżkę pλ . Jeżeli λ = 0 i d(pλ ) ≥ ∆ znalezione zostaje rozwiązanie dla oryginalnego problemu (koszt niezmodyfikowany). Jeżeli d(pλ ) ≤ ∆ należy zwiększyć wartość λ, aby zwiększyć dominancję opóźnienia w zmodyfikowanej funkcji kosztu. W kolejnych krokach algorytmu następuje zwiększanie λ dopóki optymalne rozwiązanie cλ spełni wymagania dotyczące opóźnienia. W nawiązaniu do powyższej metody Jiang (i pozostali) [20] zaproponował algorytm LBPSA (Lagrangian Branch-and-bound Path Selection Algorithm). Znajduje on ścieżkę ograniczoną wieloma kryteriami QoS o najmniejszym koszcie z użyciem metody branch-and-bound [3]. W celu wyznaczenia mnożnika Lagrange’a zaproponowano nowa metodę iteracyjną. 5 www.pwt.et.put.poznan.pl Dla pojedynczej ścieżki p między wezłem źródłowym s, a wezłem gi ∈ G składającej się z łączy e(u, v) można przypisać k metryk QoS dla każdej z krawędzi: w(e) = {w1 (e), . . . , wk (e)}. Metrykę P ścieżki p opiszemy zatem zależnością: wi (p) = wi (e), gdzie e ∈ p oraz 1 < i < k. Każde łącze w badanej sieci opisywane jest także za pomocą P kosztu c(e). Zatem całkowity koszt ścieżki: c(p) = c(e). Wprowadzić należy także wartości graniczne dla poszczególnych metryk QoS - Mi . Jeżeli wi (p) < Mi - p jest dopuszczalną ścieżką (spełniającą ograniczenia QoS). Powyższy problem sprowadza się do znalezienia ścieżki p0 , takiej że wi (p0 ) < Mi (dla 1 < i < k) oraz c(p0 ) = min[c(p)|wi (p) < Mi ]. Relaksacja Lagrange’a dla problemu optymalizacji wielokryterialnej opisywana jest równaniem: L(λ) = min[c(p) + λ1 (w1 (p) − M1 ) + + · · · + λk (wk (p) − Mk )] SPIS LITERATURY [1] [2] [3] [4] [5] [6] [7] [8] [9] (8) Maksimum funkcji L(λ) jest dolnym ograniczeniem, które jest zbliżone do rozwiązania optymalnego L(λ): [10] [11] [12] L(λ) ≤ max L(λ) ≤ z ∗ λ (9) gdzie z ∗ jest najmniejszym kosztem dopuszczalnej ścieżki, a L∗ = maxλ L(λ). L(λ) jest długością najkrótszej ścieżki wyznaczanej względem metryki zagregowanej. W kolejnych iteracjach (zwiększanie λ), jeżeli L(λ) osiągnie wartość maxλ L(λ) możliwe jest wyznaczenie prawidłowej ścieżki oraz ograniczeń: od góry i z dołu. W proponowanej metodzie iteracji (metoda maksymalnego kierunku) mnożnik λ zmienia się od 0, za każdym razem, gdy zmianie ulegnie λi (co odpowiada zależności wi (p) − Mi = max(wj (p) − Mj ), gdzie 1 ≤ j ≤ k) - pozostałe mnożniki λj nie ulegają zmianie. Innymi słowy współczynnik λ jest przesuwany w przestrzeni otoczonej płaszczyznami wyznaczonymi przez L(λ). 4. PODSUMOWANIE [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] M. Piechowiak, P. Zwierzykowski: Przegląd protokołów routingu multicast, VIII Poznańskie Warsztaty Telekomunikacyjne, pp. 147-152, 2003. R. Widyono: The design and evaluation of routing algorithms for realtime channels, Technical Report TR-94-024, University of California at Berkely, June 1994. K. Ahuja, L. Magnanti: Network Flows: Theory, Algorithms and Applications, Prentice Hall, Upper Saddle River, New Jersey 1993. E. Dijkstra: A note on two problems in connection with graphs, Numerische Mathematik, vol. 1, pp. 269-271, 1959. L. Kou, G. Markowsky, L. Berman: A fast algorithm for Steiner trees, Acta Informatica, no. 15, pp. 141-145, 1981. V. P. Kompella, J. C. Pasquale, G. C. Polyzos: Multicasting for multimedia applications, IEEE/ACM Transactions on Networking, pp. 286-292, 1993. R. Prim: Shortest connection networks and some generalizations, Bell Systems Tech J., vol. 36, pp. 1389-1401, 1957. B. Waxmann: Routing of multipoint connections, IEEE Journal on Selected Area in Communications, vol. 6, pp. 1617-1622, Dec 1988. R. Karp: Reducibility among combinatorial problems, Complexity of Computer Computations, pp. 85-104, 1972. M. Held, R. Karp: The traveling salesman problem and minimum spanning trees, Operation Research 18, pp. 1138-1162, 1970. E. Zitzler, L. Thiele: Multiobjective Evolutionary Algorithms: A comparative Case Study and the Strength Pareto Approach, IEEE Trans. Evolutionary Computation, vol. 3, no. 4, pp. 257-271, 1999. R.H. Hwang, W.Y. Do, S.C. Yang: Multicast routing based on genetic algorithms, Journal of Information Science and Engineering, vol. 16, pp. 885-901, 2000. A. Juttner, B. Szviatovszki, I. Mecs, Z. Rajko: Lagrange Relaxation Based Method for the QoS Routing Problem, IEEE INFOCOM’ 2001. M. Doar, I. Leslie: How bad is naive multicast routing?, IEEE INFOCOM’ 1993, pp. 82-89. R. Bellman: On a routing problem, Quarterly of Applied Mathematics, 16(1):87-90, 1958. L. R. Ford, D. R. Fulkerson: Flows in networks, Princeton University Press, 1962. D. Rutkowska, M. Piliński, L. Rutkowski: Sieci neuronowe, algorytmy genetyczne i systemy rozmyte, Wydawnictwo Naukowe PWN, Warszawa-Łódź, 1997. Q. Zhu, M. Parsa, J. J. Garcia-Luna-Aceves: A sourcebased algorithm for delay-constrained minimum-cost multicasting, IEEE INFOCOM’ 1995, pp. 377-385. Z. Wang, J. Crowcroft: Quality-of-service routing for supporting multimedia applications, IEEE Journal on Selected Area in Communications, 1996, 14(7), pp. 1228-1234. H. Jiang, P. Yan, J. Zhou, L. Chen, M. Wu: Multiconstrained Least Cost QoS Routing Algorithm, IEEE ICT’ 2004, pp. 704-710. W. C. Lee: Multi-criteria routing subject to resource and performance constraints, ATM Forum 94-0280, 1994. J. S. Crawford, A. G. Waters: Heuristics for ATM Multicast Routing, Computer Science, University of Kent at Canterbury, 1998. J. Crichigno, B. Baran: Multiobjective Multicast Routing Algorithm, ICT 2004, LNCS 3124, pp. 1029–1034, 2004. W artykule przedstawiono algorytmy typu multicast w sieciach pakietowych. Zaproponowano podział tych algorytmów odzwierciedlający obecny stan badań nad prezentowaną tematyką. Prezentowany przegląd literatury pozwala wskazać kierunki dalszych badań: użycie relaksacji Lagrange’a do wyznaczania drzew multicast uwzględniających wiele metryk QoS oraz zastosowanie optymalizacji wielokryterialnej w algorytmach genetycznych, np. metoda ważonych kryteriów (wprowadzenie kryterium zastępczego - metryki zagregowanej), metoda optymalizacji hierarchicznej (kolejno względem każdego kryterium osobno) lub metoda kryterium globalnego. PWT 2004, Poznań 9 - 10 grudnia 2004 6