Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Maat: px
Weergave met pagina beginnen:

Download "Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms"

Transcriptie

1 Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal ( ) Pagina s Deelverzameling Representatie We gaan binaire vectoren gebruiken om deelverzamelingen te representeren, zodat we gebruik kunnen maken van Binairy Decision Diagrams. Figuur 1: Cirkelgraaf C 6 We definiëren de cirkelgraaf C n als een graaf met n knopen, waarbij knoop i (1 i n) is verbonden met knopen i 1 en (i+1)%n. De cirkelgraaf C 6 in Figuur 1 representeert een functie met 6 variabelen. De waarde in de nodes is de index van x i. In deze opzet zal de vector x = x 1 x 2 x 3 x 4 x 5 x 6 = staan voor de deelverzameling {1, 4, 5}; de vector x = staat voor de lege deelverzameling, etc. In het algemeen geeft x i aan of i tot de deelverzameling behoort. 1

2 2 Deelverzameling Eigenschappen De deelverzamelingen die we nu kunnen uitdrukken in vectoren, kunnen we kiezen op grond van bepaalde eigenschappen hebben. Een onafhankelijke verzameling S in een graaf G, is een verzamelijk knopen in G, waartussen in de graaf geen takken zijn. De onafhankelijke verzamelingen van een cirkelgraaf C n corresponderen met combinaties van 1 en en 0 en van lengte n, waar geen twee 1 en naast elkaar staan. Hierbij bekijken we de string modulair: het einde plakken we vast aan het begin. We nemen als voorbeeld de cirkelgraaf C 6 in Figuur 1. Stel we nemen de deelverzameling {1, 3}. In de graaf zijn de desbetreffende nodes geen buren van elkaar. Als we kijken naar de bijbehorende vector x = , dan zien we dat er inderdaad geen twee 1 en naast elkaar staan en het dus een onafhankelijke verzameling is in C 6. Ook de lege verzameling is volgens dezelfde logica een onafhankelijke verzameling. Met behulp van de cirkelgraaf C 6 kan ook een Binairy Decision Diagram (BDD) geconstrueerd worden waarvoor geldt f(x) = 1 dan en slechts dan als x een onafhankelijke verzameling is. We nemen voor de wortel, de index van variabele x 1. Omdat er geen twee 1 en achter elkaar mogen staan mogen er geen twee HI branches achter elkaar voorkomen die naar True kunnen leiden. Hierom zie je in Figuur 2 dat de twee achtereenvolgende HI branches vanuit de wortel, naar False wijzen. Dit geldt overigens voor elke twee achtereenvolgende HI branches. Figuur 2: onafhankelijke verzamelingen van C 6 2

3 Een onafhankelijke verzameling is maximaal onafhankelijk als de verzameling niet verder uitgebreid kan worden door het toevoegen van een node, zonder de eis te verliezen die voor onafhankelijke verzamelingen geldt. Neem bijvoorbeeld de verzameling {1, 3, 5}. Deze verzameling is maximaal onafhankelijk, omdat er geen node meer toegevoegd kan worden zonder dat er in de corresponderende vector x = twee of meer 1 en naast elkaar zullen komen te staan. Maximaal onafhankelijke verzamelingen worden ook wel kernels genoemd. Kernels kunnen op dezelfde manier gevonden worden als onafhankelijke verzamelingen, door een BDD te construeren. Omdat een kernel een extra restrictie heeft ten opzichte van een onafhankelijke verzameling, moet het BDD niet alleen naar de False sink node wijzen na twee actereenvolgende HI branches, maar ook na drie achtereenvolgende LO branches. De logica hierachter is dat als je een vector hebt waarin de substring 000 voorkomt, dan kun je van de middelste 0 een 1 maken zonder de eis voor onafhankelijke verzamelingen te verliezen. Een string correspondeerd met een kernel precies dan als nergens twee 1 en naarst elkaar staan en nergens drie 0 en naast elkaar staan. Ook hier kan van de cirkelgraaf C 6 uit Figuur 1 een BDD geconstrueerd worden waarvoor geldt f(x) = 1 wanneer x een kernel is. Het resultaat hiervan staat in Figuur 3. Figuur 3: Kernels van C 6 3

