streszczenie rozprawy doktorsk-43
Transkrypt
streszczenie rozprawy doktorsk-43
Instytut Badań Systemowych Polskiej Akademii Nauk Robert Dekowski Zastosowanie zmodyfikowanej metody symulowanego wyŜarzania do optymalizacji przepustowości sieci komputerowych Streszczenie rozprawy doktorskiej napisanej pod kierunkiem prof. nadzw. dr hab. inŜ. Jacka Malinowskiego. Warszawa 2012 Wstęp Dynamiczny rozwój technologii informatycznych, jaki daje się zaobserwować w ciągu ostatnich kilkudziesięciu lat prowadzi do ciągle zwiększającego się ruchu sieciowego, stale rosnącego zapotrzebowania na przepustowość, a więc konieczności wprowadzania rozwiązań optymalizujących wykorzystanie zasobów sieciowych. Moja praca dotyczy problemu wydajności sieci komputerowych, a głównym rozwaŜanym w niej zagadnieniem jest optymalizacja przepustowości tych sieci w aspekcie działania protokołu OSPF. Opracowane rozwiązanie skutkuje zwiększeniem efektywnej przepustowości sieci w tych przypadkach, w których jest to moŜliwe. To, czy moŜliwość taka istnieje, okazuje się w wyniku porównania przepustowości osiąganych przy zastosowaniu dwóch typów równowaŜenia obciąŜenia tj. tylko z udziałem tras o koszcie równym optymalnemu (równowaŜenie typu RK), oraz, dodatkowo, z udziałem niektórych tras o koszcie większym od optymalnego (równowaŜenie typu NK). Porównanie to jest dokonywane w czasie rzeczywistym, co umoŜliwiają odpowiednie (autorskie) algorytmy. Na podstawie otrzymywanych wyników podejmowana jest decyzja o włączeniu (lub nie) równowaŜenia NK, a w konsekwencji uzyskanie w czasie rzeczywistym poprawy przepustowości sieci (w miarę moŜliwości). Wybór protokołu OSPF jako przedmiotu usprawnienia wynika z tego, Ŝe jest on protokołem otwartym oraz szeroko wykorzystywanym w średnich i duŜych sieciach komputerowych. W pracy zostało przedstawione rozwiązanie hybrydowe (scentralizowano-rozproszone), w którym występuje centralna stacja zarządzająca oraz zarządzane przez nią routery. Na podstawie spodziewanej charakterystyki ruchu sieciowego, stacja zarządzająca wyznacza pewne współczynniki (beta) – po jednym dla kaŜdego routera – i co pewien czas dystrybuuje je do tych routerów. Istotne jest, Ŝe całe rozwiązanie musi działać w czasie rzeczywistym, a wyznaczone wartości współczynników beta obowiązują tylko w krótkim przedziale czasu. Na podstawie tych współczynników routery budują swoje tablice routingu z uwzględnieniem tras o kosztach większych od optymalnego. Do wyznaczenia wartości współczynników beta stacja zarządzająca wykorzystuje algorytm heurystyczny – symulowanego wyŜarzania (SW). NaleŜy zaznaczyć, Ŝe istnieją teŜ inne sposoby optymalizacji przepustowości sieci komputerowych, w tym z wykorzystaniem metod dokładnych, np. Simplex, lecz jak zostało w pracy pokazane, jej złoŜoność jest znacznie większa od metody SW. W konsekwencji, zastosowanie metody dokładnej mogłoby skutkować tym, Ŝe rozwiązanie przestanie działać w czasie rzeczywistym, natomiast odpowiednio zastosowana metoda SW takiego ryzyka jest pozbawiona. Teza mojej pracy składa się z dwóch części. Pierwsza część brzmi: „odpowiednie zastosowanie równowaŜenia obciąŜenia typu NK moŜe prowadzić do wzrostu przepustowości sieci komputerowej”. Druga część mówi, Ŝe „zasadnym jest stosowanie algorytmów heurystycznych do optymalizacji tejŜe przepustowości”. Głównym zadaniem podejmowanym w pracy jest optymalizacja przepustowości sieci komputerowych. Jest ono formułowane jako zadanie programowania liniowego (ang. Linear Programming) i programowania niewypukłego rozdzielnego (ang. Non-Convex Separable Programming). Zadanie programowania liniowego zostało sformułowane do minimalizowania wartości współczynników obciąŜania (wysycenia) poszczególnych łączy sieci. Warto podkreślić, Ŝe minimalizacja wartości tych współczynników w sposób jednoznaczny, przekłada się na maksymalizację przepustowości optymalizowanej sieci. Innymi słowy, gdy poszczególne łącza są mniej obciąŜone (posiadają mniejszą wartość współczynnika obciąŜenia) to wówczas pozostałą część ich przepustowości moŜna wykorzystać do przesłania dodatkowego ruchu sieciowego. Natomiast zadanie NCSP zostało sformułowane do maksymalizowania wartości przepustowości środowiska sieciowego obliczonej z wykorzystaniem (niŜej przedstawionego) algorytmu 3. Istotnym jest, Ŝe w przypadku zastosowania metody Simplex przepustowość sieci jest rozumiana nieco inaczej niŜ w przypadku definiowania jej za pomocą funkcjonału niewypukłego o zmiennych rozdzielonych. W przypadku pierwszym występuje minimalizacja obciąŜenia poszczególnych łączy, zaś w przypadku drugim maksymalizacja przepustowości poszczególnych tras komunikacji. Pierwszoplanowym celem pracy jest wykazanie zasadności stosowania algorytmów heurystycznych (przede wszystkim symulowanego wyŜarzania) do optymalizacji przepustowości sieci komputerowej. Dalszym celem jest wykazanie słuszności stosowania równowaŜenia obciąŜenia typu NK w protokole OSPF w sytuacji, kiedy przeciąŜeniu ulega jeden z interfejsów routera, na którym działa ten protokół. Proponowane rozwiązanie zostało zaimplementowane w wirtualnej1 sieci komputerowej wykorzystującej przystosowany specjalnie do jej potrzeb protokół OSPF. Dla osiągnięcia wyŜej wymienionych celów wykonano następujące zadania opisane w kolejnych rozdziałach pracy: • scharakteryzowano zastosowania oraz moŜliwości protokołu OSPF; • opracowano autorski sposób wyznaczania tras o nierównych kosztach oraz równowaŜenia obciąŜenia z udziałem tych tras; • zbadano wpływ zastosowanego rozwiązania na wydajność sieci komputerowej; • formalne zdefiniowano problem optymalizacji przepustowości sieci komputerowej jako zadania programowania liniowego i niewypukłego rozdzielnego; • przeprowadzono dobór parametrów, statystyk oraz narzędzi mających słuŜyć wykazaniu słuszności postawionej tezy; • przeprowadzono odpowiednie badania, dotyczące wykazania słuszności przyjętej tezy badawczej; • przeanalizowano zebrane informacje wraz z odpowiednimi wnioskami; • dokonano porównania wydajności nowej metody z wydajnością metody dokładnej oraz z innymi wybranymi metodami heurystycznymi; • przedstawiono przykładowe zastosowanie badanego rozwiązania. Rozdział 1. RównowaŜenie obciąŜenia z wykorzystaniem tras o koszcie równym i większym od optymalnego Nowoczesny protokół routingu przeznaczony do pracy w średnich i duŜych sieciach komputerowych, powinien obsługiwać równowaŜenie obciąŜenia zarówno z udziałem tras o koszcie równym optymalnemu jak teŜ tras o koszcie większym od optymalnego. 1.1 Opis zaproponowanego rozwiązania Opracowane rozwiązanie polega na dynamicznym włączaniu i wyłączaniu równowaŜenia obciąŜenia typu NK, w sytuacji kiedy przeciąŜeniu ulega przynajmniej jeden z interfejsów routera. Do przeprowadzenia takiego działania niezbędnym jest: • zdefiniowanie warunków koniecznych do włączenia (wyłączenia) równowaŜenia obciąŜenia typu NK; • utworzenie tablicy routingu zawierającej odpowiednie wpisy; • rozdzielenie ruchu sieciowego na róŜne trasy według przyjętego algorytmu. 1 Poprzez określenie „wirtualna sieć komputerowa” naleŜy rozumieć hipotetyczną sieć komputerową zaproponowaną przez autora na potrzeby przedmiotowej pracy. 1.2 Warunki niezbędne do włączenia (wyłączenia) równowaŜenia obciąŜenia typu NK W przedstawionym rozwiązaniu wprowadza się dwa parametry konfiguracyjne ustawiane przez administratora danego routera. Pierwszy z nich o nazwie lbstart (ang. load balancing start) jest wartością z przedziału domkniętego <0,1> odpowiadającą obciąŜeniu interfejsu, po przekroczeniu którego następuje włączenie równowaŜenia obciąŜenia. Przykładowo dla lbstart=0.9 równowaŜenie obciąŜenia jest włączane po przekroczeniu obciąŜenia (któregokolwiek z interfejsów) równego 90%. Analogicznie, drugi parametr o nazwie lbstop słuŜy do dynamicznego wyłączania równowaŜenia obciąŜenia w sytuacji, kiedy obciąŜenie interfejsu (interfejsów) osiągnie wartość niŜszą od przyjętej. Wartości wspomnianych parametrów powinny być ustalane indywidualnie dla danej sieci na podstawie odpowiedniej analizy ruchu sieciowego. W tym miejscu warto zaznaczyć, Ŝe im większa liczba interfejsów zostaje przeciąŜona tym router jest „bardziej skłonny” do akceptowania tras alternatywnych (o koszcie nieoptymalnym), lecz co istotne, prowadzących przez inne interfejsy wyjściowe niŜ te, przez które prowadzą trasy optymalne. Skłonność do akceptowania tras o koszcie nieoptymalnym wraz ze wzrostem liczby przeciąŜonych interfejsów, wynika bezpośrednio z wzoru (1.1). 1.3 Utworzenie tablicy routingu zawierającej odpowiednie wpisy W opracowanym rozwiązaniu tablice routingu poszczególnych routerów powinny na stałe zawierać wpisy określające wszystkie trasy optymalne (interfejsy wyjściowe) do kaŜdej znanej sieci (oraz oczywiście adres interfejsu przez który prowadzi trasa domyślna). Dodatkowo w sytuacji, kiedy pojawiają się przeciąŜone interfejsy, do tablicy tej powinny zostać dodane inne trasy (o koszcie nieoptymalnym) prowadzące do znanych sieci. W przedstawionej metodzie, trasa alternatywna prowadząca do danej sieci zostaje dodana do tablicy routingu, gdy spełnia odpowiedni warunek tj. przedstawiony wzorem (1.1). c ≤ copt* αi * βi (1.1) gdzie: i – numer routera; c – koszt analizowanej trasy; copt - koszt trasy optymalnej; αi – liczba przeciąŜonych interfejsów routera ri przez które prowadzą trasy do sieci docelowej; βi - współczynnik wyznaczany osobno dla kaŜdego routera ri przez stację zarządzającą z wykorzystaniem metody symulowanego wyŜarzania. Dokładne uzasadnienie przyjętej postaci powyŜszego warunku znajduje się w mojej pracy. Warto dodać, Ŝe βi jest parametrem słuŜącym do dostrojenia wyznaczonego rozwiązania do istniejącej topologii oraz charakterystyki ruchu sieciowego. KaŜdy router z danego obszaru posiada jeden przypisany do niego parametr beta. Wartości tych parametrów generowane są centralnie przez stację zarządzającą i co pewien czas dystrybuowane do wszystkich zarządzanych routerów. Sposób generowania wspomnianych parametrów jest tak dobrany Ŝeby globalnie maksymalizować przepustowość całego obszaru (z uwzględnieniem spodziewanej charakterystyki ruchu sieciowego w danym interwale czasu) i stanowi główny przedmiot badań. Wyznaczanie wartości parametrów beta jest realizowane z zastosowaniem metody SW. Schemat blokowy oraz werbalny opis algorytmu (w pracy ma on nr 1) słuŜącego do budowy tablicy routingu (z uwzględnieniem tras o koszcie nieoptymalnym) znajdują się w rozprawie, natomiast w tym miejscu warto bardziej szczegółowo wyjaśnić, jaka jest jego rola oraz powiązanie z algorytmem SW. Mianowicie, algorytm ten działa indywidualnie na kaŜdym z routerów. Jedną z jego danych wejściowych jest wartość współczynnika beta. Na podstawie tej wartości i z wykorzystaniem nierówności (1.1) algorytm podejmuje decyzję, które trasy powinny zostać dodane do tablicy routingu, a które nie. 1.4 Rozdzielenie ruchu sieciowego na róŜne trasy według przyjętego algorytmu Przede wszystkim proces decyzyjny rozdziału pakietów powinien w jak najmniejszym stopniu wpływać na wydajność routera. NaleŜy zaznaczyć, Ŝe obecna specyfikacja protokołu OSPF dopuszczając równowaŜenie obciąŜenia typu RK, nie definiuje sposobu w jaki pakiety powinny być rozdzielane pomiędzy poszczególne interfejsy. Na potrzeby pracy zostały wybrane dwa sposoby. Pierwszy sposób polega na zapamiętywaniu źródłowego adresu IP i kierowaniu pakietów cyklicznie na poszczególne trasy. Przykładowo, dla dostępnych trzech tras t1, t2, t3 prowadzących do danej sieci, pakiety z adresu „A” są kierowane trasą t1, z adresu „B” trasą t2, z adresu „C” trasą t3 z adresu „D” trasą t1 itd. Drugi sposób polega na cyklicznym podziale pakietów pomiędzy wszystkie dostępne trasy prowadzące do danej sieci bez względu na ich adresy źródłowe, porty czy inne parametry. Na koniec warto zaznaczyć, Ŝe sposób rozdziału pakietów nie jest zagadnieniem trywialnym, więcej informacji o tym zagadnieniu znajduje się np. w [1] [2] [3] [13] [14]. Rozdział 2. Teoretyczne aspekty głównego zagadnienia badawczego Rozdział ten zawiera opis teoretycznych aspektów związanych z optymalizacją ruchu sieciowego. Przedstawiono w nim model środowiska sieciowego, sformułowano zadania optymalizacji z wykorzystaniem metody dokładnej tj. programowania liniowego (Simplex), oraz metody SW (NCSP). Dla kompletności naleŜy wyjaśnić jakie jest powiązanie pomiędzy zagadnieniami PL i NCSP oraz metodami Simplex i SW. Mianowicie w pracy badana jest moŜliwość zwiększenia przepustowości sieci komputerowej poprzez zastosowanie równowaŜenia obciąŜenia typu NK. Badanie to zostało przeprowadzone z wykorzystaniem dwóch róŜnych metod tj.: dokładnej i heurystycznej. W pierwszym przypadku, problem został sformułowany jako zadanie programowania liniowego, a narzędziem słuŜącym do jego rozwiązania była metoda Simplex. W przypadku drugim, problem został zdefiniowany jako zadanie NCSP, zaś narzędziem słuŜącym do jego rozwiązania była zmodyfikowana metoda SW. NaleŜy dodać, Ŝe porównanie efektywności obydwu rozwiązań stanowi bardzo waŜną część pracy. 2.1 Sformułowanie zadań optymalizacji W niniejszym podrozdziale zadanie optymalizacji przepustowości sieci komputerowej jest sformułowane jako zadanie programowania liniowego oraz zadanie programowania NCSP. WaŜnym jest, Ŝe dla kaŜdej z uŜytych metod (dokładnej Simplex i przybliŜonej SW) inaczej definiowana jest wydajność sieci. W przypadku metody Simplex jest ona określona funkcjonałem liniowym, a w przypadku metody SW funkcjonałem niewypukłym o zmiennych rozdzielonych. W pracy rozpatrywane są dwa typy zadań programowania matematycznego, w celu porównania ich efektywności oraz złoŜoności – co stanowi tezę pracy. 2.1.1 Sformułowanie zagadnienia optymalizacji jako zadania programowania liniowego Przed formalnym zdefiniowaniem zadania optymalizacji przepustowości sieci jako zadania programowania liniowego warto przedstawić krótki opis do niego wprowadzający. Mianowicie, w przedstawionym modelu środowisko sieciowe rozumiane jest jako graf skierowany, w którym wierzchołki reprezentowane są przez routery, a krawędzie poprzez łącza sieci. KaŜde łącze posiada indywidualnie przypisany do niego współczynnik obciąŜenia (wysycenia), który przyjmuje wartości nieujemne i nie większe niŜ nominalna przepustowość tego łącza. W omawianym zadaniu optymalizacja jest przeprowadzana poprzez minimalizację wartości tych współczynników (zmienne decyzyjne). Wspomniana minimalizacja odbywa się dla kaŜdego łącza i kaŜdej komunikującej się pary routerów. Przechodząc do formalnego zdefiniowania zadania optymalizacji przepustowości sieci jako zadania programowania liniowego przyjmijmy następujące oznaczenia: m – liczba routerów – wierzchołków grafu. R – router {Ri: 1 ≤ i ≤ m } naleŜący do zbioru routerów {R1, ...,Rm}. n – liczba łączy – krawędzi grafu. E – zbiór łączy, E={e1,...,en}oraz {ej: 1 ≤ j ≤ n }. πj – nominalna przepustowość łącza ej, 1 ≤ j ≤ n . r – liczba par komunikujących się routerów. ( R1k , R2k ) – k-ta para komunikujących się routerów, indeks górny oznacza numer pary, indeks dolny oznacza kolejność w parze, tzn. R1k jest routerem początkowych k-tej pary, a R2k jej routerem końcowym, 1 ≤ k ≤ r . x kj – współczynnik obciąŜenia łącza ej przez parę routerów ( R1k , R2k ), ilość danych przesłanych między routerami tej pary, x kj ∈< 0, π j > , 1 ≤ k ≤ r , 1 ≤ j ≤ n . Zmienne decyzyjne w sformułowanym poniŜej zadaniu optymalizacji. k x - wektor współczynników obciąŜenia łączy dla pary numer k, x k = [ x1k ,..., x nk ]T , 1 ≤ k ≤ r . dk – całkowita ilość danych do przesłania między routerami pary ( R1k , R2k ), 1 ≤ k ≤ r . D – macierz ruchu sieciowego o rozmiarach rxm i elementach δ ki zdefiniowanych następująco: δ ki = d k jeśli Ri = R1k (Ri jest węzłem początkowym pary k), δ ki = − d k jeśli Ri = R2k (Ri jest węzłem końcowym pary k), w pozostałych przypadkach δ ki = 0 , 1 ≤ k ≤ r , 1 ≤ i ≤ m . δ – wektor złoŜony z elementów k-tego wiersza macierzy D, δ k = [δ k 1 ,..., δ km ]T , 1 ≤ k ≤ r . B – zmodyfikowana macierz incydencji grafu, o rozmiarach mxn i elementach bij k zdefiniowanych następująco: bij = −1 jeśli łącze ej prowadzi do routera Ri, bij = 1 jeśli łącze ej prowadzi od routera Ri, w pozostałych przypadkach bij = 0 , 1 ≤ i ≤ m , 1 ≤ j ≤ n .2 f – funkcja celu zadania optymalizacji określona na zmiennych decyzyjnych – współczynnikach x kj , 1 ≤ j ≤ n , 1 ≤ k ≤ r , następującym wzorem r n f = ∑∑ x kj (2.1) k =1 j =1 Zadanie optymalizacji polega na znalezieniu minimum funkcji f określonej wzorem (2.1) przy czym zmienne decyzyjne spełniają następujące ograniczenia ∀1 ≤ k ≤ r , ∀1 ≤ j ≤ n x kj ≥ 0 (2.2) 2 KaŜde łącze dwukierunkowe jest "sztucznie" dzielone na dwa łącza jednokierunkowe przeciwnie skierowane. Jednocześnie warunki (2.2) i (2.3) zapewniają, Ŝe całkowity ruch w obu kierunkach nie przekroczy przepustowości danego łącza. Dodać naleŜy, Ŝe takie sformułowanie zadania optymalizacji obejmuje równieŜ sytuację, w której w sieci występują łącza faktycznie jednokierunkowe. r ∀1 ≤ j ≤ n ∑x k =1 k j ≤πj (2.3) ∀1 ≤ k ≤ r Bx k = δ k (2.4) Fizyczna interpretacja powyŜszych ograniczeń jest następująca. Dla (2.2) - współczynnik obciąŜenia łącza odnosi się do ilości danych przez to łącze przesyłanych, dlatego jego wartość nie moŜe być ujemna. Dla (2.3) - wartość sumy współczynników obciąŜenia danego łącza nie moŜe być większa niŜ nominalna przepustowość tego łącza. Dla (2.4) - ograniczenie to wynika bezpośrednio z prawa zachowania przepływu, czyli z routera początkowego musi dokładnie wypływać załoŜona ilość danych, ta sama ilość danych musi wpływać do routera końcowego, a we wszystkich pozostałych routerach róŜnica ilości danych jakie wpływają do routera i wypływają z niego musi być równa zero. W związku z powyŜszym ograniczenie to jest w formie równania nie zaś nierówności. 2.1.2 Sformułowanie zagadnienia optymalizacji jako zadania programowania NCSP W przedstawionym zadaniu, optymalizacja jest realizowana poprzez maksymalizację funkcjonału niewypukłego o zmiennych rozdzielonych, wyraŜonego wzorem (2.5), czyli poprzez rozwiązanie zadania NCSP (ang. Non-Convex Separable Programming). Wspomniany funkcjonał dokładnie został zdefiniowany w pracy. Przechodząc do formalnego zdefiniowania modelu optymalizacji przepustowości sieci jako zadania programowania NCSP przyjmijmy dodatkowe oznaczenia: b – wektor współczynników beta, b = [ β1 ,..., β m ]T . βi – wartość współczynnika beta dla routera Ri, 1 ≤ i ≤ m . Współczynniki te są zmiennymi decyzyjnymi w przedstawionym w dalszym ciągu zadaniu optymalizacji. βimax – maksymalna wartość współczynnika βi wyliczana ze wzoru zawartego w rozprawie, 1≤ i ≤ m. lk(b) – liczba tras komunikacji dla pary routerów ( R1k , R2k ), 1 ≤ k ≤ r . t qk (b) – trasa nr q dla pary routerów dla pary routerów ( R1k , R2k ), 1 ≤ q ≤ l k (b) , 1 ≤ k ≤ r . Ψ (k , q, b) – efektywna przepustowość trasy t qk (q) dla danego wektora b, 1 ≤ q ≤ l k (q ) , 1≤ k ≤ r. Ψ nom (k , q, b) – nominalna przepustowość trasy t qk (b) . Ψ (b) – całkowita przepustowość środowiska sieciowego. Jest to funkcja celu zadania optymalizacji, określona na zmiennych decyzyjnych – współczynnikach βi, 1 ≤ i ≤ m , następującym wzorem. r lk ( b ) Ψ (b) = ∑ ∑ Ψ (k , q, b) (2.5) k =1 q =1 Zadanie optymalizacji polega na znalezieniu maksimum funkcji Ψ (b) określonej wzorem (2.5), przy czym zmienne decyzyjne spełniają następujące ograniczenia: 1≤ k ≤ r ∀1 ≤ q ≤ l k (b) 0 ≤ Ψ (k , q, b) ≤ Ψ nom (k , q, b) (2.6) ∀1 ≤ i ≤ m ∀1 ≤ k ≤ r 0 ≤ β i ≤ β imax (2.7) lk ( b ) ∑ Ψ ( k , q, b ) ≥ d q =1 k (2.8) Zadanie optymalizacji sformułowane w powyŜszy sposób jest w pracy rozwiązywane z zastosowaniem zmodyfikowanego algorytmu SW. Natomiast fizyczna interpretacja powyŜszych ograniczeń jest następująca. Dla (2.6) – ilość danych przesyłanych z wykorzystaniem danej trasy nie moŜe być ujemna ani większa niŜ nominalna jej przepustowość. Dla (2.7) – wartość współczynnika beta nie moŜe być ujemna poniewaŜ koszt trasy jest wartością dodatnią. Przy ujemnej wartości współczynnika beta nierówność (1.1) nigdy nie byłaby spełniona, w konsekwencji tablica routingu zawierałaby jedynie trasy optymalne. Natomiast stosowanie większych wartości współczynnika beta niŜ wartość maksymalna (sposób wyznaczania wartości maksymalnych został opisany w pracy) jest bezzasadne, poniewaŜ niczego w zadaniu nie zmienia (pod względem jakościowym), a jedynie zwiększa przestrzeń poszukiwań rozwiązań optymalnych. Dla (2.8) – wyznaczona sumacyjna przepustowość wszystkich tras jakimi przepływają dane wymieniane przez kaŜdą parę routerów, nie moŜe być mniejsza niŜ załoŜona ilości ruchu sieciowego jaki para ta powinna wymienić. 2.2 Budowa algorytmu wyznaczania przepustowości środowiska sieciowego Podrozdział zawiera skrócony, werbalny opis autorskiego algorytmu słuŜącego do wyznaczania przepustowości sieci komputerowych, a takŜe krótkie wzmianki na temat alternatywnych metod wyznaczania przepustowości. Wspomniany algorytm naleŜy traktować jako „narzędzie” słuŜące do mierzenia wydajności (efektywności) działania głównego algorytmu (tj. zmodyfikowanego algorytmu SW). 1. 2. 3. 4. 5. 6. Algorytm 3 Wyznaczenie wszystkich dopuszczalnych tras routingu dla kaŜdej z komunikujących się par routerów. Obliczenie dla kaŜdego łącza sieci, w ilu trasach ono występuje. Obliczenie dla kaŜdego łącza sieci jego efektywnej przepustowości. Wyznaczenie dla kaŜdej trasy jej efektywnej przepustowości. Wyznaczenie przepustowości komunikacji pomiędzy kaŜdą parą routerów. Wyznaczenie przepustowości środowiska sieciowego jako sumę przepustowości wszystkich komunikujących się z sobą par sieci (routerów). Kiedy routery dowolnej z komunikujących się par zakończą (lub rozpoczną) wymianę informacji, wtedy warunki panujące w analizowanym środowisku ulegną zmianie i pewne łącza mogą zostać odciąŜone lub dociąŜone. W takiej sytuacji naleŜy ponownie uruchomić cały proces wyznaczania przepustowości, lecz juŜ z nowymi warunkami początkowymi. W pracy został takŜe zawarty opis powyŜszego algorytmu zapisany w formie pseudokodu. Dodatkowo moŜna wyliczyć czasy komunikacji dla poszczególnych par routerów jako iloraz ilości wymienianych danych przez te routery i szybkości ich komunikacji. NaleŜy wspomnieć, Ŝe funkcjonał słuŜący do wyznaczania przepustowości środowiska sieciowego jest tzw. funkcją niewypukłą, kawałkami liniową (ang. Non-Convex Piecewise Linear Function), czyli składającą się w obrębie swojej dziedziny z połączonych pod róŜnym kątem prostych (funkcji afinicznych - y=ax+b). W aspekcie teorii optymalizacji, maksymalizacja tego funkcjonału jest zadaniem tzw. NCSP (ang. Non-Convex Separable Programing) [22].Warto takŜe zaznaczyć, Ŝe istnieją inne powszechnie znane algorytmy wyznaczania w grafach maksymalnej przepustowości (przepływu). Przykładami mogą być algorytmy Forda-Fulkersona, EdmonsaKarpa lub Dinica [15][16][17][18]. Opisy ich wad i zalet w odniesieniu do zastosowanego algorytmu znajdują się w pracy. Dla kompletności warto dodać, Ŝe w rpzprawie wykorzystywane są takŜe dwa inne algorytmy tj.: algorytm 1 i algorytm 5. Algorytm 1 działa na kaŜdym routerze osobno i na podstawie otrzymanego (od stacji zarządzającej) współczynnika beta, tworzy zawartość tablicy routingu. Algorytm 5 jest to zmodyfikowany algorytm symulowanego wyŜarzania pracujący na stacji zarządzającej i wyznaczający wartości współczynników beta. Logiczny schemat przepływu informacji pomiędzy tymi algorytmami został przedstawiony w dalszej części autoreferatu. Rozdział 3. Optymalizacja przepustowości środowiska sieciowego z zastosowaniem metody symulowanego wyŜarzania Rozdział ten zawiera ogólne informacje o metodzie symulowanego wyŜarzania, a takŜe dokładny opis optymalizacji przepustowości środowiska sieciowego z zastosowaniem tej metody, oraz analizę jej złoŜoności obliczeniowej. UŜycie powyŜszej metody wymagało wprowadzenia do niej pewnych zmian, które miały na celu dostosowanie algorytmu symulowanego wyŜarzania do potrzeb oraz specyfiki badanego zagadnienia. Warto dodać, Ŝe w przypadkach duŜych sieci zastosowanie dokładnych metod analitycznych jest nieefektywne z powodu zbyt długiego (nierzeczywistego) czasu ich działania. Powstaje za tym potrzeba zastosowania innych metod umoŜliwiających wyznaczenie rozwiązań, jeśli nie optymalnych to, chociaŜ zbliŜonych do nich na tyle, Ŝeby metodę uznać za efektywną i, co nie mniej istotne, działającą w czasie rzeczywistym. Moją propozycją rozwiązania omawianego problemu jest zastosowanie zmodyfikowanej metody symulowanego wyŜarzania. Warto dodać, Ŝe wybór tej metody był podyktowany po pierwsze szybkością jej działania, po drugie jakością uzyskiwanych rozwiązań suboptymalnych. 3.1 Szczegółowy opis metody badawczej Metoda symulowanego wyŜarzania zawdzięcza swoja nazwę zjawisku fizycznemu, które polega na stopniowym schładzaniu ciała fizycznego będącego początkowo w postaci płynnej, aŜ do jego zestalenia. Główna idea omawianej metody polega na zastosowaniu rozwiązań występujących w procesach technologicznych do rozwiązania innych problemów, w tym takŜe optymalizacyjnych. Powstaje pytanie jak dostosować tę metodę do problemów optymalizacyjnych? MoŜna tego dokonać np. poprzez następujące analogie: minimum globalne – stan o minimalnej energii, iteracja algorytmu (przekształcenie lokalne) – ruch cząstki, funkcja celu (oceny) – energia układu, otrzymane rozwiązanie – bieŜący stan układu termodynamicznego. Ogólny schemat algorytmu symulowanego wyŜarzania został zawarty w pracy. 3.2 Propozycja udoskonalenia (dostosowania) algorytmu symulowanego wyŜarzania W mojej pracy do optymalizacji przepustowości środowiska sieciowego został zastosowany algorytm SW z regułą akceptacji Metropolisa. Pokrótce warto dodać, Ŝe algorytm ten zaliczony został do 10 czołowych algorytmów, które wywarły „największy wpływ na rozwój i praktykę nauki i techniki w XX wieku” (wg Computing Science and Engineering). Dokładny opis tego algorytmu wraz z jego modyfikacjami oraz zapisem w pseudokodzie i schematem blokowym znajduje się w mojej pracy. 3.3 Zastosowanie symulowanego przepustowości środowiska sieciowego wyŜarzania do optymalizacji Warto wspomnieć, Ŝe główne udoskonalenie dostosowujące metodę symulowanego wyŜarzania do optymalizacji przepustowości sieci komputerowej, polega na dodaniu parametru nazwanego „przepustowość routera”. Porównanie jego wartości w kolejnych iteracjach przekłada się bezpośrednio na to, z jakiego przedziału (w bieŜącej iteracji) jest losowana wartość parametru beta (dla danego routera). Natomiast w klasycznej postaci wartości wspomnianych parametrów byłyby losowane z pełnego zbioru rozwiązań dopuszczalnych. Inną, choć juŜ mniej istotną modyfikacją, jest wprowadzenie parametru beta_max (indywidualnie dla kaŜdego routera) określającego górną granicę przedziału, z jakiego losowana jest beta – wzór słuŜący do wyznaczania maksymalnej wartości parametru beta znajduje się w pracy. Logiczny schemat przepływu informacji pomiędzy algorytmami obrazujący zasadę działania zaproponowanego rozwiązania został przedstawiony na rys.3.1. Rys. 3.1. Logiczny schemat przepływu informacji pomiędzy uŜywanymi algorytmami. Opisywane rozwiązanie działa w następujący sposób: Algorytm 1 na podstawie posiadanych informacji o topologii sieci i otrzymanych (od stacji zarządzającej) współczynników beta wyznacza tablice routingu dla kaŜdego z routerów wchodzących w skład sieci. Następnie na podstawie tych tablic i topologii sieci wyznacza wszystkie osiągalne acykliczne i dopuszczalne trasy prowadzące do danej sieci – trasy aktywne. Przez termin dopuszczalne naleŜy rozumieć takie trasy, z których kaŜda prowadzi przez inny interfejs wyjściowy danego routera. Następnie zestaw wyznaczonych tras aktywnych jest przesyłany do algorytmu 3. Algorytm 3 na podstawie uzyskanych informacji z algorytmu 1 wylicza wartość przepustowości środowiska sieciowego (oznaczoną jako Ψ(b)), po czym przesyła tę wartość do algorytmu 5. Algorytm 5 posiadając informacje o spodziewanej charakterystyce ruchu sieciowego i na podstawie otrzymanej wartości Ψ(b), a takŜe z zastosowaniem swojej „logiki” wyznacza nowe wartości współczynników beta maksymalizujący wartość Ψ(b) dla całego obszaru OSPF. Następnie wartości współczynników beta są przesyłane do algorytmu 1. MoŜna dodać, Ŝe algorytm 1 działa osobno na kaŜdym z routerów wchodzących w skład optymalizowanego obszaru (segmentu sieci), natomiast algorytmy 3 i 5 działają na stacji zarządzającej. 3.4 Scenariusze przeprowadzonych badań Do przeprowadzenia badań został zastosowany algorytm 5 (SW). Podczas badań modyfikacji ulegały następujące parametry algorytmu: • schemat schładzania; • temperatura początkowa; • liczba iteracji bez zmiany temperatury; • warunek zatrzymania. Badania zostały przeprowadzone dla trzech topologii sieciowych przedstawionych na poniŜszych rysunkach: 3.2; 3.3 i 3.4. Rys.3.2. Pierwsza z poddanych badaniom przykładowych topologii. Rys.3.3. Druga z poddanych badaniom przykładowych topologii. Rys.3.4. Trzecia z poddanych badaniom topologii sieciowych. Warto zaznaczyć, Ŝe topologia trzecia (tj. przedstawiona na rys. 3.4) jest schematem sieci komputerowej stanowiącej obszar zero jednej z duŜych instytucji finansowych obecnie funkcjonującej na polskim oraz międzynarodowym rynku. Dla uproszczenia i większej przejrzystości (w tym schematu topologii) optymalizacja przepustowości została przeprowadzona dla ruchu sieciowego wymienianego pomiędzy obszarami O1 i O2. W czasie kaŜdego z badań modyfikacji ulegała wartość tylko jednego z parametrów badawczych. Modyfikacje były przeprowadzane w taki sposób, Ŝeby kaŜda zaplanowana kombinacja przyjętych wartości i parametrów pracy algorytmu została sprawdzona. Do przeprowadzenia badań zostało uŜyte napisane przeze mnie oprogramowanie. W oprogramowaniu tym zaimplementowane zostały algorytmy 3 i 5. 3.5 ZłoŜoność obliczeniowa zastosowanej metody Bardzo istotnym czynnikiem, często decydującym o praktycznym zastosowaniu danej metody jest jej złoŜoność obliczeniowa. W bieŜącym podrozdziale została podjęta próba wyznaczenia tej złoŜoności dla algorytmu SW, zastosowanego i dopasowanego do optymalizacji przepustowości środowiska sieciowego. Ujednolicając terminologię, przez pojęcie złoŜoności obliczeniowej naleŜy rozumieć zaleŜność funkcyjną pomiędzy liczbą węzłów oraz krawędzi grafu reprezentującego optymalizowane środowisko sieciowe (argumenty funkcji), a liczbą niezbędnych do wykonania operacji prostych (wartość funkcji złoŜoności). Termin „operacja prosta” winien być rozumiany jako jedna z podstawowych operacji arytmetycznych (dodawanie, odejmowanie ewentualnie mnoŜenie lub dzielenie) albo porównanie dwóch wartości liczbowych. Wyznaczanie złoŜoności całego algorytmu 5 zostało dokładnie omówione w pracy, natomiast na potrzeby niniejszego opracowania została przedstawiona jedynie wersja skrócona. Przyjmując oznaczenia: m – liczba routerów, wierzchołków grafu. k k lk(b)– liczba tras komunikacji dla pary routerów ( R1 ,R 2 ), 1≤ k≤ r . r l*(b) – całkowita liczba występujących tras komunikacji rozumiana jako l(b) = ∑ l k (b) . k=1 l~(b) - liczba tras aktywnych, tj. tras, po których przesyłany jest ruch sieciowy. ^ d (t qk (b)) - średnia długość trasy t qk (b) , rozumiana jako średnia arytmetyczna wyliczona z długości wszystkich istniejących tras w optymalizowanej sieci, przy czym długość trasy, rozumiana jest jako liczba łączy wchodzących w jej skład. n – liczba łączy w optymalizowanej sieci. OΨ(m,n,b) – złoŜoność obliczeniowa algorytmu wyznaczania przepustowości środowiska sieciowego (algorytm 3). OR(m,b) – złoŜoność obliczeniowa operacji wyznaczania przepustowości routerów. Reasumując, złoŜoność obliczania przepustowości routerów wynosi: ^ 3 * d (t qk (b)) 1 + ) (3.1) 4 2 W celu wyznaczenia złoŜoności obliczeniowej całego algorytmu naleŜy wprowadzić jeszcze dodatkowe oznaczenia. Pr(Ψ k (b) ≥ Ψ k −1 (b)) – prawdopodobieństwo, Ŝe nowe Ψ(b) (wyznaczone w bieŜącej iteracji algorytmu) jest nie gorsze niŜ poprzednie Ψ(b) (wyznaczone w poprzedniej iteracji), przy czym Ψk(b) – wartość Ψ(b) w iteracji nr k. kmax – liczba iteracji algorytmu. OR (m, b) = m * l ~ (b) * ( W świetle powyŜszych rozwaŜań złoŜoność obliczeniowa zmodyfikowanego algorytmu SW przedstawia się następująco: O(m, n) = {1 + OΨ (b) + (m + 1) * [Pr(Ψk (b) ≥ Ψk −1 (b)) + + (1 − Pr(Ψk (b) ≥ Ψk −1 (b))) * (5 + Pr( E ≥ Y ))] + 2 * m + OV (b)} * k max (3.2) Rozdział 4 Wyniki przeprowadzonych badań W niniejszym rozdziale znajdują się wyniki badań optymalizacyjnych przeprowadzonych z wykorzystaniem metody przybliŜonej, czyli zmodyfikowanego algorytmu SW. Znajdują się tu takŜe wyniki optymalizacji przepustowości otrzymane z zastosowaniem metody dokładnej tj. programowania liniowego, przy uŜyciu programu Premium Solver V9.0. Na podstawie uzyskanych obiema metodami wyników, porównano efektywność metody symulowanego wyŜarzania z zastosowaną metodą dokładną. 4.1 Wyniki otrzymane metodą symulowanego wyŜarzania Badania przeprowadzono dla topologii sieciowych przedstawionych na rys. 3.2, 3.3 oraz 3.4. Podczas badań, jako warunek zatrzymania przyjęto osiągnięcie przez algorytm temperatury poniŜej jednego stopnia. Poszczególne badania zostały przeprowadzone dla liniowego, logarytmicznego, geometrycznego i iteracyjnego schematu schładzania (dokładne wyniki przeprowadzonych badań znajdują się w pracy). Dodatkowo, warto dodać, Ŝe w pracy zastosowano pewien autorski schemat schładzania, polegający na obniŜaniu temperatury o jeden stopień z kaŜdą iteracją algorytmu (schemat nazwany iteracyjny3). Dla tego schematu, uruchamiając algorytm z temperaturą początkową równą sto stopni otrzymuje się rezultaty jakościowo nie gorsze niŜ w innych scenariuszach (lecz w krótszym czasie). Przyjmując wspomnianą wartość temperatury początkowej i liniowy schemat schładzania, dla topologii z rys. 3.2 otrzymano średni czas pracy algorytmu równy 540 ms, zaś dla topologii z rys. 3.3 czas ten wynosił 15.5 ms. Dla trzeciej topologii tj. przedstawionej na rys. 3.4 otrzymano wartość przepustowości równą 2.5 Gb/s oraz czas pracy algorytmu około 16-17 ms. Wniosek z otrzymanych wyników jest następujący, ponad dziewięćdziesięciokrotny wzrost liczby tras (2276 dla topologii z rys 3.2 i 25 dla topologii z rys. 3.3) analizowanych przez algorytm, przekłada się na niespełna trzydziestopięciokrotny wzrost czasu działania algorytmu. Na wykresach 4.1, 4.2 oraz 4.3 zostały w sposób graficzny przedstawione wyniki optymalizacji przepustowości sieciowej dla topologii z rys. 3.2, 3.3 oraz 3.4. Słupek pierwszy przedstawia wartość Ψ(b) wyliczoną bez równowaŜenia obciąŜenia. Słupek drugi - Ψ(b) z równowaŜeniem typu RK. Słupek trzeci - maksymalną wartość Ψ(b) uzyskaną podczas badań na podstawie przyjętych scenariuszy (z równowaŜeniem obciąŜenia typu NK). Słupek 4 maksymalną wartość Ψ(b) uzyskaną podczas 50 uruchomień algorytmu z temperaturą początkową sto stopni i iteracyjnym schematem schładzania. Wnioskiem z powyŜszych obserwacji jest występowanie wzrostu przepustowości po włączeniu równowaŜenia obciąŜenia typu RK oraz dalszy wzrost po włączeniu równowaŜenia typu NK. 3 Termin własny autora. Wyniki optymalizacji przepustowości dla topologii pierwszej 250 Przepustowość [Mb/s] 200 150 100 50 0 1 2 3 4 Wykres 4.1. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyŜarzania dla topologii pierwszej. Wyniki optymalizacji przepustowości dla topologii drugiej 170 Przepustowość [Mb/s] 165 160 155 150 145 140 1 2 3 4 Wykres 4.2. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyŜarzania dla topologii drugiej. Wyniki optymalizacji przepustowości dla topologii trzeciej 3000 Przepustowość [Mb/s] 2500 2000 1500 1000 500 0 1 2 3 4 Wykres 4.3. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyŜarzania dla topologii trzeciej. 4.2 Wyniki badań przeprowadzonych z wykorzystaniem metody dokładnej Badania przepustowości z zastosowaniem metody dokładnej tj. PL, zostały przeprowadzone przy uŜyciu oprogramowania Premium Solver V9.0. Optymalizacja została przeprowadzona zgodnie z wcześniej zdefiniowanym zadaniem programowania liniowego. PoniŜej znajdują się uzyskane wyniki badań przeprowadzonych z wykorzystaniem wzmiankowanej metody. Dla pierwszej topologii tj. przedstawionej na rys. 3.2, otrzymano wartość Ψ(b) równą 210 Mb/s. Natomiast w zastosowaniu do drugiej topologii sieciowej tj. przedstawionej na rys. 3.3, otrzymano wartość Ψ(b) równą 190 Mb/s. Analogicznie dla topologii z rys. 3.4, otrzymano wartość Ψ(b) równą 3 Gb/s. Czas działania solvera dla topologii z rys. 3.2 wynosił około dwóch sekund, zaś dla topologii z rys. 3.3 poniŜej jednej sekundy. Natomiast dla topologii z rys. 3.4 plasował się w przedziale od jednej do dwóch sekund. Warto zaznaczyć, Ŝe zastosowane narzędzie umoŜliwia pomiar czasu działania z dokładnością do pojedynczej sekundy, zaś uzyskanie większej dokładności pomiarowej nie jest konieczne. Pozostając przy metodzie dokładnej, warto zwrócić uwagę na pewien fakt dotyczący liczby iteracji, a mianowicie dla topologii z rys. 3.2 algorytm wykonał 32 iteracje, natomiast dla topologii z rys. 3.3 liczba ta wynosiła zaledwie 7. Wniosek z tego badania jest stosunkowo prosty, zwiększenie liczby routerów z 4 (topologia z rys. 3.3) do 10 (topologia z rys. 3.2) przełoŜyło się na ponad czteroipółkrotne zwiększenie liczby iteracji algorytmu. Dla kompletności warto dodać, Ŝe dokładna zaleŜność złoŜoności obliczeniowej metody dokładnej jako funkcji liczby elementów sieci została wyprowadzona i przedstawiona w pracy. Rozdział 5 Analiza uzyskanych wyników W rozdziale tym znajduje się analiza badań nad optymalizacją przepustowości środowiska sieciowego z wykorzystaniem metody symulowanego wyŜarzania. 5.1 Analiza uzyskanych wyników przy braku równowaŜenia obciąŜenia, oraz z równowaŜeniem typu RK i NK Podczas badań przeprowadzonych dla topologii sieciowej z rys. 3.2 z włączonym równowaŜeniem typu NK otrzymano maksymalną wartość Ψ(b) równą 207.5 Mb/s. Dla równowaŜenia typu RK Ψ(b) wyniosła 133 Mb/s, zaś bez równowaŜenia - 100 Mb/s. Jak widać z otrzymanych wyników, włączenie równowaŜenia obciąŜenia typu NK poprawiło przepustowość sieci o około 56% w porównaniu do równowaŜenia typu RK i aŜ o ponad 107% w porównaniu z przepustowością sieci bez równowaŜenia obciąŜenia. Natomiast dla topologii przedstawionej na rys. 3.3 w obydwu przypadkach otrzymano wzrost przepustowości o nieco ponad 10%. Przechodząc do trzeciej topologii tj. z rys. 3.4, z włączonym równowaŜeniem typu NK otrzymano maksymalną wartość Ψ(b) równą 2.5 Gb/s. Dla równowaŜenia typu RK Ψ(b) wyniosła 2 Gb/s, zaś bez równowaŜenia – 1 Gb/s. Jak ponownie widać z otrzymanych wyników, włączenie równowaŜenia obciąŜenia typu NK poprawiło przepustowość sieci o 25% w porównaniu do równowaŜenia typu RK i aŜ o 150% w porównaniu z przepustowością sieci bez równowaŜenia obciąŜenia. Wniosek z powyŜszych obserwacji moŜe być taki, Ŝe wraz ze wzrostem złoŜoności topologii sieci, włączenie równowaŜenia typu NK skutkuje coraz większym wzrostem jej przepustowości. Mając na uwadze rozmiary badanych sieci oraz ich złoŜoność, otrzymane wyniki moŜna uznać za zadowalające, i co równie istotne, obliczone w czasie rzeczywistym. Reasumując warto podkreślić, Ŝe otrzymane wyniki potwierdzają przyjętą w pracy tezę badawczą, co w konsekwencji moŜe stanowić motywację do dalszego twórczego rozwoju oraz doskonalenia zastosowanej metody. 5.2 Czasy pracy algorytmu SW oraz metody dokładnej Czas pracy algorytmu zaleŜy od wartości następujących parametrów: temperatury początkowej, liczby iteracji bez modyfikacji temperatury oraz schematu schładzania. Rozpiętość czasów jest duŜa, od ułamków sekund do ponad godziny. Jednym z istotnych wniosków odnośnie czasów działania algorytmu jest to, Ŝe wartość uzyskiwanego wyniku niemalŜe nie jest zaleŜna od tego czasu (dla róŜnych scenariuszy otrzymywano róŜne czasy i podobne wartości wyników). Przy zastosowaniu schematu liniowego metoda działa w czasie rzeczywistym, a dokładniej czas pracy algorytmu wynosi około 3 – 5 sekund. Omawiając czasy działania algorytmu SW nie sposób pominąć faktu, Ŝe przy zastosowaniu zaproponowanego schematu iteracyjnego i temperatury początkowej równej sto stopni, czas jego pracy dla topologii z rys. 3.2 wynosił średnio zaledwie 540 ms, a dla topologii z rys. 3.3 i 3.4 jedynie w okolicach 15.5 - 17 ms. Na podstawie wykonanych pomiarów, moŜna postawić hipotezę, Ŝe czas pracy algorytmu jest słabo zaleŜny od złoŜoności sieci komputerowej. Porównując czasy zmierzone dla obydwu topologii, warto zauwaŜyć, Ŝe wzrost liczby tras, po których moŜe być przesyłany ruch sieciowy ponad 90 razy (2276 dla topologii z rys. 3.2 i 25 dla topologii z rys. 3.3.) skutkował wzrostem czasu działania algorytmu SW jedynie niecałe 35 razy (540/15.5). Przechodząc do metody dokładnej warto zwrócić uwagę na następujący fakt. Dla topologii z rys. 3.3 i 3.4 jej czas działania wynosił niespełna jedną sekundę, zaś metody SW 15.5 – 17 ms. Natomiast dla bardziej złoŜonej topologii tj. przedstawionej na rys. 3.2, czas działania metody dokładnej jest juŜ blisko cztery razy dłuŜszy (około dwie sekundy w porównaniu do 540 ms) niŜ dla metody SW. Wniosek płynący z porównania czasów działania obydwu wykorzystanych metod jest dość klarowny, a mianowicie juŜ dla tak nieduŜych topologii jak z rys. 3.2 metoda dokładna działa znacznie wolniej niŜ metoda SW. Dla kompletności warto dodać, Ŝe w pracy dokonano takŜe porównania złoŜoności obliczeniowych dla innych wybranych metod heurystycznych tj. algorytmu genetycznego oraz „tabu search”. 5.3 Porównanie złoŜoności algorytmu symulowanego wyŜarzania oraz metody Simplex Przechodząc do oceny złoŜoności obliczeniowej metody SW z zastosowaniem reguły akceptacji Metropolisa, naleŜy zaznaczyć, Ŝe nie jest to zadanie trywialne i znacznie przekracza zakres pracy. Dodatkowo, złoŜoność ta zaleŜy od rodzaju problemu do rozwiązania którego metoda została zastosowana. Ogólnie moŜna przyjąć, Ŝe metoda ta ma złoŜoność wykładniczą i zaleŜną zarówno od liczby węzłów grafu (routerów) oraz liczby jego krawędzi (łączy). W pracy znajduje się dokładna analiza obydwu złoŜoności, natomiast w tym miejscu warto zaznaczyć, Ŝe obydwa wzory (przedstawiające wzmiankowane złoŜoności) przedstawiają funkcje wielomianowe. Porównując je warto zwrócić uwagę na wartości największych wykładników, które w nich występują. Dla zmodyfikowanej metody SW 5 wartość najwyŜszej potęgi to 5 ( m ), natomiast dla metody dokładnej wartość najwyŜszej potęgi wynosi ponad 20 ( m 6 ∗ (m 6 ) 2.376 = m 20.256 ). Mając na uwadze informacje zawarte w [20] oraz [21], wysoka wartość wykładnika dla wzoru przedstawiającego złoŜoność metody dokładnej nie powinna być większym zaskoczeniem. Otrzymane wartości w sposób jednoznaczny świadczą o tym, Ŝe złoŜoność obliczeniowa metody dokładnej (w odniesieniu do liczby operacji prostych) w zastosowaniu do optymalizacji przepustowości środowiska sieciowego jest znacząco większa niŜ metody SW. 5.4 Ocena zasadności stosowania algorytmów heurystycznych do badanego zagadnienia w kontekście metod dokładnych Biorąc pod uwagę uzyskane wyniki, a przede wszystkim złoŜoności obliczeniowe obydwu metod, oraz istniejące ograniczenia dla metody dokładnej, stosowanie metod heurystycznych do optymalizacji przepustowości sieci komputerowych naleŜy uznać za zasadne. W konsekwencji, druga część tezy przedstawionej we wstępie mojej pracy została potwierdzona. Zasadność stosowania metod heurystycznych wynika nie tylko z szybkości ich działania, ale takŜe duŜej elastyczności w implementacji i przede wszystkim zadowalających wyników. Warto wspomnieć, Ŝe dla topologii sieciowej przedstawionej na rys 3.2. otrzymano Ψ(b) równe 207.5, przy górnym ograniczeniu równym 210 Mb/s. Dla tej samej topologii bez równowaŜenia obciąŜenia Ψ(b) wynosiło 100 Mb/s, a z równowaŜeniem typu RK 133 Mb/s, co z kolei stanowi potwierdzenie słuszności pierwszej części przyjętej tezy badawczej. Dodatkowo, stosowanie nowatorskich metod prowadzi do ich rozwoju, co w konsekwencji przekłada się na jakość otrzymywanych wyników. Warto dodać, Ŝe tytuł tego podrozdziału nie odnosi się jedynie do metody SW. W literaturze znajduje się wiele przykładów ukazujących zasadność stosowania takich algorytmów jak np. algorytmy genetyczne, mrówkowe, „tabu search” (poszukiwanie z tabu) i inne, do szeroko rozumianych zadań optymalizacji w tym takŜe sieci komputerowych - i to pod róŜnymi względami, a nie tylko maksymalizacji ich przepustowości. Przykładami takich opracowań poruszających tematykę stosowania algorytmów SW mogą być: [4] [5] [6] [7] [8] [9] [10] [11] [12] [19]. Zakończenie W pracy została zaproponowana zmodyfikowana metoda symulowanego wyŜarzania, zastosowana do optymalizacji przepustowości sieci komputerowych. Ponadto została takŜe przedstawiona nowa metoda równowaŜenia obciąŜenia w protokole OSPF. Polega ona na uwzględnieniu nie tylko tras o równym (minimalnym) koszcie, ale równieŜ tras o koszcie większym od minimalnego. Moja praca skupia się na wydajności, a głównym jej zagadnieniem jest zadanie optymalizacji przepustowości sieci komputerowych. Przedstawione w niej rozwiązanie jest to metoda zwiększania efektywnej przepustowości sieci w tych przypadkach, w których jest to moŜliwe. Czy jest to moŜliwe, okazuje się w wyniku porównania przepustowości osiąganych przy zastosowaniu dwóch typów równowaŜenia obciąŜenia tj.: RK i NK. Porównanie to jest wykonywane w czasie rzeczywistym, co umoŜliwiają odpowiednie (autorskie) algorytmy. Warto takŜe dodać, Ŝe główną korzyścią z zastosowania przedstawionego w mojej pracy rozwiązania jest uzyskanie w czasie rzeczywistym poprawy przepustowości sieci (o ile to jest moŜliwe), a w konsekwencji bardziej efektywne wykorzystanie posiadanych zasobów sieciowych i zwiększenie satysfakcji uŜytkowników. Z powyŜszych względów ocena praktycznej przydatności poruszonej w pracy problematyki nie powinna budzić wątpliwości. Reasumując, uwaŜam, Ŝe uzyskane wyniki mogą potwierdzić przyjętą tezę badawczą. Ponadto zaproponowane udoskonalenie metody symulowanego wyŜarzania, mające na celu dostosowanie jej do optymalizacji przepustowości sieci komputerowych, działa poprawnie i zgodnie z oczekiwaniami, co moŜe stanowić solidny fundament do dalszego jej rozwoju i ulepszania. Bibliografia i odnośniki [1] R. Krishan, J.A. Silvester, „An Approach to Path-Splitting in Multi-path Networks“, IEEE ICC’93, vol. 3, May 1993. [2] R. Krishan, J.A. Silvester, “Choice of Allocation Granularity in Multi-path Source Routing Schemes”, IEEE INFOCOM’93, April 1993. [3] K.C. Leung, V.O.K. Li, “Flow Assignment and Packets Scheduling for Multipath Networks”, IEEE GLOBECOM’99, December 1999. [4] S. Pierre, M. Hyppolite, J. Bourjolly, O. Dioume, “Topological Design of Computer Communication Networks Using Simulated Annealing”, Engineering Applications of Artificial Intelligence, Vol. 8, Number 1, February 1995. [5] J. Kock, A. Krzesiński, “Computing an Optimal Vitrual Path Connection Network by Simulated Annealing”, Department of Computer Science, University of Stellenbosch, South Africa. [6] Alekasndar Tsenov, “Simulated Annealing and Genetic Algorithm in Telecommunications Network Planning”, International Journal of Computational Inteligence 2,4, 2006. [7] S. Routray, A. M. Sherry, B.V.R. Reddy, “A Simulated Annealing Based Approach for ATM Network Optimization”, Engineering, Computing and Architecture, ISBN 1934-7197, Vol. 1, Issue 2, 2007. [8] T.M. Mahmoud, “A Genetic and Simulated Annealing Based Algorithms for Solving the Flow Assignment Problem in computer Networks”, International Journal of Electronics, Circuits and Systems, vol. 1, number 2. [9] E. Costamagna, A. Fanni, G. Giacinto, „A Simmulated annealing Algorithm for the Optimization of Communication Networks”, VLSI Systems, October 1995. [10] M.M. Atiqullah, S.S. Rao, “Reliability Optimization of Computer Networks using Simmulated Annealing”, Microelectronics Reliability, vol. 33, Nowember 1993. [11] E. Aarts & J. Korst, “ Simmulated Annealing and Boltzman Machines”, Willey & Sons Ltd. 1989. [12] S. Kirkpatrick, C.D. Gelatt Jr., M.P. Vecchi, „Optimization by Simmulated Annealing“ Science, 220, 1993. [13] J.H. Dejean, L. Dittmann, C.N. Lorenzen, “String Mode – A New Concept of Performance Improvement of ATM Networks”, IEEE vol.9 no.9 December 1991. [14] T.T. Lee, S.C. Liew, “Parallel Communications for ATM Network Control and Management”, IEEE GLOBECOM’93, vol.1, December 1993. [15] [16] [17] [18] [19] [20] [21] [22] T.H. Cormen, C.E. Leiserson, R.L. Rivest, “Wprowadzenie do algorytmów”, wyd. WNT, Warszawa 2004. Ross, Wright, „Matematyka dyskretna”, wyd. WNT, 1999. N. Wirth , „Algorytmy + Struktury Danych = Programy”, WNT. L. Banachowski, K. Diks, W. Rytter, „Algorytmy i struktury danych” , WNT. Lianggui Liu, Guangzeng Feng, “Simulated Annealing Based Multi-constrained QoS Routing in Mobile ad hoc Networks”, ISSN:0929-6212, Wireless Personal communications: An International Journal 2007. D. Dobkin, R.J. Lipton, S. Reiss, „Linear programming is long-space hard for P.” Inf. Proc. Lett. 1979. Jacek BłaŜewicz, “ZłoŜoność obliczeniowa problemów kombinatorycznych”, WNT, Warszawa 1988. Christoph Schnorr, “Convex and Non-convex Optimization”, University of Mannheim, Germany, Optimization Methods in Computer Vision, March 2006.