Graf PVD ORD SFO LGA HNL LAX DFW MIA 2

Størrelse: px
Starte visningen fra side:

Download "Graf PVD ORD SFO LGA HNL LAX DFW MIA 2"

Transkript

1 Grafer 1

2 Graf En graf er et par (V, E), hvor V er en mængde af knuder (vertices) E er en samling af par af knuder, kaldet kanter (edges) Eksempel: En knude repræsenterer en lufthavn og har tilknyttet en lufthavnskode En kant repræsenterer en flyrute imellem to lufthavne og har tilknyttet en afstand SFO 1843 ORD PVD HNL LAX DFW LGA 1099 MIA 2

3 Kanttyper Orienteret kant ordnet par af knuder (u,v) første knude kaldes startknuden anden knude kaldes slutknuden eksempel: en flyvning ORD flyvning AA 1206 PVD Ikke-orienteret kant ikke-ordnet par af knuder (u,v) eksempel: en flyrute ORD 849 km PVD Orienteret graf alle kanter er orienteret eksempel: et netværk af flyvninger Ikke-orienteret graf alle kanter er ikke-orienteret eksempel: et netværk af flyruter 3

4 Anvendelser Alt hvad der involverer relationer imellem objekter kan modelleres ved hjælp af en graf Trafiknetværk: Knuder: byer, vejkryds Kanter: veje Organiske molekyler: Knuder: atomer Kanter: bindinger Elektriske kredsløb: Knuder: komponenter Kanter: ledninger Datanetværk: Knuder: computere, routere Kanter: forbindelser 4

5 Anvendelser (fortsat) Programsystemer: Knuder: metoder Kanter: metode A kalder metode B Objektorienteret design (UML-diagrammering): Knuder: klasser/objekter Kanter: nedarvning, aggregering eller associering Projektplanlægning: Knuder: delopgaver Kanter: præcedenser (delopgave A skal udføres før delopgave B) 5

6 Terminologi Endeknuder for en kant U og V er endeknuder for a Nabokanter til en knude a, b og d er nabokanter til V Graden af en knude V har graden 3 Parallelle (multiple) kanter h og i er parallelle kanter Sløjfe j er en sløjfe U a c V d W f b e X Y g h i Z j 6

7 Terminologi (fortsat) Vej følge af skiftevis knuder og kanter, som begynder og ender med en knude, og hvor hver kants endeknuder kommer umiddelbart før og efter knuden Simpel vej vej, hvor alle knuder og kanter er forskellige Eksempler: P 1 =(V, b, X, h, Z) er en simpel vej P 2 =(U, c, W, e, X, g, Y, f, W, d, V) er en vej, der ikke er simpel U a c V d P 2 W f e b P 1 X Y g h Z 7

8 Terminologi (fortsat) Cykel (eller kreds) vej, som begynder og ender i samme knude Simpel cykel cykel hvor alle kanter og alle knuder, med undtagelse af den første og sidste knude, er forskellige Eksempler: C 1 =(V, b, X, g, Y, f, W, c, U, a, V) er en simpel cykel C 2 =(U, c, W, e, X, g, Y, f, W, d, V, a, U) er en cykel, der ikke er simpel U a c V d C 2 W f b X e Y C 1 g h Z 8

9 Egenskaber Egenskab 1 Σ v deg(v) = 2m Bevis: Hver kant tælles med to gange Notation n m deg(v) antal knuder antal kanter graden af knude v Egenskab 2 I en ikke-orienteret graf uden sløjer og parallelle kanter m n(n 1)/2 Bevis: Hver knude har højst graden n 1. Hver kant tælles med to gange Eksempel: n = 4 m = 6 v : deg(v) = 3 Hvad er den øvre grænse for en orienteret graf? 9

10 Basale grafproblemer Veje: Er der en vej fra knude A til knude B? Cykler: Indeholder grafen en cykel? Sammenhæng (udspændende træ): Er der for enhver knude en vej til enhver anden knude? 2-sammenhæng: Vil en sammenhængende graf altid forblive sammenhængende, hvis en knude og dennes nabokanter fjernes fra grafen? Planaritet: Kan grafen tegnes, uden at to kanter krydser hinanden? 10

11 Basale grafproblemer (fortsat) Korteste vej: Hvilken vej er den korteste fra knude A til knude B? Længste vej: Hvilken vej er den længste fra knude A til knude B? Minimalt udspændende træ: Hvad er den billigste måde at forbinde alle knuder? Hamilton-cykel: Er der en cykel, som indeholder samtlige knuder? Den rejsende sælgers problem: Hvilken Hamilton-cykel er den billigste? 11

