Övning 5 anton grensjö [email protected]€¦ · anton grensjö adk – Övning 5 5 oktober 2015 8...

65
Algoritmer, datastrukturer och komplexitet Övning 5 Anton Grensjö [email protected] 5 oktober 2015 Anton Grensjö ADK – Övning 5 5 oktober 2015 1 / 38

Upload: others

Post on 23-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Algoritmer, datastrukturer och komplexitetÖvning 5

Anton Grensjö[email protected]

5 oktober 2015

Anton Grensjö ADK – Övning 5 5 oktober 2015 1 / 38

Page 2: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Översikt

Kursplanering

F12: Grafer: MST och Dijkstra

Ö4: Dynamisk programmering

F13: Grafer: Maximalt flöde

F14: Undre gränser

F15: Beräkningsgeometri

Ö5: Grafalgoritmer och undre gränser

F16: Sortering i linjär tid

F17: Textsökning

F18: Polynom och FFTÖ6: Algoritmkonstruktion

Anton Grensjö ADK – Övning 5 5 oktober 2015 2 / 38

Page 3: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Mästarprov 1

Mästarprov 1

Mästarprov 1 finns ute nu.Deadline tisdagen den 13 oktober.Generella tips:

Börja i tid.Läs lydelserna noga.Fråga om eventuella oklarheter.Skriv fullständiga lösningar.Titta på lösningar till gamla mästarprov.Läs betygskriterierna och kolla vad som förväntas för vilka betyg.

Kom ihåg: mästarprovet ska lösas strikt individuellt.

Anton Grensjö ADK – Övning 5 5 oktober 2015 3 / 38

Page 4: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Idag

Idag

GrafalgoritmerSpännande trädFlöde och matchning (bra för labb 3!)Eulercykler

Undre gränser

Anton Grensjö ADK – Övning 5 5 oktober 2015 4 / 38

Page 5: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Repetition Spännande träd

Spännande träd

DefinitionEtt spännande träd till en graf G är en delgraf G′ till G, sådan att:

G′ är ett träd.G′ har samma hörn som G.

Vad innebär detta?Låt vikten för ett spännande träd vara summan av de ingåendekanternas vikter.Det minimalt spännande trädet (MST) till en graf G är detspännande träd till G som har lägst vikt.

Anton Grensjö ADK – Övning 5 5 oktober 2015 5 / 38

Page 6: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 1: Spännande träd

Visa hur ett minimalt spännande träd hittas i följande graf med bådePrims och Kruskals algoritmer.

7

9 1

2

3

4

5

6

8

10

Anton Grensjö ADK – Övning 5 5 oktober 2015 6 / 38

Page 7: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 1: Spännande trädPrims algoritm

Idé: modifierad BFS.Vi väljer en nod att börja med, och lägger successivt till kanter, tillsdess att alla noder kan nås.Spara alla upptäckta noder i en prioritetskö, med avseende påkostnaden för att lägga till noden.Om vi upptäcker en nod igen, uppdatera kostnaden om den ärlägre.I varje steg: välj den nod som det är billigast att lägga till.Vårt MST kommer att växa “inifrån och ut”.

Anton Grensjö ADK – Övning 5 5 oktober 2015 7 / 38

Page 8: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 1: Spännande trädKruskals algoritm

Idé: välj hela tiden den billigaste kanten som gör någon nytta (dvsej bildar en cykel).

1 Sortera kanterna efter stigande vikt.2 För varje kant (u, v) i den ordningen:

Om u och v inte ännu är sammankopplade i trädet, lägg till kanten.Annars: gör inget.

Hur kan vi effektivt hålla koll på vilka noder som redan ärsammankopplade?Datastrukturen Union-Find!Om ni är intresserade, läs mer på s. 151 i Kleinberg-Tardos.

Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38

Page 9: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

Låt oss först se ett exempel på hur man hittar maximala flödet i en grafmed hjälp av Ford-Fulkerson.

Anton Grensjö ADK – Övning 5 5 oktober 2015 9 / 38