4 3 Oplossingen Tellen en Random Oplossingen Genereren Om random oplossingen te kunnen genereren hebben we Algoritme C nodig, welke het aantal oplossingen telt voor de booleaanse vergelijking f(x) = 1. De True sink node is worden met 1 geïnitialiseerd en naar boven gepropageerd door de waardes in de kinderen bij elkaar op te tellen. Dit gaan we toepassen op Figuur 2 om te kijken naar het aantal onafhankelijke verzamelingen en op Figuur 3 om te kijken naar het aantal kernels voor de cirkelgraaf C 6. Er zijn geen speciale gevallen als we algoritme C toepassen op het BDD voor kernels. We initialiseren iedere True sink node op 1 en iedere False sink node op 0. Vervolgens propageren we deze waardes naar boven. De waarde in iedere ouder, is de optelling van de waardes van zijn kinderen, zoals te zien is in Figuur 4. Figuur 4: Algoritme C toegepast op de kernels van C 6 In de wortel staat het totaal aantal kernels, oftewel het totaal aantal verschillende paden van de wortel tot de True sink node. Het algoritme gaan we ook toepassen op het BDD uit Figuur 2 voor de onafhankelijke verzamelingen. Hier komt wel een speciaal geval in voor. In een aantal gevallen is de index i van het kind van een ouder met index i, niet gelijk i+1. Dit zijn de zogeheten don t care momenten. Iedere keer als j niet gelijk is aan i + 1, wordt de waarde van het kind dat naar boven gepropageerd wordt, vermenigvuldigd met 2 j (i+1). Hierbij staat j (i + 1) voor al de tussenliggende nodes van ouder i naar kind j. De reden voor deze vermenigvuldiging is gemakkelijk te 4

5 verklaren. Voor iedere don t care node zijn er twee mogelijke paden om te bewandelen: de HI of de LO branch. Voor iedere opeenvolgende don t care node wordt het aantal paden naar een True sink node verdubbeld, waardoor de factor 2 j (i+1) ontstaat. Als we Algoritme C dus volgen voor onafhankelijke verzamelingen zien we in Figuur 5 dat C 6 18 oplossingen heeft. Figuur 5: Algoritme C toegepast op onafhankelijke verzamelingen van C 6 Nu we voor iedere node weten hoeveel paden er naar een True sink node leiden, kunnen we een random oplossing genereren. Neem bijvoorbeeld vector x = x 1 x 2 x 3 x 4 x 5 x 6. Als we kijken naar de wortel node in Figuur 5, zien we dat er 13 paden overblijven als we de LO branch nemen en dat er 5 paden over blijven als we de HI branch nemen. Omdat er in de wortel 18 paden zijn, maken we de kans dat we een LO branch nemen Als we de LO branch nemen wordt x 1 op 0 gezet en als we de HI branch kiezen wordt x 1 op 1 gezet. Stel dat we de HI branch nemen en x 1 = 1, dan wordt afgedwongen dat x 2 gelijk is aan 0. Vervolgens kan x 3 wel beide kanten op gaan. Stel dat we kiezen x 1 = 1, x 2 = 0, x 3 = 0, x 4 = 0. De kans dat dit optreedt is dan = Nu is er een branch van node 4 naar 6, dus gooien we een eerlijke munt een geven x 5 een compleet random waarde. In het algemene geval geldt, als er een branch van node i naar node j gaat, dat de tussenliggende j (i + 1) nodes x i+1 x j 1 onafhankelijk en met gelijke kans de waarde 0 of 1 gegeven moeten worden. Natuurlijk zijn er makkelijkere manieren om een random keuze te maken tussen oplossingen in een combinatorisch probleem. De manier waarop de 5

