definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten
|
|
- René van Beek
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 recursieve datastructuren college graphs definities Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten E edges, arcs, kanten, pijlen, lijnen verbinding tussen knopen Voorbeelden steden en verbindingswegen objecten en inheritance relaties mensen en familiebanden het internet: computers en communicatiekanalen FSM... soorten algemeen: een edge verbindt twee knopen d.w.z. E P ( V x V ) of ( u, v ) E u, v V directed, digraph plaatjes a picture paints a words... veel verschillende manieren van tekenen ( u, v ) is geordend ( b.v. eenrichtingsstraat, inheritance,.. ) kant van u naar v impliceert niet een kant van v naar u u heet origin, bron; v heet destination, doel undirected ( u, v ) is niet geordend, soms schrijf je u, v ( u, v ) E ( v, u ) E door alles dubbel op te slaan te simuleren met directed weighted Amsterdam Utrecht Den Bosch Arnhem Nijmegen Zutphen er hangt een waarde aan een edge ( b.v. afstand, kosten,.. ) labelled iedere knoop heeft unieke naam ( b.v. naam van stad,.. ) Venlo
2 meer definities vertices are adjacent, buren, if they are endpoints of an edge outgoing edges: all directed edges with node as origin outdegree, uitgraad: aantal outgoing edges incoming edges: all directed edges with node as destination indegree, ingraad: aantal incoming edges degree, graad: number of incident edges degree = indegree + outdegree paden pad, path rijtje knopen waarbij er steeds een kant is tussen opeenvolgende knopen cycle pad met zelfde begin en eindpunt simple path iedere knoop maar één keer in het pad, bevat geen cycles directed path bevat alleen directed edges in de goede richting forest, bos graaf zonder cycles verbonden een graaf is verbonden, connected, als er 'n pad is tussen ieder paar knopen uit die graaf verbinding hoeft niet uniek te zijn er mogen cycles in zitten Amsterdam Utrecht Den Bosch Zutphen Arnhem Nijmegen Venlo verschil met bomen boom acyclic graaf met tussen ieder paar knopen precies één cycle-vrij pad d.w.z. een samenhangend bos gerichte boom directed acyclic graph with a root er is één cyclevrij pad van de root naar iedere andere knoop indegree ( root ) = indegree ( andere knoop ) = een boom is dus een speciaal soort graaf
3 subgraph graph H is subgraph van G indien H = ( V H, E H ) G = ( V G, E G ) V H V G E H E G iedere graaf is dus een subgraaf van zichzelf spanning subgraaf knopen gelijk, kanten deelverzameling V H = V G E H E G net voldoende kanten om alle knopen te bereiken spanning tree een spanning subgraaf die boom is representaties verschillende mogelijkheden beste keuze hangt af van probleem directed graph is meestal het handigst undirected als directed in twee richtingen enkele mogelijkheden: als bomen als rijen van knopen en edges als verbindingsmatrix... simple graph geen self-loop: edge van de vorm ( x, x ) iedere edge ( x, y ) hooguit één keer, niet meerdere directe wegen voorbeelden representatie graph met boomknopen A C knopen en edges knopen = A, B, C, D, E edges = (A,A), (A,B), (B,D), (B,E), (C,E), (D,E), (E,B), (E,D) E B D met boom knopen A E C verbindings matrix naar van A B C D E A B B D C D E +handig, hergebruik van bestaand dingen +uitgaande gerichte kanten prima als pointer te representeren maar lastig om alle knopen te bezoeken soms zelfs onmogelijk niet samenhangend gericht naar beginpunt lastig om een bepaalde knoop te vinden voor n algemene graaf dus geen goed idee
4 graph met boomknopen problemen op te lossen met rij van kopen vaak handiger om index in rij te gebruiken dan pointer aantal knopen en max aantal kanten is vast typedef int KnoopID; class Knoop public: KnoopID kanten [ maxoutdegree ]; int outdegree; ; class Graph public: Knoop knopen [ nknopen ]; ; nummertje tussen en nknopen lijsten lossen dit probleem op aantal kanten dat echt bestaat graph als rij van knopen en kanten class Knoop... ; typedef int KnoopID; class Kant public: nummertje tussen KnoopID origin, dest; en nknopen ; class Graph public: Knoop knopen [ nknopen ]; Kant kanten [ nkanten ]; ; simpel, direct volgens theorie, grootte kan ook dynamisch zoeken van kanten bij knoop is O ( nkanten ) verbindingsmatrix tabel met kanten geef knopen weer een nummertje sla in matrix op of er een verbinding is bool edges [ nknopen ] [ nknopen ] ; lekker direct kan ook gewicht zijn maar meerdere directe wegen kan niet voor graph met weinig verbindingen inefficiënt b.v. kaart van Manhattan ( New York ) avenues, straten dus kruisingen en verbindingsstraten verbindingsmatrix van kruisingen: matrix met.. elementen, meer dan factor te veel! sparse matrix sla per knoop de uitgaande edges op eenvoudig om uitgaande edges te vinden class Graph KnoopID **edges; // eigenlijk KnoopID edges[maxv][maxd]; int *degree; // eigenlijk int degree [maxv]; int nedges, maxv, maxd; public: Graph ( char filename [] ); grootte dynamisch, maken met new void insertedge ( int x, int y, bool directed ); friend ostream& operator << ( ostream& os, Graph& g ); ;
5 algoritmen veel bekende algoritmen voor graphen graph traversal Breadth-first search Depth-first search principe gelijk aan bomen, nu knopen kleuren om te zien waar je geweest bent kortste paden zoeken componenten bepalen... sommige problemen nog niet (efficiënt) opgelost TSP: kortste pad dat alle knopen bezoekt MST: Minimum Spanning Tree weighted graph: G = ( V, E ); E = ( v, u, W ) zoek de goedkoopste manier om alle knopen te verbinden dit is natuurlijk een boom uit een cycle kan een verbinding weg alle knopen moeten verbonden worden, dus geen bos voorbeelden: kabel voor tv en internet, waterleiding,.. twee standaard algoritmen Krukskal Prim ( of Prim-Jarník ) van ieder algoritme weer wat variaties MST volgens Prim kleur verbonden knopen, tree-knopen begin op een vrij te kiezen knoop kleur die knoop er zijn nog geen verbindingen MST volgens Prim altijd lokaal beste kiezen is een greedy algoritme hier werkt dat goed voorwaarde is wel dat het gewicht nooit negatief is om efficiënt de goedkoopste verbinding te kunnen kiezen administreren we per knoop de goedkoopste verbinding
6 struct Edge KnoopID k; int w; ; weighted graph structuur i.p.v. kaal KnoopID class Graph Edge **edges; int *degree; int nedges, maxv, maxd; leest graph uit file public: Graph ( char filename [ ] ); void insertedge ( int x, int y, int w, bool directed=true ); friend ostream& operator << ( ostream& os, Graph& g ); friend KnoopID* prim ( Graph& g, KnoopID start, int& v, int& t ); ; edge toevoegen void Graph :: insertedge ( int x, int y, int v, bool directed ) if ( degree [ x ] < maxd ) edges [ x ] [ degree [ x ] ]. k = y; edges [ x ] [ degree [ x ] ]. w = v; degree [ x ] += ; nedges += ; if (!directed && x!= y) insertedge ( y, x, v ); else cout << "insertedge(" << x << "," << y << "," << v << ") past niet meer\n"; afdrukken van graph per knoop de edges voor iedere edge destination en gewicht ostream& operator << ( ostream& os, Graph& g ) for ( int n=; n<g.maxv; n+= ) os << n << ": "; for ( int v=; v<g. degree [ n ]; v+= ) os << g.edges[n][v].k << "," << g.edges[n][v].w << " "; os << endl; return os; MST volgens Prim soort dynamic programming gebruik rij voor kortste edge naar non-tree nodes kleur knopen in boolean rij functie Prim levert rij met ouders op geeft lengte en totaal gewicht via reference argumenten
7 begin in knoop korter pad gevonden
8
9 eindelijk een afstand bekend klaar! Prim in C++ KnoopID* prim ( Graph& g, KnoopID start, int& size, int& totaal ) size = g.maxv; totaal = ; bool * intree = newbool [ size ]; int * dist = newint [ size ]; KnoopID * parent = new KnoopID [ size ]; for ( int i=; i<size; i+= ) intree [ i ] = false; dist [ i ] = INF; parent [ i ] = -; KnoopID v = start; dist [ v ] = ; Prim : edge toevoegen while (! intree [ v ] ) intree [ v ] = true; totaal += dist [ v ]; beste edge en ouder aanpassen for ( int j=; j<g.degree [ v ]; j+= ) KnoopID k = g. edges [ v ] [ j ]. k; int w = g. edges [ v ] [ j ]. w; if ((! intree [ k ] ) && dist [ k ] > w ) dist [ k ] = w; parent [ k ] = v; Dijkstra
10 Prim beste nieuwe edge zoeken greedy algoritmen int d = INF; for ( int n=; n<size; n+= ) if (! intree [ n ] && dist [ n ] < d ) d = dist [ n ]; v = n; return parent; zoek kortste verbinding veel gebruikt om beste te zoeken idee: kies dat wat lokaal het beste lijkt altijd redenatie nodig waarom het werkt tegenvoorbeeld: kortste pad van x naar y begin in x volg steeds de goedkoopste edge totdat we in y zijn A zelfs als we cycles voorkomen X Y werkt dit niet B MST volgens Kruskal geef iedere knoop z n eigen cluster while ( meer dan cluster ) verbind klusters via de goedkoopste edge ook dit is een greedy algoritme while ( meer dan cluster ) verbind klusters via goedkoopste edge
11 ,,, while ( meer dan cluster ) verbind klusters via goedkoopste edge while ( meer dan cluster ) verbind klusters via goedkoopste edge,,,,,,, while ( meer dan cluster ) verbind klusters via goedkoopste edge while ( meer dan cluster ) verbind klusters via goedkoopste edge
12 ,,,,,,,,,,, while ( meer dan cluster ) verbind klusters via goedkoopste edge while ( meer dan cluster ) verbind klusters via goedkoopste edge,,,,,,,,,,,,,,, while ( meer dan cluster ) verbind klusters via goedkoopste edge while ( meer dan cluster ) verbind klusters via goedkoopste edge
13 ,,,,,,,,, klaar! als de graph niet samenhangend is while ( meer dan cluster ) vind je zo wel alle componenten verbind klusters via goedkoopste edge kortste pad gegeven unweighted graph wat is het kortste pad tussen knopen breadth first search zal het netjes vinden gegeven weigthed graph kortste pad is niet meer goedkoopste pad Dijkstra s algoritme: voeg steeds de de goedkoopste knoop toe bijna gelijk aan Prim s algoritme distance bevat de afstanden pad vinden door parents te volgen Dijkstra shortest path algorithm berekent kortste afstand tot wortel voor alle knopen in de graph dist [ u ] is afstand tot gekleurde knopen in het begin D [ v ] = D [ u ] =, voor u v als er geen direct pad is selecteer ongekleurde knoop met kleinste D [ u ] pas afstand van alle buren van u aan: edge relaxation: verbeter gaandeweg de schatting if ( D[u] + W(u,z) < D[z] ) D[z] = D[u] + W(u,z) lijkt op dynamic programming Dijkstra in C++ while (! intree [ v ] ) intree [ v ] = true; for ( int j=; j<g.degree [ v ]; j+= ) KnoopID k = g. edges [ v ] [ j ]. k; int w = g. edges [ v ] [ j ]. w; if ( dist [ k ] > dist [ v ] + w ) dist [ k ] = dist [ v ] + w; parent [ k ] = v; anders dan Prim Prim
14 # knopen, max degree, #kanten graph voorbeeld knoopouder afstand Prim # knopen, max degree, #kanten graph prim: voorbeeld De ouders, is root : : - : : : : : : : : Totaal gewicht is Dijkstra: Afstanden vanaf : : : : : : : : : : pad van naar pad van naar met gewicht met gewicht wat hebben we gedaan graphen komen vaak voor enkele representaties en algoritmen representatie van graphen met pointers, verbindingen per knoop of matrix beste keuze hangt van doel en algoritme af enkele bekende algoritmen Prim, Kruskal, Dijkstra, Floyd, Ford-Fulkerson er bestaan vele variaties er is literatuur over nog veel meer algoritmen nauwelijks in dictaat of ons boek
software constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies
software constructie recursieve datastructuren college 15 software engineering highlights 1 de software bestaat uiteindelijk uit datatypen functies verbindingen geven gebruik aan main is de top van het
Nadere informatieGrafen. 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 informatieTW2020 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 informatieAlgoritmiek. 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 informatieTW2020 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 informatieTree 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 informatieTweede 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 informatiepublic boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieDatastructuren college 10
we hadden Backtracking verbetering i i Datastructuren college 0 0: : : 0: : : P r r r r r b r b r P r r r b r b r backtracking we hoeven vaak de kandidaat niet helemaal af te maken om hem te kunnen verwerpen
Nadere informatieTree 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 informatieGrafen deel 2 8/9. Zesde college
Grafen deel 2 8/9 Zesde college 1 Een Eulercircuit is een gesloten wandeling die elke lijn precies één keer bevat. traversable trail all edges distinct 8.5 rondwandeling zeven bruggenprobleem van Köningsbergen
Nadere informatieMinimum Spanning Tree
Minimum Spanning Tree Wat is MST? Minimum spanning tree De meest efficiënte manier vinden om een verbonden netwerk op te bouwen Wat is een tree/boom? Graaf G: een verzameling knopen (vertices): V een verzameling
Nadere informatieTwaalfde college complexiteit. 11 mei 2012. Overzicht, MST
College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken
Nadere informatieKortste Paden. Algoritmiek
Kortste Paden Toepassingen Kevin Bacon getal Six degrees of separation Heeft een netwerk de small-world eigenschap? TomTom / Google Maps 2 Kortste paden Gerichte graaf G=(N,A), en een lengte L(v,w) voor
Nadere informatie2WO12: Optimalisering in Netwerken
2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TUE) en Centrum Wiskunde & Informatica (CWI) 3 en 6 februari 2014 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in
Nadere informatieDoorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Nadere informatieVijfde college algoritmiek. 2/3 maart Exhaustive search
Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)
Nadere informatieDiscrete Wiskunde, College 12. Han Hoogeveen, Utrecht University
Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe
Nadere informatiepublic boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieIn dit gedeelte worden drie problemen genoemd die kunnen voorkomen in netwerken.
Aantekening Wiskunde Steiner Aantekening door D. 2086 woorden 25 mei 2016 2,1 1 keer beoordeeld Vak Wiskunde Resultaten Vragen bij het wetenschappelijk materiaal 9.1 Prototype example, p. 374-376 In dit
Nadere informatieDiscrete 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 informatieDiscrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:
Nadere informatieDatastructuren: 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 informatieGrafen en netwerken I Datastructuren en doorzoeken. Algoritmiek
Grafen en netwerken I Datastructuren en doorzoeken Algoritmiek 1 Inleiding 2 Netwerken Veel toepassingen, bijvoorbeeld: Sociale netwerken, electrische netwerken, wegennetwerken, communicatie netwerken,
Nadere informatieKortste Paden. Algoritmiek
Kortste Paden Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd s algoritme) Dijkstra s algoritme voor Single Source Negatieve
Nadere informatieEerste college algoritmiek. 5 februari Introductie
College 1 Eerste college algoritmiek 5 februari 2016 Introductie 1 Introductie -1- docent: Jeannette de Graaf; kamer 151 e-mail: j.m.de.graaf@liacs.leidenuniv.nl assistenten: Hanjo Boekhout, Leon Helwerda,
Nadere informatie2WO12: Optimalisering in Netwerken
2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 27 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieOefententamen in2505-i Algoritmiek
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Oefententamen in2505-i Algoritmiek Maart 2007 Het gebruik van boek of aantekeningen tijdens dit tentamen is niet toegestaan.
Nadere informatieOptimalisering/Besliskunde 1. College 1 2 september, 2015
Optimalisering/Besliskunde 1 College 1 2 september, 2015 Algemene informatie College: woensdag 13:45-15:30: Leiden C1 en C2: Gorlaeus gebouw Zaal DS: De Sitterzaal, Oort gebouw Werkcollege: vrijdag: Leiden
Nadere informatieOptimalisering/Besliskunde 1. College 1 6 september, 2012
Optimalisering/Besliskunde 1 College 1 6 september, 2012 Algemene informatie College: donderdag 9:00-10:45: Gorlaeus C1/C2, Leiden vrijdag: werkcollege Leiden en Delft vragenuur Delft Vier verplichte huiswerkopgaven
Nadere informatieOptimalisering/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 informatieTentamen 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 informatieDe 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 informatieAlgoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieAlgoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen
Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen
Nadere informatieGrafen en BFS. Mark Lekkerkerker. 24 februari 2014
Grafen en BFS Mark Lekkerkerker 24 februari 2014 1 Grafen Wat is een graaf? Hoe representeer je een graaf? 2 Breadth-First Search Het Breadth-First Search Algoritme Schillen De BFS boom 3 Toepassingen
Nadere informatieTentamen combinatorische optimalisatie Tijd:
Tentamen combinatorische optimalisatie 26-05-2014. Tijd: 9.00-11.30 Tentamen is met gesloten boek. Beschrijf bij elke opgave steeds het belangrijkste idee. Notatie en exacte formulering is van minder belang.
Nadere informatieOefententamen in2505-i Algoritmiek
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Oefententamen in2505-i Algoritmiek Maart 2007 Het gebruik van boek of aantekeningen tijdens dit tentamen is niet toegestaan.
Nadere informatieOnderwerpen. Punten en lijnen, postbodes en handelsreizigers. Theorie. Theorie (2) Graaftheorie. Een mini-inleiding graaftheorie
Onderwerpen Punten en lijnen, postbodes en handelsreizigers Een mini-inleiding graaftheorie Graaftheorie Herman Geuvers Euler en de postbode Radboud Universiteit Nijmegen 9 februari 2019 met dank aan Engelbert
Nadere informatieGrafen deel 2 8/9. Zevende college
Grafen deel 2 8/9 Zevende college 1 H8: ongerichte graaf Een graaf G = G(V,E) = (V,E) bestaat uit twee (eindige) verzamelingen: V knopen (punten; vertices,nodes,points) E lijnen (takken,zijden,kanten,bogen;edges)
Nadere informatieElementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Nadere informatieTiende 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 informatieUitwerking 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 informatieTiende college algoritmiek. 14 april Gretige algoritmen
College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap
Nadere informatieTiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra
Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten
Nadere informatieTwaalfde 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 informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatie4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e
4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,
Nadere informatieVijfde college algoritmiek. 17 maart Exhaustive search Graafwandelingen Backtracking
College 5 Vijfde college algoritmiek 17 maart 2016 Exhaustive search Graafwandelingen Backtracking 1 Exhaustive search Exhaustive search: brute force benadering voor problemen die te maken hebben met het
Nadere informatieTiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Nadere informatieDatastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
Nadere informatieCover Page. The handle holds various files of this Leiden University dissertation.
Cover Page The handle http://hdl.handle.net/1887/29764 holds various files of this Leiden University dissertation. Author: Takes, Frank Willem Title: Algorithms for analyzing and mining real-world graphs
Nadere informatieVierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Nadere informatieDatastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Nadere informatieAanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur
Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten
Nadere informatieBenaderingsalgoritmen
Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is
Nadere informatieDiscrete modellen in de toegepaste wiskunde (WISB136) Uitwerkingen proeftentamen.
Discrete modellen in de toegepaste wiskunde (WISB6) Uitwerkingen proeftentamen. Docent: Rob H. Bisseling april 202. Begin met een matching M = {x y, x y, x 6 y 6 } aangegeven door de vette lijnen. x De
Nadere informatieDeeltentamen 1 sociale netwerk analyse
Deeltentamen 1 sociale netwerk analyse Voor dit tentamen krijg je maximaal 2 uur. Als je eerder klaar bent, ga dan stil weg en lever je antwoordenvel, kladpapier en tentamenvragen bij de examinator in.
Nadere informatieEE1400: Programmeren in C BSc. EE, 1e jaar, , 4e college
EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-2013, 4e college Arjan van Genderen, Computer Engineering 11-12-2012 Delft University of Technology Challenge the future Mededelingen Voortgangstoets: Woensdagmiddag
Nadere informatieActiviteit 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 informatieBomen. 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 informatie9. Strategieën en oplossingsmethoden
9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van
Nadere informatieV = {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 informatie8C080 deel BioModeling en bioinformatica
Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 13 maart 2009, 09.00-12.00u. Het tentamen bestaat uit 2 delen, een deel van BioModeling & bioinformatics en een deel van BioMedische Beeldanalyse.
Nadere informatieUitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
Nadere informatiecolleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser
colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp
Nadere informatieTiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS
Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen
Nadere informatie8C080 deel BioModeling en bioinformatica
Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 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 informatieBomen. 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 informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieOnafhankelijke 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 informatieALGORITMIEK: 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 informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieDatastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
Nadere informatieHoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie
Hoofdstuk 2 Week 4: Datastructuren 2.1 Leesopdracht In het hoorcollege komen lijsten en bomen aan de orde. De eerste datastructuur komt in het boek in bladzijden 317-333 aan de orde. In dit dictaat komt
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieTiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra
Tiende college algoritmiek mei 018 Gretige Algoritmen Algoritme van Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle
Nadere informatieTentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Nadere informatieNP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi
NP-Volledigheid Wil zo snel mogelijke algoritmes om problemen op te lossen Gezien: selectie [O(n)], DFS [O(n + m)], MaxFlow [O nm n + m ], MST [O(n + m)], etc De looptijd is polynomiaal: O n k - dat is
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 9 Leo van Iersel Technische Universiteit Delft 11 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 11 november 2015 1 / 22 Mededelingen Huiswerk 2 nagekeken Terug
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 1 Leo van Iersel Technische Universiteit Delft 7 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 1 / 40 Opzet vak Woensdag: hoorcollege 13:45-15:30
Nadere informatieJava Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieHoofdstuk 13: Integer Lineair Programmeren
Hoofdstuk 13: Integer Lineair Programmeren Vandaag: Wat is Integer Lineair Programmeren (ILP)? Relatie tussen ILP en LP Voorbeeld 1: Minimum Spanning Tree (MST) Voorbeeld 2: Travelling Salesman Problem
Nadere informatieBouwen en Analyseren van Sociale Netwerken Project
Bouwen en Analyseren van Sociale Netwerken Project Sandra van Bockhooven 6081304 Sandra.vanBockhooven@student.uva.nl Wendy Günther 6052088 Wendy.Gunther@student.uva.nl December 11, 2011 1 1 Inleiding Voor
Nadere informatieUniversiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.
Universiteit Utrecht Betafaculteit Examen Discrete Wiskunde op donderdag 13 april 2017, 14.30-17.30 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf op elk ingeleverd
Nadere informatieOpgave 2. De rivier. Je programma s lezen de informatie over de rivier van standard input.
Opgave 2. De rivier In deze opgave gaat het om verbindingen tussen plaatsen die aan weerszijden van een rivier liggen. De plaatsen aan beide kanten van de rivier zijn verbonden met één doorlopende weg.
Nadere informatieTentamen 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 informatieInformatica: 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 informatieInformatica 2e semester
Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces
Nadere informatieUitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Nadere informatie