12 Centrale metoder for en graf ADT Knuder og kanter er positioner lagrer elementer Tilgangsmetoder incidentedges(v) endvertices(e) isdirected(e) origin(e) destination(e) opposite(v, e) areadjacent(v, w) Opdateringsmetoder insertvertex(o) insertedge(v, w, o) insertdirectededge(v, w, o) removevertex(v) removeedge(e) Generiske metoder numvertices() numedges() vertices() (iteratorer) edges() 12

13 Kantlistestruktur u Knude-objekt - reference til position i knude-sekvensen - element v a b c w d z knude-sekvens Kant-objekt - reference til position i kant-sekvensen - startknude-objektet - slutknude-objektet - element u v w z a b c d kant-sekvens 13

14 Asymptotisk effektivitet n knuder, m kanter ingen parallelle kanter ingen sløjfer grænser udtrykkes ved O-notation Plads incidentedges(v) areadjacent(v, w) insertvertex(o) insertedge(v, w, o) removevertex(v) removeedge(e) Kantliste n + m m m 1 1 m 1 14

15 Nabolistestruktur Udvidet kantlistestruktur u a v b w Nabosekvens for hver knude: sekvens af referencer til nabokanter Udvidede kant-objekter: referencer til positioner i nabosekvensen u v w a b 15

16 Asymptotisk effektivitet n knuder, m kanter ingen parallelle kanter ingen sløjfer grænser udtrykkes ved O-notation Plads incidentedges(v) areadjacent(v, w) insertvertex(o) insertedge(v, w, o) removevertex(v) removeedge(e) Kantliste Naboliste n + m deg(v) min(deg(v), deg(w)) 1 1 deg(v) 1 n + m m m 1 1 m 1 16

17 Nabomatrixstruktur Udvidet kantlistestruktur u a v b w Udvidede knude-objekter heltalsnøgle (index) Todimensionalt array referencer til kanter, der forbinder knuder Simpel udgave har 0 for ingen kant, og 1 for en kant 0 u 1 v 2 w a b 17

18 Asymptotisk effektivitet n knuder, m kanter ingen parallelle kanter ingen sløjfer grænser udtrykkes ved O-notation Kantliste Nabomatrix Naboliste Plads n 2 n + m n + m incidentedges(v) n deg(v) m areadjacent(v, w) 1 min(deg(v), deg(w)) m insertvertex(o) n insertedge(v, w, o) removevertex(v) n 2 deg(v) m removeedge(e)

19 Delgrafer En delgraf S af en graf G er en graf, hvor knuderne i S er delmængde af knuderne i G, og kanterne i S er en delmængde af kanterne i G Delgraf En udspændende delgraf af G er en delgraf, der indeholder alle G s knuder Udspændende delgraf 19

20 Sammenhæng En graf er sammenhængende, hvis der findes en vej imellem ethvert par af knuder En sammenhængende komponent i en graf er en maksimal sammenhængende delgraf af G Sammenhængende graf Ikke-sammenhængende graf med to sammenhængende komponenter 20

21 Træer og skove Et (frit) træ er en ikke-orienteret graf T, hvor T er sammenhængende, og T ikke har cykler Denne definition af et træ er forskellig fra definitionen af et træ med rod Træ En skov er en ikke-orienteret graf uden cykler De sammenhængende komponenter af en skov er træer Skov 21

22 Udspændende træer og skove Et udspændende træ af en sammenhængende graf er en udspændende delgraf, som er et træ Et udspændende træ er ikke unikt, medmindre grafen er et træ Udspændende træer finder anvendelse ved design af kommunikationsnetværk Graf En udspændende skov af en graf er et udspændende delgraf, som er en skov Udspændende træ 22

23 Dybde-først-søgning 23

24 Animering af DFS og BFS aktuel aktuel start Dybde-først start Bredde-først 24

25 Dybde-først-søgning Dybde-først-søgning (DFS) er en generel teknik til traversering af en graf En dybde-først traversering af grafen G besøger alle knuder og kanter i G afgør om G er sammenhængende bestemmer de sammenhængende komponenter i G bestemmer en udspændende skov i G DFS i en graf med n knuder og m kanter tager O(n + m) tid DFS kan udvides til at løse andre grafproblemer: Find en vej imellem to givne knuder Find en cykel i grafen 25

26 DFS til søgning i labyrint DFS-algoritmen ligner den klassiske strategi til søgning i en labyrint: Markér hvert kryds, hjørne og endevæg (knude), der besøges Markér hver korridor (kant), der besøges Hold rede på vejen tilbage til indgangen (startknuden) ved hjælp af et reb (rekursionsstak) *** Backtracking *** 26

