Grafer og graf-gennemløb
|
|
|
- Helge Søndergaard
- 10 å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. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som 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.
3 Grafer Modeller for mange ting: Ledningsnet (telefon, strøm, olie, vand,... ). Vejnet. Bekendtskaber. Medforfatterskaber. WWW-grafen af sider og links.
4 Datastrukturer for grafer Graf-repræsentationer: Adjancency list og adjancency matrix Plads: Henholdsvis O(n + m) og O(n 2 ).
5 Grafgennemløb Fælles for BFS og DFS: Startknude (source) s Ikke-mødte knuder: Hvide Færdigbehandlede knuder: Sorte Front (mødte, men ikke færdigbehandlede): Grå Når en knude v opdages første gang: den husker, hvem der opdagede den (dens predecessor) i variablen v.π. Kanterne (v, v.π) udgør et træ med s som rod. Vi bruger adjacency list repræsentationen.
6 Bredde-Først-Søgning (BFS) Holder de grå knuder (fronten) i en KØ. Tilføjer også en distance v.d til alle knuder v.
7 Bredde-Først-Søgning (BFS) Eksempel:
8 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.
9 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).
10 Bevis Punkt 3): Definér for heltal i 0: i = {v V δ(s, v) = i} D i = {v V v.d = i} Vi viser via induktion på i at for alle i gælder i = D i. Dette medfører punkt 3) for alle knuder, der kan nås fra s. For resten af knuderne forbliver v.d = efter initialisering, 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.
11 Bevis 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 haves fra punkt 2) en sti fra s til v af længde i. Derfor gælder δ(s, v) i. Vi kan ikke have δ(s, v) = j < i, da induktionsantagelse ( j = D j ) så ville give v.d = j < i, i modstrid med v D i. Derfor er δ(s, v) = i. Dette viser D i i. For enhver knude u i findes en sti fra s til u af længde i. For næstsidste knude w på denne sti gælder δ(s, w) = i 1 (den kan ikke være lavere, for så ville δ(s, u) være lavere). Fra induktionsantagelsen ( i 1 = D i j ) får vi at w.d = i 1. Da w blev taget ud af køen, var u (en nabo til w) enten hvid, hvorved u.d blev sat til i, eller u var allerede nået fra en naboknude t, som allerede var taget ud og derfor (via observation på sidste side) har t.d w.d = i 1. I det sidste tilfælde blev u.d blev sat i. Men det gælder af punkt 2) altid at i = δ(s, u) u.d. I begge tilfælde haves u.d = i. Dette viser i D i. Alt i alt: i = D i.
12 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øb 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.
13 Dybde-Først-Søgning (DFS) Eksempel:
14 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 = kald af DFS-Visit på v = PUSH af v på stakken. Finish (grå sort) af v = retur fra kald af DFS-Visit på v = POP af v fra stakken. Heraf: Kanterne (v, v.π) er 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.
15 Egenskaber Hvis u og v er på en stak samtidig, og v er pushed sidst, må v poppes før u kan poppes. Heraf 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. (Discovery- og finish-tider er derfor nestede som parenteser er det.) Kanter (u, v) (undersøgt fra u) kan deles i: tree-kanter [v hvid], back-kanter [v ikke-hvid (grå) og v s interval indeholder u s], forward-kanter [v ikke-hvid (sort) og v s interval er indeholdt i u s] og cross-kanter [v ikke-hvid (sort) og v s interval er før u s]. For uorienterede er der kun tree-kanter og back-kanter (hvis en kants type bestemmes første gang den undersøges fra een af dens ender).
16 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.
17 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.
18 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).
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
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
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
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
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
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.......................................
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 på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje
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.)
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:
Divide-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
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
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 lukket kreds af kanter
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æ
Divide-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
Divide-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
Divide-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
Skriftlig 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.
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,
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
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
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:
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
Eksempel 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
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.
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
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
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
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
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
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
Dynamisk 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
DM507 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
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.)
Sortering. 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
INSTITUT 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
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:
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
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
Sortering. 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
