65
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

Oplæg og øvelser, herunder frugt og vand

  • Upload
    kalei

  • View
    48

  • 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

Citation preview

Page 1: Oplæg og øvelser, herunder frugt og vand

Oplæg og øvelser, herunder frugt og vand

Gerth Stølting BrodalDatalogisk Institut

Aarhus Universitet

MasterClass Matematik, Mærsk Mc-Kinney Møller Videncenter, Sorø, 29-31. oktober 2009

Page 2: Oplæg og øvelser, herunder frugt og vand

Algoritmer:Matricer og Grafer

Gerth Stølting BrodalDatalogisk Institut

Aarhus Universitet

MasterClass Matematik, Mærsk Mc-Kinney Møller Videncenter, Sorø, 29-31. oktober 2009

Page 3: Oplæg og øvelser, herunder frugt og vand

Gerth Stølting Brodal

1985-1988 Aabenraa Gymnasium

1989-1994 Datalogi-Matematik, Aarhus Universitet (cand. scient)

1993-1997 PhD i Datalogi, Aarhus Universitet

1997-1998 Post. doc., Max-Planck-Institut für Informatik, Saarbrücken, Tyskland

1999- Lektor, Datalogisk Institut, Aarhus Universitet

Page 4: Oplæg og øvelser, herunder frugt og vand

Indhold Algoritmik Matricer

– Multiplikation: Naive algoritme, Strassen’s algoritme, rekursionsligninger, optimal rækkefølge for multiplikation af matricer

Grafer– Korteste veje: Korteste veje: matrix potensopløftning

(tropisk algebra), Seidel’s algoritme, Dijkstra’s algoritme– Planare grafer: Euler's formel, Kuratowski's Sætning,

planaritets test

Eksempel fra DM i programmering 2009

Formiddagens arbejdsform: Forelæsning med små øvelser

Page 5: Oplæg og øvelser, herunder frugt og vand

Algoritmik

Page 6: Oplæg og øvelser, herunder frugt og vand

Algoritmik

Metoder til at løse problemer

Krav til en algoritme– Korrekt (gør det den skal)– Effektiv (f.eks. m.h.t. tid for at løse et problem)

Page 7: Oplæg og øvelser, herunder frugt og vand

Opgave

Assymptotisk Tid

Lad n være størrelsen af et problem

Algoritme A: Løser problemet i tid n Algoritme B: Løser problemet i tid n2

Hvilken algoritme er hurtigst ? for n → ∞

Page 8: Oplæg og øvelser, herunder frugt og vand

1089·n vs 0.33·n2

Page 9: Oplæg og øvelser, herunder frugt og vand

Plot af de to funktioner – ikke særlig informativ

Plot af de to funktioner med logaritmisk y-akse – første plot misvisende

Plot af brøken mellem de to funktioner – første plot misvisende

n5 · 2n vs 3n

Page 10: Oplæg og øvelser, herunder frugt og vand

Opgave

A B Mindste funktion

n3 n2

3·n2 + 7·n n2

2n 3n

4n n2 · 2n

n3 log2 n · n0.1

(log2 n)3 n0.1

n2 · log2 n + 7·n2.5 n2.5

Assymptotisk Tid

Page 11: Oplæg og øvelser, herunder frugt og vand

Assymptotisk 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) ≤ c·g(n)

Eksempeln5 · 2n = O( 3n )

N0

f(n)

c·g(n)

Page 12: Oplæg og øvelser, herunder frugt og vand

6 ∙ 7 = 42

Page 13: Oplæg og øvelser, herunder frugt og vand

Multiplikation af lange heltal

I og J hver heltal med n cifreNaive implementation kræver O(n2) operationerLad I = Ih·10n/2+Il og J = Jh·10n/2+Jl

I·J = Ih ·Jh·10n +((Ih-Il)·(Jl-Jh)+Il ·Jl +Ih ·Jh)·10n/2 +Il ·Jl

T(n) = O(nlog 3)

T(n) ≤ 3·T(n/2) + c·n for n ≥ 2

T(n) ≤ c for n = 1

2

Page 14: Oplæg og øvelser, herunder frugt og vand

Matricer

Page 15: Oplæg og øvelser, herunder frugt og vand

Matrix

Page 16: Oplæg og øvelser, herunder frugt og vand

Matrix Multiplikation

cij = Σk=1..m aik·bkj

Naive algoritme: tid O(npm)

b