27 DFS-algoritme Algoritmen bruger en mekanisme til tildele og aflæse etiketter på knuder og kanter Algorithm DFS(G) Input graph G Output labeling of the edges of G as discovery edges and back edges for all u G.vertices() setlabel(u, UNEXPLORED) for all e G.edges() setlabel(e, UNEXPLORED) for all v G.vertices() if getlabel(v) = UNEXPLORED DFS(G, v) Algorithm DFS(G, v) Input graph G and a start vertex v of G Output labeling of the edges of G in the connected component of v as discovery edges and back edges setlabel(v, VISITED) for all e G.incidentEdges(v) if getlabel(e) = UNEXPLORED w opposite(v,e) if getlabel(w) = UNEXPLORED setlabel(e, DISCOVERY) DFS(G, w) else setlabel(e, BACK) 27

28 Eksempel A UNEXPLORED knude A A VISITED knude UNEXPLORED kant B D E DISCOVERY kant C BACK kant A A B D E B D E C C 28

29 Eksempel (fortsat) A A B D E B D E C C A A B D E B D E C C 29

30 Egenskaber ved DFS Egenskab 1 DFS(G, v) besøger alle knuder og kanter i den sammenhængende komponent, der indeholder v A Egenskab 2 De kanter, der besøges af DFS(G, v), udgør et udspændende træ af den sammenhængende komponent, der indeholder v B C D E 30

31 Analyse af DFS Tildeling og aflæsning af en knude- eller kant-etikette tager O(1) tid Hvert knude får tildelt en etikette to gange første gang som UNEXPLORED anden gang som VISITED Hver kant får tildelt en etikette to gange første gang som UNEXPLORED anden gang som DISCOVERY eller BACK Metoden incidentedges kaldes en gang for hver knude DFS kører i O(n + m) tid, forudsat at grafen er repræsenteret med en nabolistestruktur (Σ v deg(v) = 2m) 31

32 Bestemmelse af vej Vi kan specialisere DFS-algoritmen til at finde en vej imellem to givne knuder u and z Vi kalder DFS(G, u) med u som startknuden Vi bruger en stak, S, til at holde rede på vejen imellem startknuden og den aktuelle knude Så snart målknuden z mødes, returneres vejen som indholdet af stakken Algorithm pathdfs(g, v, z) setlabel(v, VISITED) S.push(v) if v = z return S.elements() for all e G.incidentEdges(v) if getlabel(e) = UNEXPLORED w opposite(v,e) if getlabel(w) = UNEXPLORED setlabel(e, DISCOVERY) S.push(e) pathdfs(g, w, z) S.pop(e) else setlabel(e, BACK) S.pop(v) 32

33 Bestemmelse af en cykel Vi kan specialisere DFS-algoritmen til at finde en cykel Vi bruger en stak, S, til at holde rede på vejen imellem startknuden og den aktuelle knude Så snart en tilbage-kant (v, w) mødes, returneres cyklen som den del af stakken, der findes fra toppen og ned til knuden w Algorithm cycledfs(g, v) setlabel(v, VISITED) S.push(v) for all e G.incidentEdges(v) if getlabel(e) = UNEXPLORED w opposite(v,e) S.push(e) if getlabel(w) = UNEXPLORED setlabel(e, DISCOVERY) cycledfs(g, w) S.pop(e) else T new empty stack repeat o S.pop() T.push(o) until o = w return T.elements() S.pop(v) 33

34 2-sammenhæng 34

35 Adskillelseskanter og -knuder Definitioner Lad G være en sammenhængende graf En adskillelseskant i G er en kant, hvis fjernelse gør grafen usammenhængende En adskillelsesknude i G er en knude, hvis fjernelse gør grafen usammenhængende Eksempel DFW, LGA og LAX er adskillelsesknuder (LAX, DFW) er en adskillelseskant Anvendelser: Adskillelseskanter og -knuder repræsenterer enkeltpunkter for fejl i et netværk og er kritiske for netværkets funktion ORD PVD SFO LGA HNL LAX DFW MIA 35

36 2-sammenhængende graf Ækvivalente definitioner af 2-sammenhængende graf G: (1) Grafen G har ingen adskillelseskanter og ingen adskillelsesknuder (2) For ethvert par af knuder u og v i G er der to disjunkte simple veje imellem u og v (d.v.s. to simple veje, der ikke har nogen knuder og kanter til fælles) (3) For ethvert par af knuder u og v i G er der en simpel cykel, der indeholder u og v Eksempel: HNL SFO LAX ORD DFW LGA PVD MIA 36

