Amorized Analysis en Union-Find Algoritmiek

Maat: px
Weergave met pagina beginnen:

Download "Amorized Analysis en Union-Find Algoritmiek"

Transcriptie

1 Amorized Analysis en Union-Find

2 Vandaag Amortized analysis Technieken voor tijdsanalyse van algoritmen Union-find datastructuur Datastructuur voor operaties op disjuncte verzamelingen Verschillende oplossingen Analyse van uiteindelijke oplossing Toepassing 2

3 Tijdsanalyse van een algoritme Soms: analyse van controlestructuur Kijken naar geneste loops, etc. Hier: een data-structuur met operaties Ge-amortiseerde tijd: hoeveel tijd kost elke operatie gemiddeld over alle operaties. Drie technieken: Aggregate method Accounting method Potential method 3

4 Probleemstelling Data-structuur Verzameling operaties op een data-structuur Wat is de gemiddelde tijd in het slechtste geval per operatie? Worst case average time: amortized time 4

5 Aggregate method Bereken totale tijd T(n) over een serie van n operaties op de data-structuur. Amortized time is T(n)/n. Voorbeelden: Stack met multipop Binare teller Dynamische array 5

6 Stack met multi-pop Stack met drie operaties: Push(S,x): zet x bovenop de stack Pop(S): haal bovenste element van stack en lever dat op Multipop(S,k): haal de bovenste k elementen van de stack, of maak stack leeg als deze minder dan k elementen heeft: Multipop(S,k) while not(stack-empty(s)) and k 0 do Pop(S); k = k 1; 6

7 Aggregate analysis voor de stack met multipop Worst-case tijd van multipop is O(n). Neem aan dat we beginnen met een lege stack. Amortized tijd van operaties is O(1), want: Stel we doen n operaties op de stack. Dus doen we hooguit n keer een Push Dus kunnen we hooguit (minder dan) n keer een element Pop-en Totale tijd over alle Pop- en Multipop-operaties: O(n) Totale tijd: O(n) Amortized time van operatie: O(n/n) = O(1) 7

8 Verhogen van een binaire teller Array A[0 k 1] van bits Initieel Increment(A) i = 0; While i < length(a) and A[i] = 1 Do A[i] = 0; i ++ If i < length(a) then A[i] =

9 Amortized analyse van binaire teller Een enkele operatie kan O(k) tijd kosten. Amortized: Elke operatie zet slechts 1 bit van 0 naar 1, maar misschien meerdere bits van 1 naar 0. Als we n Increment-operaties doen: Maximaal n keer bit van 0 naar 1. Dus ook maximaal n keer bit van 1 naar 0. Totaal O(n) werk O(1) amortized tijd van increment. 9

10 Dynamische array Array: Start op formaat 10 Toevoegen van element kan totdat array vol is (meestal O(1) werk, tenzij array vol) Als array vol: formaat = formaat * 2 Maak nieuwe array met grootte formaat Kopieer oude array naar nieuwe array Kost O(formaat) tijd 10

11 Aggregate voor dynamische array Als we n inserts doen, dan: O(n) voor gewone inserts: Stel laatste verdubbeling gebeurde bij formaat k Totale tijd van verdubbelingen: O( k ) = O(k) n <= 2k Dus O(n) totaal, dus O(1) amortized 11

12 De accounting method Iedere operatie betaalt hypothetische kosten. Daarmee: Betaalt hij voor de acties die hij doet Kan hij credit op objecten in de datastructuur plaatsen Kan hij eventueel betalen met credit dat uit de datastructuur gehaald wordt 12

13 Accounting method Stack met multipop Operaties kosten: Push: 1 Pop: 1 Multipop: min(k, S ) Geef geamortiseerde kosten: Push: 2. Zet 1 credit op element in S. Pop: 0. Betaal actie met credit. Multipop: 0. Betaal actie met credit Invariant: elk element in S heeft 1 credit. 13

14 Binaire teller met accounting Array A[0 k 1] van bits Initieel Increment(A) i = 0; While i < length(a) and A[i] = 1 Do A[i] = 0; i ++ If i < length(a) then A[i] = 1 Laat elke increment 2 kosten. Zet 1 credit op de 1 die we gemaakt hebben. Betaal zetten van 1 naar 0 met credits op de 1-en. O(1) amortized. 14