6 kernels van C 6 gerepresenteerd worden door het BDD in Figuur 4 is complexer dan nodig. We kunnen de kernels namelijk aan de hand van Figuur 1 makkelijk zo opschrijven. Dit zijn , , , en ! Maar, het punt is dat de gegeven methode werkt voor onafhankelijke verzamelingen en kernels voor C n, zelfs als n heel groot is. Neem bijvoorbeeld de cirkelgraaf C 100, bestaande uit 100 variabelen. Deze heeft maar liefst 1, 630, 580, 875, 002 kernels en het BDD die de kernels representeert heeft maar 855 nodes. Met de hand geen beginnen aan dus. In 100 stappen kunnen wij een volledig random kernel genereren met behulp van het BDD, uit deze enorme collectie. 4 Algoritme B: Oplossingen voor Maximaal Gewicht Een bottom-up algoritme analoog aan Algoritme C kan de optimale gewogen oplossingen voor de booleaanse vergelijking f(x) = 1 vinden. Het idee is dat het makkelijke is om een optimale oplossing voor een willekeurige bead van f te vinden, als we de optimale oplossingen voor de LO en HI beads weten die er direct onder liggen. In feite combineer je hun resultaten. Volgens de formulering van Knuth is het algoritme niet-recursief. Algoritme B (Oplossingen voor maximaal gewicht). Laat I s 1,, I 0 een reeks branch instructies zijn die een BDD representeert voor de booleaanse functie f, waarbij I gedefinieerd is door (v?l : h) en betekend als x v = 0, ga naar instructie I l, anders ga naar instructie I h. Hierbij is s het aantal branch instructies nodig om het BDD te beschrijven. Verder is (w 1,, w n ) een arbitraire reeks gegeven integer gewichten. Het algoritme vindt een binaire vector x = x 1 x n zodat de vergelijking x 1 w w n x n maximaal is, met f(x) = 1. We nemen aan dat s > 1; anders is f(x) gelijk aan 0. Hulp integer-vectoren m 1 m s 1 en W 1 W n+1 worden gebruikt bij de berekeningen, evenals het hulp bit-vector t 2 t s 1. B1. [initialisatie] initialiseer W n+1 0 en W j W j+1 + max(w j, 0) waarbij n j 1. B2. [loop k] initialiseer m 1 0 en doe stap B3, waarbij 2 k < s. Ga verder met stap B4. 6

7 B3. [verwerk I k ] initialiseer v v k, l l k, h h k, t k 0. als l 0, dan m k m l + W v+1 W vl. als h 0, dan m m h + W v+1 W vk + w v als l = 0 of m > m k, dan is m k = m en t k = 0. B4. [verwerk de x en] initialiseer j 0, k s 1. Doe de volgende operaties totdat j = n. zolang j < v k 1, j j + 1 en x j [w j > 0]; als k > 1, dan j j + 1 en x j t k en k (t k = 0?l k : h k ). Aan de hand van een voorbeeld zal het algoritme uitgelegd worden. Gaandeweg wordt het gebruik van bepaalde variabelen uitgelegd. We gaan het algoritme toepassen op het BDD in Figuur 6, welke zich vertaalt naar de branch instructies daaronder. Figuur 6: Voorbeeld BDD voor Algoritme B We nemen als gewichten (w 1, w 2, w 3, w 4 ) = (1, 2, 3, 4). We beginnen met stap B1 en zien dat W 0..W n+1 = (5, 4, 4, 4, 0). De vector W houdt rekening met de positieve gewichten, welke gebruikt gaan worden in gedeelte B3. We 7