37 2-sammenhængende komponenter 2-sammenhængende komponent i en graf G er en maksimal 2-sammenhængende delgraf af G, eller en delgraf bestående af en adskillelseskant i G og dennes endeknuder Samspil imellem 2-sammenhængende komponenter: En kant tilhører præcis én 2-sammenhængende komponent En adskillelseskant tilhører en 2-sammenhængende komponent med præcis én kant En adskillelsesknude tilhører to eller flere 2-sammenhængende komponenter Eksempel på graf med fire 2-sammenhængende komponenter: HNL SFO LAX DFW ORD LGA MIA PVD RDU 37

38 Ækvivalensklasser Lad der være givet en mængde S En relation R på S er en mængde af ordnede par af elementer fra S, d.v.s. R er delmængde af S S En ækvivalensrelation R på S tilfredsstiller følgende betingelser: Refleksitivitet: (x,x) R Symmetri: (x,y) R (y,x) R Transitivitet: (x,y) R (y,z) R (x,z) R En ækvivalensrelation R på S inducerer en opdeling af S i disjunkte delmængder, kaldet ækvivalensklasser 38

39 Eksempel på ækvivalensrelation Forbindelsesrelation imellem knuderne i en graf: Lad V være mængden af knuder i en graf G Definer relationen C = {(v,w) V V : der findes en vej fra v til w i G} Relationen C er en ækvivalensrelation En ækvivalensklasse udgøres af knuderne i en sammenhængende komponent i G Refleksitivitet: (x,x) C Symmetri: (x,y) C (y,x) C Transitivitet: (x,y) C (y,z) C (x,z) C 39

40 Sammenkædet-relation To kanter e og f i en sammenhængende graf G er sammenkædet, hvis e = f, eller G har en simpel cykel, der indeholder både e og f a b c d f e g j i Sætning: Sammenkædet-relationen på kanter i en graf er en ækvivalensrelation Ækvivalensklasser af sammenkædede kanter: {a} {b, c, d, e, f} {g, i, j} Skitse af bevis: De refleksive og symmetriske egenskaber følger af definitionen. For at påvise den transitive egenskab betragtes to simple cykler, der har en kant til fælles a b c d e f g j i 40

41 Sammenkædet-komponenter Sammenkædet-komponenterne i en sammenhængende graf G er ækvivalensklasserne af kanter med hensyn til sammenkædetrelationen En 2-sammenhængende komponent i G er den delgraf af G, der induceres af en ækvivalensklasse af sammenkædede kanter En adskillelseskant er en ækvivalensklasse med 1 element En adskillelsesknude har nabokanter i mindst to forskellige ækvivalensklasser HNL SFO LAX ORD DFW LGA MIA PVD RDU 41

42 Hjælpegraf Hjælpegraf B for en sammenhængende graf G: associeret med en DFS-traversering af G b g e h j i i knuderne i B er kanterne i G c d f for enhver tilbage-kant e i G har B kanterne (e,f 1 ), (e,f 2 ),, (e,f k ), hvor f 1, f 2,, f k er de besøgte kanter i G, som sammen med e udgør en simpel cykel dens sammenhængende komponenter svarer til sammenkædet-komponenterne i G a c b a DFS i grafen G g e h f j d Hjælpegraf B i 42

43 Hjælpegraf (fortsat) I værste tilfælde er antallet af kanter i hjælpegrafen O(nm) DFS i en graf Hjælpegraf 43

44 Proxygraf Algorithm proxygraph(g) Input connected graph G Output proxy graph F for G F empty graph DFS(G, s) { s is any vertex of G } for all discovery edges e of G F.insertVertex(e) setlabel(e, UNLINKED) for all vertices v of G in DFS visit order for all back edges e = (u,v) F.insertVertex(e) repeat f discovery edge with dest. u F.insertEdge(e,f, ) if getlabel(f) = UNLINKED then setlabel(f, LINKED) u origin of edge f else u v { ends the loop } until u = v return F c a a b c b h g e j d f DFS i grafen G g e h f d Proxygraf F j i i 44

45 Proxygraf (fortsat) Proxygraf F for en sammenhængende graf G er en udspændende skov i hjælpegrafen B har m knuder og O(m) kanter kan konstrueres i O(n + m) tid dens sammenhængende komponenter (træer) svarer til sammenkædetkomponenterne i G c b a h g e d f DFS i grafen G j i Givet en graf G med n knuder og m kanter kan vi i O(n + m) tid konstruere de 2-sammenhængende komponenter i G adskillelsesknuderne i G adskillelseskanterne i G a b c g e f d Proxygraf F h j i 45

