• Nie Znaleziono Wyników

Analiza eksperymentalna

W dokumencie 1.1 Tezy pracy (Stron 93-98)

Celem badań jest porównanie szybkości działania zaproponowanego al-gorytmu MDSP w stosunku do znanych z literatury algorytmów FB, MB, MBEP dla grafów G(π) modelujących rozwiązania problemu gniazdowego z operacjami wielomaszynowymi z nieprzesuwalnymi czynnościami asyn-chronicznymi. Dodatkowo badania dotyczą efektywności zaproponowanych detektorów cykli o dodatnich długościach dla algorytmów FB, MB, MBEP.

Szczegółowy opis sposobu generowania grafów testowych oraz wyniki badań przedstawiam w dwóch poniższych podrozdziałach.

5.4.1 Sposób generowania przykładów

Porównywane algorytmy testowłem na 3600 przykładowych grafach mo-delujących konkretne rozwiązania (niekoniecznie dopuszczalne) dla 120 in-stancji problemów gniazdowych z operacjami wielomaszynowymi z nieprze-suwalnymi czynnościami asynchronicznymi; dla każdej instancji generowano 30 grafów. Problemy gniazdowe użyte w testach są podzielone na 3 klasy

SRD, SMD oraz SVD, po 40 instancji w każdej. Instancje problemów w da-nej klasie zróżnicowane są zarówno pod względem liczby maszyn m, zadań r jak i operacji o. Klasy różnią się pomiędzy sobą średnią oraz maksymal-ną liczbą czynności poszczególnych operacji. W kolejnych klasach liczba czynności przypadająca na jedną operację jest coraz większa, w klasie SRD średnia liczba wszystkich czynności w klasie SRD waha się od 100 do 600, w SMD – od 85 do 1125 zaś w klasie SVD – od 125 do 1690; patrz [69] lub rozdział 6 tej pracy.

Przeprowadzony test składa się z trzech części; w każdej badamy 1200 grafów. W pierwszej części analizujemy czas działania algorytmów dla gra-fów nie zawierających cykli o dodatniej długości, w drugiej i trzeciej – dla grafów zawierających co najmniej jeden taki cykl.

Grafy dla pierwszej części testów generowane są następująco. Dla każdej z 120 instancji problemu gniazdowego wygenerowano 10 różnych uszerego-wań dopuszczalnych wykorzystując 10 algorytmów konstrukcyjnych, opisa-nych w pracy [70] oraz w rozdziale 6 tej pracy. Następnie dla wszystkich uszeregowań utworzono odpowiadające im grafy G(π) uzyskując po 400 grafów dla każdej z trzech klas. Grafy te charakteryzują się brakiem cykli dodatniej długości.

Grafy dla drugiej części testów utworzono losując po 10 uszeregowań dla każdej z instancji problemu w taki sposób, by żadne z uszeregowań nie reprezentowało rozwiązania dopuszczalnego. Następnie dla każdego z tych uszeregowań utworzono odpowiadający mu grafow G(π) uzyskując znowu po 400 grafów dla każdej z klas. Każdy z otrzymanych w ten sposób grafów zawiera co najmniej jeden cykl dodatniej długości.

Grafy dla trzeciej części testów tworzone są podobnie jak w drugiej części. Jednakże wszystkie dodatnie cykle w tych grafach posiadają pewną szczególną własność: żaden z cykli nie jest wykrywany podczas fazy wstęp-nej algorytmu MDSP (krok 1).

5.4.2 Wyniki testów

W przeprowadzonym teście, ocenie podlega czas działania poszczegól-nych algorytmów. Wszystkie badania zostały przeprowadzone na kompu-terze klasy PC z procesorem Athlon z zegarem 1000 MHz. Dalej omówię uzyskane wyniki w kolejności odpowiadającej kolejnym częściom testów.

W tabeli 5.1 umieszczone są sumy czasów wyznaczania długości ścieżki krytycznej w 400 grafach G(π), dla każdej klasy przykładów, przez algo-rytmy literaturowe FB, MB, MBEP oraz zaproponowany nowy algorytm MDSP; wiersz „All” zawiera łączny czas obliczeń dla wszystkich klas. Do-datkowo w tej tabeli, jak i w dwóch następnych, podano odpowiednie

wy-Tabela 5.1: Suma czasów wyznaczenia długości ścieżki krytycznej 400 gra-fach G(π) danej klasy przykładów; grafy nie zawierają cykli o dodatniej długości

Klasa Czas pracy mierzony w [s] dla algorytmów

FB MB MBEP MDSP MDSP

SRD 0,29 0,47 0,13 0,06 0,06

SMD 1,43 2,46 1,06 0,19 0,18

SVD 3,98 7,28 4,73 0,35 0,34

All 5,69 10,21 5,92 0,60 0,58

niki dla zmodyfikowanej wersji algorytmu MDSP, zwanej dalej algorytmem MDSP. Modyfikacja ta wynika ze spostrzeżenia, że w ramach jednej in-stancji problemu grafy G(π) różnią się jedynie łukami kolejnościowymi;

