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

Maat: px
Weergave met pagina beginnen:

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

Transcriptie

1 Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz ) In dit essay behandelen we bladzijden van Donald E. Knuth s The Art of Computer Programming, Volume 4 [1]. Binaire beslissingsdiagrammen (Binary Decision Diagrams) worden veelal gebruikt voor de representatie van booleaanse functies. In Fig. 1 wordt een voorbeeld van een binair beslissingsdiagram weergegeven. Figuur 1: Een binair beslissingsdiagram voor de mediaanfunctie (of meerderheidsfunctie) van drie variabelen. Een binair beslissingsdiagram (BDD) 1 is een gerichte acyclische graaf. Het BDD heeft een wortel: de bovenste knoop. De interne knopen heten vertakkingsknopen. Alle knopen zijn voorzien van een index welke correspondeert met een variabele. Zo correspondeert de wortel in Fig. 1 met de variabele x 1. Iedere interne knoop heeft twee kinderen. Eén van de takken wordt getekend met een stippellijn, we noemen deze LO. De andere tak 1 We gebruiken de vaak voorkomende engelse afkorting. Als nederlands alternatief zou BBD gebruikt kunnen worden. 1

2 wordt getekend als een normale lijn, deze noemen we HI. In ieder BDD zijn er maximaal twee bladeren (sink nodes) welke corresponderen met waar en onwaar: en. De waarden van de variabelen van de booleaanse functie bepalen een pad van de wortel naar een blad in het BDD. We vinden dit pad door voor iedere knoop met index j te kiezen voor de HI tak indien x j = 1 en als x j = 0 te LO tak te volgen. We nemen aan dat een BDD aan twee eigenschappen voldoet. Als eerste moet een BDD geordend zijn. Er is een ordening op de variabelen gegeven: x 1, x 2,..., x n. Een BDD is geordend wanneer voor iedere interne knoop geldt dat zijn kinderen corresponderen met een variabele met een hogere index. Ten tweede moet een BDD gereduceerd zijn. Een BDD is gereduceerd indien er geen twee identieke knopen zijn; het is ook verboden dat de LO en HI takken naar dezelfde knoop leiden. We defineren een booleaanse functie als een functie van de vorm: f: {0, 1} n {0, 1}. Waarin n variabelen (x 1,..., x n ) met gegeven waarheidswaarden worden afgebeeld op waar en onwaar. Het is gebruikelijk een booleaanse functie te beschrijven door middel van een waarheidstabel. Hierin worden de afbeeldingen van alle mogelijke invoerwaarden, op lexicografische wijze geordend, als een string weergegeven. We zeggen dat een waarheidstabel van de orde n is, waarbij n het aantal variabelen van de booleaanse functie is. De string heeft dan lengte 2 n. De waarheidstabel van orde 3 behorende bij de mediaanfunctie in Fig. 1 is Om de relatie tussen booleaanse functies en BDD s duidelijk te maken gebruiken we de notie van bead (Ned. kraal). Een bead van orde n is een waarheidstabel van orde n welke geen kwadraat is. Met een kwadraat wordt een waarheidstabel bedoeld van de vorm αα voor een string α van lengte 2 (n 1). 2 Subtabellen, subfuncties en de grootte van een BDD (blz ) Een waarheidstabel τ van orde n > 0 is altijd van de vorm τ 0 τ 1, waarbij τ 0 en τ 1 waarheidstabellen zijn van orde n 1. De waarheidstabel τ komt 2