8 gaan door naar B2. Iedere node in het BDD in Figuur 6 krijgt een variabele m. Bij iedere node hoort een branch instructie I k en hulpvariabele m k. De False sink node krijgt geen m toegewezen en m 1 (voor de True sink node) wordt geïnitialiseerd op 0. Het deel B3 ziet er ingewikkeld uit, maar doet berekeningen die niet ingewikkeld zijn. Het hele deel valt te vertalen in de operatie m k max(m l + W v+1 W vl, m h + W v+1 W vh + w v en de maximum bit-waarde wordt opgeslagen in t k. Deze vergelijking is als volgt te verklaren. De bijdrage van de LO branch is m l + W v+1 W vl. m l is de m waarde van het LO kind. W v+1 W vl kijkt of het kind van een ouder de eerstvolgende variabele representeert. Dit is niet altijd het geval. Als we kijken naar de meeste linkse node met 3 gelabeld, dan gaat deze node meteen door naar sink nodes en slaat de node met labeling 4 over. In het geval dat er variabelen worden overgeslagen, moeten die gezien worden als don t cares. Aangezien we op zoek zijn naar de maximale uitkomst voor de vergelijking x 1 w 1 +x 2 w 2 +x 3 w 3 +x 4 w 4, willen we al de positieve gewichten van die nodes meenemen. Als w i > 0, met i de index van een overgeslagen variabel, moet x i gelijk gesteld aan 1 worden en anders 0. De bijdrage van de HI branch is m h + W v+1 W vh + w v. Deze is analoog aan de vergelijking voor de LO branch, maar neemt het gewicht w v mee. Als een LO branch wordt gekozen wordt de bijbehorende variabele namelijk op 0 gezet en 1 als de HI branch gekozen wordt. Met de HI branch wordt bijvoorbeeld x i w i veranderd in 1 w i. Volgens een bottom-up wijze lopen we het BDD af door de instructies af te lopen van I 2 naar I s 1 en de bijbehorende m k en t k in te vullen. Zo verkrijgen we het volgende: m 2 = w 4 = 2 en t 2 = 1; m 3 = t 3 = 0; m 4 = max(m 3, m 2 + w 3 ) = 1, t 4 = 1; m 5 = W 4 W 5 = 4, t 5 = 0; m 6 = w 2 + W 3 W 5 = 2, t 6 = 1; m 7 = max(m 5, m 4 + w 2 ) = 4, t 7 = 0; m 8 = max(m 7, m 6 + w 1 ) = 4, t 8 = 0. Om de oplossing nu te kunnen opschrijven beginnen we bij de wortel en volgen B4. De waarde van x 1 wordt gelijk aan t 8. Als t i gelijk is aan 0 nemen we de LO branch en anders de HI branch, dus in het geval van t 8 nemen we de LO branch. Dit gaat verder, zolang het kind van een ouder de eerst volgende variabele representeert. Dit herhaalt totdat de meest linkse node met labeling 3 meteen door gaat naar de True sink node en de node met labeling 4 overslaat. We willen natuurlijk dat de vergelijking die we aan het oplossen zijn een zo hoog mogelijke waarde krijgt. Als w i positief is moet x i gelijk worden aan 1 en anders 0. x 4 zal gelijk worden aan 1, omdat w 4 positief is. De oplossing voor de vergelijking wordt dus x 1 x 2 x 3 x 4 =

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz. 70 72) In dit essay behandelen we bladzijden 70 75 van Donald E. Knuth

Nadere informatie

Friendly Functions and Shared BDD s

Friendly Functions and Shared BDD s Friendly Functions and Shared BDD s Bob Wansink 19 Juni 2010 Deze notitie behandelt pagina s 81 tot 84 van The Art of Computer Programming, Volume 4, Fascicle 1 van Donald E. Knuth. Inhoudelijk gaat het

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

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

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

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

Het minimale aantal sleutels op niveau h is derhalve

Het minimale aantal sleutels op niveau h is derhalve 1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke

Nadere informatie

Elfde college complexiteit. 23 april NP-volledigheid III

Elfde college complexiteit. 23 april NP-volledigheid III college 11 Elfde college complexiteit 23 april 2019 NP-volledigheid III 1 TSP Als voorbeeld bekijken we het Travelling Salesman/person Problem, ofwel het Handelsreizigersprobleem TSP. Hiervoor geldt: TSP

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

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

8C080 deel BioModeling en bioinformatica

8C080 deel BioModeling en bioinformatica Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 22 april 2009,14.00-17.00u. Het tentamen bestaat uit 2 delen, een deel van BioModeling & bioinformatics en een deel van BioMedische Beeldanalyse.

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

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

Opgave 2 ( = 12 ptn.)

Opgave 2 ( = 12 ptn.) Deel II Opgave 1 (4 + 2 + 6 = 12 ptn.) a) Beschouw bovenstaande game tree waarin cirkels je eigen zet representeren en vierkanten die van je tegenstander. Welke waarde van de evaluatiefunctie komt uiteindelijk

Nadere informatie

Geldwisselprobleem van Frobenius

Geldwisselprobleem van Frobenius Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme

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

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

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

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

Hopfield-Netwerken, Neurale Datastructuren en het Nine Flies Probleem

