www.wikidata.de-de.nina.az
Ein kurzester Pfad ist in der Graphentheorie ein Pfad zwischen zwei unterschiedlichen Knoten s t V displaystyle s t in V eines Graphen welcher minimale Lange bezuglich einer Kantengewichtsfunktion c E R displaystyle c colon E to mathbb R hat Haben die Kanten im Graphen alle das Gewicht 1 ist also c e 1 displaystyle c e 1 fur alle Kanten e E displaystyle e in E so ist der kurzeste Pfad ein s displaystyle s t displaystyle t Pfad mit der geringstmoglichen Anzahl von Kanten zwischen s displaystyle s und t displaystyle t In der Literatur 1 wird das Problem oft als Shortest Path Problem bezeichnet Inhaltsverzeichnis 1 Komplexitat 2 Variationen des Problems 2 1 Single source shortest path SSSP 2 2 Single destination shortest path SDSP 2 3 All pairs shortest path APSP 3 Beispiel 4 Formulierung als lineares Programm 5 Knotenpotentiale 6 Anwendungen 7 Kurzeste Wege mit Nebenbedingungen 8 Literatur 9 EinzelnachweiseKomplexitat BearbeitenDie Komplexitat hangt massgeblich von der Art der Gewichtsfunktion ab und davon ob Pfade oder Kantenzuge betrachtet werden In Kantenzuge konnen sich Knoten und Kanten wiederholen wahrend Pfade keinen Knoten doppelt verwenden Man unterscheidet drei Arten von Gewichtsfunktionen Gewichtsfunktionen ohne negative Gewichte Konservative Gewichtsfunktion Eine Gewichtsfunktion heisst konservativ fur den Graphen G displaystyle G nbsp wenn c C e C c e 0 displaystyle c C sum e in C c e geq 0 nbsp fur alle Zyklen C displaystyle C nbsp von G displaystyle G nbsp Gewichtsfunktionen mit beliebigen Gewichten Die genaue Problemformulierung ist entscheidend um die Komplexitatsfrage beantworten zu konnen Ohne negative Gewichte Mit Dijkstras Algorithmus kann man das Problem in einer Laufzeit von O m n log n displaystyle O m n cdot log n nbsp losen wobei m displaystyle m nbsp die Anzahl der Kanten und n displaystyle n nbsp die Anzahl der Knoten im Graphen bezeichnen Man beachte dass die kurzesten Pfade auch kurzeste Kantenzuge sind Sind alle Gewichte echt positiv stimmen die kurzesten Pfade mit den kurzesten Kantenzugen uberein Mit beliebigen Gewichten und mit Kantenzugen Falls der Graph einen Zyklus enthalt bei dem die Summe uber die Gewichte strikt negativ ist dann gibt es Knoten s t displaystyle s t nbsp die keinen kurzesten Kantenzug haben Wenn es einen Kantenzug von s displaystyle s nbsp zu diesem Zykel gibt und einen Kantenzug von diesem Zykel zu t displaystyle t nbsp dann kann man einen beliebig kurzen Kantenzug von s displaystyle s nbsp nach t displaystyle t nbsp erzeugen indem der Zyklus nur hinreichend oft durchlaufen wird Der Algorithmus von Bellman Ford kann in einer Laufzeit von O n m displaystyle O nm nbsp einen kurzesten Kantenzug finden falls es ihn gibt oder beweisen dass es keinen gibt indem ein negativer Zyklus gefunden wird Das Entscheidungsproblem ob es einen Pfad der Lange C displaystyle leq C nbsp gibt lasst sich damit in Polynomialzeit losen Mit beliebigen Gewichten und mit Pfaden Diese Variante des Problems ist NP schwer Dies kann zum Beispiel durch eine Reduktion vom NP schweren Hamiltonpfadproblem bewiesen werden indem beim Kurzester Pfad Problem alle Gewichte auf 1 gesetzt werden Man beachtet dass diese Konstruktion negative Zyklen enthalt und deswegen gilt die NP Schwere nicht fur konservative Gewichtsfunktionen Konservative Gewichtsfunktion und mit Pfaden Der Algorithmus von Bellman Ford kann in einer Laufzeit von O n m displaystyle O nm nbsp einen kurzesten Pfad finden Die Literatur beschrankt sich meistens auf nichtnegative Gewichte oder konservative Gewichtsfunktion Mit einer dieser Zusatzforderungen ist jeder kurzeste Pfad automatisch ein kurzester Kantenzug und deswegen wird in der Literatur diese Unterscheidung oft nicht gemacht Im Gegensatz zum Problem des kurzesten Pfades ist das Problem des langsten Pfades sogar fur ungewichtete Graphen NP schwer Variationen des Problems BearbeitenAbgesehen von der Bestimmung eines kurzesten s displaystyle s nbsp t displaystyle t nbsp Pfades gibt es noch einige weitere jedoch sehr ahnliche Probleme Single source shortest path SSSP Bearbeiten Diese Variante befasst sich mit dem Problem wie man die kurzesten Wege zwischen einem gegebenen Startknoten und allen ubrigen Knoten eines Graphen berechnet Fur nichtnegative Gewichtsfunktionen lassen sich der Dijkstra Algorithmus bzw der A Algorithmus anpassen um die kurzesten Wege zu allen Knoten des Graphs zu berechnen Fur beliebige konservative Gewichtsfunktionen berechnet der Bellman Ford Algorithmus andererseits stets auch die kurzesten Pfade zu allen anderen Knoten Single destination shortest path SDSP Bearbeiten Ziel ist hier die Bestimmung eines kurzesten Pfades zwischen einem Endknoten und allen anderen Knoten des Graphen Dieses Problem kann durch eine Umkehrung der Kantenrichtungen als SSSP beschrieben werden All pairs shortest path APSP Bearbeiten In dieser Variante geht es um die Bestimmung der kurzesten Pfade zwischen allen Knotenpaaren eines Graphen Abhangig von der Gewichtsfunktion ist es effizienter fur jeden Knoten nacheinander das SSSP losen oder jedoch spezialisierte Verfahren wie etwa den Floyd Warshall Algorithmus oder den Min Plus Matrixmultiplikations Algorithmus zu verwenden die gleichzeitig fur alle Paare kurzeste Pfade bestimmen Beispiel Bearbeiten nbsp BeispielgraphIm nebenstehend gegebenen Graphen ist ein kurzester Pfad zwischen den Knoten D displaystyle D nbsp und C displaystyle C nbsp der Pfad welcher in D displaystyle D nbsp startet und uber B displaystyle B nbsp nach C displaystyle C nbsp geht Die Pfadkosten betragen hierbei 9 8 17 displaystyle 9 8 17 nbsp Will man jedoch einen Pfad von D displaystyle D nbsp nach E displaystyle E nbsp finden so ist der direkte Weg mit Kosten von 15 displaystyle 15 nbsp nicht der kurzestmogliche Pfad da der Weg von D displaystyle D nbsp uber F displaystyle F nbsp nach E displaystyle E nbsp nur Kosten von 14 8 6 displaystyle 14 8 6 nbsp hat Formulierung als lineares Programm BearbeitenZur Bestimmung eines kurzesten Pfades lasst sich ausserdem ein lineares Programm heranziehen Man interpretiert in diesem Fall den Pfad als Fluss mit einem Flusswert von 1 auf den Kanten des Graphen Die Bestimmung des kurzesten Pfades ist dann ein Spezialfall des Min cost flow Problems Die entsprechende Formulierung lautet min e E c e x e so dass v V e d v x e e d v x e 1 falls v s 1 falls v t 0 sonst e E x e 0 displaystyle begin aligned min amp sum e in E c e x e text so dass amp forall v in V colon sum e in operatorname delta v x e sum e in operatorname delta v x e begin cases 1 amp text falls v s 1 amp text falls v t 0 amp text sonst end cases amp forall e in E colon x e geq 0 end aligned nbsp Falls ein s displaystyle s nbsp t displaystyle t nbsp Pfad im gegebenen Graphen existiert so hat das Programm eine zulassige Losung Das Programm ist allerdings unbeschrankt wenn die Gewichtsfunktion nicht konservativ ist In diesem Fall kann der Fluss namlich entlang eines Zykels mit negativen Kosten beliebig weit erhoht werden Andernfalls hat das Problem eine Optimallosung x displaystyle x nbsp welche einem 0 1 displaystyle 0 1 nbsp Vektor mit E displaystyle E nbsp Eintragen entspricht Die Menge e E x e 1 displaystyle e in E x e 1 nbsp beschreibt dann einen kurzesten s displaystyle s nbsp t displaystyle t nbsp Pfad der Zielfunktionswert des Programms entspricht der Lange des Pfades Knotenpotentiale BearbeitenEs stellt sich heraus dass die Dualisierung des obigen linearen Programms eine anschauliche Interpretation hat Das duale Programm ist gegeben durch max y t y s so dass e u v E y v y u c e displaystyle begin aligned max amp y t y s text so dass amp forall e u v in E colon y v y u leq c e end aligned nbsp Eine Losung y displaystyle y nbsp des dualen Programms nennt man ein Knotenpotential Man sieht leicht dass fur jede Losung y v v V displaystyle y v v in V nbsp der Vektor y v d v V displaystyle y v delta v in V nbsp ebenfalls eine Losung ist wobei man d R displaystyle delta in mathbb R nbsp beliebig wahlen kann Man setzt in der Regel den Wert von d displaystyle delta nbsp so dass y s 0 displaystyle y s 0 nbsp Die Zielfunktion ist dann gegeben durch max y t displaystyle max y t nbsp Ist P displaystyle P nbsp ein beliebiger Pfad zwischen s displaystyle s nbsp und einem Knoten w s displaystyle w neq s nbsp so lasst sich die Lange des Pfades wie folgt abschatzen c P e P c e e u v P y v y u y w displaystyle c P sum e in P c e geq sum e u v in P y v y u y w nbsp Das Potential eines jeden Knotens ist also eine untere Schranke fur die Lange eines Pfades Eine Optimallosung des dualen Programms findet man wenn man das Potential eines Knotens w s displaystyle w neq s nbsp als die Lange des kurzesten s displaystyle s nbsp w displaystyle w nbsp Pfades bezuglich der Zielfunktion c displaystyle c nbsp setzt Anwendungen BearbeitenSiehe auch Pathfinding Algorithmen die einen kurzesten Pfad berechnen finden haufig Anwendung in der Berechnung von Reiserouten So kann zum Beispiel die Entfernung zwischen zwei Stadten berechnet werden Dabei sind die Stadte die Knoten des Graphen und die Strassen die Kanten Verschiedene Algorithmen sind in der freien Python Bibliothek NetworkX implementiert 2 Kurzeste Wege mit Nebenbedingungen BearbeitenEine Verallgemeinerung des Problems erhalt man wenn man nur s displaystyle s nbsp t displaystyle t nbsp Pfade P displaystyle P nbsp betrachtet die der zusatzlichen Ungleichung e P u e U displaystyle sum e in P u e leq U nbsp gehorchen Dabei ist u E R displaystyle u colon E to mathbb R nbsp eine weitere Gewichtsfunktion und U displaystyle U nbsp eine reelle Zahl Das resultierende Constrained Shortest Path Problem ist dann auch fur konservative bzw nichtnegative Zielfunktionen NP schwer siehe H C Joksch 1966 3 Literatur BearbeitenThomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein Introduction to Algorithms 2 Auflage MIT Press Cambridge MA 2001 ISBN 0 262 03293 7 Thomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein Algorithmen Eine Einfuhrung 2 Auflage 2007 ISBN 978 3 486 58262 8 H C Joksch 1966 The shortest route problem with constraints J Math Anal Appl 14 Seite 191 197Einzelnachweise Bearbeiten Bernhard Korte Jens Vygen Combinatorial Optimization Theory and Algorithms 4th edition Springer Berlin u a 2008 ISBN 978 3 540 71844 4 Algorithms and Combinatorics 21 Algorithms Shortest Paths In NetworkX 2 2 documentation Abgerufen am 24 Oktober 2018 englisch H C Joksch 1966 Abgerufen von https de wikipedia org w index php title Kurzester Pfad amp oldid 228823343