Sprawozdanie do zadania numer 2

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

Grafy i sieci w informatyce - opis przedmiotu

Złożoność obliczeniowa klasycznych problemów grafowych

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Matematyczne Podstawy Informatyki

AiSD zadanie trzecie

a) 7 b) 19 c) 21 d) 34

Digraf. 13 maja 2017

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Algorytmy zachłanne. dr inż. Urszula Gałązka

PRZEWODNIK PO PRZEDMIOCIE

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

Ogólne wiadomości o grafach

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

AISDE ćwiczenie 5. Algorytmy grafowe

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

IMPLEMENTACJA I PORÓWNANIE WYDAJNOŚCI WYBRANYCH ALGORYTMÓW GRAFOWYCH W WARUNKACH OBLICZEŃ RÓWNOLEGŁYCH

Zadanie projektowe nr 1

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Minimalne drzewa rozpinające

Zadanie projektowe 1: Struktury danych i złożoność obliczeniowa

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 1,2,3. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Algorytmy sortujące. Sortowanie bąbelkowe

Algorytmy i struktury danych.

Matematyczne Podstawy Informatyki

Wykaz tematów prac licencjackich w roku akademickim 2016/2017 kierunek: informatyka

Kierunek: Informatyka. Przedmiot:

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Algorytmiczna teoria grafów

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Drzewa poszukiwań binarnych

REFERAT PRACY DYPLOMOWEJ

Graf. Definicja marca / 1

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013

Algorytmy i Struktury Danych.

Algorytmizacja procesu wyznaczania długości ścieżek w sieci rozbudowanej podstawą optymalizacji zagadnień transportowych

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Programowanie dynamiczne i algorytmy zachłanne

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Wykład 10 Grafy, algorytmy grafowe

ZASTOSOWANIE GRAFU WIDOCZNOŚCI W PLANOWANIU TRASY PRZEJŚCIA STATKU APPLICATION OF A VISIBILITY GRAPH IN SHIP S PATH PLANNING

Listy, kolejki, stosy

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

Programowanie sieciowe. Tadeusz Trzaskalik

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

Metodyki i techniki programowania

Przykładowe sprawozdanie. Jan Pustelnik

Teoria obliczeń i złożoność obliczeniowa

Instytut Ekonomiczny 9 kierunek studiów

Konspekt. 15 października Wykład III (16 października 2014 r.): optymalizacja kombinatoryczna na grafach (metody sieciowe)

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Informatyka II. Laboratorium.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

Sortowanie - wybrane algorytmy

TEORIA GRAFÓW I SIECI

Matematyka dyskretna

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010.

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

Wyznaczanie optymalnej trasy problem komiwojażera

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

Podstawy Informatyki. Sprawność algorytmów

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

R E C E N Z J A. rozprawy doktorskiej mgr Wojciecha Bury nt. Wielokryterialne, mrowiskowe algorytmy optymalizacji w nawigacji samochodowej

Algorytmiczna teoria grafów

Badanie struktury sieci WWW

WSTĘP DO INFORMATYKI. Grafy i struktury grafowe

Algorytmika Problemów Trudnych

Programowanie obiektowe

Algorytmy z powracaniem

Struktury Danych i Złożoność Obliczeniowa

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Wykład 7. Algorytmy grafowe

Transkrypt:

Sprawozdanie do zadania numer 2 Michał Pawlik 29836 Temat: Badanie efektywności algorytmów grafowych w zależności od rozmiaru instancji oraz sposobu reprezentacji grafu w pamięci komputera 1 WSTĘP W ramach zadania projektowego zaimplementowałem i przeanalizowałem działanie następujących algorytmów: Wyznaczających minimalne drzewo rozpinające: Prima oraz Kruskala Wyznaczających najkrótszą ścieżkę w grafie: Dijkstry Implementacje zostały wykonane z użyciem reprezentacji macierzy incydencji oraz listowej. Złożoności obliczeniowe algorytmów: Algorytm Prima O(E logv) Algorytm Kruskala O(E logv) Algorytm Dijkstry O(E logv) 2 PLAN EKSPERYMENTU 2.1 WIELKOŚCI STRUKTUR Struktury przyjmować będą wielkości 1, 25, 5, 75 i 1 wierzchołków. Dla każdej z badanych ilości wierzchołków rozpatrywane będą gęstości drzewa: 25%, 5%, 75% oraz 99%. 2.2 POMIAR CZASU Czas mierzony będzie poprzez pobranie czasu systemowego przed i po wykonaniu algorytmu, następnie policzenie ich różnicy. 2.3 GENEROWANIE GRAFÓW Dla grafów o niskiej gęstości algorytm dba o istnienie w grafie ścieżki, która łączy każdą parę wierzchołków i graf ma nie mniej krawędzi niż wynosi liczba wierzchołków pomniejszona o jeden. Dla gęstszych grafów nie zachodzi ryzyko niespójności, zatem są generowane losowo. Strona 1

