« poprzedni punkt    następny punkt »



Streszczenie wykładu 12

Tematem tego wykładu są algorytmy grafowe z jednej strony i kontynuacja przykładów algorytmów zachłannych, z drugiej strony. Problem, którym będziemy się zajmować, to konstrukcja minimalnego drzewa rozpinającego grafu. Z problemem tym mozna się spotkać, gdy rozwiązujemy, na przykład, zadanie okablowania sieci komputerowej: chcemy by dowolne dwa komputery były połączone (niekoniecznie bezpośrednio) i by koszt budowy całej sieci był jak najmniejszy.  Drzewo, którego wierzchołkami są komputery, a krawędziami odcinki kabla, jest dobrym rozwiązaniem problemu. Drzewo jest takim podgrafem, który gwarantuje, ze dowolne dwa węzły są połączone drogą. Jeśli dodatkowo ocenimy koszt budowy poszczególnych odcinków (czytaj: krawędzi) i zadbmy o to, by suma kosztów była jak najmnijsza, to będzie to bardzo dobre rozwiązanie zadania. 
Jednym z najbardziej znanych algorytmów rozwiązujących problem minimalnego drzewa rozpinającego jest algorytm Kruskala. Jest to jeszcze jeden przykład algorytmu zachłannego. Koszt tego algorytmu zalezy istotnie od szczegółów implementacyjnych. W punkcie czwartym wykładu omówimy strukturę danych, Find-Union, ktorej uzycie pozwala oszacować koszt algorytmu Kruskala  przez O(m lg n),  gdzie m jest liczbą krawędzi, a n liczbą wierzchołków grafu.  
W punkcie drugim wrócimy ponownie do algorytmów przeglądania grafu BFS i DFS, jako, ze mozna ich uzyć do znajdowania drzewa rozpinającego grafu i do badania spójności, która to własność, jest warunkiem koniecznym istnienia drzewa rozpinającego grafu.








« poprzedni punkt    następny punkt »