Page 10: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

0/3 0/1

0/6

0/5

0/7

0/1 0/2

s t

3 1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 10 / 38

Page 11: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

0/3 0/1

0/6

0/5

0/7

0/1 0/2

s t

3 1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 10 / 38

Page 12: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

0/3 0/1

0/6

0/5

0/7

0/1 0/2

s t

3 1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 10 / 38

Page 13: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 0/1

0/6

0/5

2/7

0/1 2/2

s t

1

2

1

6

5

5

2

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 11 / 38

Page 14: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 0/1

0/6

0/5

2/7

0/1 2/2

s t

1

2

1

6

5

5

2

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 11 / 38

Page 15: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 0/1

0/6

0/5

2/7

0/1 2/2

s t

1

2

1

6

5

5

2

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 11 / 38

Page 16: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 0/1

0/6

0/5

2/7

0/1 2/2

s t

1

2

1

6

5

5

2

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 11 / 38

Page 17: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

1/6

1/5

2/7

0/1 1/2

s t

1

2

1

5

14

1

5

2

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 12 / 38

Page 18: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

1/6

1/5

2/7

0/1 1/2

s t

1

2

1

5

14

1

5

2

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 12 / 38

Page 19: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

1/6

1/5

2/7

0/1 1/2

s t

1

2

1

5

14

1

5

2

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 12 / 38

Page 20: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

1/6

1/5

2/7

0/1 1/2

s t

1

2

1

5

14

1

5

2

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 12 / 38

Page 21: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

5/6

5/5

6/7

0/1 1/2

s t

1

2

1

1

55

1

6

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 13 / 38

Page 22: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

5/6

5/5

6/7

0/1 1/2

s t

1

2

1

1

55

1

6

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 13 / 38

Page 23: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

5/6

5/5

6/7

0/1 1/2

s t

1

2

1

1

55

1

6

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 13 / 38

Page 24: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

5/6

5/5

6/7

0/1 1/2

s t

1

2

1

1

55

1

6

1 1 1

Anton Grensjö ADK – Övning 5 5 oktober 2015 13 / 38

Page 25: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

6/6

5/5

7/7

1/1 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 14 / 38

Page 26: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

s t

2/3 1/1

6/6

5/5

7/7

1/1 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 14 / 38

Page 27: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flöde

Antag att vi redan har hittat det maximala flödet i en graf.Beskriv en algoritm som hittar ett nytt maximalt flöde om...

a) ...kapaciteten längs en viss kant ökar med en enhet.b) ...kapaciteten längs en viss kant minskar med en enhet.

I bägge fallen ska tidskomplexiteten vara linjär, dvs O(|V|+ |E|).

s t

2/3 1/1

6/6

5/5

7/7

1/1 2/2

Anton Grensjö ADK – Övning 5 5 oktober 2015 15 / 38

Page 28: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

Om kapaciteten ökar:Gör en till iteration i Ford-Fulkerson, dvs leta efter en väg från s tillt i restflödesgrafen.Finns det en väg så kan flödet ökas längs denna väg.Finns det ingen väg så händer ingenting; flödet är fortfarandeoptimalt.

Anton Grensjö ADK – Övning 5 5 oktober 2015 16 / 38

Page 29: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

2/3 1/11/2

6/6

5/5

7/7

1/1 2/2

s t

1

2 1

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 17 / 38

Page 30: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

2/3 1/11/2

6/6

5/5

7/7

1/1 2/2

s t

1

2 1

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 17 / 38

Page 31: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

2/3 1/11/2

6/6

5/5

7/7

1/1 2/2

s t

1

2 1

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 17 / 38

Page 32: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

2/3 1/11/2

6/6

5/5

7/7

1/1 2/2

s t

1

2 1

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 17 / 38

Page 33: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

3/3 2/2

6/6

5/5

7/7

1/1 2/2

s t3 2

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 18 / 38

Page 34: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten ökar med en enhet?

s t

3/3 2/2

6/6

5/5

7/7

1/1 2/2

s t3 2

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 18 / 38

