Algorytmy I Struktury Danych Prowadząca: dr Hab. inż. Małgorzata Sterna. Sprawozdanie do Ćwiczenia 3 Algorytmy grafowe ( )

Podobne dokumenty
Algorytmy I Struktury Danych Prowadząca: dr Hab. inż. Małgorzata Sterna. Sprawozdanie do Ćwiczenia 1 Algorytmy sortowania (27.02.

Analiza algorytmów to dział informatyki zajmujcy si szukaniem najefektywniejszych, poprawnych algorytmów dla danych problemów komputerowych

ź Ż ź Ź Ą ć ć

ć ź

Stwierdzenie 1. Jeżeli ciąg ma granicę, to jest ona określona jednoznacznie (żaden ciąg nie może mieć dwóch różnych granic).

KOMBINATORYKA ZADANIA

STATYSTYKA I ANALIZA DANYCH

O liczbach naturalnych, których suma równa się iloczynowi

WYBRANE METODY DOSTĘPU DO DANYCH

ZADANIA - ZESTAW 2. Zadanie 2.1. Wyznaczyć m (n)

1.3. Największa liczba naturalna (bez znaku) zapisana w dwóch bajtach to a) b) 210 c) d) 32767

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Metrologia: miary dokładności. dr inż. Paweł Zalewski Akademia Morska w Szczecinie

WYDZIAŁ ELEKTRYCZNY POLITECHNIKI WARSZAWSKIEJ INSTYTUT ELEKTROENERGETYKI ZAKŁAD ELEKTROWNI I GOSPODARKI ELEKTROENERGETYCZNEJ

Egzaminy. na wyższe uczelnie zadania

Ż Ż ć Ż Ż ć Ż Ż Ó ć Ż Ś

Ą ć ź ć

Harmonogramowanie linii montażowej jako element projektowania cyfrowej fabryki

Statystyka opisowa - dodatek

Rozsądny i nierozsądny czas działania

Fundamentalna tabelka atomu. eureka! to odkryli. p R = nh -

2 n < 2n + 2 n. 2 n = 2. 2 n 2 +3n+2 > 2 0 = 1 = 2. n+2 n 1 n+1 = 2. n+1

Ź ź Ą Ą Ż Ą Ą

Analiza algorytmów to dział informatyki zajmujcy si szukaniem najefektywniejszych, poprawnych algorytmów dla danych problemów komputerowych.

Ó ż ż Ść ż ż ć ż ż Ś Ść Ó

Ó Ó ą

ą Ł ż ż Ś

Ó

Ż Ż ź ć ć Ż Ż Ż Ą Ż Ż ź

Ó ź ż ś Ć ŚĆ ć ś ż

Ś

Ó Ż Ń Ń ć ż ć Ż Ż ć ż Ż ć

Ą Ą ź

Jarosław Wróblewski Analiza Matematyczna 1A, zima 2012/13. Ciągi.

Ż ż Ź ś ż ż ś Ą Ą Ź ż Ż ś ż ż Ż Ż ż ć ś ś ć ć Ń ź ś Ż ć ż ż ś ś ś

Ż Ó

AiSD zadanie trzecie

ś ź ż ć ż ź Ą ć Ą ż ś

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Ą Ą Ś Ń Ć Ó Ą Ą


Ż Ż Ż ń Ż ć

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

ć ć Ą

PODSTAWY MATEMATYKI FINANSOWEJ

Struktura czasowa stóp procentowych (term structure of interest rates)

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia: Problemy transportowe cd, Problem komiwojażera

Ź Ź Ą Ą

Opracowanie danych pomiarowych. dla studentów realizujących program Pracowni Fizycznej

x t 1 (x) o 1 : x s 3 (x) Tym samym S(3) = {id 3,o 1,o 2,s 1,s 2,s 3 }. W zbiorze S(n) definiujemy działanie wzorem


Egzamin maturalny z informatyki Poziom rozszerzony część I

Metoda analizy hierarchii Saaty ego Ważnym problemem podejmowania decyzji optymalizowanej jest często występująca hierarchiczność zagadnień.

Jak obliczać podstawowe wskaźniki statystyczne?

Ś Ż Ó Ś ż Ó ć ź ż ż Ą

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Znajdowanie pozostałych pierwiastków liczby zespolonej, gdy znany jest jeden pierwiastek

Podprzestrzenie macierzowe

ć ć ź ć ć ć Ść ć ź ź ź ć ź Ą ź