Page 17: Oplæg og øvelser, herunder frugt og vand

Opgave

= ?

Matrix Multiplikation

3 7

Page 18: Oplæg og øvelser, herunder frugt og vand

Opgave

01

23= ?

Matrix Multiplikation

34

71

Page 19: Oplæg og øvelser, herunder frugt og vand

Opgave

5447

8213

2044

3113

2446

7301

1024

4113

= ?

Matrix Multiplikation

Page 20: Oplæg og øvelser, herunder frugt og vand

(Kvadratisk) Matrix Multiplikation

n x n matrix

n/2 x n/2 matrix

Page 21: Oplæg og øvelser, herunder frugt og vand

Opgave

5447

8213

2044

3113

2446

7301

1024

4113

=

Matrix Multiplikation

A B

DC

E F

HG

I

I = AE + BG

Page 22: Oplæg og øvelser, herunder frugt og vand

(Kvadratisk) Matrix Multiplikation

• A,B,...,K,L er n/2 x n/2-matricer

• I,J,K,L kan beregnes med 8 rekursive multiplication på n/2 x n/2-matricer + 4 matrix additioner

• T(n) ≤ 8·T(n/2) + c·n2 for n ≥ 2

T(n) ≤ c for n = 1

• T(n) = O(n3)

Page 23: Oplæg og øvelser, herunder frugt og vand

Strassen’s Matrix Multiplikation1969

7 rekursive multiplikationer

Page 24: Oplæg og øvelser, herunder frugt og vand

Bruger 18 matrix additioner (tid O(n2)) og 7 rekursive matrix multiplikationer

T(n) = O(n2.81) hvor 2.81 = log2 7

T(n) ≤ 7·T(n/2) + c·n2 for n ≥ 2

T(n) ≤ c for n = 1

Strassen’s Matrix Multiplikation

Page 25: Oplæg og øvelser, herunder frugt og vand

Matrix Multiplikation

Naive algoritme O(n3)

Strassen’s algoritme O(n2.81)

Coppersmith-Winograd O(n2.376)(kun teoretisk interesse)

Page 26: Oplæg og øvelser, herunder frugt og vand

Matrix-kæde Multiplikation

Page 27: Oplæg og øvelser, herunder frugt og vand

(A·B)·C eller A·(B·C) ?

Matrix-kæde Multiplikation

Matrix multiplikation er associativ (kan sætte paranteser som man vel) men ikke kommutative (kan ikke bytte rundt ¨på rækkefølgen af matricerne)

Page 28: Oplæg og øvelser, herunder frugt og vand

Opgave

Matrix-kæde Multiplikation

?

1

0

2

1

4

01204

30121

10

11

01

Page 29: Oplæg og øvelser, herunder frugt og vand

Problem: Find den bedste rækkefølge (paranteser) for at gange n matricer sammen

A1 · A2 · · · An

hvor Ai er en pi-1 x pi matricer

NB: Der er mulige måder for paranteserne (det n’te Catalan tal)

Matrix-kæde Multiplikation

3

4

n

n

nC

Page 30: Oplæg og øvelser, herunder frugt og vand

m[i,j] = minimale antal (primitive) multiplikationer for at beregne Ai ·…· Aj

Matrix-kæde Multiplikation

Page 31: Oplæg og øvelser, herunder frugt og vand

Matrix-kæde Multiplikation

Page 32: Oplæg og øvelser, herunder frugt og vand

Matrix-kæde Multiplikation

Tid O(n3)

Page 33: Oplæg og øvelser, herunder frugt og vand

Matrix-kæde Multiplikation

Tid O(n)

Page 34: Oplæg og øvelser, herunder frugt og vand

Grafer

Page 35: Oplæg og øvelser, herunder frugt og vand

Grafer

knude

kant

Opgave

Hvor mange knuder v og kanter e er der?(vertices and edges)

planar = ingen krydsende kanter

Page 36: Oplæg og øvelser, herunder frugt og vand

Graf repræsentationer: Incidenslister og incidensmatricer

Uorienterede grafer

Orienterede grafer

Page 37: Oplæg og øvelser, herunder frugt og vand

Kort over Vest-Europa 18.029.721 knuder 42.199.587 orienterede kanter

Page 38: Oplæg og øvelser, herunder frugt og vand

Korteste Veje mellem alle Par af Knude

Page 39: Oplæg og øvelser, herunder frugt og vand

Multiplikation – Tropiske Algebra

WLL '

jkkikji wll ,,, min'

Normalt (+,*)-matrix multiplikation Tropisk algebra: (min,+)-matrix multiplikation

Page 40: Oplæg og øvelser, herunder frugt og vand

Multiplikation – Tropiske Algebra

WLL ' jkkikji WLl ,,, min'

Page 41: Oplæg og øvelser, herunder frugt og vand

Tid O(v4)

diagonalen = 0

Korteste Veje mellem alle Par af Knude

Page 42: Oplæg og øvelser, herunder frugt og vand
Page 43: Oplæg og øvelser, herunder frugt og vand

Tid O(v3·log v)

Korteste Veje mellem alle Par af Knude

Page 44: Oplæg og øvelser, herunder frugt og vand

Floyd-Warshall

Tid O(v3)

)(,kjid = afstand fra i til j kun igennem knuderne {1,..,k}

Page 45: Oplæg og øvelser, herunder frugt og vand

Korteste Veje fra s til alle Par af Knude

Page 46: Oplæg og øvelser, herunder frugt og vand

Eksempel: Korteste veje fra s

Negativ cykel

Uforbundet til s

Orienteret graf med vægte på

kanterne

Page 47: Oplæg og øvelser, herunder frugt og vand

Eksempel: Korteste veje træer

2 forskellige korteste veje træer der repræsenterer stier fra s med samme længde

Page 48: Oplæg og øvelser, herunder frugt og vand

Korteste Veje Estimater : Initialisering

Page 49: Oplæg og øvelser, herunder frugt og vand

Korteste Veje Estimater : Relax

Kortere afstand til v fundet

Forbedrer ikke afstanden til v

Page 50: Oplæg og øvelser, herunder frugt og vand

Bellman-Ford:Korteste Veje i Grafer med Negative Vægte

Tid O(ve)

Check for negativ cykel

Page 51: Oplæg og øvelser, herunder frugt og vand

Bellman-Ford: Eksempel

Page 52: Oplæg og øvelser, herunder frugt og vand

Dijkstra:Korteste Veje i Grafer uden Negative Vægte

Tid O((v+e)·log v) eller O(v2+e)

Q = prioritets kø (besøger knuderne efter stigende afstand fra s)

Page 53: Oplæg og øvelser, herunder frugt og vand

Dijkstra : Eksempel

Page 54: Oplæg og øvelser, herunder frugt og vand

SSSPEn-til-alle

korteste veje

APSPAlle-til-alle

korteste veje

Acykliske grafer (positive og negative vægte)

O(v+e) O(v·(v+e))

Generelle grafer

Kun positive vægte

DijkstraO((v+e)·log v)

Floyd-WarshallO(v3)

Positive og negative vægte

Bellman-FordO(e·v)

Korteste Veje

Page 55: Oplæg og øvelser, herunder frugt og vand

STOC 1992

Page 56: Oplæg og øvelser, herunder frugt og vand

Planare Grafer

Page 57: Oplæg og øvelser, herunder frugt og vand

Planare Grafer

flade

Opgave

Hvor mange flader f er der?

Page 58: Oplæg og øvelser, herunder frugt og vand

Euler’s Formel

Opgave

Vis v-e+f = 2 for en sammenhængene planar graf(10-12+4 = 2)

Page 59: Oplæg og øvelser, herunder frugt og vand

Euler’s Formel

Opgave

Vis e ≤ 3v - 6 for v ≥ 3 for en planar graf

Page 60: Oplæg og øvelser, herunder frugt og vand

Opgave

Opgave

Er følgende grafer planare?

n Kn ?

1

2

3

4

5

6

7

Kn,m ? 1 2 3 4 5

1

2

3

4

5

K3

K3,2

Page 61: Oplæg og øvelser, herunder frugt og vand

q

Kuratowski's Sætning

En 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 opnås ved at slette knuder og kanter og erstatte med

Kuratowski 1896–1980

Page 62: Oplæg og øvelser, herunder frugt og vand

Historie – Planaritets Test

Baseret på Kuratowski’s Sætning 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)

Page 63: Oplæg og øvelser, herunder frugt og vand

Eksempel fra DM i Programmering 2009

Page 64: Oplæg og øvelser, herunder frugt og vand

ncpc.idi.ntnu.no/ncpc2009

Speedy Escapenc

pc.id

i.ntn

u.no

/ncp

c200

9

Page 65: Oplæg og øvelser, herunder frugt og vand