w algorytmach popraw przy rozwiązywaniu konkretnej instancji problemu zmieniają się tylko te łuki. Pozwala to na pominięcie obliczeń w kroku 2.

Dokładniej obliczenia te są przeprowadzane tylko raz dla danej instancji i później przy uruchamianiu algorytmu MDSP dla poszczególnych permuta-cji π tej instanpermuta-cji, nie muszą już być wykonywane.

Z analizy tabeli 5.1 wynika, że w przypadku gdy graf G(π) nie zawiera cykli o dodatniej długości, proponowany algorytm MDSP działa ponad 9 razy szybciej niż FB. Co więcej, im większa jest liczba wierzchołków (czyn-ności) tym działa szybciej; dla grupy SVD około 11 razy szybciej niż algo-rytm FB. W stosunku do pozostałych algoalgo-rytmów różnica ta jest jeszcze większa. Tak duża przewaga algorytmu MDSP wynika, moim zdaniem, z

„równoczesnego” zwiększenia wartości dolnych ograniczeń wszystkich czyn-ności danej operacji (w pozostałych algorytmach zwiększenie tych wartości odbywa się poprzez kolejne relaksacje łuków operacyjnych) oraz bardzo do-brej w sensie minimalizacji liczby przeglądanych wierzchołków, kolejności przeglądanych wierzchołków.

Zadziwiający fakt jakim jest prawie dwukrotna przewaga (w sensie cza-su) algorytmu FB nad algorytmem MB oraz niewielka, ale zauważalna prze-waga nad algorytmem MBEP, skłoniła mnie do dokładniejszego zbadania tego zjawiska. Po dodatkowych testach stwierdziłem, że algorytm FB doko-nuje relaksacji jednego łuku (u, v) około cztery razy szybciej niż algorytmy MB, MBEP. Wynika to stąd, że algorytm MB, oprócz bezpośrednich ności związanych z relaksacją łuku (u, v), musi wykonywać jeszcze czyn-ności ”pośrednie” polegające na obsłudze kolejki L (pobranie wierzchołka

Tabela 5.2: Suma czasów wykrycia cyklu o dodatniej długości w 400 grafach G(π) danej klasy przykładów; grafy zawierają cykle o dodatniej długości

Czas pracy mierzony w [s] dla algorytmów

Klasa FB MB MBEP MDSP MDSP

I UB I UB UB DW1 DW2 DW2

SRD 3,69 0,11 8,80 2,40 0,05 0,01 0,01 0,01 SMD 13,25 0,25 30,80 5,37 0,13 0,02 0,01 0,01 SVD 29,12 0,43 68,46 8,87 0,28 0,04 0,02 0,02 All 46,06 0,79 108,05 16,64 0,46 0,08 0,04 0,04

u z kolejki, sprawdzenie czy wierzchołek v jest w kolejce oraz ewentualne wprowadzenie go na koniec kolejki). Dodatkowo algorytm MBEP wprowa-dza niektóre wierzchołki na początek kolejki co jeszcze bardziej wydłuża odpowiednie procedury. Jednocześnie moje badania pokazały, że algorytm MB relaksuje prawie o połowę mniej łuków niż algorytm FB, zaś algorytm MBEP – prawie czterokrotnie mniej. Połączenie tych dwóch faktów wy-jaśnia zaobserwowane zjawisko. Warto tu jeszcze zauważyć, że przewaga algorytmu FB nad algorytmem MB zmniejszy się, jeżeli zwiększy się liczba relaksowanych przez niego łuków. Liczba ta zależy bardzo istotnie od ko-lejności wykonywanych relaksacji w ramach jednej serii. W obrębie danej operacji j łuki (j, i) są analizowane w kolejności (j, 1), (j, 2), . . . , (j, mj), natomiast operacje rozpatrywane są w porządku technologicznym). Przy-jęta kolejność okazała się bardzo efektywna. Przykładowo, przy kolejności losowej czas pracy algorytmu FB wzrasta z 5,69 [sec] do 7,97 [sec].

W tabeli 5.2 umieszczone są sumy czasów wykrycia cyklu o dodatniej długości w 400 grafach G(π), dla każdej klasy przykładów, przez algorytmy literaturowe FB, MB, MBEP oraz zaproponowany algorytm MDSP. Trzeci wiersz w tej tabeli (jak i następnej) identyfikuje zastosowany typ detekto-ra cyklu o dodatniej długości. Symbol „I” oznacza zastosowanie detektodetekto-ra związanego z relaksacjami poszczególnych łuków. Dla algorytmu FB jest to klasyczny detektor zliczający liczbę wykonanych serii relaksacji, z ko-lei dla algorytmu MB – oznacza detektor zliczający liczbę relaksowanych łuków. Symbol „UB” zarówno dla algorytmów FB, MB jak i algorytmu MBEP oznacza detektor oparty na porównywaniu aktualnej wartości dol-nego ograniczenia przeglądadol-nego wierzchołka z górnym oszacowaniu UB długości najdłuższej ścieżki w grafie (patrz rozdział 5.2). Detektor dedyko-wany algorytmowi MBEP oparty na własności 5.1 i opisany w rozdziale 5.2