46 Bredde-først-søgning 46

47 Bredde-først-søgning Bredde-først-søgning (BFS) er en generel teknik til traversering af en graf En bredde-først traversering af grafen G besøger alle knuder og kanter i G afgør om G er sammenhængende bestemmer de sammenhængende komponenter i G bestemmer en udspændende skov i G BFS i en graf med n knuder og m kanter tager O(n + m) tid BFS kan udvides til at løse andre grafproblemer: Find en vej med et minimalt antal kanter imellem to knuder Find en cykel i grafen 47

48 BFS-algoritme Algoritmen bruger en mekanisme til tildele og aflæse etiketter på knuder og kanter Algorithm BFS(G) Input graph G Output labeling of the edges and partition of the vertices of G for all u G.vertices() setlabel(u, UNEXPLORED) for all e G.edges() setlabel(e, UNEXPLORED) for all v G.vertices() if getlabel(v) = UNEXPLORED BFS(G, v) Algorithm BFS(G, s) L 0 new empty sequence L 0.insertLast(s) setlabel(s, VISITED) i 0 while L i.isempty() L i +1 new empty sequence for all v L i.elements() for all e G.incidentEdges(v) if getlabel(e) = UNEXPLORED w opposite(v,e) if getlabel(w) = UNEXPLORED setlabel(e, DISCOVERY) setlabel(w, VISITED) L i +1.insertLast(w) else setlabel(e, CROSS) i i +1 48

49 Eksempel A UNEXPLORED knude L 0 A A VISITED knude UNEXPLORED kant L 1 B C D DISCOVERY kant E F CROSS kant L 0 A A L 1 B C D L 1 B C D E F E F 49

50 Eksempel (fortsat) L 0 A L 0 A L 1 B C D L 1 B C D E F L 2 E F L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F 50

51 Eksempel (fortsat) L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F L 0 A L 1 B C D L 2 E F 51

52 Egenskaber ved BFS Notation G s : sammenhængende komponent, som knuden s tilhører Egenskab 1 BFS(G, s) besøger alle knuder og kanter i G s Egenskab 2 De besøgte kanter af BFS(G, s) udgør et udspændende træ T s af G s Egenskab 3 For enhver knude v i L i gælder, at vejen i T s fra s til v har i kanter enhver vej fra s til v i G s har mindst i kanter L 1 B L 0 B A E A C C F D D L 2 E F 52

53 Analyse af BFS Tildeling og aflæsning af en knude- eller kant-etikette tager O(1) tid Hvert knude får tildelt en etikette to gange første gang som UNEXPLORED anden gang som VISITED Hver kant får tildelt en etikette to gange første gang som UNEXPLORED anden gang som DISCOVERY eller CROSS Hver knude indsættes i en sekvens L i Metoden incidentedges kaldes en gang for hver knude BFS kører i O(n + m) tid, forudsat at grafen er repræsenteret med en nabolistestruktur (Σ v deg(v) = 2m) 53

54 Anvendelser Vi kan specialisere BFS-traversering af en graf G til at løse følgende problemer i O(n + m) tid: Find de sammenhængende komponenter i G Find den udspændende skov i G Find en simple cykel i G - eller rapporter, at G er en skov Givet to knuder i G. Find en vej imellem dem med et minimalt antal kanter - eller rapporter, at en sådan vej ikke eksisterer 54

55 DFS versus BFS Anvendelser DFS BFS Udspændende skov, sammenhængende skov, veje, cykler Korteste veje 2-sammenhængende komponenter A L 0 A B C D L 1 B C D E F L 2 E F DFS BFS 55

56 DFS versus BFS (fortsat) Tilbage-kant (v,w) w er en forfader til v i træet af besøgte kanter Tvær-kant (v,w) w er på samme niveau som v, eller på det næste niveau i træet af besøgte kanter A L 0 A B C D L 1 B C D E F L 2 E F DFS BFS 56

57 Digrafer 57

58 Digraf En digraf er en graf, hvor alle kanter er orienteret (forkortelse for directed graph ) E D Anvendelser: ensrettede gader flyvninger projektplanlægning C A B 58

59 Egenskaber ved digrafer E D C B En graf G=(V,E), hvor hver kant går i en retning: En kant (a,b) går fra a til b, men ikke fra b til a A Hvis G er simpel, m n(n-1) Hvis vi holder ind-kanter og ud-kanter i særskilte nabolister, kan vi opremse ind- og ud-kanter i tid proportional med deres antal 59

