Henning Christiansen 14/10-2001
Opgave 14.1 og 14.2 fra bogen side 485
Give eksempler på situationer i virkelighedens verden, hvor der naturligt optræder tætte grafer. I bogen hævdes det, at algoritmen for at finde korteste vej i en uvægtet graf er O(antal-kanter-i-grafen). Bogens algoritme er konstrueret, så den beregner alle korteste veje fra en given startknude og til alle andre knuder i grafen.
Vi er i denne opgave kun interesseret i at finde veje fra en knude A til en anden knude B, og der er nemt at optimere bogens algoritme til dette tilfælde: Når, blandt de veje algoritmen har konstrueret, der er fundet en vej til B, hopper vi ud.
Beskriv tidsforbruget ved store-O for den reviderede algoritmes gennemsnitlige tidsforbrug i tætte og tynde grafer.
Tegn et landkort med højst 10 byer og nogle veje imellem; tag både gamle landeveje, som gå indtil byernes centrum og motorveje som går udenom. Sæt nogle sandsynlige afstande på i km. Skriv disse data op i det format som bogens graf-program forventer, og afprøv programmet med Dijstras algoritme på eksempler for at få udskrevet kilometerafstande.
Nu regner vi ikke i kilometer men i køretid. Der regnes med gennemsnitsfart på 100 km/t på motorvej og 60 km/t på landevej. Desuden koster det 10 min ekstra at passere et bycentrum. Skitser hvordan følgende to måder at tilpasse programmets opførsel til dette vil kunne foretages: