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) 1 2 4 5 3 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 1 2 4 5 3 Knoop 3 heeft ingraad 3 en uitgraad 1 pad 1 2 4 5 3 1 2 4 5 3 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 123 1010 2001 3010 1 2 3

10 Algoritmiek10 123 1nil 2 3 1 2 3 Edge object In array posities kan staan: -true of false -Pointer naar object voor kant -Getal, bijv. lengte.

11 Algoritmiek11 1 2 3 4 5 6 7 8 12345678 101100010 210100000 311011100 400101000 500110000 600100010 710000101 800000010 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 1 2 3 4 1 2 3 4

15 Algoritmiek15 Adjacency list: voorbeeld gerichte grafen 1 2 1 2 3 3 1 2 3 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