lista 5

Transkrypt

lista 5
Projektowanie algorytmów i metody sztucznej inteligencji
laboratorium
Temat 5:
Algorytmy wyznacznia minimalnego drzewa rozpinaj¡cego
Wst¦p
Zadanie polega na samodzielnej implementacji i analizie efektywno±ci algorytmów wyznaczania minimalnego drzewa rozpinaj¡cego w zale»no±ci metody reprezentacji grafu. Czas przeznaczony na jego wykonania
obejmuje 2 terminy zaj¦¢. Oprócz niezb¦dnego kodu wymagane jest napisanie krótkiego sprawozdania. Ocena
z zadania b¦dzie miaªa dwukrotnie wy»sz¡ wag¦.
Algorytmy
Nale»y zaimplementowa¢ dwa algorytmy wyznaczaj¡ce minimalne drzewo rozpinaj¡ce
• algorytm Prima,
• algorytm Kruskala
dla dwóch reprezentacji grafu w pami¦ci
• macierz s¡siedztwa,
• lista s¡siadów.
Co ª¡cznie daje cztery algorytmy (2 × 2). Umiej¦tne wykorzystanie szablonów C++ pozwoli unikn¡¢ zwielokrotnienia kodu algorytm mo»e by¢ szablonem zale»nym od struktury przechowywuj¡cej graf. Podobny efekt
mo»e zosta¢ uzyskany przy pomocy polimorzmu dynamicznego.
W implementacji nie mo»na u»ywa¢ biblioteki boost::graph, ani podobnych. Mo»na natomiast korzysta¢ z
bibiotek stl, boost::heap oraz boost::intrusive, lecz korzystanie z wªasnych algorytmów i struktur danych
b¦dzie premiowane wy»sz¡ ocen¡.
Po pierwszym terminie zaj¦¢ nale»y zaimplementowa¢ generowanie spójnych grafów o zadanej liczbie wierzchoªków i ±redniej g¦sto±ci oraz przynajmniej jeden algorytm dziaªaj¡cy na przynajmniej jednej reprezentacji
grafu.
Grafy testowe
Do testowania algorytmu nale»y u»y¢ grafów losowych o zadanej liczbie wierzchoªków V . z
prawdopodobie«stwem p ka»da para wierzchoªków powinna zosta¢ niezale»eni poª¡czona kraw¦dzi¡.
Mo»e si¦ zdarzy¢, »e graf wygenerowany w ten sposób nie b¦dzie spójny nale»y taki graf odrzuci¢ i
powtórzy¢ procedur¦ losowania.
Pomiary
Czas dziaªania ka»dej z 4 implementacji powinien zosta¢ zmierzony przy:
• zmiennej liczbie wierzchoªków (np. V ∈ {28 , 29 , 210 , 211 , 212 }) i staªej (±redniej) g¦sto±ci (p = const.)
• zmiennej (±redniej) liczbie kraw¦dzi (lub g¦sto±ci) (np. p ∈ {20%, 40%, 60%, 80%, 100%}) przy ustalonej
liczbie wierzchoªków
Podane powy»ej rozmiary danych testowych s¡ przykªadowe i mog¡ zosta¢ zmienione, je»eli czas testowania
oka»e si¦ zbyt dªugi lub dokªadno±¢ pomiaru pomiaru oka»e si¦ zbyt maªa. Ka»dy punkt pomiarowy nale»y
powtórzy¢ kilka razy w zale»no±ci o wyst¦puj¡cych rozbie»no±ci w wynikach. Do ka»dego powtórzenia nale»y
wygenerowa¢ nowy graf, aby uzyska¢ u±rednienie po grafach.
Przeprowadzenie pomiarów w trybie Release (zamiast Debug) lub ustawienie odpowiednich opcji w wywoªaniu kompilatora (-O2 albo -O3) polepszy jako±¢ pomiarów.
Zawarto±¢ sprawozdania
informacje
Sprawozdanie powinno zosta¢ wysªane w formacie pdf i zawiera¢ nast¦puj¡ce
• dane autora
• krótkie omówienie wykorzystanych algorytmów i struktur danych,
• oszacowanie zªo»ono±ci obliczeniowej dla ka»dego przypadku,
• omówienie przebiegu eksperymentów z przedstawieniem wykresów i tabel,
• oszacowanie zªo»ono±ci obliczeniowej ka»dego z algorytmów w ka»dym z rozwa»anych warunków,
• omówienie zalet i wad ka»dego z algorytmów
• podsumowanie, wnioski, wyja±nienie ewentualnych niezgodno±ci z przewidywaniami oraz ich mo»liwe przyczyny,
• parametry komputera, na którym prowadzono pomiary pr¦dko±ci,
• literatur¦ lub inne ¹ródªa informacji, z których si¦ korzystaªo.