EGZAMIN MATURALNY Z INFORMATYKI

Ą Ź ć ć Ó Ó Ć Ć Ś

Teoria. a k. Wskaźnik sumowania można oznaczać dowolną literą. Mamy np. a j = a i =

Ó Ł Ę ź ź ź ć Ó ć

Definicja interpolacji

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Ś ż Ś ć Ś ż Ą ż Ś Ż ż Ż ć ż ż Ż Ż Ś Ś Ś Ś

MINIMALIZACJA PUSTYCH PRZEBIEGÓW PRZEZ ŚRODKI TRANSPORTU

Ś

ż ż ż ż Ź ż Ą ż ż ż Ś

Ą Ó Ś ź Ś

ć ć Ą ć Ęć Ó Ą ź ć ć ć ć ź ź Ą ć Ę ć ź ć ć ć ź ć ź ć ć ć Ś Ź ź

ą ó ą Ó ą ą ą

Ś ć ż ż ć Ś ż ż ź ż ż ż ż

ć

Application of SPME/GC-MS for determination of chlorophenoxy herbicide residues within weed tissues. W: Chemistry for Agriculture 7. (H. Górecki, Z. Dobrzański, P. Kafarski, red.). wyd. CZECH-POL-TRADE, Prague-Brussels, pp (ISBN: ).

Ć ć ć Ś ć

ć Ś Ś Ść

Ź ć Ż ć ć Ó

ź Ś Ó Ó Ż

ć ć ć Ó ć Ó ć Ę ć Ł ć Ś ć Ę ć Ą ć ć ć ć ć ć ć

Ł ż

Ł ż Ó Ó ć Ó Ć

ź Ą Ę Ę ć Ł ć ć ć ć ć ć ć

Ł Ó Ó Ó Ł Ó Ó Ł Ł Ó Ą Ć Ó Ą ć Ó ć ć

Ą ń ź ż ż Ś ż ć Ś Ó ń ń

C e l e m c z ę ś c i d y s k u s y j n e j j e s t u ś w i a d o m i e n i e s o b i e, w o p a r c i u o r o z w a ż a n i a P i s m a Ś w.

Ł Ą Ą Ń Ą Ó

Ą Ą Ż ć Ż ć Ń Ą

Krzyżanowski R – Zastosowanie metody mikroekstrakcji SPME w analizie pozostałości pestycydów. [W:] Badania naukowe w świetle uwarunkowań turbulentnego otoczenia – Gospodarka-Świat-Człowiek (red. Joanna Nowakowska-Grunt, Judyta Kabus). Wydawnictwo Naukowe Sophia, Katowice, pp (ISBN: ).

Ś Ś

Ó Ś Ś ć

Ż ś

ć Ę ż Ł ź ż ź Ś Ś ź ć Ć ż Ś ż Ś

Ł Ą ź ź Ż ź Ź Ó Ó ź Ł

ó ó ó ó ó ó ń ó ó ó ó ń ó ó ń ń ó ó ó Ś ń ó ń ó ó ó

Ą ć Ń Ń ź ż

ż ć

ź

Ł Ł Ł Ś

Ą Ł ć Ę ć Ę ć

Transkrypt:

Poiedziałki 11.45 Grupa I3 Iformatyka a wydziale Iformatyki Politechika Pozańska Algorytmy I Struktury Daych Prowadząca: dr Hab. iż. Małgorzata Stera Sprawozdaie do Ćwiczeia 3 Algorytmy grafowe (26.03.12) 1. Implemetacja. Autorzy: Oliwer Kostera r ideksu 106552 Adam Matuszewski r ideksu 106550

Tworzeie grafu dla trzech różych reprezetacji (macierz sąsiedztwa, lista astępików, lista łuków) oraz sortowaie topologicze w 2 etapach, czyli obliczaia etykiet czasowych rozpoczęcia i zakończeia aalizy wierzchołków i zliczaia łuków powrotych zaimplemetowaliśmy w języku C. Do implemetacji procedury obliczaia etykiet czasowych wierzchołka posłużyliśmy się listą astępików. Przy wyborze metody kierowaliśmy się szybkością wykoywaia tej procedury, a z uwagi a to, że ajczęściej wykoywaą w iej operacją jest wyzaczaie zbioru astępików to aturalym aszym wyborem była lista astępików gdzie odbywa się to ajszybciej (złożoość obliczeiowa O()). Testy przeprowadziliśmy dla ilości wierzchołków, gdzie = {1000, 2000,, 10000}, oraz dwóch gęstości d = {0,2; 0,4}, zbiór łuków m wyzaczaliśmy ze wzoru m = * * d. Łączie przeprowadziliśmy 20 testów. 2. Zależość czasu trwaia etapu obliczaia etykiet od liczby wierzchołków. Liczba wierzchołków 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Gęstość d Czas trwaia etapu obliczaia etykiet 0,2 0 0,4 0 0,2 0,01 0,4 0,01 0,2 0,02 0,4 0,04 0,2 0,03 0,4 0,07 0,2 0,06 0,4 0,1 0,2 0,08 0,4 0,14 0,2 0,1 0,4 0,2 0,2 0,13 0,4 0,26 0,2 0,16 0,4 0,33 0,2 0,2 0,4 0,4