60 Orienteret DFS Vi kan specialisere traverseringsalgoritmerne (DFS og BFS) til digrafer ved kun at traversere kanterne i deres retning E Ved orienteret DFS har vi fire type af kanter: besøgte kanter tilbage-kanter fremad-kanter tvær-kanter C D B En orienteret DFS, der starter i knuden s bestemmer de kanter, der kan nås fra s A 60

61 Forbundethed DFS-træ med rod i v: de knuder, der kan nås fra v ved hjælp af orienterede veje E D E D C C F A E D A B C F A B 61

62 Stærk sammenhæng Fra enhver knude kan alle andre knuder nås A C G D E F B 62

63 Algoritme til afgørelse af stærk sammenhæng Vælg en knude v i G Udfør DFS from v i G Hvis der er en knude w, der ikke er besøgt, så udskriv nej Lad G være G med kanterne vendt om Udfør DFS fra v i G Hvis der er en knude w, der ikke er besøgt, så udskriv nej Ellers, udskriv ja G: G : A F A D C C C G B G Køretid: O(n + m) D C F B 63

64 Stærkt sammenhængende komponenter Maksimale delgrafer, hvor der fra enhver knude kan nås fra alle andre knuder i delgrafen Kan også udføres i O(n + m) tid ved brug af DFS, men er mere kompliceret (i lighed med til 2-sammenhæng) A C G { A, C, G } F D E B { F, D, E, B } 64

65 Transitiv afslutning Lad der være givet en digraf G Den transitive afslutning af G er den digraf G*, hvor G* har de samme knuder som G Hvis G har en orienteret vej fra u to v (u v), så har G* en orienteret kant fra u til v B A D C D E G E Den transitive afslutning giver hurtig oplysning om forbundethed i en digraf B A C G* 65

66 Bestemmelse af den transitive afslutning Vi kan udføre DFS startende i alle knuder i O(n(n+m)) tid Hvis der en måde at komme fra A til B og fra B til C, er der også en måde at komme fra A til C. Alternativ... Brug dynamisk programmering: Floyd-Warshall s algoritme 66

67 Floyd-Warshall s algoritme Ide 1: Nummerer knuderne 1, 2,, n Ide 2: Betragt veje, der kun bruger de knuder, der er nummereret 1, 2,, k som mellemliggende knuder: (Dynamisk programmering) i Bruger kun knuder, der er nummereret 1,, k (tilføj denne kant, hvis den ikke allerede er tilføjet) Bruger kun knuder, der er nummereret 1,, k-1 k j Bruger kun knuder, der er nummereret 1,, k-1 67

68 Floyd-Warshall s algoritme Floyd-Warshall s algoritme nummerer knuderne i G som v 1,, v n og bestemmer en række af digrafer G 0,, G n G 0 = G G k har en orienteret kant (v i, v j ), hvis G har en orienteret vej v i til v j med mellemliggende knuder fra mængden {v 1,, v k } Vi har, at G n = G* I iteration k, bestemmes G k ud fra G k - 1 Køretid: O(n 3 ), hvis operationen areadjacent er O(1) (f.eks., hvis der benyttes en nabomatrix) Algorithm FloydWarshall(G) Input digraph G Output transitive closure G* of G i 1 for all v G.vertices() denote v as v i i i + 1 G 0 G for k 1 to n do G k G k 1 for i 1 to n (i k) do for j 1 to n (j i, k) do if G k 1.areAdjacent(v i, v k ) G k 1.areAdjacent(v k, v j ) if G k.areadjacent(v i, v j ) G k.insertdirectededge(v i, v j, k) return G n 68

69 Floyd-Warshall eksempel BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 69

70 Floyd-Warshall (iteration 1) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 70

71 Floyd-Warshall (iteration 2) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 71

72 Floyd-Warshall (iteration 3) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 72

73 Floyd-Warshall (iteration 4) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 73

74 Floyd-Warshall (iteration 5) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 74

75 Floyd-Warshall (iteration 6) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 75

76 Floyd-Warshall (slut) BOS v 7 ORD v 4 v 2 SFO JFK v 6 LAX v 1 v 3 DFW MIA v 5 76

77 DAG og topologisk ordning En orienteret ikke-cyklisk graf, DAG (Directed Acyclic Graph) er en digraf, der ikke har nogen orienterede cykler B D E En topologisk ordning af en digraf er en nummerering, v 1,, v n, af knuderne, således at der for enhver kant, (v i, v j ), gælder, at i < j A C DAG G Eksempel: I en opgaveplanlægningsgraf er en topologisk ordning en rækkefølge af opgaver, der for hver opgave tilfredsstiller startforudsætningerne (eng. the precedence constraints) Sætning: En digraf tillader topologisk ordning, hvis og kun hvis den er en DAG v 2 v 1 B A v 4 v 5 D E v3 C Topologisk ordning af G 77

