AiSD wyklad 6 id 53491 Nieznany (2)

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytmy

i

struktury danych

WYKŁAD 6

dr inż. Krzysztof Pancerz

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytmy grafowe

Wyszukiwanie najkrótszej ścieżki

algorytm Dijkstry

Wyznaczanie minimalnego drzewa
rozpinającego

algorytm Kruskala

algorytm Prima

Przeszukiwanie

Przeszukiwanie w głąb

Przeszukiwanie wszerz

Wyznaczanie silnie spójnych składowych

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Przeszukiwanie w głąb

Wybieramy wierzchołek startowy v. Oznaczamy
v jako odwiedzony.

Rekurencyjnie stosujemy metodę
przeszukiwania zstępującego do wszystkich
wierzchołków będących sąsiadami wierzchołka
v.

Jeśli wszystkie wierzchołki, które mogą zostać
odwiedzone przeszukiwaniem zstępującym
zostły odwiedzone, to wybieramy nowy
wierchołek startowy (taki, który do tej pory nie
został odwiedzony) i powtarzamy
przeszukiwanie.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Przeszukiwanie wszerz

Wybieramy wierzchołek startowy v. Oznaczamy
v jako odwiedzony.

Odwiedzamy każdy wierzchołek osiągalny z
wierzchołka v, który do tej pory nie był
odwiedzony.

Jeśli wszystkie wierzchołki osiągalne z
wierzchołka v zostaną odwiedzone, to
wybieramy nowy wierzchołek startowy (taki,
który do tej pory nie został odwiedzony) i
powtarzamy przeszukiwanie.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Drzewa rozpinające

G – graf spójny z wagami.

Drzewo rozpinające – podgraf grafu G, który
jest drzewem zawierającym wszystkie
wierzchołki grafu G.

Minimalne drzewo rozpinające – drzewo
rozpinające, dla którego suma wag krawędzi
jest minimalna.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Przykład

G=(V,E,w) – graf spójny z wagami.

Wierzchołki reprezentują miasta.

Krawędzie reprezentują drogi pomiędzy
miastami.

Wagi reprezentują koszty przejazdów
poszczególnymi drogami.

Problem: Znaleźć zbiór dróg łączących
wszystkie miasta, dla którego sumaryczny koszt
przejazdu drogami jest minimalny.

Rozwiązanie: Znaleźć minimalne drzewo
rozpinające.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Przykład (cd.)

Graf G

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Przykład (cd.)

Minimalne drzewo rozpinające grafu G

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Kruskala

Algorytm Kruskala jest algorytmem zachłannym
znajdującym minimalne drzewo rozpinające
danego grafu spójnego z wagami.

Reguła zachłanna: dodaj krawędź o minimalnej
wadze, która nie tworzy cyklu.

Rozwiązanie częściowe nie musi być drzewem.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Kruskala (cd.)

Wejście:

G=(V,E,w) – graf spójny z wagami.

Wyjście:

T – zbiór wierzchołków minimalnego drzewa

rozpinającego grafu G.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Kruskala (cd.)

T=Φ

utwórz rozłączne podzbiory zbioru V (każdy podzbiór zawiera

jeden wierzchołek ze zbioru V)

sortuj zbiór krawędzi E w porządku niemalejącym ze względu na

wagi krawędzi

while (nie wszystkie podzbiory są połączone)

{ wybierz kolejną krawędź e ze zbioru E

if(e łączy dwa wierzchołki z podzbiorów rozłączonych)
{

połącz podzbiory
dodaj krawędź e do zbioru T

}

}

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Prima

Algorytm Prima jest algorytmem zachłannym
znajdującym minimalne drzewo rozpinające
danego grafu spójnego z wagami.

Reguła zachłanna: dodaj krawędź o minimalnej
wadze, która ma jeden wierzchołek w bieżącym
drzewie a drugi, który nie należy do bieżącego
drzewa.

Każde rozwiązanie częściowe jest drzewem.

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Prim's Algorithm (cont.)

Wejście:

G=(V,E,w) – graf spójny z wagami,

– wierzchołek startowy.

Wyjście:

T – zbiór wierzchołków minimalnego drzewa

rozpinającego grafu G.

v

V

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Prima (cd.)

T=Φ
U
={v}
while (UV)
{

znajdź krawędź o minimalnej wadze taką,

że oraz

}

x , y∈E

x

U

y

V U

T

=T ∪{x , y}

U

=U ∪{ y }

background image

Krzysztof Pancerz

Algorytmy i struktury danych

Algorytm Dijkstry

Problem: znaleźć najkrótsze ścieżki z danego
wierzchołka do wszytkich pozostałych
wierzchołów w grafie spójnym z wagami.

Wejście:

- graf spójny z wagami.

– dany wierzchołek.

Reguła zachłanna: Spośród wszystkich
wierzchołków, które mogą przedłużyć
najkrótszą ścieżkę do tej pory znalezioną,
wybierz ten, którego dodanie prowadzi dalej do
najkrótszej ścieżki.

G

=V , E , w

e

E


Wyszukiwarka

Podobne podstrony:
AiSD wyklad 1 id 53489 Nieznany
AiSD wyklad 9 id 53492 Nieznany (2)
LOGIKA wyklad 5 id 272234 Nieznany
ciagi liczbowe, wyklad id 11661 Nieznany
AF wyklad1 id 52504 Nieznany (2)
Neurologia wyklady id 317505 Nieznany
ZP wyklad1 id 592604 Nieznany
CHEMIA SA,,DOWA WYKLAD 7 id 11 Nieznany
or wyklad 1 id 339025 Nieznany
II Wyklad id 210139 Nieznany
cwiczenia wyklad 1 id 124781 Nieznany
BP SSEP wyklad6 id 92513 Nieznany (2)
MiBM semestr 3 wyklad 2 id 2985 Nieznany
algebra 2006 wyklad id 57189 Nieznany (2)
olczyk wyklad 9 id 335029 Nieznany
Kinezyterapia Wyklad 2 id 23528 Nieznany
AMB ME 2011 wyklad01 id 58945 Nieznany (2)
AWP wyklad 6 id 74557 Nieznany

więcej podobnych podstron