ALG 3

ALG 3



10.4. Algorytm Roy-Warshalla 253

Algorytm Roy-Warshalla może być w dość prosty sposób zmodyfikowany, tak aby dostarczyć informacji nie tylko o istnieniu drogi wiodącej od wierzchołka ,v do wierzchołkay, ale oprócz tego podać przepis którędy należy pójść...

W celu zidentyfikowania drogi (oczywiście jeśli w ogóle ona istnieje!) przyporządkujemy macierzy reprezentującej graf tzw. macierz kierowania ruchem (ang. routing) R. Jest ona zdefiniowana w sposób następujący:

•    R[x. y]=0. jeśli nie ma drogi, która wiedzie od .r do y;

•    R[x, yj^z, gdzie z oznacza „następny” wierzchołek na drodze od x do y.

Konstrukcja matiycy umożliwia w naturalny sposób odtworzenie drogi wiodącej od danego wierzchołka do innego:

route.cpp

void pisz(int x, int y, int rt(n][n]) l

int k;

if(R[x][y)==C)

cout « "Drogi nie ;ua\n"; else (

cout << x « endl; k=x;

while(k!=y) k=RLkJ ty];

cout « k « endl;

)

f

cout << endl;

f

Wiemy już, jak wypisać drogę na podstawie macierzy R, najwyższa zatem pora na przedstawienie algorytmu, który ją prawidłowo dla danego grafu wylicza.

Przedstawiona poniżej procedura route „zakłada", że matryca R przekazana jej w parametrze została zainicjowana uprzednio w następujący sposób:

•    R[x,y]=0, jeśli nic istnieje krawędź (x,y);

•    R[x,y]=y, w przeciwnym przypadku.

Zapis procedury jest ekstremalnie prosty:

void route(int R[n][n])

(

for(int x=C;x<n;x++) for(int y=0;y<n;y++!

if(R[y)[x]!—O> II wiemy jak dojść z 'y' do 'x' for(int z=0;z<n;z++)


Wyszukiwarka

Podobne podstrony:
ALG 5 10.5. Algorytm Floyda 255 •    W/iJ]~wartość przypisana krawędzi lub00 (inaczej
ALG 7 10,5. Algorytm Floyda_25710.6.Przeszukiwanie grafów Dużo interesujących zadań algorytmicznych,
WYKŁAD 10 Orzeczenie ETS z 14 maja 1998r. Art.7 dyrektywy powinien byc interpretowany w ten sposob.
1,2 (63) Strona: (Poprzedni) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 29    Teletransmisja
10 Algorytm Floyda-Warshalla Rozważmy graf G — (V,E), w którym z każdą krawędzią skojarzono nieujemn
ALG&5 10.7. Problem właściwego doboru_ 265 Algorytm doboru można zamknąć w rozbudowanej funkcji inci
202 203 202 X    V 5.11.5. Mnożenie binarna Jak pamiętam? (patrz p. 1.2.10), algorytm
202 203 202X    Y 5.11.3. Mnożenie binarne Jak pamiętamy (patrz p. 1.2.10), algorytm
10.2.1. Algorytm wyznoczonlo dondrytu dróg najdłuższych O o n c x Siać cklorowann boz dróg cykliczny
DSC00303 (8) ip.ł. DROPI PROSTR. BK3TKBMAŁNB W SIECIACH ACYKLICZNYCH 10.2.1. Algorytm wyznaczania ma
DSC00304 (9) 10,3. OROOl PROSTE, ■KmUlMAt.Nt W SIECIACH CYKLICZNYCH 10.3.1. Algorytm wyznaczania mak
ALG!3 8.2. Nowe algorytmy poszukiwań 213 Analogiczny przykład znajduje się na rysunku 8-5. 8.2. Nowe
ALG!5 8.2. Nowe algorytmy poszukiwań 215 l int i=-1 ; start: i++; etO: if (t: i]! = ■ i + + ; a
ALG!9 8,2. Nowe algorytmy poszukiwań 219 słowa wejściowego o długości M wydaje się tak samo kosztown
ALG 1 8.2. Nowe algorytmy poszukiwań 221 Kolejne uwagi należą się parametrom p i b. Zaleca się, aby
ALG(7 12.3. Algorytm mini-max 287 Załóżmy również, że wartości liczbowe węzłów z ostatniego poziomu,
ALG(9 12.3. Algorytm inini-max 289 ( if (gracz==komputer) return człowiek; else return

więcej podobnych podstron