78 Netværksplanlægning aktivitet forgænger(e) varighed (uger) A konstruer lagerstyringsmodel - 4 B implementer lagerstyringsprogram A 13 C konstruer prognosemodel - 4 D implementer prognoseprogram C 15 E indsaml data - 12 F design database A 4 G implementer database E, F 2 H oplær personale B, D 2 I afprøv system G, H 2 C D H aktivitetsnetværk A B I F E G 78

79 Topologisk sortering ved hjælp af DFS Simuler algoritmen ved brug af dybdeførst-søgning Algorithm topologicaldfs(g) Input dag G Output topological ordering of G n G.numVertices() for all u G.vertices() setlabel(u, UNEXPLORED) for all e G.edges() setlabel(e, UNEXPLORED) for all v G.vertices() if getlabel(v) = UNEXPLORED topologicaldfs(g, v) O(n+m) tid Algorithm topologicaldfs(g, v) Input graph G and a start vertex v of G Output labeling of the vertices of G in the connected component of v setlabel(v, VISITED) for all e G.incidentEdges(v) if getlabel(e) = UNEXPLORED w opposite(v,e) if getlabel(w) = UNEXPLORED setlabel(e, DISCOVERY) topologicaldfs(g, w) else {e is a forward or cross edge} Label v with topological number n n n

80 Eksempel på topologisk sortering 80

81 Eksempel på topologisk sortering 9 81

82 Eksempel på topologisk sortering

83 Eksempel på topologisk sortering

84 Eksempel på topologisk sortering

85 Eksempel på topologisk sortering

86 Eksempel på topologisk sortering

87 Eksempel på topologisk sortering

88 Eksempel på topologisk sortering

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Korteste veje 1 Vægtede grafer HNL I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Vægte kan repræsentere afstande, omkostninger, o.s.v. Eksempel: I en flyrutegraf repræsenterer

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

Læs mere

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer Philip Bille Orienteret graf. Mængde af knuder forbundet parvis med orienterede kanter. deg + (7) =, deg - (7) = Lemma. v V deg - (v) = v V deg + (v) = m. Bevis. Hver kant har netop en startknude og slutknude.

Læs mere

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer. Orienterede grafer Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer Philip Bille Orienterede grafer Introduktion Repræsentation Søgning Topologisk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTLOGI, RHUS UNIVERSITET Science and Technology EKSEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): 11 (elleve) Eksamensdag: Torsdag den 1. juni 01,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)} Procedure Dijkstra(G = (V, E): vægtet sh. graf,. a, z: punkter) { Det antages at w(e) > 0 for alle e E} For alle v V : L(v) := L(a) := 0, S := while z / S begin. u := punkt ikke i S, så L(u) er mindst

Læs mere

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3 02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Algoritmer og Datastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag:

Læs mere

Grafer / Otto Knudsen 20-11-06

Grafer / Otto Knudsen 20-11-06 Grafer / Otto Knudsen -- Grafer Definition En graf er pr. definition et par G = (V, E). Grafen består af en mængde knuder V (eng: vertices) og en mængde kanter E (eng: edges), som forbinder knuderne. A

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, F side af sider anmarks Tekniske Universitet Skriftlig prøve, den 9. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 25. juni 200, kl. 9.00-.00

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET STTUT FR DTG, RUS UVERSTET Science and Technology ESE ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. juni 0, kl. 9.00-.00 Tilladte medbragte hjælpemidler: lle sædvanlige

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTOI, RUS UNIVERSITET Science and Technology ESEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. juni 0, kl. 9.00-.00

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 0. august 00, kl. 9.00-.00

Læs mere

Førsteårsprojekt F2008. Nogle algoritmer på grafer

Førsteårsprojekt F2008. Nogle algoritmer på grafer Førsteårsprojekt F2008 Nogle algoritmer på grafer Peter Sestoft 2008-02-19 Oversigt for i dag Definition: graf og orienteret graf Repræsentation ved kantlister Bredde-først gennemløb Dybde-først gennemløb

Læs mere

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er Ugens emner FA minimering [.-.] MyHill-Nerode-sætningen en algoritme til minimering af FA er En karakteristik af de regulære sprog Et sprog L er regulært hvis og kun hvis L beskrives af et regulært udtryk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

DM02 Kogt ned. Kokken. Januar 2006