Page 35: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

Om kapaciteten mellan u och v minskar så finns det tre fall:Om kapaciteten ej var fullt utnyttjad, så händer ingenting.Annars så skapas en obalans när vi minskar kapaciteten: det gårin en enhet för mycket i u och det går ut en enhet för mycket i v.

Försök leda om en enhet flöde från u till v på något annat sätt. Letaen ny väg från u till v i restflödesgrafen.Om detta ej går så måste flödet minska.

s t

2/32/2 1/1

6/6

5/5

7/7

1/10/0 2/2

Anton Grensjö ADK – Övning 5 5 oktober 2015 20 / 38

Page 36: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/3 1/1

6/6

5/5

7/7

1/10/0 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 21 / 38

Page 37: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/3 1/1

6/6

5/5

7/7

1/10/0 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 21 / 38

Page 38: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/3 1/1

6/6

5/5

7/7

1/10/0 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 21 / 38

Page 39: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/3 1/1

6/6

5/5

7/7

1/10/0 2/2

s t

1

2

1

6

5

7

1 2

Anton Grensjö ADK – Övning 5 5 oktober 2015 21 / 38

Page 40: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

3/3 1/1

5/6

5/5

7/7

0/0 2/2

s t3

1

5

1

5

7

2

Anton Grensjö ADK – Övning 5 5 oktober 2015 22 / 38

Page 41: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

3/3 1/1

5/6

5/5

7/7

0/0 2/2

s t3

1

5

1

5

7

2

Anton Grensjö ADK – Övning 5 5 oktober 2015 22 / 38

Page 42: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

Om kapaciteten mellan u och v minskar så finns det tre fall:Om kapaciteten ej var fullt utnyttjad, så händer ingenting.Annars så skapas en obalans när vi minskar kapaciteten: det gårin en enhet för mycket i u och det går ut en enhet för mycket i v.

Försök leda om en enhet flöde från u till v på något annat sätt. Letaen ny väg från u till v i restflödesgrafen.Om detta ej går så måste flödet minska.

s t

2/3 1/1

6/6

5/5

7/7

1/1 2/2

Anton Grensjö ADK – Övning 5 5 oktober 2015 23 / 38

Page 43: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 44: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 45: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 46: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 47: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 48: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 49: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 50: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 51: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 2: Förändrat flödeVad händer om kapaciteten minskar med en enhet?

s t

2/31/3 1/1

6/6

5/5

7/76/7

1/1 2/21/1

s t

1

21

1

6

5

76

11 21

Anton Grensjö ADK – Övning 5 5 oktober 2015 24 / 38

Page 52: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 3: Eulercykel

DefinitionEn Eulercykel är en sluten stig som passerar varje kan exakt en gång.

SatsAlla hörn i G har jämnt gradtal. ⇐⇒ Det existerar en Eulercykel i G.

Uppgift:Konstruera en algoritm som givet en graf där alla hörn har jämntgradtal hittar en Eulercykel.Algoritmen ska ha tidskomplexitet O(n).

Anton Grensjö ADK – Övning 5 5 oktober 2015 25 / 38

Page 53: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 3: Eulercykel

Idé: Börja i ett hörn u, traversera grafen (på djupet), fortsätt tills dustöter på u igen.Betrakta sökstigen P du gått längs. Det finns två fall:

Antingen består P av alla kanter. I så fall är vi klara.Annars, ta bort P från grafen. Det återstår nu en eller flerasammanhängande komponenter av grafen.Alla hörn har fortfarande jämnt gradtal, så det måste finnas enEulercykel i varje komponent.Hitta nu rekursivt en Eulercykel i varje komponent, ochsammanfoga dessa med P.

Hur gör vi detta på linjär tid?

Anton Grensjö ADK – Övning 5 5 oktober 2015 26 / 38

Page 54: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 3: Eulercykel

