Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)

Liknende presentasjoner


Presentasjon om: "INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)"— Utskrift av presentasjonen:

1 INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)

2 Korteste vei algoritmer Veid og uveid veilengde Korteste vei fra ett utgangspunkt-problemet Problemet med negative kostnader Negativ kostsyklus gir ubestemmelig korteste vei Mange anvendelser Algoritmer: Ingen eksisterende algoritmer som er raskere på en til en enn på en til alle Fire versjoner av problemet med korteste vei Uvektet graf O(|E|+|V|) Veid graf uten negative kanter O(|E|log|V|) Graf med negative kanter: enkelt, men O(|E|*|V|) Asyklisk graf: O(N)

3

4 Uveid korteste vei Spesialtilfelle av veid graf Algoritme 1. Starte med en node avstand 0 2. Deretter alle naboene avstand 1 3. Så ubesøkte naboer av dem igjen... Bredde først Trenger avstand, forgjenger, behandlet Veien finnes ved å gå tilbake fra enden

5 Algoritme 1

6 Algoritme 2

7 Veid graf uten negative kanter Dijkstras algoritme Samme ide som forrige algoritme Trenger Kjent Tentativ avstand d v : avstand bare via behandlede noder Forgjenger pv: siste node som endrer dv For hvert steg: velg noden v med lavest dv av de som ikke er kjent oppdater avstand hos alle ukjente naboer w av denne noden hvis det er kortere å gå via v Dijkstras er en grådig algoritme

8 Grådig (greedy) algoritmer Grådig algoritmer løser problem trinnvis ved å gjøre det som synes best for hvert trinn Vekslingsalgoritme Kan svikte i noen situasjoner Vekslingsalgoritme Skal gi tilbake 15 i færrest mulig mynter Valører: 1,5,10 – grådig gir 10+5 Valører: 1,5,10,12 – grådig gir 12+1+1+1

9

10

11

12 Kjøretid for Dijkstra Lete etter korteste dv: O(|E|+|V 2 |) OK for tette grafer der |E|=O(|V 2 |) Tynne (sparse) grafer trenger bedre løsninger priority queue: deleteMin og decreaseKey  O(|E|log|V|+|V|log|V|))=O(|E|log|V|) Eller sette inn i heapen på nytt ved oppdatering  Gir flere forekomster av samme node i heapen  Hoppe over kjente noder  Enkel og rask løsning, men plasskrevende


Laste ned ppt "INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)"

Liknende presentasjoner


Annonser fra Google