3 overeen met de functie f(x 1, x 2,..., x n ) dan en slechts dan als τ 0 overeenkomt met f(0, x 2,..., x n ) en τ 1 overeenkomt met f(1, x 2,..., x n ). De functies f(0, x 2,..., x n ) en f(1, x 2,..., x n ) noemen we subfuncties van f en τ 0 en τ 1 noemen we subtabellen van τ. Subtabellen van subtabellen worden ook gezien als subtabellen en verder is een waarheidstabel een subtabel van zichzelf. De beads van een booleaanse functie zijn de subtabellen van de corresponderende waarheidstabel die geen kwadraat zijn. Als voorbeeld gebruiken we de mediaanfunctie in Fig. 1 met als waarheidstabel De unieke subtabellen zijn { , 0001, 0111, 00, 01, 10, 11, 0, 1}. De subtabellen 00 en 11 zijn duidelijk kwadratisch, dus de beads zijn { , 0001, 0111, 01, 0, 1}. Nu blijkt dat de knopen van een BDD één-op-één overeenkomen met de beads van de functie. In Fig. 2 wordt hetzelfde BDD weergegeven als in Fig. 1, waarbij de knopen nu zijn voorzien van de corresponderende beads. Figuur 2: Hetzelfde BDD als in Fig. 1 voorzien van beads. De subtabellen van orde n+1 k, behorende bij een functie f, komen overeen met de subfuncties f(c 1,... c k 1, x k,... x n ) van dezelfde orde met vaste waarden voor de eerste k variabelen. De beads van orde n + 1 k komen overeen met de subfuncties die afhankelijk zijn van hun eerste variabele x k. Dan is het duidelijk dat iedere bead overeenkomt met een vertakkingsknoop met index k in het BDD. En verder als een vertakkingsknoop met index k correspondeert met een waarheidstabel τ = τ 0 τ 1, wijzen de LO en de HI takken naar de knopen die overeenkomen met de wortels van τ 0 en τ 1. Dit bewijst dat elke booleaanse functie precies één representatie heeft als een BDD. De grootte van een BDD is gelijk aan het aantal beads van de functie. We defineren B(f) als het aantal beads van de booleaanse functie f. Voor het voorbeeld in Fig. 1 geldt B(f) = 6. 3

4 We introduceren een groter voorbeeld om het idee te verduidelijken. Stel een booleaanse functie heeft als waarheidstabel en we willen het bijbehorend BDD construeren. Iedere waarheidstabel is een subtabel van zichzelf dus is een subtabel van orde 4. Het is duidelijk dat deze subtabel geen kwadraat is (en dus een bead), dus de wortel van het BDD is een vertakkingsknoop 2 met index 1. De subtabellen van orde 3 zijn en , welke beide ook beads zijn. De LO en HI takken vanaf de wortel leiden naar vertakkingsknopen met index 2. De tweede orde subtabellen zijn {1100, 1001, 0000, 1111}. De eerste twee zijn beads, maar de laatsten zijn kwadratisch. De beads worden direct toegevoegd aan het BDD, maar de kwadraten worden gesplitst en meegenomen naar de volgende orde van subtabellen, waarbij duplicaten worden verwijderd. De subtabellen van orde 1 zijn {11, 00, 10, 01}, waarbij alleen de laatste twee (beads) worden toegevoegd. In de laatste stap blijven alleen de bladeren (0 en 1) over. Dit resulteert in het BDD in Fig. 3. Figuur 3: Een BDD voor een functie van vier variabelen. Merk op dat in Fig. 3 meerdere bladeren zijn getekend. Dit om de diagrammen niet onnodig verwarrend te maken. De grootte van het BDD in Fig. 3 is 9 en niet 13. Opgave 1 Hoeveel booleaanse functies f(x 1,..., x n ) corresponderen met een BDD ter grootte maximaal 3? 3 Oplossing opgave 1 Voor iedere f(x 1,..., x n ) bestaan twee functies met een BDD ter grootte 1. 2 In de originele tekst staat branch in plaats van branch node. 3 Komt overeen met Opgave 3 in de originele tekst. 4

5 Dit zijn de constante functies f(x 1,..., x n ) = 0 en f(x 1,..., x n ) = 1. Het is ook duidelijk dat er geen BDD s kunnen bestaan van grootte 2. Per definitie moeten er twee bladeren zijn (waar en onwaar). Deze kunnen echter niet beide bestaan zonder vertakkingsknoop of de samenhangendheid van de graaf te verbreken. Voor grootte 3 zijn er 2n functies. Dit is eenvoudig in te zien door op te merken dat de BDD s van de vorm van het BDD in Fig. 4 moeten zijn, waarbij uiteraard ook de verwisseling van de knopen van de LO en HI takken mogelijk is (de factor 2). Voor iedere variabele x j met 1 j n is deze Figuur 4: BDD ter grootte 3. vorm mogelijk. Er zijn totaal dus 2n + 2 booleaanse functies f(x 1,..., x n ) met een BDD ter grootte maximaal 3. In het algemeen kunnen BDD s zeer groot worden. Vooralsnog beperken wij ons hier tot booleaanse functies met betrekkelijk kleine BDD s. 3 Goede eigenschappen van BDD s (blz. 74) Indien wij een booleaanse functie f(x 1,..., x n ) beschouwen met een betrekkelijk klein BDD, kunnen een aantal berekeningen eenvoudig en snel worden uitgevoerd. Hier een opsomming van een aantal van deze eigenschappen, waarbij een aantal slechts worden genoemd en niet nader worden toegelicht. 4 Wij zijn in staat f(x 1,..., x n ) te berekenen in maximaal n stappen door de paden in het BDD te volgen vanaf de wortel tot aan een blad. Wij kunnen eenvoudig de lexicografisch kleinste x = (x 1,..., x n ) vinden, waarvoor geldt f(x) = 1. Beginnende in de wortel, nemen we 4 Deze onderwerpen komen aan bod in een later stadium van het seminar. 5