Z a le ż o ś ć c z a s u trw a ia e ta p u o b lic z e ia e ty k ie to d lic z b y w ie rz c h o łk ó w [s ] 0.4 5 0.4 0.3 5 0.3 0.2 5 0.2 0.1 5 0.1 0.0 5 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 0 0 0 1 0 0 0 0 d = 0,2 d = 0,4 Metoda sortowaia topologiczego opiera się a algorytmie przeszukiwaia grafu w głąb (DFS) algorytm Tarjaa. Polega a tym że po wykoaiu algorytmu DFS (Depth First Search) wystarczy odwrócić kolejość umerowaia wierzchołków i otrzymamy kolejość aszego szukaego sortowaia (oczywiście jest oo tylko sesowe gdy graf ie posiada cykli). Dzieje się tak dlatego, że przy wykoywaiu DFS wierzchołki ajgłębsze otrzymują umer ajwcześiej. Złożoość obliczeiowa metody sortowaia jest główie zależa od złożoości obliczeiowej algorytmu DFS i ewetualie dodatkowych czyości zależych liiowo od liczby wierzchołków. DFS odwiedza wszystkie wierzchołki grafu i dla każdego z ich sprawdza wszystkie wychodzące łuki, więc wyika z tego, że jego złożoość wyiesie O( + m). Jak możemy zauważyć z przeprowadzoych testów, im większa gęstość grafu, tym więcej łuków, co za tym idzie tym większy czas potrzeby do wykoaia algorytmu. Dla grafu pełego (d = 1) złożoość wyiesie aż O( 2 ), atomiast dla m = zaledwie O(). Dla grafu reprezetowaego przez listę astępików, listę poprzedików lub listę łuków jest to ajlepiej widocze z uwagi a to, że im większa gęstość grafu tym większa struktura tych reprezetacji, atomiast ajsłabiej widocze by to było dla macierzy sąsiedztwa. Efektywość algorytmu DFS jest wysoce zależa od reprezetacji grafu, jak już było powiedziae w pukcie 1 ajczęściej wykoywaą w im operacją jest wyzaczaie zbioru astępików co za tym idzie ajkorzystiejszymi reprezetacjami będą te, których złożoość wyzaczaia astępików jest ajmiejsza. Spośród pozaych są to macierz sąsiedztwa i lista astępików, dla których złożoość rówa się O(), z tym że dla m < ajlepsza by była lista astępików. Średio dobrym wyborem jest lista łuków i lista poprzedików dla których złożoość sprawdzaia astępików jest rówa kolejo O(m) i O(m+). Natomiast ajgorszym wyborem byłaby macierz icydeta, dla której złożoość sprawdzaia astępików w skrajym przypadku wyiosłaby aż O(*m).

3. Liczba łuków powrotych. Liczba wierzchołków Gęstość d Liczba łuków powrotych 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0,2 99674 0,4 200032 0,2 399993 0,4 798502 0,2 900289 0,4 1799924 0,2 1600069 0,4 3199229 0,2 2499865 0,4 4999556 0,2 3600226 0,4 7198888 0,2 4898460 0,4 9801501 0,2 6399545 0,4 12796807 0,2 8098762 0,4 16200342 0,2 9999367 0,4 19995138 Każdy z testowaych grafów był cykliczy, graf bez łuków powrotych byłby grafem acykliczym. Wraz ze wzrostem gęstości rosła liczba łuków powrotych. Dla gęstości 2 razy większej była oa odpowiedio około 2 razy większa. Grafów skierowaych cykliczych ie możemy sortować poieważ ie możemy stwierdzić, którą czyość z cyklu ależy wykoać jako pierwszą, a za tym sortujemy jedyie grafy skierowae acykliczie. 4. Zależość czasu trwaia etapu zliczaia liczby łuków powrotych od liczby wierzchołków. Operacja zliczaia łuków powrotych aalizuje zbiór wszystkich łuków i sprawdza czy day łuk (u, v) spełia waruek begi[v] < begi [u] < ed[u] < ed[v], gdzie begi i ed są to etykiety czasowe rozpoczęcia i zakończeia aalizy

