Single-Source Shortest Path i ekstern hukommelse Jonas Thomsen Ph.d. studerende Kvalifikationseksamen 27. september 2004.

Slides:



Advertisements
Lignende præsentationer
Triangulering i 3D vha. kd-træer
Advertisements

Funktioners parametre Beviser
Oplæg og øvelser, herunder frugt og vand
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Flugtveje mig - Problemanalysen og metode Daniel - Graftori og modelovervejlser Asger - Flugtvejsproblemet og korteste-vej algoritmen THOMAS - Største.
Representations for Path Finding in Planar Environments.
Induktion og rekursion
GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Grafer og Algoritmer Rasmus D. Lehrmann DM
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Algoritmer og Datastrukturer 2 Maksimale Strømninger [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet Ford-Fulkerson.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Grafalgoritmer II.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
Introduktion til netværk Hidtil: Lokalisering i planen Nu: Lokalisering i et netværk Hvad er et netværk - knuder - kanter.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
ACM/ICPC programmeringskonkurrencer - algoritmisk problemløsning og implementation under tidspres.
1 Korteste veje. 2 Vægtede grafer I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Vægte kan repræsentere afstande,
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
Clicker Test a)Ja b)Nej c)Ved ikke. Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Topologiske betragtninger En kurve er en kontinuert afbildning af intervallet [0,1] ind i R 2 En kurve kan være space-filling, dvs. f.eks. gå gennem ethvert.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
Hjemmet som et Distribueret System Jonas Thomsen Ph.d. studerende Center for Pervasive Computing.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24, ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel ]
Algoritmer og Datastrukturer 2
Grundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Single-Source Shortest Path i ekstern hukommelse Jonas Thomsen Ph.d. studerende Kvalifikationseksamen 27. september 2004

© Jonas Thomsen, Plan for foredraget Introduktion til problemet Overordnet gennemgang af K. Mehlhorn og U. Meyer’s løsning i ”External-Memory Breadth-First Search” Beskrivelse af forskelle til U. Meyer og N. Zeh’s løsning i ”I/O-Efficient Undirected Shortest Paths”

© Jonas Thomsen, Beskrivelse af problemet Single-Source Shortest Path (SSSP) –Ønsker at beregne den korteste afstand fra en given startknude i en graf, til en given endeknude. –Løses vha. Dijkstras algoritme i intern hukommelse. –Hvis Dijkstra benyttes i ekstern hukommelse, skal der O(V log 2 V + E) I/O operationer til.

© Jonas Thomsen, Mehlhorn et al.’s løsning De beskriver bredde-først algoritme Består af to faser: –Præproces –Bredde-først søgning / SSSP BFS i SSSP i

© Jonas Thomsen, Præproces Find sammenhængskomp. med s, C s Beregn min. udspænd. træ, T s af C s Euler-tur i T s giver en serialisering Klip serialisering i stykker af 1/μ, S i Fjern dubletter mellem S i og S j, i≠j Beregn kantlister til knuder i S i –Gem i F i : (v, w, S(w), F S(w) ) –Leksikografisk ordnet

© Jonas Thomsen, SSSP Definitioner: –H, Hot pool, ekstern sorteret fil med kantlister –L(t) er de knuder der er t væk fra s –L(t - W - 1), …, L(t + W - 1) spande –N(L(t)) er naboknuderne til L(t) Virker for heltals-kantvægte {1,…, W} Virker for små værdier af W

© Jonas Thomsen, SSSP algoritmen Initialiser L(0) med {(s, id s )} Konstruktion af L(t): –Naboer til L(t - 1) i L(t), …, L(t + W - 1) –Fjern dubletter fra L(t) –Sammenlign L(t) med L(t - W – 1), …, L(t - 1) og fjern knuder fra L(t) som også er i de forrige

© Jonas Thomsen, SSSP – hot pool (1/2) Problem: I/O for at hente kantlister –Vi bruger H til at lagre aktuelle kanter Initialiser H med F 0 Under beregning af N(L(t - 1)): –Parallelt scan af L(t - 1) og H: V 1  L(t - 1), v j  V 1  v j  L(t - 1)  v j  H –Skab V 2 = L(t - 1)\V 1 –Sorter og eliminer dubletter i V 2

© Jonas Thomsen, SSSP – hot pool (2/2) Beregning af N(L(t - 1)) fortsat: –Temp. fil F’ er concat. af F i fra V 2 –Parallelt scan af V 2 og F’ Merge resultat med H –N(L(t - 1) skabes ved scan af H –Sorter N(L(t - 1) –Fjern færdige kantlister fra H

© Jonas Thomsen, Meyer et al.’s Løsningen virker for vilkårlige uorienterede grafer, G –vilkårlige positive reelle kantvægte mellem w og W –non-deterministisk: –deterministisk:

© Jonas Thomsen, Overordnet idé To faser igen: præproces og SSSP Benytter en prioritetskø i stedet for spandene fra Mehlhorn et al. I/O effektiv udgave af Dijkstra Arbejder med et hierarki af hot pools –Sortering af kanter efter vægt –Kanter med stor vægt kan udskydes til senere

© Jonas Thomsen, Præproces (1/2) Beregn min. udspænd. træ, T, af G Delgrafer, T i, af T –alle knuder –kanter med vægte mellem 2 i-1 og 2 i (kaldes kategori-i-kanter) –r = ceil(log 2 W) delgrafer, T 0, …, T r Opdeling af sammenhængskomp. i T i i klynger, så træ-diameter højst er 2 i μ –V 1, …, V q

© Jonas Thomsen, Præproces (2/2) Lav klynge-træ som et indeks over kategorier af klynger. I træet er en kategori-i-klynge barn til en kategori- (i+1)-klynge Kantlister til hver klynge gemmes i filer F 1, …, F q, sorteret som Mehlhorn et al.

© Jonas Thomsen, SSSP (uddrag) Indlæs hele F i, når kanter skal bruges Benyt hierarki H 1, …, H r af hot pools –gem højst kategori-i kanter i H i –ser først på tunge kanter, når lettere kanter når ud til samme afstand –mindsker I/O ved opslag af kantlister –kanter i kategori-i klynger, bliver først behandlet, når den første knude bliver –lavere kategori kanter flytter nedad i H’er

Spørgsmål?

Tak!