Hi Felix,
ich vermute mal, dass Du in Cormen, Leiserson, Rivest geschmoekerst hast - ein gutes Buch! Eigentlich ist das Buch fuer Dein Problem nebensaechlich, sollte aber Deine Frage beantworten.
Ich habe Deine Frage jetzt so verstanden, dass Dir unklar ist wozu man negative Kanten in einem Graphen benoetigt und welche Rolle die im „Kuerzeste-Wege-Problem“ spielen und antworte jetzt einfach mal darauf.
Die Gewichte im Graphen muessen nicht immer unbedingt Entfernungen darstellen, sondern koennten z.B. auch Kosten oder Gewinne modellieren. Die Knoten sind zum Beispiel Meilensteine in einem Projekt, die Kanten verkoerpern Prozesse, welche im Projekt durchlaufen werden muessen bzw. koennen. Gesucht ist ein Kostenminimaler Weg (Prozessablauf) von A (Projektstart) nach B (Projektende).
So lassen sich eine Vielzahl von Anwendungsmoeglichkeiten finden, in denen negative Gewichte eine Rolle spielen!
Einige Algorithmen (zum Beispiel der von Dijkstra) arbeiten nicht korrekt, wenn sie auf Graphen mit Kantengewichten kleiner 0 losgelassen werden. Ein entsprechender Beweis muesste in Deinem Buch zu finden sein. Eigentlich brauchst Du Dir nur ein Beispiel zu konstruieren. (Zum Beispiel folgender Graph mit drei gerichteten Kanten ((A,B,2),(A,C,3),(B,C,-2)). (Beschreibung einer Kante: (Anfangsknoten, Endknoten, Gewicht) Gesucht ist der kuerzeste Weg von A nach C. Der Algorithmus von Dijkstra wuerde den Weg (A,B) mit der Gewichtssumme 2 liefern, welches natuerlich falsch ist.
Andere Algorithmen (zum Beispiel der von Moore) kommen mit negativen Kanten klar, benoetigen aber mehr Rechenzeit. (Dijkstra O(|V|^2), Moore O(|V|^3) V ist die Knotenmenge des Graphen. )
So nun ist die Lehrbuchstunde beendet.
Hoffentlich hat es geholfen?
Gruss Jan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]