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.