De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…"— Transcript van de presentatie:

1 Datastructuren voor grafen Algoritmiek

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

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

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

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

6 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

7 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

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

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

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

11 Algoritmiek Ongerichte graaf: Symmetrische matrix

12 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).

13 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

14 Algoritmiek14 Adjacency lists: voorbeeld

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

16 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) …

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


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

Verwante presentaties


Ads door Google