Datastructuren en algoritmen
Aan welke voorwaarde moet de graaf voldoen opdat het algoritme van Dijkstra juiste kortste paden vindt?
- ADe graaf heeft geen cykels (paden die naar dezelfde knoop terugkeren)
- BDe kanten hebben geen richting
- CAlle gewichten van de kanten zijn 0 of groter
Antwoord en toelichting tonen
Antwoord: C. Alle gewichten van de kanten zijn 0 of groter
Het algoritme van Dijkstra legt de nog niet vastgelegde knoop met de kleinste afstand vast. Dat berust op de aanname dat een omweg via andere knopen een afstand alleen kan vergroten en nooit verkleinen. Met een kant met negatief gewicht kan een afstand later via een andere route korter worden: in een gerichte graaf met S→A 2, S→B 3 en B→A −2 wordt A vastgelegd op 2, voordat het pad S→B→A met lengte 1 wordt gevonden. Bij negatieve gewichten worden methoden zoals het algoritme van Bellman-Ford gebruikt. Het algoritme van Dijkstra werkt ook met cykels en met gerichte kanten, zolang alle gewichten 0 of groter zijn.