6 steeds de LO tak tenzij deze direct leidt tot een onwaar blad. Dan geldt dat x j = 1 dan en slechts dan als een HI tak noodzakelijk is in een vertakkingsknoop met index j. Als voorbeeld: het BDD in Fig. 1 geeft als resultaat x = 011 en het BDD in Fig. 3 geeft als resultaat x = Er zijn maximaal n stappen benodigd, omdat vanaf elke vertakkingsknoop altijd een pad aanwezig is naar een waar blad. We kunnen dus het BDD van de wortel tot aan een blad volgen zonder ooit terug omhoog te gaan. Deze methode faalt indien f(x) = 0. Het is mogelijk het aantal oplossingen van de vergelijking f(x) = 1 te tellen. Zie Algoritme 1, in Paragraaf 4. We kunnen alle oplossingen van de vergelijking f(x) = 1 bepalen. Het is mogelijk het linear Boolean programming problem op te lossen. Na het toepassen van Algoritme 1 kunnen we snel random oplossingen voor f(x) = 1 genereren. We kunnen de voortbrengende functie berekenen. Wij zijn in staat het reliability polynomial te berekenen. Het is eenvoudig BDD s te combineren. 5 4 Het tellen van de oplossingen f(x) = 1 (blz. 75) Voor het beschrijven van algoritmen voor BDD s is het eenvoudig om ons voor te stellen dat een BDD een sequentiele lijst van (vertakkings)instructies is: I s 1, I s 2,..., I 1, I 0. Iedere I k heeft de vorm ( v k?l k : h k ). Een instructie van de vorm ( v?l : h) betekent: als x v = 0 ga naar I l anders ga naar I h. Als voorbeeld schrijven we hier het BDD in Fig. 3 als een lijst van instructies: I 8 = ( 1?7 : 6), I 5 = ( 3?1 : 0), I 2 = ( 4?0 : 1), I 7 = ( 2?5 : 4), I 4 = ( 3?3 : 2), I 1 = ( 5?1 : 1), I 6 = ( 2?0 : 1), I 3 = ( 4?1 : 0), I 0 = ( 5?0 : 0). 5 Tijdens het college bleek dit niet triviaal te zijn. 6

