gymnasiepraktik algoritmik øvelser - aarhus...
TRANSCRIPT
Studiepraktik algoritmik øvelser
Gerth Stølting Brodal Institut for Datalogi
Aarhus Universitet
“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.”
Dagens formål
• Illustrere algoritmiske problemstillinger
• Finde algoritmer for simple problemstillinger
• Få en følelse med kompleksiteten af algoritmer
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
Fisk
Andre paknings problemer
Find et tal
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. □
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) Minimum kandidater
(II) Udelukkede
(III) Maximum kandiater
(IV) Ikke sammenlignede
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
I II
II/III III
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) Minimum kandidater
(II) Udelukkede
(III) Maximum kandiater
(IV) Ikke sammenlignede
Modspiller strategi
Find minimum & næst mindste Sæ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. □
Stable marriage
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
Korteste veje (i Vest-Europa)
• 18.029.721 knuder • 42.199.587 orienterede kanter
Google’s PageRank algoritme
Internettet
Random Walk
Sandsynlighedsfordeling
Skridt 1 2 3 4 5 6 0 1.000 0.000 0.000 0.000 0.000 0.000 1 0.028 0.861 0.028 0.028 0.028 0.028 2 0.039 0.109 0.028 0.745 0.039 0.039 3 0.039 0.432 0.028 0.118 0.338 0.044 4 0.039 0.299 0.028 0.388 0.077 0.169 5 0.039 0.406 0.028 0.277 0.189 0.060 6 0.039 0.316 0.028 0.366 0.143 0.107 7 0.039 0.373 0.028 0.291 0.180 0.087 8 0.039 0.342 0.028 0.339 0.149 0.103 9 0.039 0.361 0.028 0.313 0.169 0.090 10 0.039 0.348 0.028 0.329 0.158 0.098 11 0.039 0.357 0.028 0.318 0.165 0.094 12 0.039 0.351 0.028 0.325 0.160 0.096 13 0.039 0.355 0.028 0.320 0.163 0.094 14 0.039 0.352 0.028 0.323 0.161 0.096 15 0.039 0.354 0.028 0.321 0.163 0.095 16 0.039 0.353 0.028 0.323 0.162 0.095 17 0.039 0.354 0.028 0.322 0.162 0.095 18 0.039 0.353 0.028 0.322 0.162 0.095 19 0.039 0.353 0.028 0.322 0.162 0.095 20 0.039 0.353 0.028 0.322 0.162 0.095 21 0.039 0.353 0.028 0.322 0.162 0.095 22 0.039 0.353 0.028 0.322 0.162 0.095 23 0.039 0.353 0.028 0.322 0.162 0.095 24 0.039 0.353 0.028 0.322 0.162 0.095 25 0.039 0.353 0.028 0.322 0.162 0.095
1 hvis0
1 hvis10
v
vpv
Evu
i
u
i
vu
pp),(
1
)udgrad(
1
6
5
6
1
6
1
i
vp = sandsynligheden for at være i knude v efter i skridt
Sortering… Øvelser fra introduktionskurset
Perspektiverende Datalogi