15 Dynamische array met accounting Als we een element toevoegen, dan: Geef 1 credit aan een element dat nog geen credit heeft Geef 1 credit aan element zelf Als we verdubbelen, dan heeft elk element precies 1 credit Dus O(1) amortized 15

16 Potentiaal methode Potentiaal-functie Φ: Datastructuur reals Als D 0 initiele datastructuur en D j datastructuur na j operaties, dan Φ(D j ) Φ (D 0 ) Geamortiseerde kosten van een operatie i kunnen we nemen als: Echte kosten c i plus Φ(D j ) Φ(D j 1 ) Merk op: totale kosten is minstens som van geamortiseerde kosten. 16

17 Potentiaal methode voor multipop Potentiaal van stack is aantal elementen op stack. Initieel 0; dus altijd minstens potentiaal van initiele datastructuur. Geamortiseerde kosten Push: 2. (1 voor operatie en 1 voor toename potentiaal). Geamortiseerde kosten Pop: 0. (1 voor operatie en 1 wegens potentiaalverschil.) Geamortiseerde kosten Multipop: 0 (min(k, S ) voor operatie en min(k, S ) wegens potentiaalverschil.) 17

18 Potentiaalmethode voor binaire teller Potentiaal van bitstring: aantal bits dat 1 is. Initieel 0; dus altijd minstens potentiaal van initiele datastructuur. Geamortiseerde kosten van operatie zijn hooguit 2. 18

19 Potentiaalmethode voor dynamische array Stel we hebben een array met formaat f waarin n elementen zitten Geef deze potentiaal 2n-f Elke gewone invoeging doet potentiaal met 2 stijgen Verdubbeling: we doen dit als n=f, dus potentiaal is 2n-n = n, en na afloop is potentiaal 0, dus we betalen de operatie met het potentiaalverschil 19

20 Union-find datastructuur Probleemstelling: datastructuur voor disjuncte verzamelingen met operaties Vereniging (Union) Zoeken (Find) Verschillende datastructuren voor dit probleem Analyse van de verschillende datastructuren Uiteindelijke oplossing: `union by rank en padcompressie Toepassingen O.a. implementatie voor algoritme voor schedulingprobleem 20

21 Disjuncte verzamelingen Partitie van universum U in aantal disjuncte deelverzameling van U. Elk element van U zit in precies een verzameling in de collectie a b d c e g f U U = { {a,b,c}, {d,e,g}, {f} } 21

22 Een ADT voor disjuncte verzamelingen I: Create Verschillende operaties Create Union Find Create ( v ) Voegt nieuwe verzameling aan de collectie toe met element v Wordt aangeroepen als v niet al in de collectie zit. 22 U a c f b e d g U a b c f e d v g

23 Vereniging Union (S1, S2) II: Union Wordt aangeroepen met naam / objectverwijzing / identificatie van twee verzamelingen Vervangt de verzamelingen S1 en S2 in de collectie door een verzameling S1 S2 a b S1 c h a f S2 b c h f v d e g v d e g 23

24 Find (v) Levert de naam / objectverwijzing / identificatie op van de verzameling waar v in zit. Iedere verzameling heeft dus unieke manier om geïdentificeerd te worden Bijv. naam van een uniek element uit de verzameling III: Find a S1 c h f S2 b e d v g Find(a) geeft een verwijzing naar S1. 24

25 Incrementeel samenhangende componenten Graaf G. Operaties: Voeg een kant toe tussen twee knopen x en y Geef de knopen in de samenhangende component van x Zitten x en y in dezelfde samenhangende component Addedge(x,y) S1 = Find(x) S2 = Find(y) if S1 S2 then Union(S1,S2) Toepassing 25

26 Hoe implementeren we een datastructuur voor `union-find? Verschillende implementaties Soms willen/kunnen we de datastructuur met extra operaties uitbreiden (zie werkcollege). Operaties moeten vlot gaan 26

