Floyd-Warshall Algorithmus < Graphentheorie < Diskrete Mathematik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:55 Fr 15.05.2009 | Autor: | StayPuft |
Moin,
Kennt sich jemand mit diesem Algorithmus aus?
Ich kann ihn durchführen, aber verstehe ihn nicht ganz.
Wenn der Algorithmus korrekt durchgeführt wurde, erhält man am Ende eine Matrix mit den Längen der kürzesten Wege in dem jeweiligen Netzwerk.
Es ist ja ganz nett zu wissen, wie "lang" der kürzeste Weg ist, aber wie kann ich den Weg wieder rekonstruieren?
Steckt diese Information irgendwie in den Zwischen-Matrizen?
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Danke schon mal im Voraus
|
|
|
|
Hallo StayPuft!
> Moin,
>
> Kennt sich jemand mit diesem Algorithmus aus?
>
> Ich kann ihn durchführen, aber verstehe ihn nicht ganz.
> Wenn der Algorithmus korrekt durchgeführt wurde, erhält man
> am Ende eine Matrix mit den Längen der kürzesten Wege in
> dem jeweiligen Netzwerk.
>
> Es ist ja ganz nett zu wissen, wie "lang" der kürzeste Weg
> ist, aber wie kann ich den Weg wieder rekonstruieren?
> Steckt diese Information irgendwie in den
> Zwischen-Matrizen?
Bin nicht mehr in dem Thema drin und musste daher erstmal nachlesen. Ich weiß nicht, welche "Formulierung" du von dem Algorithmus hast und ob da tatsächlich die Rekonstruierung der Pfade automatisch mit drin ist, aber meiner Meinung nach müsste man an der Stelle "d[i,j] = min (d[i,j],d[i,k] + d[k,j])" einfach abspeichern können, wo lang nun der kürzeste Weg geht: Gilt d[i,j]<d[i,k] + d[k,j], so ist der bisher kürzestes Weg der direkte über die Kante (i,j), gilt d[i,j]>d[i,k] + d[k,j], so geht der bisher kürzeste Weg über den Knoten k. Den wiederum hat man bei der Berechnung von d[i,k] und d[k,j] abgespeichert.
Hilft dir das?
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:23 Mo 18.05.2009 | Autor: | StayPuft |
> Hilft dir das?
Ja, hat mir sehr geholfen. Bin garnicht auf diese einfache Idee gekommen, den Algo zu "modifizieren".
Danke für den Tipp, war ja wirklich simpel
|
|
|
|