daego wierzchołka wyikające z algorytmu DFS. Liczba wierzchołków Czas zliczaia łuków powrotych dla listy astępików Gęstość d = 0,2 Czas zliczaia łuków powrotych dla listy łuków 1000 0 0,01 0,01 2000 0,01 0,02 0,05 3000 0,02 0,04 0,11 4000 0,05 0,06 0,2 5000 0,08 0,09 0,31 6000 0,11 0,14 0,44 7000 0,15 0,19 0,59 8000 0,19 0,25 0,79 9000 0,24 0,32 0,98 10000 0,29 0,39 1,23 Czas zliczaia łuków powrotych dla macierzy sąsiedztwa Liczba wierzchołków Czas zliczaia łuków powrotych dla listy astępików Gęstość d = 0,4 Czas zliczaia łuków powrotych dla listy łuków 1000 0 0,01 0,02 2000 0,02 0,03 0,07 3000 0,05 0,07 0,16 4000 0,09 0,12 0,28 5000 0,15 0,19 0,43 6000 0,2 0,27 0,63 7000 0,28 0,37 0,85 8000 0,37 0,47 1,11 Czas zliczaia łuków powrotych dla macierzy sąsiedztwa

[s ] [s ] 1.4 1.2 0.8 0.6 0.4 0.2 1 0 2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 Z a le ż o ś ć c z a s u trw a ia e ta p u z lic z a ia lic z b y łu k ó w p o w ro t y c h o d lic z b y w ie rz c h o łk ó w. Z a le ż o ś ć c z a s u trw a ia e ta p u z lic z a ia lic z b y łu k ó w p o w ro t y c h o d lic z b y w ie rz c h o łk ó w. 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 0 0 0 1 0 0 0 0 L is ta łu k ó w L is ta a s tę p ik ó w M a c ie rz s ą s ie d z tw a L is ta a s tę p ik ó w L is ta łu k ó w M a c ie rz s ą s ie d z tw a 9000 0,47 0,6 1,4 10000 0,58 0,74 1,73 Z testowaych struktur teoretyczie ajszybsza powia okazać się lista łuków poieważ złożoość operacji przeglądaia zbioru łuków wyosi ajmiej, zaledwie O(m), atomiast z testów wyika, że ajszybsza okazała się lista astępików, dla której złożoość przeglądaia zbioru łuków wyosi O( + m). Stało się tak ajprawdopodobiej dlatego, że przy operacji porówywaia dla listy łuków odwoływaliśmy się do poszczególych wierzchołków aż 6 krotie poprzez tablicę 2 wymiarową, atomiast dla listy astępików tylko 2 krotie poprzez wskaźik a liście i 4 krotie jedyie poprzez ideks kroku który wykoujemy. Z uwagi a zaoszczędzoy czas przy odwoływaiach dla listy astępików i małą wartość w stosuku do m ta reprezetacja właśie okazała się ajszybsza. Jak możemy zauważyć im miejsza gęstość tym miejsza różica w czasie między listą łuków, a listą astępików z uwagi a miejszą ilość operacji porówywaia i miejszą różicę między wartościami a m. Najgorszą strukturą okazała się macierz sąsiedztwa z uwagi a złożoość przeglądaia zbioru łuków rówą aż O( 2 ), ależało w iej sprawdzić ie tylko istiejące łuki, a wszystkie możliwe. Gęstość grafu ma wpływ a czas zliczaia łuków powrotych z uwagi a to, że im większa gęstość tym więcej łuków do sprawdzeia. Jak już wyżej stwierdziliśmy, że wpływ gęstości grafu a czas działaia zależy od reprezetacji

