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

Save this PDF as:
 WORD  PNG  TXT  JPG

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 =

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

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

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

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

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

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

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

CLIPS en het Rete-algoritme. Productieregels in CLIPS. Feiten. Productiesysteem (voorbeeld)

CLIPS en het Rete-algoritme. Productieregels in CLIPS. Feiten. Productiesysteem (voorbeeld) CLIPS en het Rete-algoritme CLIPS: acroniem voor C Language Integrated Production System Verwant aan OPS5 (Carnegie-Mellon University), en gebaseerd op ART (Artificial Reasoning Tool) Ontwikkeld door Lyndon

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

Random-Getallen. Tristan Demont en Mark van der Boor en

Random-Getallen. Tristan Demont en Mark van der Boor en Random-Getallen Tristan Demont en Mark van der Boor 0768931 en 0772942 18 januari 2013 Begeleider: Relinde Jurrius Opdrachtgever: Berry Schoenmakers Modelleren B, 2WH02 Technische Universiteit Eindhoven

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

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

TW2020 Optimalisering

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

Nadere informatie

Activiteit 9. Modderstad Minimaal Opspannende Bomen. Samenvatting. Kerndoelen. Leeftijd. Vaardigheden. Materialen

Activiteit 9. Modderstad Minimaal Opspannende Bomen. Samenvatting. Kerndoelen. Leeftijd. Vaardigheden. Materialen Activiteit 9 Modderstad Minimaal Opspannende Bomen Samenvatting Onze maatschappij is verbonden middels heel veel netwerken: telefoonnet, elektriciteitsnet, de riolering, computernetwerk, en het wegennet.

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

9. Strategieën en oplossingsmethoden

9. Strategieën en oplossingsmethoden 9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

Nadere informatie

Bij dit hoofdstukken horen geen opgaven.

Bij dit hoofdstukken horen geen opgaven. 6. Programmeertalen Een computer begrijpt eigenlijk alleen maar binaire code (bestaande uit 1 en 0). Om hem/haar makkelijk opdrachten te geven zijn programmeertalen ontwikkeld. Deze moeten een goed gedefinieerde

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

Oplossingen Datamining 2II15 Juni 2008

Oplossingen Datamining 2II15 Juni 2008 Oplossingen Datamining II1 Juni 008 1. (Associatieregels) (a) Zijn de volgende beweringen juist of fout? Geef een korte verklaring voor alle juiste beweringen en een tegenvoorbeeld voor alle foute be-weringen:

Nadere informatie

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

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

Nadere informatie

Vectorruimten en deelruimten

Vectorruimten en deelruimten Vectorruimten en deelruimten We hebben al uitgebreid kennis gemaakt met de vectorruimte R n We zullen nu zien dat R n slechts een speciaal geval vormt van het (veel algemenere begrip vectorruimte : Definitie

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 2 oktober 206 Leo van Iersel (TUD) TW2020 Optimalisering 2 oktober 206 / 3 Dualiteit Dualiteit: Elk LP probleem heeft een

Nadere informatie

Negende college algoritmiek. 15 april Dynamisch Programmeren

Negende college algoritmiek. 15 april Dynamisch Programmeren Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere 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

Computationele Intelligentie

Computationele Intelligentie Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd

Nadere informatie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie Lineaire Algebra, tentamen Uitwerkingen vrijdag 4 januari 0, 9 uur Gebruik van een formuleblad of rekenmachine is niet toegestaan. De

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

Een inleiding in de Unified Modeling Language 67

Een inleiding in de Unified Modeling Language 67 Een inleiding in de Unified Modeling Language 67 1.4.5. Toepassing 5: Klasse Kaart. De opdracht bestaat erin algemene klassen te maken zodanig dat het mogelijk wordt om het even welk kaartspel te maken.

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

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

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

Genetische algoritmen in Java met JGAP

Genetische algoritmen in Java met JGAP Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen

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

Uitwerkingen eerste serie inleveropgaven

Uitwerkingen eerste serie inleveropgaven Uitwerkingen eerste serie inleveropgaven (1) Gegeven het 4 4 grid bestaande uit de 16 punten (i, j) met i, j = 0,..., 3. Bepaal het aantal driehoeken dat je kunt vinden zodanig dat ieder hoekpunt samenvalt

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

Begrenzing van het aantal iteraties in het max-flow algoritme

Begrenzing van het aantal iteraties in het max-flow algoritme Begrenzing van het aantal iteraties in het max-flow algoritme Het oplossen van het maximum stroom probleem met behulp van stroomvermeerderende paden werkt, maar het aantal iteraties kan aardig de spuigaten

Nadere informatie

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

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

Nadere informatie

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

De bouwstenen van het programmeren 1

De bouwstenen van het programmeren 1 De bouwstenen van het programmeren 1 I DE BOUWSTENEN VAN HET PROGRAMMEREN. Een programma is een beschrijving van acties (operaties, opdrachten) die moeten uitgevoerd worden. Deze acties spelen in op bepaalde

Nadere informatie

Quantum-computing toegepast op het n-queens probleem

Quantum-computing toegepast op het n-queens probleem Quantum-computing toegepast op het n-queens probleem Erik Jongsma 5 Seminar Computational Algorithms Leiden University september Introductie Abstract Quantum-computing is een onderwerp binnen de informatica

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

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

Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015

Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015 AI Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015 www.liacs.leidenuniv.nl/ kosterswa/ai/ 1 Introductie

Nadere informatie

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten 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

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Opmerking vooraf. Een netwerk is een structuur die is opgebouwd met pijlen en knooppunten. Bij het opstellen van

Nadere informatie

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

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

Nadere informatie

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken 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

Opgave 1 - Uitwerking

Opgave 1 - Uitwerking Opgave 1 - Uitwerking Om dit probleem op te lossen moeten we een zogenaamd stelsel van vergelijkingen oplossen. We zetten eerst even de tips van de begeleider onder elkaar: 1. De zak snoep weegt precies

Nadere informatie

Fractale dimensie. Eline Sommereyns 6wwIi nr.9

Fractale dimensie. Eline Sommereyns 6wwIi nr.9 Fractale dimensie Eline Sommereyns 6wwIi nr.9 Inhoudstabel Inleiding... 3 Gehele dimensie... 4 Begrip dimensie... 4 Lengte, breedte, hoogte... 4 Tijd-ruimte... 4 Fractale dimensie... 5 Fractalen... 5 Wat?...

Nadere informatie

Hoofdstuk 1. Inleiding. Lichamen

Hoofdstuk 1. Inleiding. Lichamen Hoofdstuk 1 Lichamen Inleiding In Lineaire Algebra 1 en 2 heb je al kennis gemaakt met de twee belangrijkste begrippen uit de lineaire algebra: vectorruimte en lineaire afbeelding. In dit hoofdstuk gaan

Nadere informatie

Wetenschappelijk Rekenen

Wetenschappelijk Rekenen Wetenschappelijk Rekenen Examen - Bacheloropleiding informatica Oefeningen 3 mei 23. Implementeer de functie x n+ = mod(2x n, ) waarbij je gebruik maakt van een voorstelling met reële getallen. Zorg er

Nadere informatie

From Alife Agents to a Kingdom of Queens

From Alife Agents to a Kingdom of Queens From Alife Agents to a Kingdom of Queens Bob Wansink 27 Mei 2010 Deze notitie is een vrije vertaling en uitleg van het gelijknamige artikel in Intelligent Agent Technology: Systems, Methodologies, and

Nadere informatie

Automaten. Informatica, UvA. Yde Venema

Automaten. Informatica, UvA. Yde Venema Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12 Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal

Nadere informatie

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000.

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000. S u b n e t t e n t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000 Part 1 Inhoud Wat is een subnet?... 2 Waarom?... 3 Het begin.... 3 Een voorbeeld...

Nadere informatie