Oplæg og øvelser, herunder frugt og vand

  • 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

Text of Oplæg og øvelser, herunder frugt og vand

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