grafu. Prócz wiosków z poprzediego akapit w stosuku do listy łuków i listy astępików, możemy też zauważyć, że dla grafu pełego, czyli gęstości rówej d = 1, każda z tych reprezetacji działała by w podobym czasie z uwagi a złożoość O( 2 ). Różice wyikały by jedyie z czasu odwoływaia się do poszczególych wierzchołków. 5. Reprezetacje grafu. Złożoość pamięciowa: Listy astępików, poprzedików i łuków umożliwiają przedstawieie w zwarty sposób grafów rzadkich ( m jest dużo miejsze iż 2 ). Lista astępików i poprzedików składa się z tablicy z wierzchołków oraz wskaźików astępików lub poprzedików. Lista łuków to tablica z łukami w której zawarte są wierzchołki początkowe i końcowe. Złożoość pamięci a listach astępików i poprzedików jest O(+m) a łuków O(m). Kiedy graf jest gęsty (m jest bliskie 2 ) lub gdy istieje potrzeba szybkiego stwierdzeia, czy istieje łuk łączący dwa dae wierzchołki wtedy może być korzystiejsza reprezetacja macierzy sąsiedztwa. Macierz sąsiedztwa ma złożoość pamięciową O( 2 ). Dla hipergrafów przezaczoa jest macierz icydecji. Oa ma złożoość pamięciową O(*m). Test łuków : Czas sprawdzeia połączeia miedzy dwoma wierzchołkami w macierzy sąsiedztwa jest stały O(1). Poieważ wystarczy odwołać się bezpośredio do odpowiediej komórki. Jest to jej ajwiększą zaletą. Listy astępików i poprzedików sprawdzają połączeie w czasie O() (gdy musimy przeszukać całą listę długości ), ale średio wychodzi zacze lepiej, około O(m/). W liście łuków i macierzy icydecji do przeszukaia mamy zbiór łuków i czas jest O(m). Sprawdzaie astępików: Najlepszą reprezetacją do tego testu jest lista astępików. Liczba kroków wyosi tyle ile jest astępików i jest O(), ale w praktyce często będzie szybsze. W macierzy sąsiedztwa do przejrzeia mamy komórek (p. odpowiedi wiersz) szukając sąsiadów co daje am czas O(). W liście łuków ajpierw musimy przeszukać wiersz długości m (wiersz w którym zajduje się początek łuku) jeśli jest o ie posortoway, a astępie odczytać wierzchołek z drugiego wiersza. Czas takiego odczytywaia jest O(m). Aby wyszukać astępiki w macierzy icydecji ależy w odpowiedim wierszu zaleźć ozaczeie początku(p. wartości -1) i w zalezioych komórkach wyszukać koiec i odczytać umer wiersza. Skrajy czas O(m*). Fatalie wypada tu lista poprzedików w której musimy przeszukać wszystkie listy. Czas jest O(+m). Sprawdzaie poprzedików: Optymalą reprezetacją jest lista poprzedików. Liczba kroków wyosi dokładie tyle ile jest poprzedików, O(). W macierzy sąsiedztwa czas jest O() i jest podobie jak w poszukiwaiu astępików z tą różicą że musimy przejrzeć odpowiedią kolumę(jeśli w poszukiwaiu astępików ależało przeszukiwać wiersz). W liście łuków podobie jak podczas poszukiwaia astępików ajpierw

musimy przeszukać wiersz długości m (wiersz w którym zajduje się koiec łuku), a astępie odczytać wierzchołek z drugiego wiersza. Czas takiego odczytywaia jest O(m). Aby wyszukać poprzediki w macierzy icydecji ależy w odpowiedim wierszu zaleźć ozaczeie końca (p. wartości 1) i w zalezioych komórkach wyszukać początek i odczytać r wiersza. Skrajy czas O(m*). Słabo radzi sobie lista astępików, tutaj ależy przejrzeć wszystkie listy. Jest to czas O(+m). Zbiór łuków: Do odczytaia wszystkich łuków wręcz stworzoa jest lista łuków. Posiada oa wiersz z początkiem i wiersz z końcem łuku. Czas w tej reprezetacji jest O(m). W liście astępików i poprzedików trzeba odczytać wszystkie listy więc czas jest O(+m). W macierzy sąsiedztwa i icydecji trzeba przeszukać cała tablice. Czas O( 2 ) w macierzy sąsiedztwa i O(*m) w macierzy icydecji. Zalety: Macierz sąsiedztwa test łuku O(1). Lista astępików przeglądaie astępików O(). Liczba kroków = liczba astępików. Lista poprzedików przeglądaie poprzedików O(). Liczba kroków = liczba poprzedików. Lista łuków zbiór łuków O(m). Wady : Macierz sąsiedztwa pamięć O( 2 ). Lista astępików przeglądaie poprzedików O(+m). Lista poprzedików przeglądaie astępików O(+m).