7 De instructies I 1 en I 0 corresponderen met de twee bladeren en hebben de onmogelijke waarde n + 1 voor v 0 en v 1. We stellen dat de instructies geordend zijn volgens dezelfde wijze als het BDD. Voor de instructielijst wordt dat vertaald in de formele eisen l k < k, h k < k, v lk > v k en v hk > v k voor s > k 2. Er is één uitzondering op te merken. Indien de functie f(x) = 1 voor alle x (het BDD bestaat uit alleen een waar blad), dan stellen we s = 2. In alle andere gevallen s = B(f). De instucties kunnen dus vrij genummerd worden zolang aan deze topologische ordening wordt voldaan. De wortel van het BDD moet overeenkomen met de instructie I s 1 en de bladeren komen over een met I 1 (voor waar) en I 0 (voor onwaar). De instructielijst voor het BDD in Fig. 3 zou dus ook kunnen luiden: I 8 = ( 1?7 : 6), I 5 = ( 4?0 : 1), I 2 = ( 2?0 : 1), I 7 = ( 2?4 : 6), I 4 = ( 3?1 : 0), I 1 = ( 5?1 : 1), I 6 = ( 3?3 : 5), I 3 = ( 4?1 : 0), I 0 = ( 5?0 : 0). Of één van de andere 46 isomorfe nummeringen. Het tellen van deze isomorfe nummeringen is tamelijk eenvoudig. Merk op dat instructie I 7 altijd minstens 4 lager genummerde instructies impliceert (minus de twee bladeren). Minus de vaste plaats van de wortel blijven er slechts 2 mogelijkheden tot nummering van I 7 over: 7 of 6. Nu valt eenvoudig een beslisboom te construeren waarin op systematische wijze de nummering van de overige instructies kan worden opgenomen. In Algoritme 1 presenteren wij een methode om het aantal oplossingen van de vergelijking f(x) = 1 te bepalen. Algoritme 1 Oplossingen f(x) = 1 tellen. 6 Gegeven een booleaanse functie f(x 1,..., x n ) gerepresenteerd als een sequentiele instructielijst I s 1,..., I 0 bepaalt dit algoritme f, het aantal x = (x 1,..., x n ) waarvoor f(x) = 1. Daarbij wordt een tabel c 0, c 1,..., c s 1 bijgehouden, waarin c k overeenkomt met het aantal enen in de bead die correspondeert met I k. C1. c 0 0, c 1 1 en herhaal stap C2 voor k = 2, 3,... s 1. C2. l l k, h h k en c k 2 v l v k 1 c l + 2 v h v k 1 c h. Of, als alternatief, een recursieve definitie in algoritme 2. 6 In de originele tekst is dit Algoritme C. 7

8 Algoritme 2 Oplossingen f(x) = 1 tellen (recursief). Gegeven een booleaanse functie f(x 1,..., x n ) gerepresenteerd als een sequentiele instructielijst I s 1,..., I 0 bepaalt dit algoritme f, het aantal x = (x 1,..., x n ) waarvoor f(x) = 1. Voor een knoop u hebben we: LO(u); de index van de knoop volgend op de LO tak vanuit u, HI(u); de index van de knoop volgend op de HI tak vanuit u en var(u) de index van knoop u. function count(u) if u = 0 then return 0 else if u = 1 then return 1 else return 2 var(lo(u)) var(u) 1 count(lo(u)) + 2 var(hi(u)) var(u) 1 count(hi(u)) end count Beide algoritmen (1, 2) werken op dezelfde manier. De knopen worden vanaf de bladeren voorzien van het aantal oplossingen voor f(x) = 1, waarbij een onwaar blad geen oplossingen kent en een waar blad één oplossing. Vervolgens worden alle interne knopen voorzien van het aantal oplossingen. In het algemeen is dit de som van de twee kinderen. Indien, echter, een index wordt overgeslagen, bijvoorbeeld in Fig. 3 de meest linkse knoop met index 3, moeten alle tussenliggende paden worden meegenomen. Voor iedere Figuur 5: Hetzelfde BDD als in Fig. 3 waarbij de knopen zijn voorzien van het aantal oplossingen. overgeslagen index zijn dat 2 mogelijkheden. In Fig. 5 is de werking van het algoritme gevisualiseerd door iedere knoop te voorzien van het aantal oplossingen voor f(x) = 1. Het aantal oplossingen voor f(x 1, x 2, x 3, x 4 ) = 1 behorende bij het BDD in Fig. 3 is 8. 8

9 Referenties [1] Donald E. Knuth. The Art of Computer Programming, Volume 4, Fascicle 1: Bitwise Tricks & Techniques; Binary Decision Diagrams. Addison- Wesley Professional, 12th edition, March

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

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

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

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

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

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

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

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

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

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

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Stochastische grafen in alledaagse modellen

Stochastische grafen in alledaagse modellen Stochastische grafen in alledaagse modellen Ionica Smeets en Gerard Hooghiemstra 27 februari 2004 Stochastische grafen zijn grafen waarbij het aantal kanten bepaald wordt door kansverdelingen. Deze grafen

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

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

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

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

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

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

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

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 1. Negende college

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 1. Negende college 10 Bomen deel 1 Negende college 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 typen bomen Er zijn drie verschillende typen bomen, die in Schaum over verschillende hoofdstukken verdeeld

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

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

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

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

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

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

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

Beslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7

Beslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7 Beslisbare talen (1) College 7 Algoritmiekgroep Faculteit EWI TU Delft 10 mei 2009 De talen: A DFA = { M, w M is een DFA die w accepteert} A NFA = { M, w M is een NFA die w accepteert} E DFA = { M M is

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald

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

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

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

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

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

Permutoëders en Hamiltoniaanse paden

Permutoëders en Hamiltoniaanse paden Permutoëders en Hamiltoniaanse paden Daniel von Asmuth Inleiding Samenvatting We bestuderen het plain changes algoritme met behulp van geometrie en grafentheorie. Waarschuwing 1. Dit is een vlottend document

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

Spider Solitaire is NP-Compleet

Spider Solitaire is NP-Compleet Spider Solitaire is NP-Compleet Kenneth Verstraete 21 april 2016 1 Inleiding Spider Solitaire is een populair kaartspel dat alleen gespeeld wordt. Het werd/wordt standaard bij o.a. Microsoft Windows meegeleverd.

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

5.4.2 a. Neen: dit lukt alléén met 1, 3, 7 enzovoort. b. Ja: dit lukt met elk aantal knopen! Bijvoorbeeld de volgende boom: 1

5.4.2 a. Neen: dit lukt alléén met 1, 3, 7 enzovoort. b. Ja: dit lukt met elk aantal knopen! Bijvoorbeeld de volgende boom: 1 c. het langste gerichte pad: 4 2 3 met lengte twee. d. het langste on -gerichte pad is oneindig lang: je mag bijvoorbeeld voortdurend tussen twee knopen heen en weer wandelen. e. ja: elke knoop heeft maximaal

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code

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

Bijzondere kettingbreuken

Bijzondere kettingbreuken Hoofdstuk 15 Bijzondere kettingbreuken 15.1 Kwadratische getallen In het vorige hoofdstuk hebben we gezien dat 2 = 1, 2, 2, 2, 2, 2, 2,.... Men kan zich afvragen waarom we vanaf zeker moment alleen maar

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

Combinatoriek groep 1 & 2: Recursie

Combinatoriek groep 1 & 2: Recursie Combinatoriek groep 1 & : Recursie Trainingsweek juni 008 Inleiding Bij een recursieve definitie van een rij wordt elke volgende term berekend uit de vorige. Een voorbeeld van zo n recursieve definitie

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

8C080 deel BioModeling en bioinformatica

8C080 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 informatie

Examen Algoritmen en Datastructuren III

Examen Algoritmen en Datastructuren III Derde bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. Stellingen

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

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

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

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 2. Tiende college

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 2. Tiende college 10 Bomen deel 2 Tiende college 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 arboretum ongericht 8.8 tree graphs 9.4 rooted trees ch.10 binary trees 2 gericht geordend links/rechts bomen

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

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

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 10 Bomen 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 Baarn Hilversum Soestdijk Den Dolder voorbeelden route boom beslisboom Amersfoort Soestduinen + 5 * + 5.1 5.2 5.3 5.4 2 3 * * 2 5.3.1

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

Wanneer zijn veelvouden van proniks proniks?

Wanneer zijn veelvouden van proniks proniks? 1 Uitwerking puzzel 92-1 Wanneer zijn veelvouden van proniks proniks? Harm Bakker noemde het: pro-niks voor-niks De puzzel was voor een groot deel afkomstig van Frits Göbel. Een pronik is een getal dat

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

Hoofdstuk 3: Keuzestructuren

Hoofdstuk 3: Keuzestructuren Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk

Nadere informatie

Antwoorden vragen en opgaven Basismodule

Antwoorden vragen en opgaven Basismodule Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische

Nadere informatie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................

Nadere informatie

1 Recurrente betrekkingen

1 Recurrente betrekkingen WIS1 1 1 Recurrente betrekkingen 1.1 De torens van Hanoi De torens van Hanoi Edouard Lucas, 1884: Gegeven 3 pinnen en 64 schijven van verschillende grootte. Startsituatie: 64 op linkerpin, geordend naar

Nadere informatie

Datastructuren; (Zoek)bomen

Datastructuren; (Zoek)bomen Datastructuren; (Zoek)bomen Bomen, zoekbomen, gebalanceerde zoekbomen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 1 / 50 Bomen Traversal van bomen Datastructuur van

Nadere informatie

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1 9 9 1. 2 4 0 VANTEK Discovery set N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. 1 Inhoudsopgave Binair rekenen Pulse en Countermodule blz. 3 Informatieverwerking Input en outputmodules blz.

Nadere informatie

Small Basic Console Uitwerking opdrachten

Small Basic Console Uitwerking opdrachten Opdracht 1 3 getallen => inlezen Gemiddelde uitrekenen Resultaat afdrukken TextWindow.WriteLine("Dit programma berekend het gemiddelde van drie door U in te voeren getallen.") TextWindow.Write("Voer getal

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

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle   holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/62814 holds various files of this Leiden University dissertation. Author: Martindale, C.R. Title: Isogeny graphs, modular polynomials, and applications

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

Algoritmen abstract bezien

Algoritmen abstract bezien Algoritmen abstract bezien Jaap van Oosten Department Wiskunde, Universiteit Utrecht Gastcollege bij Programmeren in de Wiskunde, 6 april 2017 Een algoritme is een rekenvoorschrift dat op elk moment van

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

Benaderingsalgoritmen

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

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr. Universiteit Gent Academiejaar 2001 2002 Discrete Wiskunde 1ste kandidatuur Informatica Collegenota s Prof. Dr. Frank De Clerck Herhalingsoefeningen 1. Bepaal het quotiënt en de rest van de deling van

Nadere informatie

Processoren. Marc Seutter & David N. Jansen 12 November 2013

Processoren. Marc Seutter & David N. Jansen 12 November 2013 Processoren Marc Seutter & David N. Jansen 12 November 2013 Leerdoel opbouw van de hardware in een computer je construeert een (eenvoudige) processor je schrijft een (kort) assembly-programma je kunt uitleggen:

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

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

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

8/2/2006 Examen Optimalisatietechnieken (6sp) 1

8/2/2006 Examen Optimalisatietechnieken (6sp) 1 8/2/2006 Examen Optimalisatietechnieken 2005-2006 (6sp) 1 Gesloten boek: Maximaal 25 minuten Beantwoord alle vragen op het opgavenblad. Schrijf je naam op elk blad en schrijf leesbaar. Beantwoord de vraag

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

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

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking 10 december 2013, 09:30 12:30 Dit tentamen bevat 5 opgaven; zie ook de ommezijde. Alle opgaven tellen even zwaar (10 punten); je cijfer is

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

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen is het gebruik van rekenmachine of computer niet toegestaan. Vul je antwoorden in op dit formulier. Je dient dit formulier

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

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten.

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten. Kosten omputationale Intelligentie Zoeken met kosten Veel zoekproblemen omvatten kosten: een afstand in kilometers; een geldbedrag; een hoeveelheid tijd;... Voorbeelden van dergelijke problemen zijn: het

Nadere informatie

Automaten en Berekenbaarheid 2016 Oplossingen #4

Automaten en Berekenbaarheid 2016 Oplossingen #4 Automaten en Berekenbaarheid 2016 Oplossingen #4 28 oktober 2016 Vraag 1: Toon aan dat de klasse van context vrije talen gesloten is onder concatenatie en ster. Antwoord Meerdere manieren zijn mogelijk:

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

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

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen

Nadere informatie

Een combinatorische oplossing voor vraag 10 van de LIMO 2010

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

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005 Transport-, Routing- en Schedulingproblemen Wi4062TU / Wi487TU / a86g Uitwerkingen 08-04-2005 1 Transportprobleem Onderdeel a Fabriek 1 kan 120 ton staal fabriceren in 40 uur. Voor fabriek 2 is dit 150

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

Stelling. SAT is NP-compleet.

Stelling. SAT is NP-compleet. Het bewijs van de stelling van Cook Levin zoals gegeven in het boek van Sipser gebruikt niet-deterministische turing machines. Het is inderdaad mogelijk de klasse NP op een alternatieve wijze te definiëren

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 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:

Nadere informatie

Les 7 & 8: MSW Logo Mieke Depaemelaere

Les 7 & 8: MSW Logo Mieke Depaemelaere Faculteit Psychologische en Pedagogische Wetenschappen ACADEMISCHE INITIËLE LERARENOPLEIDING Academiejaar 2001-2002 Vakdidactiek informatica : praktijkgerichte seminaries Lesgevers : Prof. A. Hoogewijs

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

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

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie