studiepraktik a lgoritmik øvelser

34
Studiepraktik algoritmik øvelser Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet

Upload: brad

Post on 18-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Studiepraktik a lgoritmik øvelser. Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Studiepraktik a lgoritmik  øvelser

Studiepraktikalgoritmik øvelser

Gerth Stølting BrodalInstitut for DatalogiAarhus Universitet

Page 2: Studiepraktik a lgoritmik  øvelser

“Algorithmics is more than a branch of computer science. It is the core of computer science, and, in all fairness, can be said to be relevant to most of

science, business, and technology.”

Page 3: Studiepraktik a lgoritmik  øvelser

Dagens formål

• Illustrere algoritmiske problemstillinger• Finde algoritmer for simple problemstillinger• Få en følelse med kompleksiteten af algoritmer

Page 4: Studiepraktik a lgoritmik  øvelser

Program

• Fisk (øvelser 1 - 3)• Sammenligne tal (øvelser 4 - 5)• Parringer (øvelse 6)• Google (øvelse 7)• Sammenligne flere tal (øvelser 8 - 12)

Grupper af 3 - 4 personer

Page 5: Studiepraktik a lgoritmik  øvelser

Fisk

Page 6: Studiepraktik a lgoritmik  øvelser
Page 7: Studiepraktik a lgoritmik  øvelser
Page 8: Studiepraktik a lgoritmik  øvelser
Page 9: Studiepraktik a lgoritmik  øvelser
Page 10: Studiepraktik a lgoritmik  øvelser
Page 11: Studiepraktik a lgoritmik  øvelser

Andre paknings problemer

Page 12: Studiepraktik a lgoritmik  øvelser

Find et tal

Page 13: Studiepraktik a lgoritmik  øvelser
Page 14: Studiepraktik a lgoritmik  øvelser

Find minimum

Sætning En algoritme der bestemmer minimum af n elementer laver mindst n-1 sammenligninger

Bevis: Alle elementer på nær minimum elementet skal have tabt mindst én sammenligning – ellers er de også kandidater til at være minimum. □

Page 15: Studiepraktik a lgoritmik  øvelser

Find minimum & maximum

Sætning En algoritme der bestemmer minimum & maximum af n elementer laver mindst 3/2·n - 2 sammenligninger (i værste tilfælde)

Bevis: Lav en modspiller strategi der tvinger algoritmen til at lave mange sammenligninger. Placer elementerne i grupper:(I) Aldrig vundet, tabt mindst én gang(II) Både tabt og vundet mindst én gang(III) Aldrig tabt, vundet mindst én gang(IV) Aldrig sammenlignet

(I) Minimumkandidater

(II) Udelukkede

(III) Maximumkandiater

(IV) Ikke sammenlignede

Page 16: Studiepraktik a lgoritmik  øvelser

Find minimum & maximum

• mindst n/2 sammenligninger involverende (IV)

• til sidst n - 2 (II)• en sammenligning kan højst

lave en ny (II) og en sådan involverer ingen (IV)

≥ n/2 + n – 2 sammenligninger □

x y Svar Gruppe flytning

I I x y Flyt y til II

III III x y Flyt x til II

III

II/IIIIII x y (ingen)

I/II IV x y Flyt y til III

IV III x y Flyt x til I

IV IV x y Flyt x til I og y til III

II II Konsistent med hidtige (ingen)

(I) Minimumkandidater

(II) Udelukkede

(III) Maximumkandiater

(IV) Ikke sammenlignede

Modspiller strategi

Page 17: Studiepraktik a lgoritmik  øvelser

Find minimum & næst mindsteSætning En algoritme der bestemmer minimum og det næst mindste element af n elementer laver mindst n + log2 n - 2 sammenligninger

Bevis: Modspiller strategi

x y Svar $ flytning

0$ 0$ Konsistent med hidtige

(ingen)

0$ ≥ 1$ x y (ingen)

X$ ≥ Y$ ≥ 1$ x y Flyt alle y’s $ til x