DM02 Kogt ned. Kokken. Januar 2006 DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET STTUT R T, RUS UVRSTT Science and Technology S lgoritmer og atastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): (elleve) ksamensdag: Tirsdag den. august 0, kl. 9.00-.00 Tilladte medbragte

Læs mere

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse UNION-FIND-problemet UNION-FIND inddata: en følge af heltalspar (p, q); betydning: p er forbundet med q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel på anvendelse: Forbindelser i computernetværk

Læs mere

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen kreds af kanter. Træer

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for TT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTLOGI, RHUS UNIVERSITET Science and Technology EKSMEN ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Mandag den. august 07, kl. 9.00-.00 Tilladte medbragte hjælpemidler:

Læs mere

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E Grafteori Definition (Simpel graf): En simpel graf G = (V, E) består af V, en mængde hvis elementer kaldes punkter, og E, en mængde af uordnede par af forskellige elementer fra V. Et element fra E kaldes

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Læs mere

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid 6 april Løsning af N P -hårde problemer Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid Oversigt Grænseværdier (repetition) Branch-and-bound algoritmens komponenter Eksempler

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 24. juni 2011, kl.

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Antal sider i opgavesættet (incl. forsiden): (fjorten) Eksamensdag: Mandag den. juni 0, kl. 9.00-.00 Tilladte medbragte hjælpemidler:

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET STTUT R T, RUS UVERSTET Science and Technology ESE ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: redag den. juni 0, kl..00-3.00 Tilladte medbragte hjælpemidler: lle sædvanlige hjælpemidler

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 10. juni, 2016. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede sider med ialt 16 opgaver. Alle opgaver

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET NSTTUT OR TO, RUS UNVRSTT Science and Technology SN lgoritmer og atastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): 11 (elleve) ksamensdag: redag den 1. august 015, kl. 9.00-.00 Tilladte

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 15. juni, 2015. Kl. 9-13. Nærværende eksamenssæt består af 12 nummererede sider med ialt 17 opgaver. Tilladte hjælpemidler:

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Mandag den 11. august 008, kl.

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F09 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for IT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Planfejning 1 Skæring 2 Geometrisk skæring Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Løsningsmetoder: Rå kraft Planfejning (eng. plane sweep)

Læs mere

Grafteori. 1 Terminologi. Indhold

Grafteori. 1 Terminologi. Indhold Grafteori Dette er en introduktion til de vigtigste begreber i grafteori, udvalgt teori samt eksempler på opgavetyper inden for emnet med fokus på de opgavetyper der typisk er til internationale matematikkonkurrencer.

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Symmetrisk Traveling Salesman Problemet

Symmetrisk Traveling Salesman Problemet Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok 2 2008/2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik,

Læs mere

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan

Læs mere

Tirsdag 12. december David Pisinger

Tirsdag 12. december David Pisinger Videregående Algoritmik, DIKU 2006/07 Tirsdag 12. december David Pisinger Resume sidste to gang Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret er 1. P = {L : L genkendes af en algoritme

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR ATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Algoritmer og atastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. august 0,

Læs mere

Reeksamen i Diskret Matematik

Reeksamen i Diskret Matematik Reeksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 21. august 2015 Nærværende eksamenssæt består af 10 nummererede sider med ialt 17 opgaver. Tilladte hjælpemidler:

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Algoritmer og Datastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): 7 (syv) Eksamensdag:

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

Læs mere

Hamilton-veje og kredse:

Hamilton-veje og kredse: Hamilton-veje og kredse: Definition: En sti x 1, x 2,...,x n i en simpel graf G = (V, E) kaldes en hamiltonvej hvis V = n og x i x j for 1 i < j n. En kreds x 1, x 2,...,x n, x 1 i G kaldes en hamiltonkreds

Læs mere

Grafteori. 1 Terminologi. Grafteori, Kirsten Rosenkilde, august fra V. (Engelsk: subgraph, spanning subgraph, the subgraph

Grafteori. 1 Terminologi. Grafteori, Kirsten Rosenkilde, august fra V. (Engelsk: subgraph, spanning subgraph, the subgraph Grafteori, Kirsten Rosenkilde, august 2010 1 Grafteori Dette er en introduktion til de vigtigste begreber i grafteori, udvalgt teori samt eksempler på opgavetyper inden for emnet med fokus på den type

Læs mere

Reeksamen i Diskret Matematik

Reeksamen i Diskret Matematik Reeksamen i Diskret Matematik Første studieår ved Det Teknisk-Naturvidenskabelige Fakultet 23. august, 2016, 9.00-13.00 Dette eksamenssæt består af 11 nummerede sider med 16 opgaver. Alle opgaver er multiple

Læs mere