27 Heel simpel idee: array Houdt bij elk element bij de naam van de verzameling waar deze in zit: set(v) Find: O(1). Union (S, T): Vervelend: Of het hele array langsgaan en voor alle elementen kijken of ze in S en T zitten Of we hebben voor verzamelingen S en T opgeslagen welke elementen erin zitten: Maar dan hebben we de array niet zo nodig Create: lastig, want hoe lang moet de array worden? 27

28 Datastructuur met lijsten Een verzameling wordt gerepresenteerd met een lijst van zijn elementen; elk element heeft een pointer naar zijn representatie (bijv.: 1 e element). a b c d e f g a b c d e f g 28

29 Verbetering 1 1e lijst moet doorgelopen worden, alleen om laatste element te vinden om pointer naar 1e element van 2e lijst te maken a b c d e f g a b c d e f g Houdt dus ook een pointer naar het laatste element bij 29 O(1) extra werk aan deze pointer

30 Verbetering 2 Als we pech hebben / dom zijn, wordt grote lijst achter kleine lijst gezet e a b c d e a b c d Dus 30

31 Union by size Houdt van elke verzameling ook het formaat bij. Bij een vereniging: Zet de kleinste lijst achter de grootste Tel de formaten op. Hoeveel tijd kost dit? Hoeveelheid tijd is O(1) voor find O(1) voor create O(1+ lengte kortste rij) voor union: hoeveel is dat nu precies? 31

32 Analyse union by size Stel element x zit in verzameling met formaat n 1 en union wordt gedaan met verzameling met formaat n 2. Als n 1 n 2, dan moet de pointer naar het eerste element worden omgezet, en zit x na afloop in een verzameling met n 1 + n 2 2*n 1 elementen. Anders wordt de pointer naar het eerste element niet omgezet. Als U =n, dan kan een element maar hooguit log n keer in een minstens twee keer zo grote verzameling komen. Dus: totale hoeveelheid werk van het omzetten van pointers over alle union-operaties is O(n log n). O(log n) gemiddeld per union. 32

33 Tijdgrenzen lijsten met union by size Find: O(1) Create: O(1) Union: O(n) worst case O(log n) geamortiseerd 33

34 Union-find met snelle union Duur was: omzetten van alle pointers naar het 1e element. Dus, laten we dat dan niet doen. a b c d e f g a b c d e f g 34 Zoeken gaat in meerdere stappen

35 Observaties Zoeken: ga een aantal pijlen naar voren af, tot je aan begin van de lijst gekomen bent. De lijst hoeft geen lijst meer te zijn: we gebruiken de lijst niet meer. a b c d e f g a b c d e f g 35

36 Boomstructuur Een verzameling wordt gerepresenteerd door een boom. Pijlen wijzen omhoog, naar wortel. Identiteit van verzameling is / wordt opgeslagen in wortel van boom. a b c d e f g a b e c d f g 36

37 Find in boomstructuur Find (x) r = x; while parent(r) r do r = parent r Return informatie opgeslagen bij r a b e c d f g 37

38 Union in boomstructuur Hang kleinste boom onder grootste boom Update formaat a h b e n i c d f g m l k j 38

39 Analyse Union-Find met boomstructuur Diepte van boom O(log n) Dus: Find kost O(log n) tijd. Union kost O(1) tijd, plus evt. tijd voor vinden van wortels (m.b.v. 1 of 2 finds). 39

40 Diepte van boom bijhouden In plaats van aantal knopen: houdt diepte van boom bij. Noemen we rang. Als rang(s1) < rang(s2) dan hang S1 onder S2 Als rang(s2) < rang(s1) dan hang S2 onder S1 Als rang(s1) = rang(s2) dan hang S2 onder S1 en tel 1 op bij de rang van S1 m n h l k i j c b a d f e g 40

41 Union by rank Rang = diepte van boom Als wortel rang r heeft, dan zijn er 2 r knopen in zijn verzameling O(log n) tijd voor find O(1) tijd voor Union 41

42 Padcompressie Observatie: meerdere Finds op hetzelfde element herhalen veel werk. De boom is niet binair hoeft ook niet! We kunnen elementen direct onder de wortel van de boom hangen: scheelt de volgende keer veel werk. 42

43 Padcompressie b c d a b d c a 43

