Progra-MEER - Algoritmiek Leuven 20 maart 2018
|
|
- Jelle Boer
- 4 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Progra-MEER - Leuven 20 maart 2018 Bart Demoen KU Leuven Veerle Fack UGent Frank Neven/Wim Lamotte UHasselt schooljaar
2 Vandaag... 2/33 waar staan we i.v.m. 24 april? werkblad met twee thema s en af en toe wat Python uitleiding tussendoor: groepsfoto
3 De werkbladen 3/33 zie werkbladen
4 3 munten I 4/33 KKK MMK MMM KKM MKM KMM MKK KMK
5 3 munten II 5/33 def munten(): done, nog = [], [( k, k, k )] while nog!= []: x = nog.pop() done.append(x) n = buren(x) for y in n: if y not in done: nog.append(y) return(( m, m, m ) in done) def buren(x): (a,b,c) = x return([(a,om(b),om(c)), (om(a),b,om(c)), (om(a),om(b),c)]) def om(a): if a == k : return( m ) return( k )
6 De boer, de wolf, de geit en de kool I 6/33 een graaf met als knopen: wie zit op de linkeroever verbind twee knopen als die overgang mogelijk is zoek pad van bwgk naar de lege knoop
7 De boer, de wolf, de geit en de kool I 6/33 een graaf met als knopen: wie zit op de linkeroever verbind twee knopen als die overgang mogelijk is zoek pad van bwgk naar de lege knoop
8 De boer, de wolf, de geit en de kool II 7/33 def bwgk(): b,w,g,k = "boer","wolf","geit","kool" done = [] nog = [[b,w,g,k]] while nog!= []: x = nog.pop() done.append(x) n = buren(nog) for y in n: if y not in done: nog.append(y) return([] in done)
9 Gemeenschappelijk aan munten en BWGK 8/33 modelleer als grafenprobleem los daarin op bereikbaarheid één programma - lichte varianten merk op: je hoeft de graaf niet helemaal op te stellen voor hoe vraag: het pad bijhouden / kortste pad zoeken...
10 De gevaarlijke oversteek van de 4 wandelaars I 9/33 modelleer als grafenprobleem een situatie een knoop de tijd van 1 situatie naar de andere is het gewicht van de boog gewicht van de bogen is nu niet constant zoek een pad niet langer dan 17 systematische aanpak? voor kortste pad?
11 De gevaarlijke oversteek van de 4 wandelaars II 10/33
12 De gevaarlijke oversteek van de 4 wandelaars III 11/33
13 De gevaarlijke oversteek van de 4 wandelaars IV 12/33 a en b met z naar overkant: 2 a met z: 1 c en d en z: 10 b en z: 2 a en b: 2
14 Systematiek in zoeken kortste pad? 13/33 probeer op het werkblad...
15 intentioneel leeg... 14/33
16 Verdeel en heers 15/33 de kracht van opdelen en combineren deelproblemen - deeloplossingen onverwachte toepasssingen soms verkeerde verwachtingen algemene idee: deel probleem in twee (of meer) los elk deelprobleem op combineer resultaten met kleine kost
17 Verdeel en heers 15/33 de kracht van opdelen en combineren deelproblemen - deeloplossingen onverwachte toepasssingen soms verkeerde verwachtingen algemene idee: deel probleem in twee (of meer) los elk deelprobleem op combineer resultaten met kleine kost
18 Verdeel en heers 16/33 deel probleem in twee (of meer) los elk deelprobleem op combineer resultaten met kleine kost totale kost(n) = 2 totale kost(n/2) + kleine combinatie kost(n) kleine combinatie kost(n) = constant: totale kost(n) = O(log(N)) N: totale kost(n) = O(Nlog(N)) ook mogelijk: totale kost(n) = totale kost(n/2) + kleine combinatie kost(n)
19 Verdeel en heers 16/33 deel probleem in twee (of meer) los elk deelprobleem op combineer resultaten met kleine kost totale kost(n) = 2 totale kost(n/2) + kleine combinatie kost(n) kleine combinatie kost(n) = constant: totale kost(n) = O(log(N)) N: totale kost(n) = O(Nlog(N)) ook mogelijk: totale kost(n) = totale kost(n/2) + kleine combinatie kost(n)
20 Verdeel en heers: machten berekenen I 17/ met 12 vermenigvuldigingen of minder... de gelijkheden: of a 2n = a n a n a 2n+1 = a a 2n indien n even is: a n = a n/2 a n/2 indien n oneven is: a n = a a n 1 aantal vermenigvuldigingen daalt van n 1 naar log(n)
21 Verdeel en heers: machten berekenen I 17/ met 12 vermenigvuldigingen of minder... de gelijkheden: of a 2n = a n a n a 2n+1 = a a 2n indien n even is: a n = a n/2 a n/2 indien n oneven is: a n = a a n 1 aantal vermenigvuldigingen daalt van n 1 naar log(n)
22 Verdeel en heers: machten berekenen II 18/33 indien n even is: a n = a n/2 a n/2 indien n oneven is: a n = a a n 1 in Python: nog een basisgeval erbij! def macht(a,n): if n == 1: return(a) if n % 2 == 0: # even n x = macht(a,n//2) return(x*x) else: # oneven n return(a*macht(a,n-1))
23 Verdeel en heers: machten berekenen III 19/33 nog niet optimaal, maar wel al heel efficiënt optimaliteit vereist dat je een NP-compleet probleem oplost :-( zie
24 Verdeel en heers: vermenigvuldigen I 20/33 Een voorbeeld: (10a + b) (10c + d) = 100a b + 10(a d + b c) + b d 4 vermenigvuldigingen als de getallen 2 lang zijn voor getallen van n lang, n 2 vermenigvuldigingen plus wat optellingen (kosten weinig) 100 en 10 zijn shifts (kosten weinig) de kost zit in de vermenigvuldigingen kan het met essentieel minder dan n 2 vermenigvuldigingen? Andrey Kolmogorov beweerde van niet zijn student Anatoly Karatsuba verbaasde de wereld
25 Verdeel en heers: vermenigvuldigen I 20/33 Een voorbeeld: (10a + b) (10c + d) = 100a b + 10(a d + b c) + b d 4 vermenigvuldigingen als de getallen 2 lang zijn voor getallen van n lang, n 2 vermenigvuldigingen plus wat optellingen (kosten weinig) 100 en 10 zijn shifts (kosten weinig) de kost zit in de vermenigvuldigingen kan het met essentieel minder dan n 2 vermenigvuldigingen? Andrey Kolmogorov beweerde van niet zijn student Anatoly Karatsuba verbaasde de wereld
26 Verdeel en heers: vermenigvuldigen I 20/33 Een voorbeeld: (10a + b) (10c + d) = 100a b + 10(a d + b c) + b d 4 vermenigvuldigingen als de getallen 2 lang zijn voor getallen van n lang, n 2 vermenigvuldigingen plus wat optellingen (kosten weinig) 100 en 10 zijn shifts (kosten weinig) de kost zit in de vermenigvuldigingen kan het met essentieel minder dan n 2 vermenigvuldigingen? Andrey Kolmogorov beweerde van niet zijn student Anatoly Karatsuba verbaasde de wereld
27 Verdeel en heers: vermenigvuldigen II 21/33 (10a + b) (10c + d) = 100a c + 10(a d + b c) + b d = 100A + 10B + C A = a*c C = b*d B = (a+b)*(c+d) - A - C 3 vermenigvuldigingen ipv 4! iets meer optellingen niet meer n 2 maar n log 2(3) of ongeveer n voor getallen van 1000 cijfers, van naar
28 Verdeel en heers: vermenigvuldigen II 21/33 (10a + b) (10c + d) = 100a c + 10(a d + b c) + b d = 100A + 10B + C A = a*c C = b*d B = (a+b)*(c+d) - A - C 3 vermenigvuldigingen ipv 4! iets meer optellingen niet meer n 2 maar n log 2(3) of ongeveer n voor getallen van 1000 cijfers, van naar
29 Verdeel en heers: kortste afstand tussen welke twee punten? I 22/33 N punten in het vlak naief algo voor elke paar punten, bereken (euclidische) afstand onthoud de kortste er zijn N (N 1)/2 paren, dus een O(N 2 ) algoritme kan het beter?
30 Verdeel en heers: kortste afstand tussen welke twee punten? II 23/33 A B verdeel de punten in twee verzamelingen A en B - ongeveer even groot (je wil daarvoor eerst sorteren volgens de x-coordinaat) los (recursief) het probleem op voor A en B neem daarvan het paar met de kortste afstand: lijm nu alles aan elkaar...
31 Verdeel en heers: kortste afstand tussen welke twee punten? III 24/33 A B enkel nodig om punten binnen de zone te beschouwen: telkens eentje in A en eentje in B binnen die zone liggen bewijsbaar weinig punten resulteert in O(Nlog(N)) ipv O(N 2 )
32 Verdeel en heers: kortste afstand tussen welke twee punten? III 24/33 A B enkel nodig om punten binnen de zone te beschouwen: telkens eentje in A en eentje in B binnen die zone liggen bewijsbaar weinig punten resulteert in O(Nlog(N)) ipv O(N 2 )
33 Verdeel en heers: kortste afstand tussen welke twee punten? III 24/33 A B enkel nodig om punten binnen de zone te beschouwen: telkens eentje in A en eentje in B binnen die zone liggen bewijsbaar weinig punten resulteert in O(Nlog(N)) ipv O(N 2 )
34 Verdeel en heers: zoeken in een geordende rij 25/33 bepaal of een getal in een rij getallen zit als de rij geordend is de rij heeft lengte N dat kunnen jullie? lineair zoeken: O(N) binair zoeken: O(log(N))
35 Verdeel en heers: zoeken in een geordende rij 25/33 bepaal of een getal in een rij getallen zit als de rij geordend is de rij heeft lengte N dat kunnen jullie? lineair zoeken: O(N) binair zoeken: O(log(N))
36 Verdeel en heers: een rij van lengte N ordenen van klein naar groot I 26/33 merge-sort def mergesort(l): hulp = l.copy() msort(hulp,l,0,len(l)) def msort(l,hulp,begin,einde): if begin - einde < 2: return midden = (einde - begin)//2 msort(hulp,l,begin,midden) msort(hulp,l,midden+1,einde) merge(l,begin,midden,einde,hulp) altijd Nlog(N)
37 Verdeel en heers: een rij van lengte N ordenen van klein naar groot I 26/33 merge-sort def mergesort(l): hulp = l.copy() msort(hulp,l,0,len(l)) def msort(l,hulp,begin,einde): if begin - einde < 2: return midden = (einde - begin)//2 msort(hulp,l,begin,midden) msort(hulp,l,midden+1,einde) merge(l,begin,midden,einde,hulp) altijd Nlog(N)
38 Verdeel en heers: een rij ordenen van lengte N van klein naar groot II 27/33 quick-sort def qsort(l): if len(l) < 2: return split(l,l[0],kleiner,groter) qsort(kleiner) # onvolledig! qsort(groter) # onvolledig! soms O(N 2 ), maar gemiddeld ook Nlog(N)
39 Verdeel en heers: een rij ordenen van lengte N van klein naar groot II 27/33 quick-sort def qsort(l): if len(l) < 2: return split(l,l[0],kleiner,groter) qsort(kleiner) # onvolledig! qsort(groter) # onvolledig! soms O(N 2 ), maar gemiddeld ook Nlog(N)
40 Welke is beter? 28/33 quicksort: in-place (uitdaging!) niet stabiel soms slechte O(N 2 ) mergesort: kan niet in-place stabiel altijd O(Nlog(N))
41 Belangrijk: hoeveel data wordt verplaatst? 29/33 bij sorteren van grote items, beter hun indexen sorteren dan hun waarden [gc, ga, gb] niet aanpassen vertrek van rij indexen [1, 2, 3] gesorteerde rij is bv [2, 3, 1]
42 Uitleiding I: wat hebben jullie geleerd? hopelijk... 30/33 programmeren = algoritme ontwerpen + coderen coderen is het minste maar bevredigt meest J agis, et puis je réfléchis 1 werkt niet principe van gulzigheid en vb n waar het (niet) werkt dynamisch programmeren een vergelijking vat alle essentie een efficiënte implementatie gebruikt memoing veel problemen modelleren als een probleem van grafen wat verdeel-en-heers voorbeelden bewijzen van correctheid en eindigheid iets over efficiëntie en complexiteit en niet elk probleem heeft een algoritmische oplossing 1 Achilles Van Acker
43 Uitleiding II: wat nu nog? 31/33 24 april: afsluitende sessie Progra-MEER doe een bijdrage: timing volgt per poster werkbundel aanwezigheid/interactie schrijf in en breng geïnteresseerden mee vul ook de afsluitende vragenlijst van Google in (zie onze website)
44 24 april: gevangenis van Hasselt 32/33 samen met jullie collegas die in Gent/Hasselt iets meededen 10.30: onthaal met koffie en koeken Welkomstwoord Kennismaking met de Microbit Moodle platform voor computationeel denken Dodona platform voor Python Dwenguino programmeren 13u00: Walking lunch & Postersessie Robots komen in vrede: een overzicht van artificiële intelligentie Internet of Things: iedereen programmeur Meer Big Data minder storende reclame 15.30: koffie en limburgse taart
45 Mijn vraag aan jullie... 33/33 Suggesties voor de toekomst?
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 informatieZevende 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 informatieZevende 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 informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieProgrammeermethoden. 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 informatieDivide & Conquer: Verdeel en Heers. Algoritmiek
Divide & Conquer: Verdeel en Heers Algoritmiek Algoritmische technieken Trucs; methoden; paradigma s voor het ontwerp van algoritmen Gezien: Dynamisch Programmeren Volgend college: Greedy Vandaag: Divide
Nadere informatieDivide & Conquer: Verdeel en Heers. Algoritmiek
Divide & Conquer: Verdeel en Heers Algoritmiek Algoritmische technieken Trucs; methoden; paradigma s voor het ontwerp van algoritmen Gezien: Dynamisch Programmeren Hierna: Greedy Vandaag: Divide & Conquer
Nadere informatieDivide & 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 informatieZevende 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 informatieProgrammeermethoden. 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 informatieDerde 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 informatieZesde 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 informatieModeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013
Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag Januari 20 Opgave. Python Gegeven is de volgende (slechte) Python code:. def t(x): 2. def p(y):. return x*y
Nadere informatieTijd 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 informatieDerde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2019/Complexiteit Derde college algoritmiek 22 februari 2019 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2019/Complexiteit Opgave 1 bomenpracticum Niet de bedoeling: globale (member-)variabele
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieDatastructuren 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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieUitwerking 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 informatieUitwerking 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 informatieDiscrete 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 informatieElfde 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 informatieElke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.
Versie 16 januari 2017 Sorteren unplugged Sorteren gebeurt heel veel. De namen van alle leerlingen in de klas staan vaak op alfabetische volgorde. De wedstrijden van een volleybal team staan op volgorde
Nadere informatieAchtste 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 informatieKortste 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 informatieVierde 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 informatieZevende 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 informatieTiende 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 informatieDerde 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 informatieTwaalfde 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 informatieEerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege.
Eerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege. Kijk een huiswerkset na met een team van twee, voorzie de uitwerking van commentaar en becijfering, en neem de nagekeken set mee
Nadere informatieGreedy 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 informatieOm te kijken of x, y, z samen een driehoek specificeren hoeven we alleen nog maar de driehoeksongelijkheid te controleren: x, y, z moeten voldoen
Feedback Software Testing, Opdrachten Week 1 Driehoek-test Deze opdracht is in het algemeen zeer goed uitgevoerd. Algemeen valt in vergelijking met vorig jaar op dat de ingeleverde oplossingen veel minder
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatie6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:
6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 1) Haakjes wegwerken 2) Vermenigvuldigen en delen van links naar rechts 3) Optellen en aftrekken van links naar rechts Schrijf ALLE stappen ONDER
Nadere informatieVierde 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 informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieDatastructuren. 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 informatieHeuristieken 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 informatieAlgoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Nadere informatieZomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)
Katholieke Universiteit Leuven September 011 Module 1 Algebraïsch rekenen (versie augustus 011) Inhoudsopgave 1 Rekenen met haakjes 1.1 Uitwerken van haakjes en ontbinden in factoren............. 1. De
Nadere informatieElke gelijkenis met bestaande gebeurtenissen en/of personen berust op louter toeval.
Leo is een hevige fan van het Belgisch voetbal. Behalve een vurige fan van Blauw Zwart, is hij ook geïnteresseerd in de voetbaltempels van de eersteklassevoetbalclubs. Daarom wil hij, samen met zijn kameraad
Nadere informatieDatastructuren 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 informatieVierde 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(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Nadere informatie2 Recurrente betrekkingen
WIS2 1 2 Recurrente betrekkingen 2.1 Fibonacci De getallen van Fibonacci Fibonacci (= Leonardo van Pisa), 1202: Bereken het aantal paren konijnen na één jaar, als 1. er na 1 maand 1 paar pasgeboren konijnen
Nadere informatieZomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008
Katholieke Universiteit Leuven September 008 Algebraïsch rekenen (versie 7 juni 008) Inleiding In deze module worden een aantal basisrekentechnieken herhaald. De nadruk ligt vooral op het symbolisch rekenen.
Nadere informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieKortste 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 informatieElfde 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 informatiepublic 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 informatieWorteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen
Worteltrekken modulo een priemgetal: van klok tot cutting edge Roland van der Veen Modulorekenen Twee getallen a en b zijn gelijk modulo p als ze een veelvoud van p verschillen. Notatie: a = b mod p Bijvoorbeeld:
Nadere informatieStatistiek voor A.I. College 6. Donderdag 27 September
Statistiek voor A.I. College 6 Donderdag 27 September 1 / 1 2 Deductieve statistiek Kansrekening 2 / 1 Vraag: Afghanistan In het leger wordt uit een groep van 6 vrouwelijke en 14 mannelijke soldaten een
Nadere informatieGegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )
OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................
Nadere informatieTiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS
Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen
Nadere informatie8C080 deel BioModeling en bioinformatica
Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 13 maart 2009, 09.00-12.00u. Het tentamen bestaat uit 2 delen, een deel van BioModeling & bioinformatics en een deel van BioMedische Beeldanalyse.
Nadere informatieBenaderingsalgoritmen
Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is
Nadere informatie1.1 Rekenen met letters [1]
1.1 Rekenen met letters [1] Voorbeeld 1: Een kaars heeft een lengte van 30 centimeter. Per uur brand er 6 centimeter van de kaars op. Hieruit volgt de volgende woordformule: Lengte in cm = -6 aantal branduren
Nadere informatieTiende 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 informatieDerde college algoritmiek. 18 februari Toestand-actie-ruimte
Derde college algoritmiek 18 februari 2016 Toestand-actie-ruimte 1 BZboom: zoeken Na het bomenpracticum 60 20 80 10 40 70 100 1 15 30 75 5 25 35 2 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5
Nadere informatieALGORITMIEK: 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 informatieExamencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter
Voorbereidende opgaven VWO Examencursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:
Nadere informatieAlgoritmen aan het werk
Algoritmen aan het werk (Dag van de wiskunde 24/11/2018) Veerle Fack Universiteit Gent De bevers en de brug Vier bevers willen in het donker een brug oversteken. Ze kunnen de brug slechts alleen of met
Nadere informatieNegende college algoritmiek. 15 april Dynamisch Programmeren
Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen
Nadere informatieTiende 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 informatieDerde college algoritmiek. 23 februari Toestand-actie-ruimte
College 3 Derde college algoritmiek 23 februari 2012 Toestand-actie-ruimte 1 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5 25 35 100 verwijderen = 60 20 80 10 40 70 1 15 30 75 5 25 35 verwijderen
Nadere informatieOefententamen in2505-i Algoritmiek
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Oefententamen in2505-i Algoritmiek Maart 2007 Het gebruik van boek of aantekeningen tijdens dit tentamen is niet toegestaan.
Nadere informatieOpgaven Eigenschappen van Getallen Security, 2018, Werkgroep.
Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht
Nadere informatieUitgebreide 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 informatie9. Strategieën en oplossingsmethoden
9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van
Nadere informatieKansrekening en Statistiek
Kansrekening en Statistiek College 4 Donderdag 22 September 1 / 31 1 Kansrekening Vandaag : Vragen Bernouilli verdelingen Binomiale verdelingen Voorwaardelijke kansen 2 / 31 Vragen: multiple choice Bij
Nadere informatieDerde college algoritmiek. 16/17 februari Toestand-actie-ruimte
Derde college algoritmiek 16/17 februari 2017 Toestand-actie-ruimte 1 Toestand-actie-ruimte Probleem Toestand-actie-ruimte Een toestand-actie-ruimte (toestand-actie-diagram, state transition diagram, toestandsruimte,
Nadere informatieRSA. F.A. Grootjen. 8 maart 2002
RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven
Nadere informatieVijfde college algoritmiek. 2/3 maart Exhaustive search
Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)
Nadere informatieIndexen.
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 informatie1 Complexiteit. of benadering en snel
1 Complexiteit Het college van vandaag gaat over complexiteit van algoritmes. In het boek hoort hier hoofdstuk 8.1-8.5 bij. Bij complexiteitstheorie is de belangrijkste kernvraag: Hoe goed is een algoritme?
Nadere informatieextra sommen Statistiek en Kans
extra sommen Statistiek en Kans 1. Bepaal bij de volgende rijen de modus, de mediaan en het gemiddelde a. 1, 4, 2, 3, 5, 3, 6, 3 b. 12, 11, 13, 11, 12, 11, 12, 13, 11, 14, 75, 15 c. 1, 43, 12, 32, 43,
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke
Nadere informatieAmorized Analysis en Union-Find Algoritmiek
Amorized Analysis en Union-Find Vandaag Amortized analysis Technieken voor tijdsanalyse van algoritmen Union-find datastructuur Datastructuur voor operaties op disjuncte verzamelingen Verschillende oplossingen
Nadere informatieString Matching. Algoritmiek
String Matching Algoritmiek String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2 String Matching (formeel)
Nadere informatieDynamisch Programmeren III. Algoritmiek
Dynamisch Programmeren III Vandaag Dynamisch programmeren met wat lastiger voorbeelden: Handelsreiziger Longest common subsequence Optimale zoekbomen Knapsack 2 - DP2 Handelsreiziger Een handelsreiziger
Nadere informatieUitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Nadere informatieMinimum 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 informatieEen combinatorische oplossing voor vraag 10 van de LIMO 2010
Een combinatorische oplossing voor vraag 10 van de LIMO 2010 Stijn Vermeeren (University of Leeds) 16 juni 2010 Samenvatting Probleem 10 van de Landelijke Interuniversitaire Mathematische Olympiade 2010vraagt
Nadere informatie6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:
6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 1) Haakjes wegwerken 2) Vermenigvuldigen en delen van links naar rechts 3) Optellen en aftrekken van links naar rechts Schrijf ALLE stappen ONDER
Nadere informatieVijfde 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 informatieDisclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen
Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen dat er zowel typografische als inhoudelijke onvolkomenheden
Nadere informatiealgoritmiek - antwoorden
2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd
Nadere informatieStoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )
Voorbereidende opgaven VWO Stoomcursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan
Nadere informatieOptimaliseren in Netwerken
Optimaliseren in Netwerken Kees Roos e-mail: C.Roos@tudelft.nl URL: http://www.isa.ewi.tudelft.nl/ roos Kaleidoscoop college Zaal D, Mekelweg 4, TU Delft 11 October, A.D. 2006 Optimization Group 1 Onderwerpen
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieHoofdstuk 8: Algoritmen en Complexiteit
Hoofdstuk 8: Algoritmen en Complexiteit Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? 22 oktober 2014 1 Vandaag: Hoe meten we de performance
Nadere informatie5 Afronden en afkappen
WIS5 1 5 Afronden en afkappen 5.1 Floor en ceiling Floor en ceiling Conversiefuncties van reële getallen naar gehele getallen. x = het grootste gehele getal et x x = het kleinste gehele getal et x Uitspraak:
Nadere informatieDiscrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:
Nadere informatieAutomaten en Berekenbaarheid
Automaten en Berekenbaarheid Bart Demoen KU Leuven 2016-2017 Les 3: 36-54 Myhill-Nerode relaties; regulier pompen Myhill-Nerode equivalentieklassen in Σ I 2/10 belangrijk te verstaan: een equivalentie-relatie
Nadere informatieRecursion. 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