View
37
Download
0
Embed Size (px)
DESCRIPTION
Oplæg og øvelser, herunder frugt og vand. Gerth Stølting Brodal Datalogisk Institut Aarhus Universitet. MasterClass Matematik, Mærsk Mc-Kinney Møller Videncenter , Sorø, 29-31. oktober 2009. Algoritmer: Matricer og Grafer. Gerth Stølting Brodal Datalogisk Institut Aarhus Universitet. - PowerPoint PPT Presentation
Slide 1
Oplg og velser, herunder frugt og vandGerth Stlting BrodalDatalogisk InstitutAarhus Universitet
MasterClass Matematik, Mrsk Mc-Kinney Mller Videncenter, Sor, 29-31. oktober 2009
Algoritmer:Matricer og GraferGerth Stlting BrodalDatalogisk InstitutAarhus Universitet
MasterClass Matematik, Mrsk Mc-Kinney Mller Videncenter, Sor, 29-31. oktober 2009Gerth Stlting Brodal
1985-1988 Aabenraa Gymnasium 1989-1994 Datalogi-Matematik, Aarhus Universitet (cand. scient)1993-1997 PhD i Datalogi, Aarhus Universitet1997-1998 Post. doc., Max-Planck-Institut fr Informatik, Saarbrcken, Tyskland1999-Lektor, Datalogisk Institut, Aarhus UniversitetIndholdAlgoritmikMatricerMultiplikation: Naive algoritme, Strassens algoritme, rekursionsligninger, optimal rkkeflge for multiplikation af matricerGraferKorteste veje: Korteste veje: matrix potensoplftning (tropisk algebra), Seidels algoritme, Dijkstras algoritmePlanare grafer: Euler's formel, Kuratowski's Stning, planaritets testEksempel fra DM i programmering 2009
Formiddagens arbejdsform: Forelsning med sm velser
AlgoritmikAlgoritmikMetoder til at lse problemer
Krav til en algoritmeKorrekt (gr det den skal)Effektiv (f.eks. m.h.t. tid for at lse et problem)Opgave
Assymptotisk TidLad n vre strrelsen af et problem
Algoritme A: Lser problemet i tid nAlgoritme B: Lser problemet i tid n2
Hvilken algoritme er hurtigst ? for n 1089n vs 0.33n2
Gnuplot: Try also
plot x, x*x, x**2, 984237509812375*x**2set log xy unset log xy8
Plot af de to funktioner ikke srlig informativ Plot af de to funktioner med logaritmisk y-akse frste plot misvisende Plot af brken mellem de to funktioner frste plot misvisenden5 2n vs 3n Opgave
ABMindste funktionn3n23n2 + 7n n22n3n4nn2 2n n3log2 n n0.1(log2 n)3n0.1n2 log2 n + 7n2.5n2.5Assymptotisk TidAssymptotisk Tid (formel)Definition: f(n) = O(g(n))
hvis f(n) og g(n) er ikke negative funktioner og der findes c 0 og N0 s for alle n N0 : f(n) cg(n)
Eksempeln5 2n = O( 3n )N0f(n)cg(n)6 7 = 42Multiplikation af lange heltalI og J hver heltal med n cifreNaive implementation krver O(n2) operationerLad I = Ih10n/2+Il og J = Jh10n/2+JlIJ = Ih Jh10n +((Ih-Il)(Jl-Jh)+Il Jl +Ih Jh)10n/2 +Il Jl
T(n) = O(nlog 3)T(n) 3T(n/2) + cn for n 2T(n) cfor n = 12MatricerMatrix
Matrix Multiplikation
cij = k=1..m aikbkjNaive algoritme: tid O(npm)bOpgave
= ?Matrix Multiplikation
Opgave
= ?Matrix Multiplikation
Opgave
= ?Matrix Multiplikation(Kvadratisk) Matrix Multiplikation
n x n matrixn/2 x n/2 matrixOpgave
=Matrix MultiplikationABDCEFHG
II = AE + BG(Kvadratisk) Matrix Multiplikation
A,B,...,K,L er n/2 x n/2-matricerI,J,K,L kan beregnes med 8 rekursive multiplication p n/2 x n/2-matricer + 4 matrix additionerT(n) 8T(n/2) + cn2 for n 2T(n) cfor n = 1T(n) = O(n3)
Strassens Matrix Multiplikation19697 rekursive multiplikationer Bruger 18 matrix additioner (tid O(n2)) og 7 rekursive matrix multiplikationer
T(n) = O(n2.81) hvor 2.81 = log2 7
T(n) 7T(n/2) + cn2 for n 2T(n) cfor n = 1Strassens Matrix MultiplikationMatrix MultiplikationNaive algoritmeO(n3)Strassens algoritmeO(n2.81)Coppersmith-WinogradO(n2.376)(kun teoretisk interesse)Matrix-kde Multiplikation(AB)C eller A(BC) ?
Matrix-kde MultiplikationMatrix multiplikation er associativ (kan stte paranteser som man vel) men ikke kommutative (kan ikke bytte rundt p rkkeflgen af matricerne)27Rkkeflgende afgrende for hvor mange operationer der skal udfres: Dimmensioner 2 x10, 10x50, 50x20 giver en forskel p 3000 vs 10400.Opgave
Matrix-kde Multiplikation
28Rkkeflgende afgrende for hvor mange operationer der skal udfres: Dimmensioner 2 x10, 10x50, 50x20 giver en forskel p 3000 vs 10400.Problem: Find den bedste rkkeflge (paranteser) for at gange n matricer sammen
A1 A2 An
hvor Ai er en pi-1 x pi matricer
NB: Der er mulige mder for paranteserne (det nte Catalan tal)Matrix-kde Multiplikation
29m[i,j] = minimale antal (primitive) multiplikationer for at beregne Ai AjMatrix-kde Multiplikation
30Eksponentiel tid!Matrix-kde Multiplikation
Matrix-kde MultiplikationTid O(n3)
Matrix-kde MultiplikationTid O(n)GraferGraferknudekantOpgave
Hvor mange knuder v og kanter e er der?
(vertices and edges)planar = ingen krydsende kanterGraf reprsentationer: Incidenslister og incidensmatricer
Uorienterede graferOrienterede grafer36Kort over Vest-Europa
18.029.721 knuder 42.199.587 orienterede kanter
Data fra Dynamic Highway-Node Touring, Dominik Schultes and Peter Sanders, WEA 200737Korteste Veje mellem alle Par af KnudeMultiplikation Tropiske Algebra
Normalt (+,*)-matrix multiplikationTropisk algebra: (min,+)-matrix multiplikation
Multiplikation Tropiske Algebra
Tid O(v4)diagonalen = 0Korteste Veje mellem alle Par af Knude
Tid O(v3log v)Korteste Veje mellem alle Par af KnudeFloyd-Warshall
Tid O(v3)
= afstand fra i til j kun igennem knuderne {1,..,k}Korteste Veje fra s til alle Par af Knude
Eksempel: Korteste veje fra sNegativ cykelUforbundet til sOrienteret graf med vgte p kanterneOrienteret graf46Eksempel: Korteste veje trer
2 forskellige korteste veje trer der reprsenterer stier fra s med samme lngde
Korteste Veje Estimater : Initialisering
Korteste Veje Estimater : Relax
Kortere afstand til v fundetForbedrer ikke afstanden til vBellman-Ford:Korteste Veje i Grafer med Negative Vgte
Tid O(ve)Check for negativ cykel50Retunerer om der er en negative cykel i grafen (FALSE hvis der er en negativ cykel)Eksempel p DYNAMISK PROGRAMMERING
Bellman-Ford: EksempelDijkstra:Korteste Veje i Grafer uden Negative VgteTid O((v+e)log v) eller O(v2+e)
Q = prioritets k (besger knuderne efter stigende afstand fra s)52Tiderne kommer ved enten at bruge en prioritetsk med O(log n) p alle operationer, eller et trivielt array.Eksempel p GRDIG ALGORITME
Dijkstra : Eksempel
SSSPEn-til-alle korteste vejeAPSPAlle-til-alle korteste vejeAcykliske grafer (positive og negative vgte)O(v+e)O(v(v+e))Generelle graferKun positive vgteDijkstraO((v+e)log v)Floyd-WarshallO(v3)Positive og negative vgteBellman-FordO(ev)Korteste Veje
STOC 1992Planare GraferPlanare GraferfladeOpgave
Hvor mange flader f er der?
Eulers FormelOpgave
Vis v-e+f = 2 for en sammenhngene planar graf
(10-12+4 = 2)Eulers FormelOpgave
Vis e 3v - 6 for v 3 for en planar graf
Opgave
Opgave
Er flgende grafer planare?nKn ?1234567Kn,m ?1234512345K3K3,2qKuratowski's StningEn graf er planar hvis og kun hvis den ikke indeholder en delgraf der er en K5 eller K3,3
En delgraf er en graf der opns ved at slette knuder og kanter og erstatte medKuratowski 18961980Historie Planaritets TestBaseret p Kuratowskis Stning findes flere algoritmer til at teste om en graf er planar(givet en liste af e par (i,j) som angiver kanterne)1961 Auslander and Parter test, O(v3)1964 Demoucron, Malgrange and Pertuiset test, O(v2)1974 Hopcroft and Tarjan test, O(v)1985 Chiba, Nishizeki, Abe and Ozawa indlejring, O(v)Eksempel fra DM i Programmering 2009ncpc.idi.ntnu.no/ncpc2009
Speedy Escapencpc.idi.ntnu.no/ncpc2009