44 Padcompressie - pseudocode Findwithpathcompression(x) r = x; while parent(r) r do r = parent(r); y = x; while y r do z = parent(y); parent(y) = r; y = z; return(r); Find met padcompressie kost O( find zonder padcompressie ): We gaan 2 keer het pad af 44

45 Snelle en langzame functies Ackermann; k 0; j 1: A 0 (j) = j+1 j+1 keer A k (j) = A k-1 A k-1 A k-1 (j) als k>0. Inverse Ackermann α(n) = min{ k>0 A k (1) > n} Log-ster i keer log*(n) = min {i log log log (n) < 1} Inverse Ackermann in praktijk nooit meer dan 4; log-ster in praktijk nooit meer dan 5. 45

46 Union-find met union by rank en padcompressie Stelling. Als we n creates en m finds doen, dan kosten de finds samen Θ(m α(m,n)) tijd. We gaan bewijzen: Stelling. Als we n creates en m finds doen, dan kosten de finds samen O(n+m log* n) tijd. 46

47 Observaties over rangen Op ieder pad omhoog in de boom stijgen de rangen. De rang van een knoop is initieel 0, kan alleen maar stijgen gedurende de loop van het algoritme, en blijft gelijk nadat de knoop geen wortel meer is. De waarde van de rang(parent(x)) daalt nooit. Als x wortel van een boom is, dan is het formaat van de verzameling van x minstens 2 rang(x). Er zijn hooguit n / 2 r knopen met rang r. Iedere knoop heeft rang hooguit log n. 47

48 Verdeel de rangen in blokken Rang r zit in blok log* r. Schrijf B(-1)=-1; B(0)=0; B(1) = 1. B(j) = j keer, j>1 Blok j is {B(j 1)+1,, B(j)}. B(j) = 2 B(j-1) 48

49 Kosten van find Indelen in categorieën 1 eenheid kosten per knoop op wortelpad. Wortel: O(1) per find Kind van wortel: O(1) per find Blokkosten: Voor ieder blok: bovenste knoop op wortelpad met rank in blok. Springkosten: Knopen met een rang anders dan de rang van de wortel, en niet bovenste knoop in blok Padkosten: Alle andere knopen 49

50 Blokkosten en springkosten Er zijn O(log* n) blokken. Iedere find heeft hooguit 1 knoop per blok die blokkosten krijgt: O(log* n) per find blokkosten. Springkosten: Nadat een knoop springkosten gekregen heeft, zal het daarna alleen nog maar wortel, kind van wortel, of blokkosten krijgen: Nooit meer springkosten en padkosten Want bovenste knoop in blok op elk wortelpad. Dus totaal O(1) per knoop = O(n) totaal over alle finds 50

51 Padkosten Als knoop padkosten krijgt, dan Zit zijn ouder met rang in zelfde blok. Krijgt hij een nieuwe ouder met een kleinere rang. Knoop in blok j kan B(j) B(j 1) 2 keer padkosten krijgen: daarna zit zijn ouder zeker in een ander blok. (Blok j heeft B(j) B(j 1) elementen.) Totale padkosten: som over alle blokken van aantal knopen met rang in dat blok * (B(j) B(j 1) 2). Aantal knopen met rang in blok j: schrijf dit als N(j) 51