Hopfield-Netwerken, Neurale Datastructuren en het Nine Flies Probleem Hopfield-Netwerken, Neurale Datastructuren en het Nine Flies Probleem Giso Dal (0752975) 13 april 2010 Samenvatting In [Kea93] worden twee neuraal netwerk programmeerprojecten beschreven, bedoeld om studenten

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

extra oefening algoritmiek - antwoorden

extra oefening algoritmiek - antwoorden extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.

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

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 Algoritmiek Dinsdag 5 juni 2007, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag juni 00, 0.00.00 uur Opgave. a. Een toestand bestaat hier uit een aantal stapels, met op elk van die stapels een aantal munten (hooguit n per stapel).

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

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

Gerichte Grafen Boolese Algebra s &. Logische Netwerken Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 10 maart 2009 Gerichte Grafen Boolese Algebra s &. Logische Netwerken. Paragrafen

Nadere informatie

De symmetrische min-max heap

De symmetrische min-max heap De symmetrische min-max heap Tweede programmeeropdracht Datastructuren, najaar 2006 De symmetrische min-max heap (SMM heap) is een datastructuur waarin getallen (of andere elementen met een lineaire ordening)

Nadere informatie

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet. Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven

Nadere informatie

NP-volledigheid. Algoritmiek

NP-volledigheid. Algoritmiek NP-volledigheid Polynomiale algoritmen of moeilijke problemen? Algoritme A is polynomiaal, als er een constante c bestaat, zodat het algoritme bij inputs van formaat n O(n c ) tijd gebruikt. Sommige problemen

Nadere informatie

4. Schematechnieken. In dit hoofdstuk worden drie schematechnieken behandeld:

4. Schematechnieken. In dit hoofdstuk worden drie schematechnieken behandeld: 4. Schematechnieken In dit hoofdstuk worden drie schematechnieken behandeld: aktie-diagrammen, stroomschema's en Nassi-Shneidermandiagrammen. Een schema is een goed hulpmiddel om (vooral wat ingewikkeldere

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

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

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

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

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

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

Elliptische krommen en digitale handtekeningen in Bitcoin

Elliptische krommen en digitale handtekeningen in Bitcoin Elliptische krommen en digitale handtekeningen in Bitcoin Bas Edixhoven Universiteit Leiden KNAW Bitcoin symposium Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden)

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

Uitwerking vierde serie inleveropgaven

Uitwerking vierde serie inleveropgaven Uitwerking vierde serie inleveropgaven Opgave 1. Gegeven is dat G een permutatiegroep is; a is een willekeurig element. St(a) is de deelverzameling van G die alle permutaties π bevat waarvoor geldt π(a)

Nadere informatie

Radboud Universiteit Nijmegen

Radboud Universiteit Nijmegen Radboud Universiteit Nijmegen Faculteit der Natuurwetenschappen, Wiskunde en Informatica L(,1)-labeling van grafen Naam: Studentnummer: Studie: Begeleider: Myrte klein Brink 4166140 Bachelor Wiskunde Dr.

Nadere informatie

Kunstmatige Intelligentie (AI) Hoofdstuk van Russell/Norvig = [RN] Genetische algoritmen. voorjaar 2016 College 11, 3 mei 2016

Kunstmatige Intelligentie (AI) Hoofdstuk van Russell/Norvig = [RN] Genetische algoritmen. voorjaar 2016 College 11, 3 mei 2016 AI Kunstmatige Intelligentie (AI) Hoofdstuk 4.1.4 van Russell/Norvig = [RN] Genetische algoritmen voorjaar 2016 College 11, 3 mei 2016 www.liacs.leidenuniv.nl/ kosterswa/ai/ 1 Introductie Er zijn allerlei

Nadere informatie

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact VBA voor doe het Zelvers deel 22 Handleiding van Helpmij.nl Auteur: leofact december 2015 Vorige aflevering In de vorige aflevering werden de regular expressions behandeld. Voor VBA zijn deze beschikbaar

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

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma HOOFDSTUK 2 Gröbnerbases 1. Vragen We hebben gezien dat de studie van stelsels polynoomvergelijkingen in meerdere variabelen op natuurlijke manier leidt

Nadere informatie

Hoofdstuk 9. Hashing

