180 likes | 337 Views
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik , 10 . april 2014, Aarhus Universitet. Indhold : Grafer og Algoritmer.
E N D
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet
Indhold :Grafer og Algoritmer Fokus er på de overordnede idéer. Detaljerne i algoritmerne og hvordan de omsættes til konkrete programmer kommes der ikke ind på her.
Største Tomme Cirkel p3 C r p1 p dist(c,p) c Algoritme for alle mulige (p1,p2,p3) : find C med p1,p2,p3 på randen for alle punkter p : hvis p inde i C prøv næste (p1,p2,p3) C mulig kandidat Rapporter største kandidat fundet p2 Sætning Største tomme cirkel har mindst 3 punkter på randen
Største Tomme Cirkel (II) r Algoritme Konstruer Voronoidiagrammet For alle knuderfind radius af cirklen Rapporter knudenmed størst radius Voronoi diagram SætningAntal Voronoiknuder ≤ 2 · antal punkter
Voronoi Diagram - Konstruktion Algoritme (Randomiseret Inkrementel) Indsæt punkterne i tilfældig rækkefølge Indsæt nyeog slet gamle segmenter SætningForventet ≤ 6 nye segmenter per tilføjet punkt
Graf knude kant flade Euler’s Sætning: # knuder + # flader - # kanter = 2 15 + 4 - 17 = 2 (gælder for sammenhængendegrafer der kantegnesudenkrydsendekanter)
Gader &Stræder B A Eksempel: Find (korteste) vejefra A til B i en graf Findes der to kant-disjunktestierfra A til B ?
Rejseplan (Horsens til Ry) Algoritme Find tidligste knude for Ryder kan nås fra en given start-knude i Horsens uddrag af køreplaner
Opdatering af Regneark A1 C1 Algoritme Så længe der findes en uberegnet celle c hvor alle afhængigheder er beregnet : Beregn c ? 7 C4 A2 C2 C3 beregningsrækkefølge topologisksorteringallekanterpegerfravenstre mod højre A1 A2 C1 C2 C3 C4
Opdatering af Regneark (II) Algoritme Så længe der findes en uberegnet celle c hvor alle afhængigheder er beregnet : Beregn c Hvis ikke alle celler beregnet : Rapporter at der findes encykel A1 C1 topologisk sorterer eller identificerer en cykel C4 A2 C2 C3
Stærke Sammenhængskomponenter • Kan alle par af knuder nå hinanden begge veje ?(bruges f.eks. til at checke for fejl i vej-data) (topologisk sortering)
Stærke Sammenhængskomponenter Algoritme : Så længe der findes en cykel C: Træk C sammen til en knude
Strømninger i Netværk 2/ 4 • Hver kant har en kapacitet • Send størst mulig værdifra s til t 5/ 7 3/ 3 2/ 2 t 3 3/ 6 2/ s 4/ 5 2/ 2 5/ 6 Værdi af strømning= 7 5/ 7 4/ 4 (f.eks. vand, kloak, fjernvarme, vejnet kapacitet, el netværk, …)
Beregning af Strømninger i Netværk 2/ 2+ 1+ 2/ 1/ 2+ 2/ 1+ 2/ 2/ 2/ 2+ 2/ 1+ 2+ 2/ 2+ 2/ 1+ 2+ 2/ Snit hvor der ikke kan sendes mere over Algoritme Så længe der findes en forbedrende sti P : Send maksimal yderligere værdi langs stien P SætningMax strømning = min snit 4 7 3 2 t 3 6 s 5 7 2 6 4
1 1 Algoritme Find maksimal strømning fra A til B når alle kanter har kapacitet 1 1 1 1 1 1 1 1 1 B A 1 1 1 1 1 1 1 Størsteantalkant-disjunktestierfra A til B ? = (Menger’s sætning) Mindsteantalkanter der skalfjernesså B ikkekannåsfra A ?
Indhold : Grafer og Algoritmer • Planare grafer (Voronoi diagram, Euler’s formel) • Vejnet som grafer (korteste veje, disjunkte stier, stærk sammenhængende) • Rejseplaner (modellering som graf) • Regneark (cykler i grafer, topologisk sortering) • Strømninger i grafer • 2-kant sammenhængende grafer
Opsummering TAK – Spørgsmål ? Manger problemer kan løses med generelle graf algoritmer Gerth Stølting Brodal, Aarhus Universitet