Vi definierar två stycken “spelare”: P1 och P2. Båda startar i v.P1 har som jobb att skapa stigen P, märka varje kant sompasseras, och fortsätta tills hen kommer tillbaka till v.P2:s jobb är att följa i P1:s spår. Kontrollerar om alla kanter frånhörnen är märkta.Om det finns omärkta kanter från ett hörn u så finns det enoutforskad del av grafen där.

P2 ropar då på P1, som på samma sätt får hitta en ny stig sombörjar och slutar i u.P2 går denna nya stig innan hen fortsätter från u längs P.

Till slut kommer P2 ha besökt alla kanter exakt en gång! VägenP2 har gått är alltså en Eulercykel.Varken P1 eller P2 kommer ha gått längs samma kant mer än engång =⇒ tidskomplexitet O(n).

Anton Grensjö ADK – Övning 5 5 oktober 2015 27 / 38

Page 55: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 3: Eulercykel

EulerCycle(G) =cycle← 1choose edge (1, t)mark (1, t)path← PathFinder(G, 1, t)Straggler(path)return cycle

PathFinder(G, start, cur) =append(cur, path)while cur 6= start do

choose unmarked edge (cur, v)mark (cur, v)append(v, path)cur ← v

return path

Straggler(path) =while path 6= ∅ do

u← next(path)append(u, cycle)for all edges (u, v) do

if unmarked (u, v) thenmark (u, v)p← PathFinder(G, u, v)Straggler(p)

Anton Grensjö ADK – Övning 5 5 oktober 2015 28 / 38

Page 56: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 4: Julklappsfördelning

En pappa ska ge sina n barn varsin julklapp.Varje barn har skrivit en önskelista.Pappan vill ge varje barn en julklapp från barnets önskelista.Han vill dock inte ge samma julklapp till flera barn.

Uppgift:Konstruera och analysera en effektiv algoritm som löser dettaproblem.Antag att det finns högst m saker på varje önskelista.

Anton Grensjö ADK – Övning 5 5 oktober 2015 29 / 38

Page 57: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 4: Julklappsfördelning

Bipartit matchning. Kan lösas med hjälp av en algoritm för maximaltflöde.Tidskomplexitet:O(nm) kanter, O(n + m) hörn, så varje sökning tar O(nm) tid.Matchningen är av storlek högst n.Varje lyckad sökning förbättrar får matchning med 1.=⇒ högst n sökningar.

Den totala tidskomplexiteten blir O(n2m).

Anton Grensjö ADK – Övning 5 5 oktober 2015 30 / 38

Page 58: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Repetition Tidskomplexitet, övre/undre gränser

Tidskomplexitet

Säg att vi analyserar en algoritm. Låt T(n) vara tiden det tar förden att lösa ett problem av storlek n.Om vi gör en noggrann analys av algoritmen kanske vi kan visaatt T(n) ∈ Θ(n log n).Ofta så är det dock svårt att göra en så noggrann analys att vi kananvända Θ. Istället kan vi göra uppskattningar för att hitta en övreeller undre gräns för tidskomplexiteten.Det lär t.ex. vara betydligt enklare att visa T(n) ∈ O(n2) ochT(n) ∈ Ω(n).I praktiken bryr vi oss ofta mest om att vi har en tillräckligt låg övregräns för algoritmens komplexitet.

Anton Grensjö ADK – Övning 5 5 oktober 2015 31 / 38

Page 59: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Repetition Tidskomplexitet, övre/undre gränser

Tidskomplexitet i värsta fallet

Men tidskomplexiteten för en algoritm kan bero av mer än baraindatastorleken n.Den kan också bero på hur indatat ser ut.Hittils i kursen har vi oftast analyserat algoritmer för värsta möjligaindata, dvs för värsta fallet.Notera att detta inte har något att göra med huruvida vi använderO, Ω eller Θ.Det kan t.ex. både vara intressant att hitta en undre gräns och enövre gräns för tidskomplexiteten i värsta fallet för en algoritm.

Anton Grensjö ADK – Övning 5 5 oktober 2015 32 / 38

Page 60: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Repetition Tidskomplexitet, övre/undre gränser

Undre gränser för problem

