13. februar 2004 - 22:13Der er
10 kommentarer og 1 løsning
Foklaring af Dijkstra's shortest path algoritme
Hej. Er der nogen der i pseudokode vil prøve at forklare Dijkstra's shortest path algoritme...
Jeg har set og prøvet at forstå den en del steder, men det ville være rart om der var en som havde styr på den, og kunne svare på eventuelle spørgsmål til pseudokoden...
Jeg skal bruge det i forbindelse med grafer i java, min graf er en list graf og ikke matrix implementeret.
Dijkstra’s algoritme (Korteste vej fra én knude til alle andre) //pre: der forefindes ikke negative vægte Placer alle knuderne i en liste og afstanden til disse som værende uendelig Marker afstand til startknude som værende ”0” og dens forgænger som null
Sålænge der er knuder i listen Iterer liste med knuder igennem og udtræk den med mindste vægt som ikke har været besøgt Marker den udtrukne knude som besægt for alle naboknuder til den udtrukne knude opdater afstanden til disse i listen marker aktuel knude som værende forgænger til naboknuderne
Tidskompleksitet: Hvis vi sekventielt leder listen igennem efter den knude med den mindste afstand tager dette O(|V|2). Dette gøres |V| gange. I tillæg sker der maksimalt en opdatering pr. kant O(|E|). Den totale tid bliver således O(|E| + |V|2) = O(|V|2). Vælger man at bruge en prioritetskø til at holde styr på de ikke besøgte knuder kan tidskompleksiteten reduceres til O(|E| + |logV|)
1 LOOP 2 hvis knude ikke i resultatsæt 3 Put knude + KA_SK i resultatsæt 4 For hver naboknude 5 SK = (knude, naboknude) 6 KA = KA(knude) + vægt(SK) 7 Gem KA_SK i prioritetskø (prioriteret efter KA) 8 hvis prioritetskø ikke tom 9 læs og fjern KA_SK i prioritetskø (forreste element) 10 knude lig til-knude i SK 11 Ellers exit loop 12 LOOP END
I udgangspunktet er der uendeligt langt til alle lande, bortset fra Danmark, som der er 0km til. Ingen knuder har en pred, da denne skal indholde det land som den korteste sti til destinationen går igennem:
Hej...Tak for svar...Jeg har lige haft et par travle dage og har derfor ikke fået kigget på det, men jeg sætter mig til tasterne nu i aften og forsøger at implementere..
Er det muligt at få en kopi af den meget omtalte note?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.