Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Diskrete Mathe II Übung 23.5.2005. IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Hinweis Heutige Übung zum Thema Floyd Donnerstag keine Vorlesung.

Ähnliche Präsentationen


Präsentation zum Thema: "Diskrete Mathe II Übung 23.5.2005. IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Hinweis Heutige Übung zum Thema Floyd Donnerstag keine Vorlesung."—  Präsentation transkript:

1 Diskrete Mathe II Übung 23.5.2005

2 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Hinweis Heutige Übung zum Thema Floyd Donnerstag keine Vorlesung Nächsten Montag (30.05.05) Übung zum Thema Scan-Line

3 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 3 Floyd – Graph A B E D C 10 20 15 20 10

4 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 4 Floyd – Adjazenzmatrix

5 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 5 Floyd – Pseudocode private floyd (float A [n,n], float C [n,n]) { int i, j, k; for ( j = 1; j <= n; j++ ) { for ( k = 1; k <=n; k++ ) { //A: Wege A[j,k] = C[j,k]; //C: Kanten } } for( i = 1; i <= n; i++ ) { for( j = 1; j <= n; j++ ) { for( k = 1; k <= n; k++ ) { if ( A[j,i] + A[i,k] < A[j,k] ) A[j,k] = A[j,i] + A[i,k]; }

6 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 6 Floyd – Wegmitführung private floyd (float A [n,n], float C [n,n], int W[n,n] ) { int i, j, k; for ( j = 1; j <= n; j++ ) { for ( k = 1; k <=n; k++ ) { //A: Wege A[j,k] = C[j,k]; W[j,k] = ∞; //C: Kanten } } for( i = 1; i <= n; i++ ) { for( j = 1; j <= n; j++ ) { for( k = 1; k <= n; k++ ) { if ( A[j,i] + A[i,k] < A[j,k] ) A[j,k] = A[j,i] + A[i,k]; W[j,k] = i; }

7 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 7 Wegmitführung Was steht in der Matrix W?

8 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 8 Ausgabe kürzester Weg public weg(int[][] W,int X,int Y) { weg_rekursiv(W,X,Y); gib Y aus; } private weg_rekursiv(int[][] W,int X,int Y) { if ( W[X,Y] = ∞ ) then gib X aus; else { Z = W[X,Y]; weg_rekursiv(W,X,Z); weg_rekursiv(W,Z,Y); } }

9 IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 9 Übungsaufgabe 2.Wendet den Algorithmus von Floyd auf den Graphen an und notiert die jeweilig aktuellen Kosten in der Adjazenzmatrix. Beschränkt Euch bei der Betrachtung auf alle Kombinationen der Laufvariablen i,j,k, bei denen die if-Bedingung erfüllt ist. Wählt dazu die Felder der Matrix so groß, dass neue Werte neben den alten geschrieben werden können. 85 D E A B C 30 90 20 40 100 10 40 3.Notiert die Matrix der kürzesten Wege (bezogen auf das Ergebnis aus 2.) und wendet den Ausgabealgorithmus auf einen Weg an. 1.Notiert die dem obigen Graphen entsprechende Adjazenzmatrix für die Kantengewichte (Kosten).


Herunterladen ppt "Diskrete Mathe II Übung 23.5.2005. IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Hinweis Heutige Übung zum Thema Floyd Donnerstag keine Vorlesung."

Ähnliche Präsentationen


Google-Anzeigen