Man kan också visa undre gränser för problem.Att ett problem har den undre gränsen Ω(f (n)) betyder att varjetänkbar algoritm som löser problemet måste ha en tidskomplexitetsom ligger i Ω(f (n)).Om man har konstruerat en algoritm kan man vilja undersöka omundre och övre gräns sammanfaller, dvs om den undre gränsenför problemet är samma som den övre gränsen för algoritmen.Om så är fallet kan man konstatera att algoritmen har optimaltidskomplexitet.

Anton Grensjö ADK – Övning 5 5 oktober 2015 33 / 38

Page 61: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 5: Undre gräns för sökning i sorterad array

Binärsökning i en sorterad array med n tal tar som bekant tidenO(log n).Bevisa att Ω(log n) också är en undre gräns för antalet jämförelsersom krävs för detta problem (i värsta fallet).

Vi vill alltså visa att oavsett vilken algoritm vi har (så länge den byggerpå att jämföra elementen) så kan den aldrig vara snabbare änlogaritmsk.

Anton Grensjö ADK – Övning 5 5 oktober 2015 34 / 38

Page 62: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 5: Undre gräns för sökning i sorterad array

Som indata har vi en sorterad array A av storlek n med elementa1, a2, . . . , an, samt ett tal x som är det vi söker efter.Låt oss bygga ett beslutsträd för en godtycklig jämförelsebaseradsökningsalgoritm.Algoritmen måste börja med att välja ett tal ai att jämföra x med.Om x = ai är vi klara. Annars har vi två fall: x < ai och x > ai.Beroende på resultatet tar algoritmen beslut om att antingenfortsätta med ett tal aj eller ett tal ak, osv...Hur många noder finns det i trädet? n stycken.

Notera!Trädets utseende/struktur beror endast på algoritmen, ej på indata.Indata avgör vilken väg i trädet vi tar.

Anton Grensjö ADK – Övning 5 5 oktober 2015 35 / 38

Page 63: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 5: Undre gräns för sökning i sorterad array

Exempel

Hur ser beslutsträdet ut för linjärsökning?

Vi vill hitta en undre gräns för problemet sökning i sorterad array ivärsta fallet.Dvs en undre gräns som varje tänkbar algoritm uppfyller (för sittvärsta fall).Eftersom vi söker en undre gräns så betraktar vi den bästaalgoritmen som teoretiskt sett skulle kunna finnas.

(Om denna uppfyller den undre gränsen så måste ju alla andraalgoritmer också göra det.)

Vi vill alltså analysera det beslutsträd där den längsta vägen(motsvarande värsta indata) är så kort som möjligt.

Anton Grensjö ADK – Övning 5 5 oktober 2015 36 / 38

Page 64: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Uppgift 5: Undre gräns för sökning i sorterad array

Vi vill alltså analysera det beslutsträd där den längsta vägen(motsvarande värsta indata) är så kort som möjligt.Detta måste alltså vara ett balanserat binärträd!

Kom ihåg: i ett balanserat binärträd så är alla lövnoder på sammadjup (så när som på en skillnad 1, ifall antalet noder inte är entvåpotens).

Antal noder är n. Längsta vägen = höjden på trädet ≈ log n.Antalet jämförelser i värsta fallet måste alltså vara ≈ log n.

Den bästa tänkbara algoritmen för problemet har tidskomplexitetenΘ(log n) i värsta fallet.Således måste Ω(log n) vara en undre gräns för alla algoritmer somlöser problemet.

Anton Grensjö ADK – Övning 5 5 oktober 2015 37 / 38

Page 65: Övning 5 Anton Grensjö grensjo@csc.kth€¦ · Anton Grensjö ADK – Övning 5 5 oktober 2015 8 / 38. Uppgifter Uppgift 2: Förändrat flöde Låt oss först se ett exempel på

Uppgifter

Nästa vecka

Blandat på temat algoritmkonstruktionInlämning och redovisning av labbteori 3.

Anton Grensjö ADK – Övning 5 5 oktober 2015 38 / 38