Hoofdstuk 9. Hashing Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

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

Grafen en BFS. Mark Lekkerkerker. 24 februari 2014

Grafen en BFS. Mark Lekkerkerker. 24 februari 2014 Grafen en BFS Mark Lekkerkerker 24 februari 2014 1 Grafen Wat is een graaf? Hoe representeer je een graaf? 2 Breadth-First Search Het Breadth-First Search Algoritme Schillen De BFS boom 3 Toepassingen

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018 Uitgebreide uitwerking Tentamen Complexiteit, juni 018 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

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten Zoemzinnen Functies met een variabel aantal argumenten Bij het definiëren van een functie leg je in principe vast hoeveel argumenten er aan de functie moeten doorgegeven worden. Dit aantal correspondeert

Nadere informatie

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders. Spirograaf in Python Een kunstwerk maken Met programmeren kun je alles maken! Ook een kunstwerk! In deze les maken we zelf een kunstwerk met Python. Hiervoor zal je werken met herhalingen en variabelen.

Nadere informatie

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast,

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast, Kansrekening voor Informatiekunde, 25 Les 8 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin knopen acties aangeven en opdrachten langs verbindingen tussen de knopen verwerkt

Nadere informatie

Lineaire afbeeldingen

Lineaire afbeeldingen Les 2 Lineaire afbeeldingen Als een robot bij de robocup (het voetbaltoernooi voor robots een doelpunt wil maken moet hij eerst in de goede positie komen, d.w.z. geschikt achter de bal staan. Hiervoor

Nadere informatie

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Modeluitwerking 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 informatie

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Optimalisering/Besliskunde 1. College 1 3 september, 2014 Optimalisering/Besliskunde 1 College 1 3 september, 2014 Algemene informatie College: woensdag 9:00-10:45: Gorlaeus C1/C2, Leiden vrijdag: werkcollege Leiden en Delft Vier verplichte huiswerkopgaven Informatie

Nadere informatie

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen. Inleiding Computers en andere digitale apparatuur is tegenwoordig niet meer weg te denken in de huidige samenleving. Zonder programma s zijn deze apparaten echter niets waard. Het zijn de programma s die

Nadere informatie

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6. Overzicht 1. Definities 2. Basisalgoritme 3. Label setting methoden 4. Label correcting methoden 5. Ondergrenzen 6. Resultaten Kortste Pad Probleem 1 Definities Een graaf G = (V, E) bestaat uit een verzameling

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

Opgave 1: bewijs zelf op algebraïsche wijze dat de lengte van DE gelijk is aan de helft van de lengte van BC.

Opgave 1: bewijs zelf op algebraïsche wijze dat de lengte van DE gelijk is aan de helft van de lengte van BC. Opgave 1: bewijs zelf op algebraïsche wijze dat de lengte van DE gelijk is aan de helft van de lengte van BC. Antwoord: de lengteverhouding vertaalt als: (x 3 x 1 ) + (x 4 x ) = (u 5 u 3 ) + (u 6 u 4 )

Nadere informatie

De statespace van Small World Networks

De statespace van Small World Networks De statespace van Small World Networks Emiel Suilen, Daan van den Berg, Frank van Harmelen epsuilen@few.vu.nl, daanvandenberg1976@gmail.com, Frank.van.Harmelen@cs.vu.nl VRIJE UNIVERSITEIT AMSTERDAM 2 juli

Nadere informatie

Hoofdstuk!7!Kortste!paden!

Hoofdstuk!7!Kortste!paden! oofdstukkortstepaden oofdstukkortstepaden In een gewogen graaf is men soms geïnteresseerd in het kortste pad tussen twee punten: dat is een pad, waarbij de som van de gewichten zo klein mogelijk is..inleiding

Nadere informatie

O P W A A R T S G E S L O T E N D E E L V E R Z A M E L I N G E N I N P A R T I E E L G E O R D E N D E V E R Z A M E L I N G E N

O P W A A R T S G E S L O T E N D E E L V E R Z A M E L I N G E N I N P A R T I E E L G E O R D E N D E V E R Z A M E L I N G E N O P W A A R T S G E S L O T E N D E E L V E R Z A M E L I N G E N I N P A R T I E E L G E O R D E N D E V E R Z A M E L I N G E N BACHELOR SCRIPTIE INFORMATICA 6 JULI 2012 R. A. TRIESSCHEIJN BEGELEIDER

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Hebzucht loont niet altijd

Hebzucht loont niet altijd Thema Discrete wiskunde Hoe verbind je een stel steden met zo weinig mogelijk kilometers asfalt? Hoe maak je een optimaal computernetwerk met kabels die maar een beperkte capaciteit hebben? Veel van zulke

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

# seetut_20 $ De Sjabloon Editor Toepassen + seetut:0370 K Sjablonen;Algemeen;Naam Wijzigen Sjabloon;Ontwerp;Sjabloon Editor;Sjabloon Openen

# seetut_20 $ De Sjabloon Editor Toepassen + seetut:0370 K Sjablonen;Algemeen;Naam Wijzigen Sjabloon;Ontwerp;Sjabloon Editor;Sjabloon Openen # $ + K De Sjabloon Editor Toepassen Deze zelfstudie maakt gebruik van de modules Profielen & Ontwerpen. Opmerking: Deze zelfstudie kan niet worden uitgevoerd met LISCAD Lite. Doelstelling Het doel van

Nadere informatie

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens Algoritmes in ons dagelijks leven Leve de Wiskunde! 7 April 2017 Jacobien Carstens Wat is een algoritme? Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd

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

Kennismaking met programmeren

Kennismaking met programmeren Kennismaking met programmeren werkblad binair tellen Project van de Pedagogische Academie, Hanzehogeschool Groningen en Groningen Programmeert in samenwerking met: Bij deze opdracht gaan jullie zelf leren

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

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

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

Groepen, ringen en velden

Groepen, ringen en velden Groepen, ringen en velden Groep Een groep G is een verzameling van elementen en een binaire operator met volgende eigenschappen: 1. closure (gesloten): als a en b tot G behoren, doet a b dat ook. 2. associativiteit:

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma Voorwoord Dit zijn aantekeningen voor het vak Discrete Wiskunde (2WC15), gegeven in het lentesemester van 2010. Dit vak bestaat uit twee delen: algoritmische

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

College WisCKI. Albert Visser. 10 oktober, Department of Philosophy, Faculty Humanities, Utrecht University. Equivalentierelaties.

College WisCKI. Albert Visser. 10 oktober, Department of Philosophy, Faculty Humanities, Utrecht University. Equivalentierelaties. College WisCKI Albert Visser Department of Philosophy, Faculty Humanities, Utrecht University 10 oktober, 2012 1 Overview 2 Overview 2 Overview 2 Overview 3 Wat is een equivalentierelatie? Een equivalentie

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 12 oktober 2016 Leo van Iersel (TUD) TW2020 Optimalisering 12 oktober 2016 1 / 31 Dualiteit Dualiteit: Elk LP probleem heeft

Nadere informatie

Achtste college algoritmiek. 8 april Dynamisch Programmeren

Achtste 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 informatie

Tentamen 8D040 - Basis beeldverwerking

Tentamen 8D040 - Basis beeldverwerking Tentamen 8D040 - Basis beeldverwerking 6 augustus 2008, 14.00-17.00 uur Vraag 1. (1.5 punten) Gegeven het binaire beeld Components (figuur 1). De componenten in dit beeld moeten automatisch gesegmenteerd

Nadere informatie

Inleiding Programmeren 2

Inleiding 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 informatie

1 Complexiteit. of benadering en snel

1 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 informatie

1 Vervangingsstrategie auto

1 Vervangingsstrategie auto Transport-, Routing- en Schedulingproblemen Wi4062TU / Wi487TU / a86g Uitwerkingen 28-03-2002 1 Vervangingsstrategie auto Onderdeel a Zij V = {0, 1, 2, 3, 4, 5, 6}, waarbij knoop i staat voor het einde

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

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

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA? Algoritmes en Priemgetallen Hoe maak je een sleutelpaar voor RSA? Het recept van RSA Kies p q priemgetallen en bepaal N = pq Kies e Z N (publieke sleutel) Bepaal d e 1 mod φ N (privésleutel) x ed x kφ

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