algorytmy heurystyczne dla połączeń rozgałęźnych w sieciach
Transkrypt
algorytmy heurystyczne dla połączeń rozgałęźnych w sieciach
Artur Żodź, Piotr Zwierzykowski, Politechnika Poznańska, Wydział Elektroniki i Telekomunikacji, ul. Piotrowo 3A, 60-965 Poznań, E-mail: [email protected] 2006 Poznańskie Warsztaty Telekomunikacyjne Poznań 7 - 8 grudnia 2006 ALGORYTMY HEURYSTYCZNE DLA POŁĄCZEŃ ROZGAŁĘŹNYCH W SIECIACH PAKIETOWYCH - PROPOZYCJA NOWEGO ROZWIĄZANIA Streszczenie: W ciągu ostatnich kilkunastu lat zaproponowano wiele algorytmów heurystycznych wyznaczających drzewa połączeń rozgałęźnych. Proponowane metody heurystyczne stanowią jedynie przybliżenie rozwiązania optymalnego i dlatego problem znalezienia lepszego algorytmu jest ciągle aktualny. Głównym celem artykułu jest prezentacja prób znalezienia algorytmu dwukryterialnego bardziej efektywnego od rozwiązań przedstawianych w literaturze. 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) [22]. 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.) [24]. 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) [24]. 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 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 [26], [15]. 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 [16], [18] udowodniono, że znalezienie drzewa multicast jest problemem NP-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 artykule zaproponowano modyfikacje znanych algorytmów heurystycznych, których efektywność jest lepsza od rozwiązań oryginalnych. Artykuł podzielono na 10 rozdziałów. Rozdziały 2 zawiera informacje wstępne, natomiast rozdział 3 omawia skrótowo wcześniejsze prace. W rozdziale 4 przedstawiono informacje o topologii sieci, które są wykorzystywane przez algorytmy. Kolejne dwa rozdziały zawierają odpowiednio omówienie algorytmów RSDRC i RDCMA. Rozdziały 7 i 8 przedstawiają topologie testowe i wyniki badań, natomiast rozdział 9 podsumowuje prezentowane badania. 2. Podstawowe pojęcia W dalszej części artykułu zakłada się że sieć, na której testowane będą algorytmy, reprezentowana jest przez spójny, skierowany graf G = (V, E). V jest zbiorem węzłów, a E to zbiór skierowanych krawędzi łą- czących węzły grafu (reprezentuje łącza sieci). Z każdą krawędzią grafu e ∈ E skojarzona jest metryka kosztu C(e) i metryka opóźnienia D(e). Metryka kosztu opisuje ogólny koszt nawiązania połączenia z wykorzystaniem danego łącza. Na funkcje kosztu składać się mogą: przepustowość łącza, pojemność buforów, stopa błędów (jakość łącza) itp. Metryka opóźnienia reprezentuje opóźnienie propagacji sygnału przesyłanego za pomocą danego łącza. Ścieżka z węzła a do węzła b w grafie skierowanym to sekwencja krawędzi skierowanych prowadzących od węzła a do węzła b i oznaczonych jako P (a, b). Ścieżka P (a, b) spełnia ograniczenie opóźnienia ∆, gdy suma opóźnień wszystkich krawędzi ei należących do danej ścieżki P (a, b) jest mniejsza lub równa ∆: X D(ei ) ¬ ∆. (1) ei ∈P (a,b) W dalszej części pracy całkowite opóźnienie ścieżki oznaczone bedzię przez: X D(P (a, b)) = D(ei ). (2) ei ∈P (a,b) Ścieżka P (a, b) jest najkrótszą pod względem kosztu/opóźnienia ścieżką łączącą węzeł a i b, gdy suma kosztów/opóźnień wszystkich krawędzi ei należących do danej ścieżki P (a, b) jest najmniejsza z możliwych: X Cost(P (a, b)) = M in . (3) ei ∈P (a,b) Drzewo najkrótszych pod względem kosztu/opóźnienia ścieżek to drzewo łączące węzeł źródłowy s z węzłami docelowymi di za pomocą najkrótszych pod względem kosztu/opóźnienia ścieżek. Drzewo najkrótszych pod względem kosztu/opóźnienia ścieżek (LPC tree / LPD tree) to drzewo łączące węzeł źródłowy s z węzłami docelowymi di za pomocą najkrótszych pod względem kosztu/opóźnienia ścieżek. Grupa multicast(węzły docelowe) di ∈ S to zbór węzłów sieci, które są odbiorcami ruchu pochodzącego z jednego lub większej liczby węzłów źródłowych s. Drzewo multicast T (s, S) ⊆ E o ograniczonym opóźnieniu ścieżki to drzewo, do którego należą ścieżki prowadzące od węzła źródłowego s do każdego z węzłów docelowych di ∈ S. Ponadto każda ścieżka należąca do drzewa T (s, S), łącząca węzeł źródłowy s z dowolnym węzłem docelowym di spełania ograniczenie opóźnienia ∆: _ D(P (s, di )) ¬ ∆. (4) di ∈S Drzewo multicast T (s, S) ⊆ E o ograniczonym opóźnieniu ścieżki jest wynikiem działania każdego badanego w pracy algorytmu. Całkowity koszt drzewa multicast T (s, S) to suma metryk kosztu wszystkich krawędzi ei należących do T (s, S). Minimalizacja całkowitego kosztu drzewa multicast o ograniczonym opóźnieniu jest określana w literaturze jako problem DCLC (Delay Constrained Least Cost) lub problem minimalnego drzewa Steinera o ograniczonym opóźnieniu (Constrained Steiner tree problem) i jest podstawowym zadaniem przedstawionych w pracy algorytmów. 3. Wcześniejsze prace Heurystyka KMB (Kou, Markowsky, Berman) [18] jest jedną z najbardziej znanych heurystyk rozwiązujących problem minimalnego drzewa Steinera. Jest ona również bardzo efektywna pod względem dokładności rozwiązania [11], a jej złożoność obliczeniowa wynosi O(|S||V |2 ). Na jej podstawie powstał algorytm KPP (Kompella, Pasquale, Polyzos) [17] uwzględniający dodatkowo ograniczenie opóźnienia. W pierwszej fazie KPP konstruowany jest graf pełny1 P , którego wierzchołkami są węzeł źródłowy s i węzły docelowe di ∈ S, a krawędzie reprezentują ścieżki o najmniejszym koszcie łączące dowolne dwa węzły a i b w grafie pierwotnym G = (V, E), gdzie a, b ∈ {S ∪ s}. Następnie w grafie P wyznaczane jest minimalne drzewo rozpinające z uwzględnieniem ograniczenia opóźnienia, po czym krawędzie otrzymanego drzewa zamieniane są na ścieżki oryginalnego grafu G. Ewentualnie powstałe pętle w powstałej w ten sposób strukturze usuwane są za pomocą algorytmu najkrótszej ścieżki (np. algorytm Dijkstra [10]). Złożoność obliczeniowa algorytmu wynosi O(∆|V |3 ). Cztery heurystyki zostały zaproponowane przez R.Widyono [26] do rozwiązania problemu minimalnego drzewa Steinera o ograniczonym opóźnieniu. Są to: CIP (Constrained independent paths), CMIC (Constrained minimum incremental cost), CAO (Constrained adaptive routing), CHAO (Constrained hierarchical adaptive routing). Podstawą dla ich powstania były również cztery algorytmy heurystyczne rozwiązujące problem minimalnego drzewa Steinera bez wymuszeń. Pierwsze trzy z wymienionych algorytmów wykorzystują algorytm przeszukiwania w szerz z uwzględnieniem ograniczenia opóźnienia CBF (Constrained Bellman-Ford) [4] o wykładniczej złożoności obliczeniowej. Złożoność obliczeniowa algorytmu CHAO wynosi natomiast O(|V |3 ). C. Noronha i F. Tobagi [5] wykazali że problem minimalnego drzewa Steinera o ograniczonym opóźnieniu można przedstawić jako problem całkowitoliczbowy i zaproponowali technikę o wykładniczej złożoności obliczeniowej pozwalającej znaleść optymalne rozwiązanie. Z racji długiego czasu wykonania algorytmu jego praktyczne zastosowanie jest wykluczone, ale może stanowić punkt odniesienia do testowania innych algorytmów. Wykorzystanie algorytmów do wyznaczania minimalnych ścieżek o ograniczonym opóźnieniu w celu konstrukcji efektywnych pod względem kosztu drzew mulicast zaproponowali G. Kumar, N. Narang i C. Ravikumar [14]. Przedstawili oni dwie heurystyki 1 Graf pełny - graf nieskierowany, w którym każda para wierzchołków jest połączona krawędzią przybliżające rozwiązanie problemu DCLC. Pierwsza z nich to DCBH (Dynamic Center Based Heuristic), a druga to BERD (Best Effort Residual Delay). Obie wykorzystują zaproponowany przez autorów algorytm minimalnej ścieżki o ograniczonym opóźnieniu [13]. Główną ideą algorytmu DCBH jest znalezienie tzw. węzła centralnego, do którego przyłączane są węzły docelowe z użyciem algorytmu minimalnej ścieżki o ograniczonym opóźnieniu lub ścieżki o minimalnym opóźnieniu. Na wstępie dla każdej pary węzłów docelowych obliczane jest minimalne opóźnienie ścieżki łączącej te węzły i wybierana jest para o największej wartości minimalnego opóźnienia. Węzeł centralny C określany jest jako węzeł w samym środku ścieżki łączącej wybrane dwa węzły docelowe. Algorytm heurystyczny BERD wykorzystuje do działania podobną idee, ale dodatkowo każdy z węzłów posiada parametr określany jako residual delay. G. Feng i T. P. Yum [12] zaproponowali dwa algorytm heurystyczne służące do konstrukcji drzew multicast o ograniczonym opóźnieniu. Pierwszy z nich to DSPMA (Delay-constrained Shortest Path Multicasting Algorithm) o złożoności obliczeniowej O(|V |2 ). Podstawową ideą tego algorytmu jest równoległa budowa drzewa minimalnego kosztu o ograniczonym opóźnieniu i drzewa ścieżek minimalnego opóźnienia. Odpowiednie połączenie obu drzew pozwala skonstruować wynikowe drzewo multicast. Drugi algorytm DDMA (Dynamic Delay-constrained Multicasting Algorithm) obsługujący dynamicznie zmiany grupy multicast. Potrafi dodawać kolejne węzły docelowe bez konieczności obliczania całego drzewa multicast od początku. Możliwe jest także ustalenie kompromisu między czasem wykonania, dokładnością obliczeń za pomocą pojedynczego parametru k, a złożoność obliczeniowa algorytmu wynosi O(k|V |2 ). A. G. Waters [7] zaproponował heurystykę CCET (Constrained Cheapest Edge Tree). W dalszych pracach A. G. Waters i J. S. Crawford [8] [6] przedstawili modyfikacje algorytmu CCET, a w [9] przedstawili porównanie efektywności algorytów KPP [17], CCET, CCPT (Constrained Cheapest Path Tree) [6] oraz CDKS. W wyniku badań zaobserwowano, że efektywność algorytmu CCET wzrasta wraz ze wzrostem liczebności grupy multicast i może osiągnąć lepsze wyniki niż algorytm KPP. 4. Informacje o topologii sieci wykorzystywane przez algorytm Zakładamy, że dzięki zastosowaniu w sieci protokołu rutingu OSPF [21][1] węzeł źródłowy posiada informacje dotyczące stanu sieci, czyli topologii sieci oraz stanu łączy. Dodatkowo węzeł źródłowy posiada dwa dodatkowe wektory: wektor kosztu i wektor opóźnienia. Obydwa wektory mają długość V − 1 i zawierają wpisy dla każdego węzła sieci poza węzłem źródłowym. Informacje zawarte w tych wektorach odpowiadają drzewom minimalnego kosztu i minimalnego opóźnienia obliczanym przez protokół OSPF z wykorzystaniem algorytmu Dijkstra [10]. Pojedynczy wpis wektora opóźnienia dla wierzchołka wj składa się z następujących elementów: • ID - oznaczenie węzła; • LD lhop - poprzednik węzła wj na ścieżce minimalnego opóźnienia PLD (s, wj ) ze Źródła s do danego węzła wj ; • D(PLD (s, wj )) - całkowite opóźnienie ścieżki minimalnego opóźnienia ze Źródła s do danego węzła wj . Pojedynczy wpis wektora kosztu dla wierzchołka wj składa się z następujących elementów: • ID - oznaczenie węzła; • LC lhop - poprzednik węzła wj na ścieżce minimalnego kosztu PLC (s, wj ) ze Źródła s do danego węzła wj ; • D(PLC (s, wj )) - całkowite opóźnienie ścieżki minimalnego kosztu ze Źródła s do danego węzła wj . 5. Algorytm heurystyczny RSDRC dla połączeń punkt-punkt o ograniczonym opóźnieniu Zanim zostanie przedstawiony algorytm RDCMA dla połączeń multicast zaprezentowany zostanie algorytm heurystyczny RSDCR (Reverse SDRC) dla połączeń punkt-punkt o ograniczonym opóźnieniu. Algorytm RSDRC rozpoczyna poszukiwanie ścieżki minimalnego kosztu o ograniczonym opóźnieniu ∆ w węźle docelowym d. Początkowo potencjalnym węzłem zmiany 2 z jest węzeł docelowy. Szukając węzła zmiany algorytm porusza się po ścieżce minimalnego kosztu w kierunku Źródła s, a każdym z węzłów sprawdzany jest warunek: D(PLD (s, a)) + D(PLC (a, d)) ¬ ∆; (5) Jeżeli powyższy warunek jest spełniony i aktualny węzeł a nie jest węzłem Źródłowym, to potencjalnym węzłem zmiany z staje się aktualny węzeł a, a kolejny węzeł na ścieżce minimalnego kosztu w kierunku Źródła zostaje wybrany jako węzeł aktualny. Następnie powyższa nierówność sprawdzana jest ponownie. Jeżeli warunek jest spełniony i aktualny węzeł jest węzłem Źródłowym, to wynikiem algorytmu jest ścieżka minimalnego kosztu PLC (s, d). Gdy warunek nie jest spełniony, poszukiwanie węzła zmiany zostaje zakończone. Dalsza ścieżka od ustalonego węzła zmiany q do Źródła s przebiega po drodze minimalnego opóźnienia PLD (s, q). Poszukując ścieżki od węzła docelowego do Źródła odwiedzonych może zostać maksymalnie V węzłów. Powód, dla którego poszukiwanie ścieżki przeprowadzone jest w odwrotnym kierunku (od węzła docelowego do węzła Źródłowego) wynika z informacji jakie dostępne są w węźle Źródłowym i może być wytłumaczony analogicznie jak w artykule [2] w rozdziale poświęconym SDRC. Lemat 1: Ścieżka otrzymana w wyniku działania algorytmu RSDRC nie zawiera pętli. 2 węzeł zmiany - węzeł, w którym następuje zmiana ścieżki minimalnego opóźnienia na ścieżkę minimalnego kosztu poruszając się od węzła docelowego do węzła Źródłowego Rys. 1. Hipotetyczny scenariusz powstania pętli w algorytmie RSDRC Dowód: Proces poszukiwania ścieżki w algorytmie RSDRC rozpoczyna się od węzła docelowego d. Następnie poruszając się ścieżką minimalnego kosztu w każdym kolejnym węźle sprawdza czy możliwe jest dojście do Źródła s drogą minimalnego opóźnienia. Jeżeli w żadnym z węzłów nie dojdzie do zmiany ścieżki, to wynikiem algorytmu jest ścieżka minimalnego kosztu PLC (s, d), która w sposób oczywisty nie zawiera pętli. Rozpatrzmy przypadek gdy w jakimś węźle zmiany u algorytm zmieni ścieżkę ze ścieżki minimalnego kosztu na ścieżkę minimalnego opoŹnienia. Jedynym sposobem na powstanie pętli jest sytuacja, gdy któryś z węzłów na ścieżce PLD (s, u) należy również do ścieżki PLC (u, d), tak ja to pokazano na rysunku 1. Kolejność w jakiej algorytm buduje ścieżke wyklucza taką możliwość. Ponieważ gdy do ścieżki wynikowej dodawana jest ścieżka minimalnego kosztu PLC (u, d), ścieżka minimalnego opóźnienia PLD (s, u) jest znana. Poruszając się po drodze minimalnego kosztu PLC (u, d) algorytm dociera do węzła v i wykrywa, że węzeł v należy do ścieżki PLD (s, u). Węzłem zmiany staje się węzeł v, a dalsza ścieżka wynikowa budowana jest po drodze minimalnego opóźnienia PLD (s, v). Zatem powstanie pętli w ścieżce zwracanej przez algorytm RSDRC jest nie możliwe. 6. Algorytm heurystyczny RDCMA dla połączeń rozsiewczych o ograniczonym opóźnieniu Idea działania algorytmu RDCMA bazuje na wcześniej omówionym algorytmie RSDRC. Niestety wywołanie algorytmu RSDRC dla każdego z m węzłów docelowych i dodanie do siebie tak powstałych ścieżek może utworzyć drzewo zawierające pętle. Również, złożoność obliczeniowa takiego podejścia O(m(2V − 1)) przekraczałby złożoność obliczeniową zaproponowanego algorytmu RDCMA. Heurystyka RDCMA wyznacza drzewo minimalnego kosztu T o ograniczonym opóźnieniu ∆ łączące węzeł Źródłowy s i zbiór węzłów docelowych S w pięciu głównych fazach. W pierwszej fazie następuje inicjacja algorytmu (pseudokod linie 1-13). Polega ona na sprawdzeniu czy istnieje rozwiązanie, zbudowaniu pomocniczego wektora wynikowego ON i wektora węzłów zmiany Q, posortowaniu węzłów docelowych di ∈ S malejąco pod względem wartości opóźnienia D(PLC (s, di ))3 oraz dodaniu węzła Źródłowego 3 D(P LC (s, di )) - całkowite opóźnienie ścieżki minimalnego kosztu od węzła zródłowego s do każdego z węzłów docelowych di s do wektora drzewa wynikowego. Celem drugiej fazy algorytmu jest znalezienie węzłów zmiany. Wyszukanie przeprowadzane jest od węzłów docelowych di do Źródła s z wykorzystaniem ścieżek o minimalnym koszcie i jest wykonywane tylko gdy koszt ścieżki minimalnego kosztu z s do di jest większy od ograniczenia opóźnienia ∆ (linie 14-30). Węzły docelowe di wybierane są kolejno począwszy od węzła o największej wartości opóźnienia D(PLC (s, di )). W każdym węźle sprawdzany jest warunek: D(PLD (s, a)) + D(PLC (a, d)) ¬ ∆. (6) Dopóki jest on spełniony, możliwe jest dalsze poszukiwanie węzła zmiany dla danego węzła docelowego di poruszając się drogą minimalnego kosztu w kierunku Źródła. Każdy odwiedzony węzeł zapamiętywany jest w wektorze pomocniczego drzewa wynikowego ON . Jeżeli zostanie napotkany węzeł należący już do pomocniczego drzewa wynikowego to poszukiwanie węzeła zmiany z dla danego wierzchołka docelowego di jest przerywane. (Dzięki posortowaniu węzłów docelowych i wybieraniu kolejno, począwszy od węzła o największym opóźnieniu ścieżki PLC (s, di ), węzeł zmiany dla danego węzła docelowego został znaleziony wcześniej. Takie podejście pozwala spełnić ograniczenie opóźnienia nałożone na każdą budowaną ścieżkę). Gdy nierówność 6 nie jest spełniona poszukiwanie danego węzła zamiany zostaje zakończone. Znalezione węzły zmiany zapamiętywane są w wektorze Q. W trzeciej fazie algorytmu budowane jest drzewo łączące znalezione węzły zmiany Q ze Źródłem s z wykorzystaniem ścieżek o minimalnym opóźnieniu (linie 31-43). Drzewo budowane jest w kierunku od węzłów zmiany do Źródła, a wynikiem jest drzewo minimalnego opóźnienia łączące węzeł Źródłowy s z węzłami zmiany. Czwarta faza algorytmu polega na przyłączeniu węzłów docelowych di do drzewa minimalnego opóźnienia zbudowanego podczas trzeciej fazy algorytmu (linie 44-52). Do budowy wspomnianych połączeń wykorzystywane są ścieżeki o minimalnym koszcie prowadzące od węzłów docelowych di w kierunku węzła Źródłowego s. Ostatnia faza (linie 53-64) nie jest konieczna, a jej celem jest usunięcie zbędnych węzłów z zbudowanego drzewa multicast. Polega ona na przejściu ścieżek od każdego z węzłów docelowych di w kierunku Źródła s i jednoczesne budowanie drzewa składającego się tylko z odwiedzonych węzłów. Wynikiem algorytmu RDCMA jest wektor ON2 o rozmiarze |V | zawierający wpisy dla każdego węzła. Jeżeli ON2 [wi ] = 0 to węzeł wi nie należy do drzewa wynikowego. Jeżeli ON2 [wi ] > 0 to węzeł wi należy do drzewa wynikowego, a wartość ON2 [wi ] wskazuje na poprzednika węzła wi na ścieżce z wierzchołka Źródłowego s do wierzchołka wi . Wektor ON otrzymany po zakończeniu czwartej fazy wykonania algorytmu może być także wynikiem algorytmu RDCMA. Jak już wcześniej wspomniano prócz węzłów tworzących drzewo wynikowe ON2 , wektor ten zawiera również węzły nie należące do drzewa, ale budując na jego podstawie ścieżkę z dowolnego węzła docelowego do Źródła uzyskany wynik będzie identyczny jak dla wektora ON2 . Takie uproszczenie zmniejsza liczbą koniecznych do wykonania operacji. Złożoność obliczeniowa algorytmu określono w następujący sposób. Sortowanie węzłów docelowych malejąco można zrealizować w czasie mlog(m), gdzie m to liczba węzłów docelowych. Podczas poszukiwania węzłów zmiany algorytm może odwiedzić V − 1 węzłów. Następnie budując pomocnicze drzewo wynikowe (w trzeciej i czwartej fazie) algorytm odwiedza każdy węzeł co najwyżej raz dokonując obliczeń nie zależnych od wielkości sieci. W ostatniej fazie algorytmu budowany jest wektor drzewa wynikowego, a każdy węzeł może zostać odwiedzony najwyżej jednokrotnie. Całkowita liczba operacji wykonywanych przez algorytm RDCMA wynosi mlog(m) + 3V − 1. Gdy dla każdego z wierzchołków docelowych di spełniona jest nierówność: D(PLC (s, di )) ¬ ∆, to za pomocą algorytmu RDCMA zbudowane zostanie drzewo najkrótszych pod względem kosztu ścieżek łączących węzeł Źródłowy i węzły docelowe. Identyczny wynik można uzyskać używając do konstrukcji drzewa algorytmu Djikstra [10] dla pojedynczej metryki kosztu lub algorytmu DCMA. Lemat 2: Drzewo otrzymane w wyniku działania algorytmu RDCMA nie zawiera pętli. Dowód: W pierwszej kolejności algorytm wyszukuje węzły zmiany. Następnie znalezione węzły zmiany zostają przyłączone do Źródła wykorzystując ścieżki o minimalnym opóźnieniu. Powstałe w ten sposób drzewo nie zawiera pętli. Następnie węzły docelowe, które nie należą jeszcze do drzewa łączą się z nim po ścieżkach minimalnego kosztu. Budowa każdej ścieżki zostaje przerwana gdy algorytm napotka węzeł należący już do drzewa wynikowego, a ścieżki minimalnego kosztu łacząc się ze sobą tworzą strukturę pozbawioną pętli. Zatem drzewo otrzymane w wyniku działania algorytmu RDCMA nie zawiera pętli. Lemat 3: Drzewo będące wynikiem działania algorytmu RDCMA zawsze spełnia ograniczenie opóźnienia jeżeli możliwa jest konstrukcja takiego drzewa. Dowód: Po znalezieniu węzłów zmiany i połączeniu ich z węzłem Źródłowym z wykorzystaniem ścieżek minimalnego opóźnienia należy przyłączyć węzły docelowe. Poruszając się z dowolnego węzła docelowego w kierunku Źródła po ścieżce minimalnego kosztu możliwe są następujące sytuacje: 1. Gdy dla węzła docelowego d spełniony jest warunek D(PLC (s, d)) ¬ ∆, to zmiana ścieżki minimalnego kosztu na ścieżkę minimalnego opóźnienia może naśtąpić w dowolnym węźle na ścieżce minimalnego kosztu bez naruszenia ograniczenia opóźnienia. 2. Natomiast dla D(PLC (s, d)) > ∆ algorytm porusza się w kierunku znalezionego wcześniej węzła zmiany dla danego wierzchoła. Jeżeli dotrze do węzła zmiany to dalsza ścieżka do Źródła prowadzi ścieżką minimalnego opóźnienia i nie narusza ograniczenia opóźnienia. Jeżeli przed dotarciem do węzła zmiany algorytm dotarł do węzła należącego już do drzewa, wtedy dalsza ścieżka do Źródła może prowadzić: (a) bezpośrednio po ścieżce minimalengo opóźnienia, (b) poprzez węzła zmiany po ścieżce minimalengo kosztu skąstruowanej wcześniej dla innego wierzchołka docelowego posiadającego ten sam węzeł zmiany co aktualny wierzchołek docelowy i dalej po ścieżce minimalnego opóźnienia. Oba przypadki nie naruszają ograniczenia opóźnienia, ponieważ nie możliwe jest aby ścieżka minimalnego kosztu wychodząca z danego wierzchołka docelowego prowadziła dalej niż do węzła zmiany danego wierzchołka. 7. Testowe topologie sieci Do generacji losowych sieci użyty został muliplikatywny generator liczb losowych o rozkładzie równomiernym w przedziale P(0, 1) postaci: Xn+1 = (A · Xn ) · mod(M ) Wn+1 = Xn+1 /2147483647, (7) gdzie: A = 16807, M = 2147483647, a Xn - to aktualne jądro generatora. Dla każdej pary wierzchołków w grafie istnienie krawędzi określone zostało losowo za pomocą generatora muliplikatywnego na podstawie ustalonego z góry (podczas generacji topologii) prawdopodobieństwa. Dla każdej krawędzi losowane były również metryki kosztu i opóźnienia w przedziale od 1 do 100. Prawdopodobieństwa istnienia krawędzi dobierane były tak, aby uzyskać rządany stopień węzła grafu. Stopień węzła grafu (average node degree) określony jest jako: 2m , (8) dav = n gdzie n - liczba węzłów, a m - liczba krawędzi. W badaniach efektywności algorytmu RDCMA wykorzystane zostały również modele Waxmana [25] i Barabasi-Albert [3] wygenerowane za pomocą aplikacji BRITE (Boston University Representative Internet Topology Generator) [19]. Problem generowania topologii służących do efektywnego porównywania algorytmów routingu oraz modele generowane za pomocą aplikacji BRITE zostały szerzej omówione w artykule [23]. Zaimplementowany w aplikacji BRITE model Waxmana generuje sieci w sposób losowy i nie modeluje struktury rzeczywistych sieci. Natomiast model Barabasi-Albert uwzględnia występowanie praw potęgowych w rozkładzie węzłów i krawędzi, dzięki czemu topologie wygenerowane z jego pomocą znacznie lepiej odzwierciedlają strukturę Internetu. 8. Wyniki badań Podczas badań porównane zostały algorytmy RDCMA, DCMA [2], CSPT [9], DCSP (zmodyfikowany) [20], BSMA [27]. Parametr kmax algorytmu DCSP wynosił 20. Dla algorytmu BSMA maksymalna liczba ścieżek sprawdzana po usunięciu superkrawędzi kmax = 1. Sprawdzono również skuteczność połączenia algorytmów DCMA i RDCMA oznaczonego dalej jako BEST. Połączenie to polega na tym, że drzewa wygenerowane dla danej topologii przez algorytmy DCMA i RDCMA są porównywane pod względem kosztu. Dla BEST wybierane jest drzewo o mniejszym koszcie. Wszystkie wykresy przedstawiają efektowność algorytmów. Pod pojęciem efektywności algorytmu rozumieć należy stosunek sumy kosztów drzew multicast, otrzymanych za pomocą danego algorytmu, do sumy kosztów drzew ścieżek minimalnego opóźnienia (LPD) otrzymanych dla badanych topologii. Generując topologie sieci zaproponowaną metodą losową bardzo trudno uzyskać grafy o niskim stopniu węzła dav . W badaniach średni stopień węzła użytych topologii wynosił w przybliżeniu dav = 9. Wynikowe drzewo multicast otrzymane za pomocą algorytmów DCMA, RDCMA, BEST, CSPT, i DCSP dla wartości ograniczenia opóźnienia ∆ większego lub równego LCmax (opóźnienie najdłuższej ścieżki w drzewie najkrótszych pod względem kosztu ścieżek) jest identyczne jak drzewo najkrótszych pod względem kosztu ścieżek. Dlatego przy testowaniu algorytmów jako górną granicę ograniczenia opóźnienia ∆ przyjęto opóźnienie LCmax . Dolną granicą jest opóźnienie najdłuższej ścieżki w drzewie najkrótszych pod względem opóźnienia ścieżek, czyli LDmax . Na rysunkach 2(a) i 2(b) przedstawiono średni koszt drzewa multicast w stosunku do kosztu drzewa najkrótszych pod względem opóźnienia ścieżek (LPD) w zależności od wartości ograniczenia opóźnienia ∆ dla różnych wielkości grupy multicast m oraz N = 150. Do generacji topologii użyto metody omówionej wcześniej metody losowej. Z badań wynika, że zaproponowany algorytm RDCMA uzyskuje lepsze wyniki niż algorytm DCMA dla większych liczebności grup multicast i niskich wartości ograniczenia opóźnienia ∆ (zbliżonych do LDmax ). Połączenie algorytmów DCMA i RDCMA w BEST skutkuje 2-3% poprawą efektywności w stosunku do DCMA co przedstawia rysunek 4(a). Efektywność BEST jest bliska efektywności heurystki DCSP, której głównym zadaniem jest minimalizacja średniego kosztu ścieżki. Należy zwrócić uwagę, że teoretyczna złożoność obliczeniowa BEST jest niższa niż DCSP. Heurystyka BSMA prezentuje najlepsze wyniki, ale jej czas wykonania jest wielokrotnie dłuższy niż pozostałych algorytmów. Najniższą efektywność osiąga najprostszy z algorytmów CSPT. Wpływ średniego stopnia węzła dav na efektywność algorytmów przedstawiony został na wykresie 3(a). Wraz ze wzrostem gęstości połączeń w sieci efektywność wszystkich badanych algorytmów wzrasta. Dla niższych wartości dav algorytmy DCMA, RDCMA, BEST, CDKS i DSCP wykazują bardzo niską efektywność i bardzo podobny średni koszt zbudowanych drzew multicast. Wynika to mniejszej z różnicy między kosztem drzewa ścieżek minimalnego kosztu LP C i drzewa ścieżek minimalnego opóźnienia LP D dla niższych dav . W topologiach sieci wygenerowanych za pomocą aplikacji BRITE metryki kosztu i opóźnienia są zależne od siebie. Dla takiego modelu sieci algorytmy DCMA, RDCMA, CSPT i DCSP wspólnie oznaczone dalej jako REST generują drzewa multicast, których różnica kosztu względem drzewa LP D jest rzędu 0-0, 1% zarówno dla topologii Waxmana jaki i Barabasi-Albert. Wynika to z faktu, że różnica kosztu między drzewami ścieżek minimalnego opóźnienia LP D i minimalnego kosztu LP C wynosi również 0-0, 1%. Można powiedzieć, że heurystyki REST są całkowicie nieskuteczne dla topologii wygenerowany przez BRITE, dlatego nie przedstawiono żadnych wykresów efektywności dla takiego modelu sieci. Wykresy 4(b) i 3(b) przedstawiają efektywność algorytmów w stosunku do liczebności grupy multicast oraz średniego stopnia węzła dav dla topologii otrzymanych za pomocą aplikacji BRITE z wygenerowanymi losowo metrykami opóźnienia krawędzi. Algorytm BSMA jest znacznie skuteczniejszy dla topologii Waxmana niż Barabasi-Albert. Wpływ liczebności grupy multicast na efektywność drzewa zbudowanego na podstawie heurystyki BSMA jest znaczący jedynie dla topologii Waxman. Dla modelu Barabasi-Albert efektywność BSMA ulega nieznacznym wahaniom. Zwiększanie średniego stopnia węzła dav zwiększa efektywność algorytmu BSMA dla obu modeli topologii. Pozostałe algorytmy (REST) wykazują niską efektywność, mimo zastosowania losowych metryk opóźnienia. Jedynie dla małych grup multicast efektywność REST jest podobna do BSMA. Wraz ze wzrostem liczebności grupy mulicast efektywność wszystkich algorytmów spada. Dla topologii wygenerowanego za pomocą zaproponowanej metody losowej, zależność ta jest odwrotna. 9. Podsumowanie W wyniku przeprowadzonych badań porównawczych algorytmów, wykazano kluczowy wpływ topologii na jakich testowane były heurystyki na efektywność otrzymanych rozwiązań. Dla sieci, wygenerowanych na podstawie modelu Barabasi-Albert, algorytmy DCMA, RDCMA, CSPT i DCSP wykazują brak skuteczności gdy metryki kosztu oraz opóźnienia są zależne od siebie i odpowiadają wygenerowanym przez aplikacje BRITE. Dla metryk wygenerowanych losowo opóźnienia skuteczność wspomnianych algorytmów jest niska dla średniego stopnia węzła cechującego rzeczywiste sieci (dav od 3 do 5) i rośnie wraz ze wzrostem dav . Jedynym z testowanych algorytmów, który potrafił budować efektywne pod względem kosztu drzewa we wszystkich badanych modelach sieci okazał się BSMA. Niestety z powodu bardzo dużej złożoności obliczeniowej heurystyka ta nie nadaje się do praktycznego zastosowania. Natomiast zaproponowany algorytm RDCMA z powodu małej złożoności obliczeniowej może być wykorzystywany w dużych, gęstych, sieciach o wysokim średnim stopniu węzła dav . (a) m = 10 (b) m = 90 Rys. 2. Efektywność algorytmów w zależności od wartości ograniczenia opóźnienia ∆, dla różnych wielkości grupy multicast m, N = 150, dav = 9, 2, topologie wygenerowane metodą losową, (a) dav , N = 80, m = 40, topologie losowe (b) N = 100, m = 50, BRITE, losowe opóźnienie Rys. 3. Efektywność algorytmów heurystycznch w zależności od stopnia węzła (a) N = 150, dav = 9, 2, topologie losowe (b) N = 100, dav = 4, BRITE, losowe opóźnienie Rys. 4. Efektywność algorytmów heurystycznch w zależności od wielkości grupy 10. Pseudo kod algorytmu RDCMA 6: for i ⇐ 1 to |V | do 7: ON [i] ⇐ 0; 8: end for Legenda: a - aktualny węzeł d - aktualny węzeł docelowy z - aktualny węzeł zmiany ON - wektor wynikowy pomocniczy ON2 - wektor wynikowy 9: for i ⇐ 1 to |S| do 10: Q[i] ⇐ 0; 11: end for Dane wejściowe: s - węzeł Źródłowy; S - zbiór węzłów docelowych (di ∈ S); ∆ - maksymalne opóźnienie ścieżki; VD - wektor opóźnienia, który zawiera: VD [x] ⇐ D(PLD (s, x)); LD lhop[x] - poprzednik węzła x na ścieżce minimalnego opóźnienia PLD (s, x) VC - wektor kosztu, który zawiera: VC [x] ⇐ D(PLC (s, x))); LC lhop[x] - poprzednik węzła x na ścieżce minimalnego kosztu PLC (s, x) indent=2em 1: for i ⇐ 1 to |S| do 2: if VD [di ] > ∆ then 3: Znalezienie drzewa nie możliwe. Zakończ działanie; 4: end if 5: end for 14: for i ⇐ 1 to |S| do 15: a ⇐ di ; d ⇐ di ; 16: D(PLC (a, d)) ⇐ 0; 17: if VC [d] > ∆ then 18: while VD [a] + D(PLC (a, d)) ¬ ∆ do 19: if ON [a] 6= 0 then 20: z ⇐ 0; 21: break; 22: end if 23: z ⇐ a; 24: ON [z] ⇐ 1; 25: a ⇐ LC lhop[a]; 26: D(PLC (a, d)) ⇐ VC [d] − VC [a]; 27: end while 28: Q[d] ⇐ z; 29: end if 30: end for 12: Sort(S); 13: ON [s] ⇐ s; 31: for i ⇐ 1 to |V | do 32: ON [i] ⇐ 0; 33: end for 34: ON [s] ⇐ s; 35: for i ⇐ 1 to |S| do 36: if Q[i] > 0 then 37: a ⇐ Q[i]; 38: while ON [a] = 0 do 39: ON [a] ⇐ LD lhop[a]; 40: a ⇐ LD lhop[a]; 41: end while 42: end if 43: end for 44: for i ⇐ 1 to |S| do 45: if Q[i] > 0 then 46: a ⇐ di ; 47: while ON [a] = 0 do 48: ON [a] ⇐ LC lhop[a]; 49: a ⇐ LC lhop[a]; 50: end while 51: end if 52: end for 53: for i ⇐ 1 to |V | do 54: ON2 [i] ⇐ 0; 55: end for 56: ON2 [s] ⇐ s; 57: for i ⇐ 1 to |S| do 58: a ⇐ di ; 59: while ON2 [a] = 0 do 60: ON2 [a] ⇐ ON [a]; 61: a ⇐ ON [a]; 62: end while 63: end forON2 ; SPIS LITERATURY [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] P. Almquist. Type of service in the internet protocol suite. RFC 1349, IETF, 1992. Marwan Krunz Baoxian Zhang, Changjia Chen. A fast delay-constrained multicast routing algorithm. Proceedings of ICC. IEEE, Helsinki, Finland, 2001. A. L. Barabasi, R. Albert. Emergence of scaling in random networks. Science, strony 509–512, 1999. R. Bellman. On a routing problem. Quarterly of Applied Mathematics, 16(1):87–90, 1958. F. Tobagi C. Noronha. Optimum routing of multicast streams. INFOCOM, strony 865–873, 1994. J. S. Crawford. Multicast routing: Evaluation of a new heuristic. Master’s thesis, Computer Science, University of Kent at Canterbury, 1994. J. S. Crawford, A. G. Waters. A new heuristic for ATM multicast routing. Proceedings of 2nd IFIP Workshop on Performance Modeling and Evaluation of ATM Networks, strony 8/1–8/9, July 1994. J. S. Crawford, A. G. Waters. Low-cost atm multimedia routing with constrained delays. Multimedia Telecommunications and Applications (3rd COST 237 Workshop, Barcelona, Spain), strony 23–40, Nov 1996. J. S. Crawford, A. G. Waters. Heuristics for ATM Multicast Routing. Proceedings of 6th IFIP Workshop on Performance Modeling and Evaluation of ATM Networks, strony 5/1–5/18, July 1998. E. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik, 1:269–271, 1959. M. Doar, I. Leslie. How bad is naive multicast routing? IEEE INFOCOM’ 1993, strony 82–89, 1993. T.P. Yum G. Feng. Efficient multicast routing with delay constraints. International Journal of Communication Systems, strony 181–195, 1999. C. Ravikumar G. Kumar, N. Narang. Efficient algorithms for delay-bounded minimum cost path problem in communication networks. 5th International Conference on High Performance Computing, strony 141–147, 1998. C. Ravikumar G. Kumar, N. Narang. Effcient algorithms for delay bounded multicast tree generation for multimedia applications. 6th International Conference on High Performance Computing, strony 169–173, 1999. A. Juttner, B. Szviatovszki, I. Mecs, Z. Rajko. Lagrange Relaxation Based Method for the QoS Routing Problem. IEEE INFOCOM’ 2001, 2001. R. Karp. Reducibility among combinatorial problems. Complexity of Computer Computations, strony 85–104, 1972. Vachaspathi P. Kompella, Joseph Pasquale, George C. Polyzos. Multicasting for Multimedia Applications. INFOCOM, strony 2078–2085, 1992. L. Kou, G. Markowsky, L. Berman. A fast algorithm for Steiner trees. Acta Informatica, (15):141–145, 1981. A. Medina, A. Lakhina, I. Matta, J.Byers. BRITE: An Approach to Universal Topology Generation. IEEE/ACM MASCOTS, strony 346–356, 2001. Mohamed F. Mokbel. New Algorithms for Multicast Routing in Real Time Networks, 1999. J. Moy. Ospf version 2. RFC 1583, IETF, 1994. Carlos A. S. Oliveira, Panos M. Pardalos. A survey of combinatorial optimization problems in multicast routing. Computers & Operations Research, 32:1953–1981, 2005. Maciej Piechowiak, Piotr Zwierzykowski. Modelowanie topologii internetu. Poznańskie Warsztaty Telekomunikacyjne’2004, Poznań, Grudzień 2004. Z. Wang, J. Crowcroft. Quality-of-service routing for supporting multimedia applications. IEEE Journal on Selected Area in Communications, 14(7):1228–1234, 1996. B. Waxmann. Routing of multipoint connections. IEEE Journal on Selected Area in Communications, 6:1617– 1622, 1988. R. Widyono. The design and evaluation of routing algorithms for realtime channels. Technical Report TR-94-024, University of California at Berkely, 1994. Qing Zhu, M. Parsa, J. J. Garcia-Luna-Aceves. A sourcebased algorithm for delay-constrained minimum-cost multicasting. INFOCOM ’95: Proceedings of the Fourteenth Annual Joint Conference of the IEEE Computer and Communication Societies (Vol. 1)-Volume, strona 377. IEEE Computer Society, 1995.