52 52 N(j) 3n/2B(j) N(0) n / n / 2 1 = 3n / 2B(0) Als j>0: ) ( ) ( 0 1 1) ( 1) 1) ( ( ) ( 0 1 1) ( j B n n n n j B r r j B j B j B r r j B = = < = + + = + Gebruik dat er hooguit n/2 r knopen met rang r zijn = + = ) ( 1 1) ( 2 ) ( j B j B r r n j N

53 53 Tellen van padkosten ( ) = = = 1 log* 0 1 log* 0 ) ( ) ( ) ( ) ( )* ( n j n j j B j B n j B j B j N n log*n 2 3

54 Totaal Wortel: O(m) Kind van wortel: O(m) Blokkosten: O(m log* n) totaal Springkosten: O(n) Padkosten: O(m log* n) 54

55 Union find met padcompressie en union by rank Een enkele find kan veel tijd (O(log n)) kosten. Maar alle finds bij elkaar nauwelijks meer dan lineaire tijd! Nuttig principe: Extra werk maar niet veel om later tijd te besparen. 55

56 n taken Toepassing voor schedulingprobleem Iedere taak kost evenveel (1) tijd Taken hebben een deadline d i Taken hebben een opbrengst g i Een taak brengt g i op dan en slechts dan als de taak uitgevoerd is op tijd d i of eerder Welke taken voeren we uit, en in welke volgorde, zodat Taken uitgevoerd uiterlijk op deadline Totale opbrengst zo groot mogelijk Stel we hebben taken al gesorteerd op dalende opbrengst. 56

57 Disjuncte verzamelingen Neem een verzameling bestaande uit Tijdstip dat nog niet gebruikt is Alle latere gebruikte tijdstippen voor het volgende nog niet gebruikte tijdstip. Bijhouden met union-find datastructuur; voor elke verzameling houden we het vrije tijdstip bij. 57

58 Implementatie van `rechtsaanschuif algoritme Zoeken van leeg tijdstip: find operatie Plannen van taak op tijdstip t: Union van verzameling die t bevat en de verzameling die t 1 bevat. Totale tijd: O(n α(2n,n)) : bijna linear! 58

59 Conclusie Drie methoden voor analyse van geamortiseerde tijd van data structuur Union-find datastructuur Toepassing van UF komt ook bij algoritme voor minimum opspannende bomen 59

Minimum Opspannende Bomen. Algoritmiek

Minimum Opspannende Bomen. Algoritmiek Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van

Nadere informatie

Datastructuren Uitwerking jan

Datastructuren Uitwerking jan Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Elfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen

Elfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen lgoritmiek 019/lgoritme van ijkstra lfde college algoritmiek 10 mei 019 lgoritme van ijkstra, Gretige lgoritmen 1 lgoritmiek 019/ynamisch programmeren Programmeeropdracht 3 Lange Reis 0 10 10 1 1 100 0

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3

Nadere informatie

Kortste Paden. Algoritmiek

Kortste Paden. Algoritmiek Kortste Paden Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd s algoritme) Dijkstra s algoritme voor Single Source Negatieve

Nadere informatie

Kortste Paden. Algoritmiek

Kortste Paden. Algoritmiek Kortste Paden Toepassingen Kevin Bacon getal Six degrees of separation Heeft een netwerk de small-world eigenschap? TomTom / Google Maps 2 Kortste paden Gerichte graaf G=(N,A), en een lengte L(v,w) voor

Nadere informatie

Zevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)

Zevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort) College 7 Zevende college complexiteit 7 maart 2017 Mergesort, Ondergrens sorteren (Quicksort) 1 Inversies Definitie: een inversie van de permutatie A[1],A[2],...,A[n] is een paar (A[i],A[j]) waarvoor

Nadere informatie

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen

Nadere informatie

Datastructuren en Algoritmen

Datastructuren en Algoritmen Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2005 2006, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Splaybomen

Nadere informatie

Vierde college complexiteit. 14 februari Beslissingsbomen

Vierde college complexiteit. 14 februari Beslissingsbomen College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then

Nadere informatie

Doorzoeken van grafen. Algoritmiek

Doorzoeken van grafen. Algoritmiek Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Tiende college algoritmiek. 14 april Gretige algoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair

Nadere informatie

Zesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort

Zesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort College 6 Zesde college complexiteit 19 maart 2019 Mergesort, Ondergrens sorteren Quicksort, Shellsort 1 Vorige keer Voor sorteeralgoritmen gebaseerd op arrayvergelijkingen, waarbij per arrayvergelijking

Nadere informatie

Zevende college algoritmiek. 24 maart Verdeel en Heers

Zevende college algoritmiek. 24 maart Verdeel en Heers Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties

Nadere informatie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

Tiende college algoritmiek. 26 april Gretige algoritmen

Tiende college algoritmiek. 26 april Gretige algoritmen Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag

Nadere informatie

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Derde college complexiteit. 7 februari Zoeken

Derde college complexiteit. 7 februari Zoeken College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:

Nadere informatie

Zevende college algoritmiek. 1 april Verdeel en Heers

Zevende college algoritmiek. 1 april Verdeel en Heers Zevende college algoritmiek 1 april 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties

Nadere informatie

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

Zevende college algoritmiek. 23/24 maart Verdeel en Heers Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht

Nadere informatie

Zevende college Algoritmiek. 6 april Verdeel en Heers

Zevende college Algoritmiek. 6 april Verdeel en Heers Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)

Nadere informatie

Heuristieken en benaderingsalgoritmen. Algoritmiek

Heuristieken en benaderingsalgoritmen. Algoritmiek Heuristieken en benaderingsalgoritmen Wat te doen met `moeilijke optimaliseringsproblemen? Voor veel problemen, o.a. optimaliseringsproblemen is geen algoritme bekend dat het probleem voor alle inputs

Nadere informatie

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 30 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Dynamische verzamelingen Stack implementaties Array met maximale grootte Linked List

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Algoritmiek. 15 februari Grafen en bomen

Algoritmiek. 15 februari Grafen en bomen Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van

Nadere informatie

Indexen.

Indexen. Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen

Nadere informatie

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,

Nadere informatie

Tweede college algoritmiek. 12 februari Grafen en bomen

Tweede college algoritmiek. 12 februari Grafen en bomen College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft

Nadere informatie

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe

Nadere informatie

Minimum Spanning Tree

Minimum Spanning Tree Minimum Spanning Tree Wat is MST? Minimum spanning tree De meest efficiënte manier vinden om een verbonden netwerk op te bouwen Wat is een tree/boom? Graaf G: een verzameling knopen (vertices): V een verzameling

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende

Nadere informatie

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=

Nadere informatie

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Uitwerking tentamen Algoritmiek 9 juni :00 17:00 Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 14 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Willekeurig gebouwde zoekbomen Willekeurig gebouwde zoekbomen Hoogte van zoekboom met

Nadere informatie

Greedy algoritmes. Algoritmiek

Greedy algoritmes. Algoritmiek Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing

Nadere informatie

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra College 10 Tiende college algoritmiek mei 013 Gretige algoritmen, Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle

Nadere informatie

Datastructuren Uitwerking jan

Datastructuren Uitwerking jan Datastructuren Uitwerking jan 16 1 1a) Een ADT wordt gekenmerkt door de opgeslagen gegevens en de beschikbare operaties. De Priority Queue bevat en verzameling elementen waarbij elk element en eigen waarde

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2010 2011, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Twaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify

Twaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de

Nadere informatie

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,

Nadere informatie

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011 15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree

Nadere informatie

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek Netwerkstroming Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede Maximum Stroming Stelling Variant: Edmonds-Karp Toepassing: koppelingen

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Discrete Wiskunde, College 13. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 13. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 13 Han Hoogeveen, Utrecht University Algoritme van Kruskal (1) Sorteer de kanten in E op volgorde van lengte; hernummer de kanten zodanig dat c(e 1 ) c(e 2 )... c(e m ) Bij twee

Nadere informatie

Oefeningen voor de oefeningenles. Oefening 1

Oefeningen voor de oefeningenles. Oefening 1 Oefeningen voor de oefeningenles Oefening 1 Gegeven een arbitraire binaire zoekboom T met n toppen en een (andere of gelijke) binaire zoekboom T die ook n sleutels bevat. Beschrijf een algoritme dat in

Nadere informatie

2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken 2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 27 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com

Nadere informatie

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte Algoritmiek 2018/Complexiteit Derde college algoritmiek 2 februari 2018 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2018/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:

Nadere informatie

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra Tiende college algoritmiek mei 018 Gretige Algoritmen Algoritme van Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle

Nadere informatie

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Complexiteit of efficiëntie van algoritmen Hoe meet je deze? Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Een betere maatstaf is het aantal berekeningsstappen

Nadere informatie

Grafen en netwerken I Datastructuren en doorzoeken. Algoritmiek

Grafen en netwerken I Datastructuren en doorzoeken. Algoritmiek Grafen en netwerken I Datastructuren en doorzoeken Algoritmiek 1 Inleiding 2 Netwerken Veel toepassingen, bijvoorbeeld: Sociale netwerken, electrische netwerken, wegennetwerken, communicatie netwerken,

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Uitwerking tentamen Algoritmiek 9 juli :00 13:00 Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel

Nadere informatie

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen. WIS14 1 14 Grafen 14.1 Grafen Gerichte grafen Voor een verzameling V is een binaire relatie op V een verzameling geordende paren van elementen van V. Voorbeeld: een binaire relatie op N is de relatie KleinerDan,

Nadere informatie

Eerste Toets Datastructuren 22 mei 2019, , Educ-β en Megaron.

Eerste Toets Datastructuren 22 mei 2019, , Educ-β en Megaron. Eerste Toets Datastructuren 22 mei 209, 3.30 5.30, Educ-β en Megaron. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag

Nadere informatie

Elfde college algoritmiek. 28 april Gretige Algoritmen, Algoritme van Dijkstra, Branch & Bound

Elfde college algoritmiek. 28 april Gretige Algoritmen, Algoritme van Dijkstra, Branch & Bound lgoritmiek 01/retige lgoritmen lfde college algoritmiek 8 april 01 retige lgoritmen, lgoritme van ijkstra, ranch & ound 1 lgoritmiek 01/retige lgoritmen Minimale opspannende boom egeven een samenhangende,

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017 Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2016

Uitgebreide uitwerking Tentamen Complexiteit, juni 2016 Uitgebreide uitwerking Tentamen Complexiteit, juni 016 Opgave 1. (3+10++7+6) a. De hoogte van de beslissingsboom (lengte van het langste pad) stelt het aantal arrayvergelijkingen in de worst case voor.

Nadere informatie

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ. Tweede Toets Datastructuren 29 juni 2016, 13.30 15.30, Educ-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe

Nadere informatie

Tweede Toets Datastructuren 27 juni 2018, , Olympos Hal 2.

Tweede Toets Datastructuren 27 juni 2018, , Olympos Hal 2. Tweede Toets Datastructuren 27 juni 2018, 13.30 15.30, Olympos Hal 2. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag

Nadere informatie

Examen Algoritmen en Datastructuren III

Examen Algoritmen en Datastructuren III Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)