Michał Pawlik 29836 3 WYNIKI EKSPERYMENTÓW 3.1 MINIMALNE DRZEWO ROZPINAJĄCE ALGORYTM KRUSKALA Reprezentacja macierzowa 1 25 5 75 1 25,816 1,2916 18,5928 86,32 258,192 5,1538 4,691 57,9664 275,71 862,42 75,2494 7,4488 19,399 534,2 1669,32 99,3776 1,654 164,2381 813,88 2555,96 Reprezentacja listowa 1 25 5 75 1 25,83 1,3129 17,9449 84,62 252,91 5,1541 3,9267 57,382 271,87 842,43 75,25 7,245 11,6292 522,68 1646,92 99,3857 1,413 161,6619 8,92 2528,45 3.2 MINIMALNE DRZEWO ROZPINAJĄCE ALGORYTM PRIMA Reprezentacja macierzowa 1 25 5 75 1 25,393 2,191 55,66 385,88 155,65 5,691 4,2588 113,34 771,24 317,82 75,115 6,2738 169,85 117,1 4684,79 99,1346 8,267 221,66 154,9 6217,86 Reprezentacja listowa 1 25 5 75 1 25,1258,18546 2,5457 13,3228 4,9815 5,18312,35366 4,9239 25,2 82,1778 75,238,51411 7,532 39,616 123,896 99,2956,68377 1,14 51,377 164,471 Strona 2

Michał Pawlik 29836 MST reprezentacja macierzowa 7 6 5 4 3 2 Prim - gęstość 25 Prim - gęstość 5 Prim - gęstość 75 Prim - gęstość 99 Kruskal - gęstość 25 Kruskal - gęstość 5 Kruskal - gęstość 75 Kruskal - gęstość 99 1-1 Strona 3

Michał Pawlik 29836 MST Reprezentacja listowa 3 25 2 Kruskal - gestosc 25 15 1 Kruskal - gestosc 5 Kruskal - gestosc 75 Kruskal - gęstość 99 Prim - gęstość 25 Prim - gęstość 5 Prim - gęstość 75 Prim - gęstość 99 5-5 Strona 4

Michał Pawlik 29836 Algorytm Prima - reprezentacja listowa 18 16 14 12 1 8 6 4 2-2 25 5 75 99 Algorytm Prima - reprezentacja macierzowa 7 6 5 4 3 2 1-1 25 5 75 99 Strona 5

Michał Pawlik 29836 Algorytm Kruskala - reprezentacja listowa 3 25 2 15 1 5-5 25 5 75 99 Algorytm Prima - reprezentacja macierzowa 7 6 5 4 3 2 1-1 25 5 75 99 Strona 6

Michał Pawlik 29836 3.3 WYZNACZANIE NAJKRÓTSZEJ ŚCIEŻKI W GRAFIE ALGORYTM DIJKSTRY Reprezentacja macierzowa 1 25 5 75 1 25,258,133,4915 1,4587 3,892 5,283,1418,7747 2,1264 4,5912 75,313,1675,9119 2,7417 6,2735 99,351,1933 1,1237 3,3525 7,811 Reprezentacja listowa 1 25 5 75 1 25,258,971,466 1,225 2,54 5,279,1236,58 1,2991 2,5692 75,317,1463,619 1,572 3,823 99,343,1641,726 1,7835 3,5392 9 Algorytm Dijkstry 8 7 6 5 4 3 2 Lista - gęstość 25 Lista - gęstość 5 Lista - gęstość 75 Lista - gęstość 99 Macierz - gęstość 25 Macierz - gęstość 5 Macierz - gęstość 75 Macierz - gęstość 99 1 Strona 7

Michał Pawlik 29836 Algorytm Dijkstry - reprezentacja listowa 4 3,5 3 2,5 2 1,5 1,5 25 5 75 99 Algorytm Dijkstry - reprezentacja macierzowa 9 8 7 6 5 4 3 2 1 25 5 75 99 Strona 8

Michał Pawlik 29836 4 WNIOSKI Dane uzyskane w pomiarach wykazały niską w stosunku do danych z literatury skuteczność reprezentacji listowej. Wynika ona z charakteru jej implementacji. W większości zaprezentowanych pomiarów zauważamy, że czas wykonania algorytmów opartych o reprezentację listową jest niższy. Dzieje się tak ze względu na krótszy czas alokacji listy w stosunku do macierzy incydencji. Rozbieżności pomiędzy danymi literaturowymi a przedstawionymi wynikami eksperymentu mogą wynikać z niedokładności pomiaru czasu w systemie Windows, różnej zajętości procesora podczas wykonywania algorytmów, niedoskonałej implementacji struktur (lista, tablica, kopiec, kolejka, stos) oraz, przede wszystkim, wpływających na efektywność błędów w implementacji algorytmów. Rzeczywiste kształty wykresów mogą nie być widoczne przy tak małej ilości danych. Algorytm Prima niezależnie od reprezentacji wykazuje niższe czasy wykonania. Ze względu na wady implementacyjne i wynikające z nich problemy z dokonaniem pomiarów, nie zamieszczono czwartego algorytmu (Forda-Bellmana) 5 BIBLIOGRAFIA W realizacji zadania projektu posiłkowałem się następującymi pomocami naukowymi: Cormen Thomas H., Leiserson Charles E., Rivest Ronald L., Wprowadzenie do Algorytmów, wyd. IV, Warszawa: Wydawnictwa Naukowo-Techniczne Algorytm Dijkstry Wikipedia, wolna encyklopedia http://pl.wikipedia.org/wiki/algorytm_dijkstry Algorytm Prima Wikipedia, wolna encyklopedia http://pl.wikipedia.org/wiki/algorytm_prima Macierz incydencji Wikipedia, wolna encyklopedia http://pl.wikipedia.org/wiki/macierz_incydencji Algorytm Kruskala Wikipedia, wolna encyklopedia https://pl.wikipedia.org/wiki/algorytm_kruskala Algorytm Forda-Bellmana Wikipedia, wolna encyklopedia https://pl.wikipedia.org/wiki/algorytm_bellmana-forda Strona 9