Grafer og graf-gennemløb
|
|
- Christen Henningsen
- 6 år siden
- Visninger:
Transkript
1 Grafer og graf-gennemløb
2 Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder.
3 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 genbruges/misbruges til også at betyde V og E.
4 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 genbruges/misbruges til også at betyde V og E. Orienteret vs. uorienteret.
5 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 genbruges/misbruges til også at betyde V og E. Orienteret vs. uorienteret. 0 m n(n 1) og 0 m n(n 1)/2
6 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 genbruges/misbruges til også at betyde V og E. Orienteret vs. uorienteret. 0 m n(n 1) og 0 m n(n 1)/2 Evt. loops, multiple kanter.
7 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 genbruges/misbruges til også at betyde V og E. Orienteret vs. uorienteret. 0 m n(n 1) og 0 m n(n 1)/2 Evt. loops, multiple kanter. Vægtede grafer.
8 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ).
9 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ). Vejnet.
10 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ). Vejnet. Bekendtskaber.
11 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ). Vejnet. Bekendtskaber. Medforfatterskaber.
12 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ). Vejnet. Bekendtskaber. Medforfatterskaber. WWW-grafen af sider og links.
13 Datastrukturer for grafer Graf-repræsentationer:
14 Datastrukturer for grafer Graf-repræsentationer: Adjancency list og adjancency matrix
15 Datastrukturer for grafer Graf-repræsentationer: Adjancency list og adjancency matrix Plads: Henholdsvis O(n + m) og O(n 2 ).
16 Datastrukturer for grafer Graf-repræsentationer: Adjancency list og adjancency matrix Plads: Henholdsvis O(n + m) og O(n 2 ). Hvis ikke andet oplyses, bruges adjancency list repræsentationen i algoritmer i resten af kurset. Husk: en kant i en uorienterede graf repræsenteres som to orienterede kanter.
17 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS):
18 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS:
19 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s
20 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide
21 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte
22 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte Knuder i fronten (mødte, men ikke færdigbehandlede) er grå
23 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte Knuder i fronten (mødte, men ikke færdigbehandlede) er grå Når en knude v ( s) mødes første gang husker den, hvem der opdagede den (dens predecessor) i variablen v.π.
24 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte Knuder i fronten (mødte, men ikke færdigbehandlede) er grå Når en knude v ( s) mødes første gang husker den, hvem der opdagede den (dens predecessor) i variablen v.π. Vi bruger adjacency list repræsentationen.
25 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte Knuder i fronten (mødte, men ikke færdigbehandlede) er grå Når en knude v ( s) mødes første gang husker den, hvem der opdagede den (dens predecessor) i variablen v.π. Vi bruger adjacency list repræsentationen.
26 Grafgennemløb To grundlæggende metoder: Breath-First-Search (BFS) Depth-First-Search (DFS): Fælles for BFS og DFS: En startknude (source) s Ikke-mødte knuder er hvide Færdigbehandlede knuder er sorte Knuder i fronten (mødte, men ikke færdigbehandlede) er grå Når en knude v ( s) mødes første gang husker den, hvem der opdagede den (dens predecessor) i variablen v.π. Vi bruger adjacency list repræsentationen. Bemærk: Kanterne (v, v.π) udgør tilsammen altid et træ med s som rod og indeholdende alle opdagede knuder (ses nemt via induktion over antal mødte knuder).
27 Bredde-Først-Søgning (BFS) Holder de grå knuder (fronten) i en KØ.
28 Bredde-Først-Søgning (BFS) Holder de grå knuder (fronten) i en KØ. Tilføjer også en variabel v.d til alle knuder v (d for distance.)
29 Bredde-Først-Søgning (BFS) Holder de grå knuder (fronten) i en KØ. Tilføjer også en variabel v.d til alle knuder v (d for distance.)
30 Bredde-Først-Søgning (BFS) Eksempel:
31 Egenskaber Køretid: O(n + m)
32 Egenskaber Køretid: O(n + m) Bevis: Initialisering tager O(n) tid. I resten af algoritmen kan en knude ikke indsættes i køen mere end een gang (pga. farvemærkningen), så maksimalt arbejde er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde.
33 Egenskaber Køretid: O(n + m) Bevis: Initialisering tager O(n) tid. I resten af algoritmen kan en knude ikke indsættes i køen mere end een gang (pga. farvemærkningen), så maksimalt arbejde er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde. Definition: δ(s, v) er længden af en korteste sti, målt i antal kanter, fra startknuden s til knuden v. Findes ingen sti, defineres δ(s, v) =.
34 Egenskaber Køretid: O(n + m) Bevis: Initialisering tager O(n) tid. I resten af algoritmen kan en knude ikke indsættes i køen mere end een gang (pga. farvemærkningen), så maksimalt arbejde er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde. Definition: δ(s, v) er længden af en korteste sti, målt i antal kanter, fra startknuden s til knuden v. Findes ingen sti, defineres δ(s, v) =. Sætning: 1. Når BFS stopper, har den nået alle knuder v for hvilke der findes en sti fra startknuden s til v. 2. En sti af længde v.d kan for alle nåede knuder findes (i baglæns rækkefølge) ved at følge predecessor-referencer v.d gange, startende fra v (dvs. v.π, (v.π).π, ((v.π).π).π,... ), og.d-værdierne for knuderne på denne sti falder med een for hvert skridt. 3. Når BFS stopper, gælder v.d = δ(s, v) for alle knuder.
35 Egenskaber Køretid: O(n + m) Bevis: Initialisering tager O(n) tid. I resten af algoritmen kan en knude ikke indsættes i køen mere end een gang (pga. farvemærkningen), så maksimalt arbejde er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde. Definition: δ(s, v) er længden af en korteste sti, målt i antal kanter, fra startknuden s til knuden v. Findes ingen sti, defineres δ(s, v) =. Sætning: 1. Når BFS stopper, har den nået alle knuder v for hvilke der findes en sti fra startknuden s til v. 2. En sti af længde v.d kan for alle nåede knuder findes (i baglæns rækkefølge) ved at følge predecessor-referencer v.d gange, startende fra v (dvs. v.π, (v.π).π, ((v.π).π).π,... ), og.d-værdierne for knuderne på denne sti falder med een for hvert skridt. 3. Når BFS stopper, gælder v.d = δ(s, v) for alle knuder. Dvs. BFS kan finde korteste veje (målt i antal kanter) fra alle v til s.
36 Bevis Bemærk først at en knude v indsættes i køen een gang, så v.d og v.π gives en værdi præcis een gang.
37 Bevis Bemærk først at en knude v indsættes i køen een gang, så v.d og v.π gives en værdi præcis een gang. Punkt 1):
38 Bevis Bemærk først at en knude v indsættes i køen een gang, så v.d og v.π gives en værdi præcis een gang. Punkt 1): Antag der findes en knude, som kan nås med en sti fra s, men som BFS ikke når. Lad v være første knude (set fra s) på denne sti som BFS ikke når, og lad u være knuden før på stien. Da u blev taget ud af køen, burde v (som er i u s naboliste) være nået. Modstrid.
39 Bevis Bemærk først at en knude v indsættes i køen een gang, så v.d og v.π gives en værdi præcis een gang. Punkt 1): Antag der findes en knude, som kan nås med en sti fra s, men som BFS ikke når. Lad v være første knude (set fra s) på denne sti som BFS ikke når, og lad u være knuden før på stien. Da u blev taget ud af køen, burde v (som er i u s naboliste) være nået. Modstrid. Punkt 2):
40 Bevis Bemærk først at en knude v indsættes i køen een gang, så v.d og v.π gives en værdi præcis een gang. Punkt 1): Antag der findes en knude, som kan nås med en sti fra s, men som BFS ikke når. Lad v være første knude (set fra s) på denne sti som BFS ikke når, og lad u være knuden før på stien. Da u blev taget ud af køen, burde v (som er i u s naboliste) være nået. Modstrid. Punkt 2): Induktion over antal indsættelser i køen: Når en knude u udtages af køen, og en knude v fra u s naboliste indsættes i køen, sættes v.d = u.d + 1 og v.π = u. Hvis udsagnet galdt for u, kommer det klart til at gælde for v. Basis er første indsættelse (af s, for hvilken udsagnet gælder pga. initialiseringen i BFS).
41 Bevis Punkt 3):
42 Bevis Punkt 3): Definér for heltal i 0: i = {v V δ(s, v) = i}, dvs. de knuder, som algoritmen påstår har afstand i til s. D i = {v V v.d = i}, dvs. de knuder, som faktisk har afstand i til s.
43 Bevis Punkt 3): Definér for heltal i 0: i = {v V δ(s, v) = i}, dvs. de knuder, som algoritmen påstår har afstand i til s. D i = {v V v.d = i}, dvs. de knuder, som faktisk har afstand i til s. Vi viser via induktion på i at for alle i gælder i = D i.
44 Bevis Punkt 3): Definér for heltal i 0: i = {v V δ(s, v) = i}, dvs. de knuder, som algoritmen påstår har afstand i til s. D i = {v V v.d = i}, dvs. de knuder, som faktisk har afstand i til s. Vi viser via induktion på i at for alle i gælder i = D i. Dette vil medføre punkt 3) for alle knuder, der kan nås fra s. For resten af knuderne forbliver v.d = efter initialisering [pga. punkt 2)], så punkt 3) gælder også for dem.
45 Bevis Punkt 3): Definér for heltal i 0: i = {v V δ(s, v) = i}, dvs. de knuder, som algoritmen påstår har afstand i til s. D i = {v V v.d = i}, dvs. de knuder, som faktisk har afstand i til s. Vi viser via induktion på i at for alle i gælder i = D i. Dette vil medføre punkt 3) for alle knuder, der kan nås fra s. For resten af knuderne forbliver v.d = efter initialisering [pga. punkt 2)], så punkt 3) gælder også for dem. Observér først at BFS-algoritment starter med D 0 = {s} i køen, og derefter for i = 0, 1, 2, 3,... udtager alle knuder i D i mens den indsætter alle knuder i D i+1.
46 Bevis Induktionsbevis for i = D i :
47 Bevis Induktionsbevis for i = D i : Basis (i=0): klar, da D 0 = {s} = 0.
48 Bevis Induktionsbevis for i = D i : Basis (i=0): klar, da D 0 = {s} = 0. Induktionssskridt: antag udsagn er sandt for i 1 og lavere, vis det er sandt for i.
49 Bevis Induktionsbevis for i = D i : Basis (i=0): klar, da D 0 = {s} = 0. Induktionssskridt: antag udsagn er sandt for i 1 og lavere, vis det er sandt for i. For en knude v D i eksisterer via punkt 2) en sti fra s til v af længde i. Derfor gælder δ(s, v) i. Vi kan ikke have δ(s, v) i 1, da induktionsantagelse så ville give v.d = δ(s, v) i 1, i modstrid med v D i. Derfor er δ(s, v) = i. Dette viser D i i.
50 Bevis Induktionsbevis for i = D i : Basis (i=0): klar, da D 0 = {s} = 0. Induktionssskridt: antag udsagn er sandt for i 1 og lavere, vis det er sandt for i. For en knude v D i eksisterer via punkt 2) en sti fra s til v af længde i. Derfor gælder δ(s, v) i. Vi kan ikke have δ(s, v) i 1, da induktionsantagelse så ville give v.d = δ(s, v) i 1, i modstrid med v D i. Derfor er δ(s, v) = i. Dette viser D i i. For enhver knude u i eksisterer pr. definition af δ en sti fra s til u af længde i. For næstsidste knude w på denne sti gælder δ(s, w) = i 1. Fra induktionsantagelsen får vi at w.d = δ(s, w). Da w blev taget ud af køen, var u (en nabo til w) enten hvid, eller u var allerede nået fra en knude t, som allerede var taget ud og derfor (via observationen på sidste side) har t.d w.d. I begge tilfælde bliver u.d blev sat til højst w.d + 1 = δ(s, w) + 1 = i = δ(s, u). Fra punkt 2) haves u.d δ(s, u). I alt gælder u.d = δ(s, u). Dette viser i D i.
51 Bevis Induktionsbevis for i = D i : Basis (i=0): klar, da D 0 = {s} = 0. Induktionssskridt: antag udsagn er sandt for i 1 og lavere, vis det er sandt for i. For en knude v D i eksisterer via punkt 2) en sti fra s til v af længde i. Derfor gælder δ(s, v) i. Vi kan ikke have δ(s, v) i 1, da induktionsantagelse så ville give v.d = δ(s, v) i 1, i modstrid med v D i. Derfor er δ(s, v) = i. Dette viser D i i. For enhver knude u i eksisterer pr. definition af δ en sti fra s til u af længde i. For næstsidste knude w på denne sti gælder δ(s, w) = i 1. Fra induktionsantagelsen får vi at w.d = δ(s, w). Da w blev taget ud af køen, var u (en nabo til w) enten hvid, eller u var allerede nået fra en knude t, som allerede var taget ud og derfor (via observationen på sidste side) har t.d w.d. I begge tilfælde bliver u.d blev sat til højst w.d + 1 = δ(s, w) + 1 = i = δ(s, u). Fra punkt 2) haves u.d δ(s, u). I alt gælder u.d = δ(s, u). Dette viser i D i. Alt i alt: i = D i.
52 Dybde-Først-Søgning (DFS) Holder de grå knuder (fronten) i en STAK.
53 Dybde-Først-Søgning (DFS) Holder de grå knuder (fronten) i en STAK. Stakken er implicit i den rekursive formulering nedenfor (er rekursionsstakken), men kan også kodes eksplicit. Mere præcist: elementerne på stakken er de grå knuder, hver med en delvist gennemløbet naboliste [gennemløbet i for-løkken i DFS-Visit]. DFS tilføjer også timestamps u.d for discovery (hvid grå) og u.f for finish (grå sort) til alle knuder u.
54 Dybde-Først-Søgning (DFS) Eksempel:
55 Egenskaber Køretid: O(n + m)
56 Egenskaber Køretid: O(n + m) Bevis: Den ydre algoritme DFS tager O(n) tid. Hovedalgoritmen DFS-Visit kan ikke kaldes på en knude mere end een gang (pga. farvemærkningen), så arbejdet dér er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde.
57 Egenskaber Køretid: O(n + m) Bevis: Den ydre algoritme DFS tager O(n) tid. Hovedalgoritmen DFS-Visit kan ikke kaldes på en knude mere end een gang (pga. farvemærkningen), så arbejdet dér er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde. Observér: Discovery (hvid grå) af v = sæt v.d = kald af DFS-Visit på v = PUSH af v på stakken. Finish (grå sort) af v = sæt v.f = retur fra kald af DFS-Visit på v = POP af v fra stakken.
58 Egenskaber Køretid: O(n + m) Bevis: Den ydre algoritme DFS tager O(n) tid. Hovedalgoritmen DFS-Visit kan ikke kaldes på en knude mere end een gang (pga. farvemærkningen), så arbejdet dér er proportionalt med eet gennemløb af alle nabolister, dvs. O(m) arbejde. Observér: Discovery (hvid grå) af v = sæt v.d = kald af DFS-Visit på v = PUSH af v på stakken. Finish (grå sort) af v = sæt v.f = retur fra kald af DFS-Visit på v = POP af v fra stakken. Kanten (v, v.π) sættes ved kald af DFS-Visit på v. Af dette, samt ovenstående: Kanterne (v, v.π) udgør præcis rekursionstræerne for DFS-Visit (eet træ for hvert kald fra DFS). Intervallet [v.d, v.f ] er den periode v er på stakken.
59 Egenskaber Hvis u og v er på en stak samtidig, og v er pushed sidst, må v poppes før u kan poppes. Af dette, samt at push/pop sætter d/f, følger at for alle knuder u og v må intervallerne [u.d, u.f ] og [v.d, v.f ] enten være disjunkte (u og v var ikke på stakken samtidig) eller det ene må være helt indeholdt i den andet (knuden med det største interval kom på stakken først).
60 Egenskaber Hvis u og v er på en stak samtidig, og v er pushed sidst, må v poppes før u kan poppes. Af dette, samt at push/pop sætter d/f, følger at for alle knuder u og v må intervallerne [u.d, u.f ] og [v.d, v.f ] enten være disjunkte (u og v var ikke på stakken samtidig) eller det ene må være helt indeholdt i den andet (knuden med det største interval kom på stakken først). Discovery- og finish-tider er derfor nestede som parenteser er det.
61 Egenskaber Når en kant (u, v) undersøges fra u haves flg. tilfælde: 1. tree-kanter: v hvid. Her er u.d < v.d < v.f < u.f. 2. back-kanter: v ikke-hvid (grå/er på stak). Her er v.d < u.d < u.f < v.f. 3. forward-kanter: v ikke-hvid (sort/er ikke længere på stak, men har været det sammen med u). Her er u.d < v.d < v.f < u.f. 4. cross-kanter: v ikke-hvid (sort/er ikke længere på stak, og har ikke været det sammen med u). Her er v.d < v.f < u.d < u.f. Bemærk at de kan genkendes under DFS via farvningen og d/f -værdierne i knuder, samt tiden nu.
62 Egenskaber 1. tree-kanter: v hvid 2. back-kanter: v ikke-hvid (grå/er på stak) og v s interval indeholder u s 3. forward-kanter: v ikke-hvid (sort/er ikke længere på stak) og v s interval er indeholdt i u s 4. cross-kanter: v ikke-hvid (sort/er ikke længere på stak) og v s interval er før u s For uorienterede grafer er der kun tree-kanter og back-kanter (såfremt en kant kategoriseres første gang den undersøges fra een af dens ender). Dette følger af at u allerede må være blevet undersøgt fra v hvis v er sort/ikke længere på stak og kanten (v, u) må derfor allerede være kategoriseret. Derved kan 3 og 4 ikke opstå.
63 DAGs og topologisk sortering DAG = Directed Acyclic Graph. Topologisk sortering af en DAG: en lineær ordning af knuderne så alle kanter går fra venstre til højre.
64 DAGs og topologisk sortering DAG = Directed Acyclic Graph. Topologisk sortering af en DAG: en lineær ordning af knuderne så alle kanter går fra venstre til højre.
65 DAGs og topologisk sortering Lemma: En orienteret graf har en kreds (cycle) der findes back-edges under et DFS-gennemløb.
66 DAGs og topologisk sortering Lemma: En orienteret graf har en kreds (cycle) der findes back-edges under et DFS-gennemløb. Bevis: : Se på første knude v i kredsen som bliver grå - dvs. alle andre knuder u i kredsen har v.d < u.d. Da intervaller enten er helt indeholdt i hinanden eller er disjunkte, gælder enten v.d < u.d < u.f < v.d eller v.f < u.d. Antag det sidste tilfælde forekommer, og se på den første (set fra v) sådanne knude u i kredsen, og lad w være dens forgænger (evt. v selv). Da haves w.f v.f < u.d, men pga. kanten (w, u) kan dette ikke forekomme (kanten må blive undersøgt, og u opdaget inden w er færdig). Så kun første tilfælde forekommer. Specielt gælder dette sidste knude u i kredsen (som peger på v), hvorved kanten (u, v) erklæres en backedge.
67 DAGs og topologisk sortering Lemma: En orienteret graf har en kreds (cycle) der findes back-edges under et DFS-gennemløb. Bevis: : Se på første knude v i kredsen som bliver grå - dvs. alle andre knuder u i kredsen har v.d < u.d. Da intervaller enten er helt indeholdt i hinanden eller er disjunkte, gælder enten v.d < u.d < u.f < v.d eller v.f < u.d. Antag det sidste tilfælde forekommer, og se på den første (set fra v) sådanne knude u i kredsen, og lad w være dens forgænger (evt. v selv). Da haves w.f v.f < u.d, men pga. kanten (w, u) kan dette ikke forekomme (kanten må blive undersøgt, og u opdaget inden w er færdig). Så kun første tilfælde forekommer. Specielt gælder dette sidste knude u i kredsen (som peger på v), hvorved kanten (u, v) erklæres en backedge. : Når en back-edge findes: Der er en kreds af trækanter (mellem knuderne som lige nu er på stakken) og een back-kant.
68 DAGs og topologisk sortering Lemma: For en kant (u, v) gælder u.f < v.f kanten er en back-edge.
69 DAGs og topologisk sortering Lemma: For en kant (u, v) gælder u.f < v.f kanten er en back-edge. Bevis: Check de fire edge cases (tree, back, forward, cross), brug parentes-strukturen af discovery- og finish-tider.
70 DAGs og topologisk sortering Lemma: For en kant (u, v) gælder u.f < v.f kanten er en back-edge. Bevis: Check de fire edge cases (tree, back, forward, cross), brug parentes-strukturen af discovery- og finish-tider. Korollar til to foregående lemmaer: Graf er en DAG DFS finder ingen back-edges ordning af knuder efter faldende finish-tider giver en topologisk sortering.
71 DAGs og topologisk sortering Lemma: For en kant (u, v) gælder u.f < v.f kanten er en back-edge. Bevis: Check de fire edge cases (tree, back, forward, cross), brug parentes-strukturen af discovery- og finish-tider. Korollar til to foregående lemmaer: Graf er en DAG DFS finder ingen back-edges ordning af knuder efter faldende finish-tider giver en topologisk sortering.
72 DAGs og topologisk sortering Lemma: For en kant (u, v) gælder u.f < v.f kanten er en back-edge. Bevis: Check de fire edge cases (tree, back, forward, cross), brug parentes-strukturen af discovery- og finish-tider. Korollar til to foregående lemmaer: Graf er en DAG DFS finder ingen back-edges ordning af knuder efter faldende finish-tider giver en topologisk sortering. Tid: O(n + m).
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 mereGrafer 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 mereGrafer 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 mereGrafer 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 mereSammenhæ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 mereKorteste 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 mereKorteste 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 mereKorteste 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 mereOrienterede 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 mereOrienterede 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 mereOrienterede 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 mereAlgoritmer 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 mereMinimum 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 mereDanmarks 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 mereSkriftlig 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 mereINSTITUT 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 mereSkriftlig 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 mere02105 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 mereDanmarks 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 mereDanmarks 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 mereDanmarks 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 mereDanmarks 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 mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Læs mereDanmarks 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 mereINSTITUT 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 mereGrå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 mereINSTITUT 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 mereKorteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille
Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje
Læs mereSkriftlig 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 mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereDanmarks 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 mereMinimum 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 lukket kreds af kanter
Læs mereINSTITUT 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 mereDanmarks 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 mereMinimum 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æ
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
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)}
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 mereDATALOGISK 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 mereGrå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 mereINSTITUT 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 mereINSTITUT 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 mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern
Læs merePrioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille
Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer
Læs mereGrafer / 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 mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Læs mereDanmarks 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 mereGrå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 merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():
Læs mereDATALOGISK 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 mereDanmarks 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 mereInvarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.
Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereDanmarks 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 mereDATALOGISK 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 mereDATALOGISK 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 mereFø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 mereKorteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille
Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje
Læs mereINSTITUT 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 mereP (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 mereEt generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige
Læs mereMindste 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 mereDATALOGISK 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 mereMindste 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 mereEksempel på muligt eksamenssæt i Diskret Matematik
Eksempel på muligt eksamenssæt i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet???dag den?.????, 20??. Kl. 9-13. Nærværende eksamenssæt består af 13 nummererede sider med
Læs mereINSTITUT 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 mereDATALOGISK 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 merePrioritetskø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 mereINSTITUT 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 mereAlgoritmeanalyse. Ø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 mereDanmarks 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 mereSortering. 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 mereAnalyse af ombytningspuslespil
Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme
Læs mereAnalyse af ombytningspuslespil
Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. 2 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre
Læs mereDanmarks 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 mereGrå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 mereDanmarks 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 mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 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, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereMindste 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 mereSkriftlig 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 mereDatastrukturer (recap) Datastruktur = data + operationer herpå
Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også
Læs mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 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 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereEksamen 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 mereSortering af information er en fundamental og central opgave.
Sortering 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 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereSortering i lineær tid
Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.
Læs mereDanmarks 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 mereDM02 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 mere1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO
Læs mereDefinition : 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 mereDanmarks 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 mereBinære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo
Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.
Læs mereSkriftlig 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 mereEksamen 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 mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:
Læs mereSortering. De n tal i sorteret orden. Eksempel: Kommentarer:
Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 22. juni 2012, kl. 9.00-13.00 Eksamenslokale: Finlandsgade
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mere