oznaczony jest symbolem „DW1”, natomiast detektor dedykowany algoryt-mowi MDSP oparty na własności 5.2 i opisany w rozdziale 5.3.2 oznaczony jest symbolem „DW2”.

Z tabeli 5.2 wynika, że wśród algorytmów literaturowych z powszech-nie stosowanymi detektorami cyklu (I lub UB) najszybciej wykrywa cykl algorytm MBEP z detektorem UB. Zastosowanie dedykowanego detektora cyklu DW1 pozwoliło jednak na prawie 6-krotne skrócenie czasu pracy te-go alte-gorytmu; z 0,46 [sec] do 0,08 [sec]. Jednakże proponowany alte-gorytm MDSP działa dwukrotnie szybciej niż MBEP z detektorem DW1; skróce-nie czasu z 0,08 [sec] do 0,04 [sec]. Reasumując oznacza to ponad 11-krotne skrócenie czasu w stosunku do najlepszego algorytmu literaturowego MBEP z detektorem UB; w przypadku klasy SVD z największa liczbą czynności (wierzchołków) skrócenie to jest aż 14-krotne (z 0,28 [sec] do 0,02 [sec]).

Jedną z przyczyn tego bardzo pozytywnego zjawiska, jest możliwość wykry-wania cyklu przez algorytm MDSP już w pierwszym etapie fazy wstępnej (krok 1).

Dalsza analiza tabeli 5.2 pozwala stwierdzić, że detektor cyklu I (pro-ponowany w literaturze) do algorytmów FB, MB jest znacznie gorszy niż sugerowany w tej pracy detektor UB. Zdecydowanie krótszy czas wykrycia cyklu przez algorytm FB z detektorem UB w stosunku do algorytmu MB z tym samym detektorem wyjaśniamy tym, że algorytm MB potrzebuje prawie 4 razy więcej czasu niż FB do zrelaksowania jednego łuku oraz w odróżnieniu od grafów nie zawierających cykli (pierwsza część testu) relak-suje około 7-razy więcej łuków niż algorytm FB. Z moich badań wynika, że tak mała liczba relaksowanych łuków przez algorytm FB wynika ze struktu-ry grafu G(π) oraz, jak już wspominaliśmy, z właściwie dobranej kolejności wykonywanych relaksacji w ramach poszczególnych serii.

Część trzecia podobnie jak poprzednia, porównuje czasy pracy algo-rytmów pracujących na grafach zawierających dodatnie cykle. Jednakże tym razem wszystkie grafy testowe tworzone są w taki sposób, aby algo-rytm MDSP nie był w stanie wykryć dodatniego cyklu w kroku 1. Wy-niki przedstawiono w tabeli 5.3. W stosunku do najszybszego algorytmu literaturowego (algorytm MBEP z detektorem UB), algorytm MDSP jest prawie 3-krotnie szybszy. Najszybszym jest jednak teraz algorytn MBEP z dedykowanym detektorem DW1; algorytm MDSP działa ponad 2-krotnie dłużej. Jest to spowodowane tym, że MDSP musi wykonać stosunkowo pra-cochłonne kroki inicjalizacyjne. Jednakże różnica ta (0,04-0,10=-0,06 [sec]) jest pomijalnie mała w stosunku do różnicy czasów pracy tych algoryt-mów w pierwszej części testu (5,92-0,60=5,32[sec]). Stąd wynika, że już przy prawdopodobieństwie nie istnienia cyklu o dodatniej długości

więk-Tabela 5.3: Suma czasów wykrycia cyklu o dodatniej długości w 400 grafach G(π) danej klasy przykładów; grafy zawierają cykle o dodatniej długości, które nie są wykrywane w fazie wstępnej algorytmu MDSP

Czas pracy mierzony w [s] dla algorytmów

Klasa FB MB MBEP MDSP MDSP

I UB I UB UB DW1 DW2 DW2

SRD 3,54 0,37 8,61 2,89 0,05 0,01 0,02 0,02 SMD 13,38 0,50 30,51 5,57 0,10 0,01 0,03 0,02 SVD 29,85 0,30 67,72 8,18 0,13 0,02 0,05 0,03 All 46,77 1,16 106,84 16,63 0,27 0,04 0,10 0,07

szym niż 0,01, przewaga algorytmu MDSP staje się oczywista. Warto tu zauważyć, że w praktycznych zastosowaniach tych algorytmów (w różnych metodach popraw) wspomniane prawdopodobieństwo jest rzędu 0,5. Po-dobnie jak poprzednio algorytmy FB i MB pracują bardzo wolno.

W dokumencie 1.1 Tezy pracy (Stron 93-98)