Nadere informatie

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound Algoritmiek 011/11 College 11 Elfde college algoritmiek 1 april 011 Dijkstra en Branch & Bound 1 Algoritmiek 011/11 Kortste paden Gegeven een graaf G met gewichten op de takken, en een beginknoop s. We

Nadere informatie

Tweede Toets Datastructuren 28 juni 2017, , Educ-β.

Tweede Toets Datastructuren 28 juni 2017, , Educ-β. Tweede Toets Datastructuren 28 juni 2017, 13.30 15.30, Educ-β. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert

Nadere informatie

Vierde college algoritmiek. 1 maart Toestand-actie-ruimte Brute Force

Vierde college algoritmiek. 1 maart Toestand-actie-ruimte Brute Force Algoritmiek 2019/Toestand-actie-ruimte Vierde college algoritmiek 1 maart 2019 Toestand-actie-ruimte Brute Force 1 Algoritmiek 2019/Toestand-actie-ruimte Torens van Hanoi Voorbeeld 3: Torens van Hanoi

Nadere informatie

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound Algoritmiek 013/11 College 11 Elfde college algoritmiek 1 mei 013 Dijkstra, Gretige algoritmen en Branch & Bound 1 Algoritmiek 013/11 Voorbeeld -1- A B C D E F G H 9 7 5 A B C D E F G H 0 9 9 7 5 A B C

Nadere informatie

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden.

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden. . a) Een Fibonacci boom (niet te verwarren met een Fibonacci queue) van hoogte h is een AVL-boom van hoogte h met zo weinig mogelijk knopen. i. Geefvoorh =,,,,eenfibonacciboomvanhoogteh(eenboombestaande

Nadere informatie

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route Kosten Zoekalgoritmen (00 00) ollege 5: Zoeken met kosten Peter de Waal, Tekst: Linda van der aag Veel zoekproblemen omvatten kosten: een afstand in kilometers; een geldbedrag; een hoeveelheid tijd; ongemak;...

Nadere informatie

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november

Nadere informatie

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA. Week 6: Lijsten Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal

Nadere informatie