Diskrete Mathe II Übung
IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Hinweis Heutige Übung zum Thema Floyd Donnerstag keine Vorlesung Nächsten Montag ( ) Übung zum Thema Scan-Line
IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 3 Floyd – Graph A B E D C
IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 4 Floyd – Adjazenzmatrix
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]; }
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; }
IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 7 Wegmitführung Was steht in der Matrix W?
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); } }
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 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).