• Alle elementer får i starten 1$. • Element med ≥ 1$ minimum kandidat.• Minimum kandidat tabt k gange har højst

2k $.• Til sidst har minimum elementet n$

tabt ≥ log2 n gange.• Af disse elementer har log2 n -1

elementer ud over at have vundet over minimum også vundet over et andet element for ikke at være kandidater til at være det næst mindste element.

• n-1 elementer vundet mindst én gang• log2 n -1 vundet over minimum og et

andet element. □

Page 18: Studiepraktik a lgoritmik  øvelser

Stable marriage

Page 19: Studiepraktik a lgoritmik  øvelser
Page 20: Studiepraktik a lgoritmik  øvelser

Andre variationer af parringer

• Maximal parring i to-delte grafer• Stabil parring med flere A’er for

hvert B (flere elever per sygehus)• Vægtede parringer (hvert muligt

par har en payoff værdi)

• Eksempler på graf problemer

Page 21: Studiepraktik a lgoritmik  øvelser

Korteste veje (i Vest-Europa)• 18.029.721 knuder• 42.199.587 orienterede kanter

Page 22: Studiepraktik a lgoritmik  øvelser

Google’s PageRank algoritme

Page 23: Studiepraktik a lgoritmik  øvelser

Internettet

Page 24: Studiepraktik a lgoritmik  øvelser

Random Walk

Page 25: Studiepraktik a lgoritmik  øvelser

Sandsynlighedsfordeling

Skridt 1 2 3 4 5 60 1.000 0.000 0.000 0.000 0.000 0.0001 0.028 0.861 0.028 0.028 0.028 0.0282 0.039 0.109 0.028 0.745 0.039 0.0393 0.039 0.432 0.028 0.118 0.338 0.0444 0.039 0.299 0.028 0.388 0.077 0.1695 0.039 0.406 0.028 0.277 0.189 0.0606 0.039 0.316 0.028 0.366 0.143 0.1077 0.039 0.373 0.028 0.291 0.180 0.0878 0.039 0.342 0.028 0.339 0.149 0.1039 0.039 0.361 0.028 0.313 0.169 0.09010 0.039 0.348 0.028 0.329 0.158 0.09811 0.039 0.357 0.028 0.318 0.165 0.09412 0.039 0.351 0.028 0.325 0.160 0.09613 0.039 0.355 0.028 0.320 0.163 0.09414 0.039 0.352 0.028 0.323 0.161 0.09615 0.039 0.354 0.028 0.321 0.163 0.09516 0.039 0.353 0.028 0.323 0.162 0.09517 0.039 0.354 0.028 0.322 0.162 0.09518 0.039 0.353 0.028 0.322 0.162 0.09519 0.039 0.353 0.028 0.322 0.162 0.09520 0.039 0.353 0.028 0.322 0.162 0.09521 0.039 0.353 0.028 0.322 0.162 0.09522 0.039 0.353 0.028 0.322 0.162 0.09523 0.039 0.353 0.028 0.322 0.162 0.09524 0.039 0.353 0.028 0.322 0.162 0.09525 0.039 0.353 0.028 0.322 0.162 0.095

1 hvis0

1 hvis10

v

vpv

Evu

iu

iv u

pp),(

1

)udgrad(

1

6

5

6

1

6

1

ivp = sandsynligheden for at være i knude v efter i skridt

Page 26: Studiepraktik a lgoritmik  øvelser
Page 27: Studiepraktik a lgoritmik  øvelser
Page 28: Studiepraktik a lgoritmik  øvelser

Sortering…Øvelser fra introduktionskurset

Perspektiverende Datalogi

Page 29: Studiepraktik a lgoritmik  øvelser
Page 30: Studiepraktik a lgoritmik  øvelser
Page 31: Studiepraktik a lgoritmik  øvelser
Page 32: Studiepraktik a lgoritmik  øvelser
Page 33: Studiepraktik a lgoritmik  øvelser
Page 34: Studiepraktik a lgoritmik  øvelser