Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…

Slides:



Advertisements
Verwante presentaties
Het Web als een graaf Mathematical Institute LAPP-Top C-I We kunnen het (Surface) Web zien als een gerichte graaf: •Iedere webpagina is een knoop… •Er.
Advertisements

Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.
Programmeren met Alice
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Algoritmische problemen Onbeslisbaar / niet-berekenbaar Geen algoritme mogelijk Tegel- of domino-problemen Woordcorrespondentie-probleem Syntactisch equivalentie.
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Graph Begrippen: knoop, vertices kant, zijde, edge
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
Datastructuren Zoekbomen
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Terrain Analysis Seminar GIA najaar 2004 Joost Voogt.
1 KANSBEREKENING Datastructuren. 2 Kansberekening  Een paar voorbeelden van kansberekeningsvragen.
Dijkstra Kortste pad algoritme.
Rick van den Dobbelsteen Lloyd Fasting
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
Inleidend probleem Data structuur (hiërarchie van classes)
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
Optuigen van datastructuren
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Indeling Inleiding op PRM-planners & Medial Axis Retraction van configuraties op de Medial Axis Verbetering van retraction Verbetering van sampling Expliciete.
Lokale zoekmethoden Goed in de praktijk:
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Datastructuren Sorteren, zoeken en tijdsanalyse
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
Instructie Programmeren Task 7
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen (vorige keer) Hashtabellen –Oplossen van botsingen met “ketens” (chaining) Vorige.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞
Amorized Analysis en Union-Find Algoritmiek. 2 Vandaag Amortized analysis –Technieken voor tijdsanalyse van algoritmen Union-find datastructuur –Datastructuur.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Kortste Paden Algoritmiek. 2 Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd’s.
Netwerkstroming Algoritmiek. 2 Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Gerandomiseerde algoritmes
Kortste Paden Algoritmiek.
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
De wederkomst ophanden? 20 augustus 2017 Urk.
NP-volledigheid Algoritmiek.
All-Pairs Shortest paths
Datastructuren voor graafrepresentatie
Minimum Opspannende Bomen
Op zoek naar de juiste toon Geluid in de omgevingswet
Wat is Prinsjesdag?
Kostprijs van het product?
Amorized Analysis en Union-Find
H11 Astrofysica.
Benaderingsalgoritmen
Welkom op de ouderavond van 5 tvwo
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Sigfox localization using limited Wi-Fi fingerprints
Bewerkingen met matrices - Deel 3
Modderdorp UNPLUGGED Bron: csunplugged.org.
Doolhof. doolhof doolhof Maak een routine die de ‘hekken’ tussen de cellen weghaalt Maak een 2-dimensionale array met kolommen en rijen aangeklikt.
Workshop “Lineair programmeren met de TI-84 CE-T” Harmen Westerveld
Welkom by die kategese Heet almal baie hartlik welkom.
Het onderwijs- perspectief
Semantisatieverhaal: Sinds dit weekend kampen wij thuis met een mierenplaag. Wij hebben last van een mierenplaag. Die kleine beestjes zitten echt overal.
Transcript van de presentatie:

Datastructuren voor grafen Algoritmiek

2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –… a b c d e f g h

Algoritmiek3 Sinds 1736 Euler: –Bruggen van Kö nigsberg –1736 –Verhandeling in Latijn: wanneer kan je een wandeling maken waarbij precies een keer over elke brug loopt?

Algoritmiek4 Ongerichte Graaf G=(N,A) –N: verzameling knopen (vertices, nodes) –A: verzameling kanten (edges, undirected edges): deelverzamelingen van N met precies twee elementen a b c d e f g h Of: G=(V,E)

Algoritmiek5 Gerichte Graaf G=(N,A) –N weer verzameling knopen (vertices, nodes) –A verzameling pijlen: geordende paren knopen (arcs, directed edges) Of: G=(V,A)

Algoritmiek6 Begrippen en notatie n: aantal knopen a: aantal kanten Graad van knoop: aantal kanten van of naar knoop Ingraad Uitgraad Pad Cycle Knoop 3 heeft ingraad 3 en uitgraad 1 pad cycle

Algoritmiek7 Algoritmen willen iets uitrekenen op een gegeven graaf Bereikbaarheid Kortste afstand (routeplanning) Handelsreizigers- probleem Samenhangendheid Is er een cycle? … Subroutines bij ingewikkelder problemen Modellering en oplossen of benaderen van o.a. planningsproblemen

Algoritmiek8 Belangrijke basisoperaties op grafen Adjacency test: gegeven knopen v, w: is er een kant (pijl) van v naar w ? Ga alle kanten vanuit (of naar) een knoop v langs (iterator) Ook: opsommen alle knopen, kanten, gegeven een kant, geef de eindpunten, evt.: voeg knoop toe; voeg kant toe, etc.

Algoritmiek9 1 e datastructuur voor grafen: Adjacency matrix Twee dimensionale array

Algoritmiek nil Edge object In array posities kan staan: -true of false -Pointer naar object voor kant -Getal, bijv. lengte.

Algoritmiek Ongerichte graaf: Symmetrische matrix

Algoritmiek12 Adjacency matrix datastructuur: eigenschappen Bepalen of er een kant is van v naar w (voor input v, w) O(1) tijd Afgaan van alle kanten vanuit een knoop O(n) tijd Alleen relatief snel als graaf `veel kanten’ heeft – niet grenzende paren knopen `verknoeien’ tijd. Geheugenruimte: O(n 2 ) (wel: eenvoudig).

Algoritmiek13 2 e datastructuur voor grafen: Adjacency lists Per knoop een gelinkte lijst met alle kanten met die knoop als eindpunt. Gerichte grafen: lijst voor uitgaande en/of lijst voor inkomende kanten. … In de objecten kan extra info staan

Algoritmiek14 Adjacency lists: voorbeeld

Algoritmiek15 Adjacency list: voorbeeld gerichte grafen en evt.: Structuur met pijlen `andersom’

Algoritmiek16 Eigenschappen van adjacency list datastructuur Afgaan van alle kanten vanuit een knoop: –Snel: O(d), d de graad van de knoop Bepalen of twee knopen grenzen: –Langzaam … kan  (n) tijd kosten Geheugenruimte: O(n+a) …

Algoritmiek17 Voors en tegens Adjacency matrices –Eenvoudig –Snelle adjacency test –Langzaam aflopen van de graaf –Als graaf `ijl’ is: veel geheugen Adjacency lists –Niet erg ingewikkeld –Langzame adjacency test –Snel aflopen van de graaf –Minder geheugen voor ijle grafen –Wellicht meer geheugen voor dichte grafen.