Grafer / Otto Knudsen
|
|
- Leif Johannsen
- 8 år siden
- Visninger:
Transkript
1 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 B C G D E F H I Fig: Ikke-orienteret graf I ikke-orienterede grafer benævnes kanterne ( u, v), u, v V og ( u, v) = ( v, u). For orienterede grafer spiller retningen derimod en rolle, og vi anvender derfor ofte en anden notation: u, v. Orienterede grafer kaldes også for digrafer (Directed Graphs). Ofte tilknyttes der en vægt eller omkostning til kanterne, og grafen benævnes da en vægtet graf. Vægten kan beskrive enhver metrik: Omkostning Afstand Tid Straf Tab Eller en anden kvantitativ størrelse, som akkumulerer lineært langs stien, som vi ønsker at optimere. Anvendelse Grafer anvendes til at modellere problemer, hvor nogle objekter er indbyrdes forbundne. Fx kan et jernbanenet beskrives vha. en ikke-orienteret graf, hvor knuderne er stationer, og kanterne er banestrækninger. Afstanden mellem to stationer kan beskrives vha. vægten på den tilhørende kant. Grafer, hvor objekterne afhænger af hinanden, modelleres vha. orienterede grafer. Fx kan et projekt med dets indbyrdes forbundne aktiviteter med fordel beskrives som en orienteret graf. Her kan vægten på kanten mellem to aktiviteter fx beskrive udstrækningen i tid af den første aktivitet. Begreber Grafteorien indeholder en righoldig nomenklatur, og herunder listes de væsentligste begreber. Definitionerne gives hvor andet ikke er nævnt ud fra ikke-orienterede grafer; men side
2 Grafer / Otto Knudsen -- definitionerne kan umiddelbart overføres til orienterede grafer. Bemærk tillige, at en del begreber kan være defineret forskelligt i forskellig litteratur. En sti (path) er en følge af knuder v, v,..., v n, hvor ( vi, vi+ ) E, i n Stiens længde er antallet af kanter = n ; medens stiens vægt er summen af kanternes vægte. En simpel sti er en sti, hvor alle knuder evt. på nær den første og den sidste er forskellige. En kreds eller cykel er i en orienteret graf er en sti med længde mindst én, hvor v = vn Kredsen er simpel, hvis stien er simpel For ikke-orienterede grafer vil vi kræve, at kanterne i en kreds skal være forskellige. Hvis vi tillader en sti fra en knude til sig selv, så er denne stis længde lig (nul) En sådan kant (v, v) kaldes også en løkke (eng: loop) En graf uden kredse kaldes en acyklisk graf En graf kaldes en fuldstændig graf, hvis ethvert par af knuder er forbundet med en kant En graf kaldes en sammenhængende graf, hvis ethvert par af knuder er forbundet med en sti. En orienteret graf kaldes stærkt sammenhængende, hvis ethvert knudepar er forbundet med en (orienteret) sti. Bemærk tillige, at der således må være en sti begge veje! Graden af en knude er dens antal forbindelser til kanter. I orienterede grafer taler man tillige om udgraden (antallet af kanter ud fra knuden) og indgraden (antallet af kanter ind i knuden). Graden af en knude i en orienteret graf er da summen af indgraden og udgraden. Det er oplagt, at summen af indgrader må være lig summen af udgrader i en orienteret graf, altså: indgrad ( v) = v = E v V udgrad( ), hvor E er antallet af kanter i v V grafen. Da hver kant således bidrager med grader, vil summen af alle grader i grafen være et lige tal, udtrykt ved: grad( v) = E v V Knuder med grad (nul) kaldes isolerede knuder En sammenhængende acyklisk graf kaldes også for et frit træ Hvis vi fjerner betingelsen om sammenhæng får vi i stedet for en skov (af træer) De træer, vi kender fra tidligere, kan betragtes som orienterede grafer, idet kanterne går fra forælder til børn. Man bruger betegnelsen orienterede træer om disse for at skelne dem fra de frie træer defineret ovenfor. Orienterede træer er tillige kendetegnet ved at have en rod (en forælderløs knude). side
3 Grafer / Otto Knudsen -- Repræsentation af grafer Grafer kan repræsenteres på flere forskellige måder. Herunder vil vi se på to klassiske måder: Adjacency Matrix- og Adjacency List-repræsentationen. Adjacency Matrix Betragt følgende ikke-orienterede graf, hvis knuder er nummererede, og grafens tilhørende adjacency matrix-repræsentation Orienteret graf Adjacency Matrix Matricens celler indeholder (sand), hvis kanten findes og (falsk), hvis kanten ikke findes. Hvis det drejer sig om vægtede grafer, så indsættes vægtene på ernes plads i matricen. erne vil blive erstattet af ± som indikation på, at kanten ikke findes. Kanten bliver med andre ord for dyr at passere. Hvis grafen er fuldstændig haves: E = Θ( V ) hvor E er antallet af kanter og V er antallet af knuder i grafen. Den tilhørende adjacency matrix bliver således tæt (eng: dense). Hvis grafen derimod ikke er fuldstændig og fx indeholder knuder med en konstant grad, så bliver den tilhørende adjacency matrix tynd (eng: sparse), hvilket vil sige, at den får et stort indhold af er. Dette er ikke hensigtmæssigt. Betragt følgende vejnet a la Manhattan: Manhattan -vejnet Lad knuder agere vejkryds og lad kanterne være vejstrækninger. I en sådan graf vil antallet af kanter være: E V Hvis en sådan graf består af knuder (vejkryds), så vil den tilhørende adjacency matrix indeholde % ere. Består grafen af 8 knuder, så er antallet reduceret til %, osv. Pointen er, at hvis antallet af kanter i grafen vokser lineært med antallet af knuder, så vil den tilhørende side
4 Grafer / Otto Knudsen -- adjacency matrix indeholder en tiltagende andel af er og dermed blive mere og mere tynd. For at afhjælpe denne problemstilling vil vi vende os mod en anden grafrepræsentation, nemlig adjacency-listen: Adjacency List I adjacency listen opretholdes til hver knude en lænket liste bestående af naboknuder. Bemærk, at hvis grafen er ikke-orienteret, så vil alle kanter ( u, v) forekomme i to lister. Herunder er adjacency-listen for grafen tidligere i afsnittet vist: Adjacency list Pladskompleksiteten for denne type grafrepræsentation er O ( E + V ), og den er således lineær i forhold til grafens størrelse. Dette gør den anvendelig til grafer, der ikke er fuldstændige, hvorimod matrix-repræsentationen er god, når det drejer sig om fuldstændige eller næstenfuldstændige grafer. Eksempel Orienteret graf Orienteret graf Adjacency Matrix Adjacency List Eksempel Ikke-orienteret graf Ikke-orienteret graf Adjacency Matrix Adjacency List Bemærk, at i adjacency matrix-repræsentationen er det reelt kun den øvre (eller nedre) matrix, der anvendes, idet celleværdierne spejles i diagonalen. Man kan betragte en ikke-orienteret kant som to parallelle og modsatrettede orienterede kanter. Dette forhold betyder desuden, at knuderne optræder to gange i adjacency list repræsentationen. side
5 Grafer / Otto Knudsen -- Grafgennemløb Da grafer er meget mere komplicerede objekter, skulle man tro, at der var et væld af gennemløbsmetoder. Litteraturen indskrænker sig dog sædvanligvis til to typer: Bredde-førstsøgning (BFS) og Dybde-først-søgning (DFS). BFS Med udgangspunkt i en given knude besøger bredde-først-søgningen først sine naboer, (dvs. de knuder, hvortil den aktuelle knude er forbundet), og derefter sine naboers naboer. På denne vis breder søgningen sig som ringe i vandet, indtil alle grafens knuder er besøgt. Om grafen skal naturligvis gælde, at den er sammenhængende. Den resulterende graf er et træ, der udspænder alle de knuder, det er muligt at nå fra udgangspunktet. A B C G E D F H I Fig: Ikke-orienteret graf Når algoritmen bevæger sig gennem en graf ( V, E), så udgør E E mængden af kanter, som er besøgt. Vi vil for illustrationens skyld udstyre knuderne med en attribut farve, hvor hvid angiver, at knuden er ubesøgt; grå at knuden er opdaget, men ikke undersøgt; og endelig sort, som angiver, at knuden er færdigbehandlet. Præ: G=(V, E) er en sammenhængende graf, s er startknuden BFS(s) Q for alle knuder u V\{s} u.farve hvid s.farve grå Q.enqueue(s) sålænge Q u Q.dequeue() for alle knuder v Adj(u) // alle naboer til u hvis v.farve = hvid v.farve grå Q.enqueue(v) u.farve sort side
6 Grafer / Otto Knudsen -- Tidskompleksiteten for løkken, hvor nabolisten til hver knude inspiceres, er O ( E ), da den samlede længde af disse lister er Θ ( E ). Med initialiseringen bliver algoritmens tidskompleksitet i alt O ( V + E ) Dybde-først-søgning Når dybde-først-algoritmen bevæger sig gennem en graf ( V, E), så udgør E E mængden af kanter, som er besøgt. Vi vil også her udstyre knuderne med en attribut farve, som angiver, hvorvidt knuden er hhv. ubesøgt, opdaget eller færdigbehandlet. Bemærk, at dybde-først-algoritmen skynder sig at komme så langt væk fra sit udgangspunkt som muligt, idet den gemmer de nære knuder til sidst. DFS Dybde-først-søgning formuleres bedst rekursivt. Se følgende pseudokode: Præ: (V, E) er en ikke-orienteret, sammenhængende graf DFS(u) u.farve grå for alle knuder v Adj(u) // alle naboer til u hvis v.farve = hvid DFS(v) u.farve sort Traverseringen startes med følgende initialiseringer: For alle knuder u V u.farve hvid u vilkårlig knude DFS(u) Bemærk, at algoritmen besøger samtlige knuder i grafen, da den er sammenhængende. Tidskompleksiteten for DFS-algoritmen, er O ( V + E ). Ligesom ved BFS er tidskompleksiteten for løkken, hvor nabolisten til hver knude inspiceres Θ ( E ), medens initialiseringen tager O (V ). Algoritmen udført på grafen fra tidligere kunne fx beskrives ved følgende sekvens, hvor indrykningen beskriver rekursionsdybden. DFS(A) DFS(B) DFS(C) DFS(D) DFS(E) DFS(F) DFS(G) DFS(H) DFS(I) Algoritmen besøger samtlige knuder i grafen, hvis den er sammenhængende. side
7 Grafer / Otto Knudsen -- Såfremt vi ikke ved, om grafen er sammenhængende, så vil vi i stedet for foretage følgende initialiseringer: Eulergraf For alle knuder u V u.farve hvid For alle knuder u V Hvis u.farve = hvid DFS(u) En Euler-graf er en graf, der indeholder en Euler-tur, som defineres ved følgende: Eulertur En Euler-tur er en kreds i en sammenhængende orienteret graf G = (V, E), som gennemløber hver kant netop én gang. Knuderne må gerne passeres flere gange. Det kan vises, at G har en Euler-tur, hvis og kun hvis der for alle knuder i grafen gælder, at: indgrad(v) = udgrad(v) Det følger endvidere af ovenstående, at en Euler-tur kun kan starte og slutte i samme knude, hvis samtlige knuder har lige grad. Hvis der findes knuder af ulige grad i grafen, så må der maksimalt være to (Der vil altid være et lige antal!) og turen må så nødvendigvis starte i den ene og ende i den anden. Baggrund Gennem byen Königsberg i Østprøjsen, (nu Kaliningrad, Rusland), løber floden Prengel. I 7- tallet var der syv broer, som forbandt byen, og det var blandt det bedre borgerskab en yndet tradition at lægge sin spadseretur rundt i byen, så man krydsede alle syv broer. Herved opstod spørgsmålet, om det var muligt at tilrettelægge sin tur, så man passerede hver bro netop én gang. Dette problem var i mange år uløst, indtil man rådspurgte matematikeren Leonhard Euler, der på det tidspunkt (7) arbejdede i Skt. Petersborg. Han viste ovenstående, og er siden blevet betragtet som den moderne grafteoris fader. Prengel Kneiphoff Floden Prengels løb gennem Königsberg, som det så ud på Eulers tid (77-8) Graf, hvor knuderne illustrerer de fire landmasser og kanterne de syv broer. Tallene angiver knudernes grader side 7
8 Grafer / Otto Knudsen -- Topologisk sortering For orienterede grafer er kravet om (stærk) sammenhæng meget restriktivt, idet en stærkt sammenhængende orienteret graf nødvendigvis indeholder kredse. Topologisk Sortering Algoritme nr. Vi skal herunder se på en modificeret DFS, hvor vi vil sørge for, at skoven kommer til at bestå af orienterede træer. Dette opnås ved at lade de nye skud være orienterede. Præ: (V, E) er en orienteret, acyklisk graf Post: Stak af knuder, der er topologisk ordnet DFS(u) u.farve grå for alle v Adj(u) // alle naboer til u hvis v.farve = hvid DFS(v) S.push(u) u.farve sort Traverseringen startes med følgende initialiseringer: S for alle knuder u V u.farve hvid for alle knuder u V Hvis u.farve = hvid DFS(u) Tidskompleksiteten for denne algoritme, er ligesom for dybde først-søgningen på ikkeorienterede grafer O ( V + E ). Stakken indeholder nu en ordning af grafens elementer. Denne ordning eller sortering kaldes, (uvist af hvilken grund), for topologisk sortering. Om topologisk sortering kan følgende siges: Givet en orienteret graf, der fx beskriver afhængighederne mellem grafens elementer udtrykt i orienteringen af kanterne mellem knuderne. En topologisk sortering er en følge af knuder, der ikke bryder med disses afhængigheder. En topologisk sortering er ikke mulig, hvis grafen indeholder kredse, da der for to knuder u og v, således må gælde, at u kommer før v, og v samtidig kommer før u. En topologisk sortering er ikke nødvendigvis entydig, se følgende eksempel: V V V V V V V 7 side 8
9 Grafer / Otto Knudsen -- Begge følger: v, v og v, v, v, v, v7,, v, v, v, v7, v, v v udgør en topologisk ordning af knuderne i ovenstående graf. Topologisk Sortering Algoritme nr. Hvis den forrige algoritme synes kompliceret, så gives herunder en særdeles simpel algoritme:. Find en knude med indgrad (nul). Udskriv knuden. Fjern knuden sammen med dens kanter. Gentag, indtil alle knuder er fjernet Knuderne er nu udskrevet i en topologisk ordning. Omkostningen forbundet med punkt er O (V ), da alle knuder nødvendigvis må gennemløbes for at finde en knude med indgrad =. Punkterne gennemføres i alt V gange, hvorfor algoritmens samlede tidskompleksitet må være O(V ). Topologisk Sortering Algoritme nr. Vi ved, det kan gøres bedre, så lad os se på følgende forbedrede version af sidste algoritme:. Saml alle knuder med indgrad = i en kø. Fjern én knude ad gangen, og opdatér samtidig indgraden på dens naboer. Hvis en knudes indgrad falder til nul, så placeres den i køen Hvis det antages, at knuderne allerede findes i en adjacency-liste, og at indgraderne på forhånd er beregnet, så fås en tidskompleksitet på O ( V + E ). side 9
10 Grafer / Otto Knudsen -- Korteste sti Problemet med at finde den korteste sti mellem to vilkårlige knuder i en graf er et af de klassiske problemer inden for grafalgoritmer. Problemet kan beskrives på følgende måde: Givet en vægtet orienteret graf G = (V, E) med en vægtfunktion w, som afbilder kantmængden over i de reelle tal. Vægten af en sti p v, v,..., er lig med summen af kanternes vægte: = vk k i i ) w( p) = w v v = ( i, Hvis grafen ikke er vægtet er summen lig med k, (antallet af kanter mellem knuderne). Korteste sti fra knude u til v defineres ved: p δ ( u, v) = min{ w( p) : u v} hvor u p v angiver stien mellem u og v, hvis denne findes. Korteste sti fra u til v defineres således som enhver sti p med w( p) = δ ( u, v). Der findes adskillige algoritmer til at løse korteste sti-problemet, alt efter hvorledes grafen er defineret. Problemet findes i flere variationer: Variationer af korteste sti-problemet Single source shortest path Givet en graf G = ( V, E) og en knude s (source). Find korteste sti fra s til enhver anden knude v V i grafen. Single destination shortest path Givet en graf G = ( V, E) og en knude t (sink). Find korteste sti til t fra enhver anden knude v V i grafen. Problemet løses ved at vende retningen på alle kanter og anvende single source shortest path-algoritmen med t som argument. Single pair shortest path Givet en graf G = ( V, E). Find korteste sti fra u til v for et givent knudepar (u, v). Dette problem løses også vha. single source shortest path-algoritmen. Der kendes ingen algoritmer, der kører asymptotisk bedre end single source shortest path-algoritmen All pairs shortest path Givet en graf G = ( V, E). Find korteste sti fra u til v for alle par (u, v). Problem løses ved at løse single source shortest path-problemet på hver knude. Problemet kan også løses som et selvstændigt problem. Negative kredse Hvis grafen indeholder kredse med negativ vægt, så er korteste sti-problemet udefineret. side
11 Grafer / Otto Knudsen -- Korteste sti-træ Et korteste sti-træ er en orienteret delgraf G = ( V, E ), hvor V V og E E, hvor følgende gælder: G er et træ med rod i s V er mængden af knuder, som kan nås fra s For enhver knude v V gælder, at den entydige simple sti fra s til v i G er en korteste sti fra s til v i G. Korteste stier er ikke nødvendigvis entydige, ej heller korteste sti-træer. Algoritmerne Bredde først søgning (Moore) BFS (Moore s algoritme) er en korteste sti-algoritme, som virker på ikke-vægtede sammenhængende grafer eller grafer, hvor hver kant er vægtet med én. Dijkstra Dijkstra s algoritme forudsætter, at grafen ikke indeholder negative vægte. Bellman-Ford Bellman-Ford s algoritme kan godt håndtere negative vægte; men den tillader ikke negative kredse. Ydermere kan algoritmen detektere og rapportere negative kredse, hvis disse forefindes. Floyd-Warshall Floyd-Warchall s algoritme kan også håndtere negative vægte, og kan i lighed med Bellman- Ford s algoritme detektere negative kredse. side
12 Grafer / Otto Knudsen -- Moore s algoritme Den første algoritme, som vi skal kigge på går ofte under navnet Moore s algorime. Algoritmen finder den korteste sti i en ikke-orienteret og ikke-vægtet graf og er blot en modifikation af BFSalgoritmen. Modifikationen går ud på, at man tillige vedligeholder en afstands- og forgængerattribut på knuden, hvor værdien af afstandsattributten angiver knudens afstand fra udgangsknuden; medens den korteste sti kan findes vha. backtracking gennem forgængerattributterne: Præ: G=(V, E) er en ikke-vægtet graf, s er startknuden Post: Alle knuder er mærket med afstanden fra s Moore(G, s) Q for alle knuder u V\{s} u.farve hvid u.afstand u.forgænger null s.farve grå s. afstand s.forgænger null Q.enqueue(s) sålænge Q u Q.dequeue() for alle v Adj(u): hvis v.farve = hvid v.farve grå v.afstand u.afstand + v.forgænger u Q.enqueue(v) u.farve sort Tidskompleksiteten for Moore s algoritme er med samme argumenter som for BFS lig med O ( V + E ). Det vil sandsynligvis være sværere at finde den korteste sti i en vægtet graf, så derfor må vi være forberedte på, at den algoritme, vi finder frem til, har en større tidskompleksitet. Dijkstra Dijkstra s algoritme anvender en teknik, der kaldes relaxering. Relaxeringsteknikken går ud på, at man løbende på hver knude nedskriver den øvre grænse på værdien af den korteste sti fra udgangsknuden s til den givne knude. Denne proces fortsætter indtil den øvre grænse er lig med den korteste sti. Relaxering Relaxér(u, v) hvis v.afstand > u.afstand + w(u, v) v.afstand u.afstand + w(u, v) v.forgænger u hvor w betegner kantvægten. Teknikken går som sagt ud på, at man vedligeholder en attribut afstand, som er et estimat en øvre grænse på værdien af den korteste sti fra s til v. side
13 Grafer / Otto Knudsen -- u v u v 9 Relaxér(u,v) Relaxér(u,v) u v u v 7 Fig: Relaxering På ovenstående figur er relaxeringen på kanten (u, v) vist. Tallet inde i knuden angiver det aktuelle korteste sti-estimat, medens tallet på kanten angiver vægten w. Da v.afstand > u.afstand + w(u, v) i figuren til venstre, så relaxeres estimatet på knude v fra 9 til 7. I figuren til højre er v.afstand u.afstand + w(u, v) og estimatet forbliver uændret. Initialisering Initialisér(G, s) for alle knuder u V u.afstand u.forgænger null s.afstand Initialiseringen sætter afstands-attributten på alle knuder til, på nær startknuden selv, som har afstands-attributten. Forgænger-attributten anvendes også her til slutteligt at afrapportere den korteste sti vha. backtracking. Dijkstra Præ: G=(V, E) er en vægtet graf uden negative vægte. Vægtfunktionen er givet ved w, s er startknuden Post: Alle knuder er mærket med afstanden fra s Dijkstra(G, s) Initialisér(G, s) Q V // liste indeholdende alle grafens knuder sålænge Q u Q.deleteMin() // udtræk knuden med mindste afstand for alle v Adj(u) // alle naboer til u Relaxér(u, v) Algoritmen arbejder sig gennem grafens knuder ved altid grådigt at vælge den forhåndenværende bedste knude, dvs. knuden med det mindste estimat i afstands-attributten. Derefter relaxeres kanterne til knudens naboer. På denne vis relaxeres hver kant i grafen netop én gang. Dette grådige valg tvinger algoritmen mod en hurtig terminering, men det er på den anden side også dette valg, der fratager algoritmen evnen til at håndtere negative vægte Tidskompleksiteten for algoritmen er O ( E + V ) = O( V ), da Q.deleteMin() koster O (V ), og denne operation foretages i alt V gange; dernæst gennemløbes samtlige kanter i for-løkken. Hvis Q implementeres som en prioritetskø, kan tidskomplesiteten mindskes til O ( E + V logv ). side
14 Grafer / Otto Knudsen -- Bellman-Ford. I lighed med Dijkstra s algoritme, så anvender Bellman-Ford s algoritme også relaxeringsteknikken, hvor man løbende estimerer den øvre grænse på værdien af den korteste sti mellem knuderne. Proceduren fortsætter, indtil grænsen er lig med den korteste sti, og dette er opnået efter V iterationer, under forudsætning af, at grafen ikke indeholder negative kredse. Algoritmen kan desuden udvides, så den detekterer og rapporterer, hvis grafen indeholder negative kredse. Bellman-Ford Præ: G=(V, E) er en vægtet graf med vægtfkt. w, s er startknuden Post: Alle kanter er mærket med afstanden fra s. Bellman-Ford(G, s) Initialisér(G, s) for i til V - for alle (u, v) E Relaxér(u, v) Algoritmen kan udvides med følgende linjer, således at den returnerer den boolske værdi FALSK, hvis grafen indeholder negative kredse: for alle (u, v) E hvis v.afstand > u.afstand + w(u, v) returnér FALSK returnér SAND Algoritmens tidskompleksitet er O ( V E ), hvilket er dårligere end Dijkstra s. Floyd-Warshall (All pair shortest path) Herunder gives en algoritme til beregning af den korteste afstand mellem alle par af knuder i en graf. Lad V = { v, v,..., vn}. Vi vil definere dst (k), k>, som vægten af den korteste sti mellem s og t blandt de stier mellem s og t, der kun indeholder kanter fra v, v,..., v }, men ikke { k { v k+, vk+,..., vn}. For k = er dst (k) vægten af kanten mellem s og t, hvis en sådan eksisterer, ellers. Floyd-Warshall Præ: G=(V, E) er en vægtet graf med vægtfunktion w d () ij = w(v i, v j ) - vægten af kanten mellem v i og v j: ellers Post: d (k) ij er vægten af korteste sti mellem v i og v j Floyd-Warshall(G) for i til V for j til V for k til V d ij (k) min{d ij (k-), d ik (k-) + d kj (k-) } Der er negative kredse i grafen, hvis d ii (k) <. Algoritmens tidskompleksitet er ikke overraskende O ( V ). side
15 Grafer / Otto Knudsen -- Minimum udspændende træ Et ofte stillet spørgsmål i forbindelse med grafer er: Hvorledes kan man forbinde samtlige grafens knuder, med den mindste omkostning til følge?. For at svare på spørgsmålet, skal vi først have et par definitioner på banen: Udspændende træ (definition) Et træ, der indeholder alle knuder V fra en graf G=(V, E), og hvis kanter E tilhører E kaldes et udspændende træ for G. Minimum udspændende træ Som det måske antydes i definitionen, så kan der findes flere sådanne træer i en given graf. Det træ blandt disse udspændende træer, der har den mindste længde (vægt), kaldes for et minimum udspændende træ, MST fra engelsk: minimum spanning tree. Dette træ er heller ikke entydigt; der kan godt være flere udspændende træer med minimal længde. Et MST er netop det, vi søgte efter, da vi stillede vores oprindelige spørgsmål. Vi skal herunder se på to af de mest prominente algoritmer til at finde et MST i en graf. Inden da vil vi definere et MST mere formelt: Definition på et MST Givet en sammenhængende og ikke-orienteret graf G=(V, E) En acyklisk delgraf T E, som forbinder alle knuder i grafen G, med en samlet vægt på w( T ) = w( u, v), som er minimal, kaldes et MST. u v T (, ) Bemærk, at et MST indeholder V kanter. En generel metode til at finde et MST kan gives ved følgende pseudo-kode, der så at sige gror et træ: MST() A // A er en delmængde af et udspændende træ Sålænge A ikke er et udspændende træ find (u, v) E, som er en sikker kant til A A A {(u, v)} returnér A Mængden A er på ethvert tidspunkt i løbet af algoritmens afvikling en delmængde af et udspændende træ. Et sådant udsagn, der er statisk kaldes for en invariant. Invariant: A er en delmængde af et udspændende træ Ovenstående pseudokode fordrer nok en forklaring på begrebet en sikker kant. En sikker kant er en kant, med minimum vægt, der kan føjes til mængden A, således at A stadig udgør en delmængde af et udspændende træ. Se figur. side
16 Grafer / Otto Knudsen -- S a 8 7 b c d i 9 e V \ S 8 7 h g f Fig: Mængden A er de tykke grå streger. En kant med minimum vægt, som krydser adskillelsen mellem S og S\V kaldes en sikker kant. En metode til at finde et MST skyldes Kruskal. Han anvender en grådig strategi, idet han hele tiden udvælger en kant med minimal vægt, og lader den indgå i løsningen, såfremt den ikke skaber en kreds. Kruskal Kruskal() A // A er en delmængde af et udspændende træ for alle knuder u V MakeDisjointSet(u) sortér grafens kanter efter ikke-faldende orden for alle kanter (u, v) E efter ikke-faldende orden hvis find(u) find(v) A A {(u, v)} union(u, v) returnér A Med henvisning til ovenstående pseudokode, så kan følgende siges om Kruskal: Invarianten A er en skov En sikker kant er en kant med mindst vægt, der forbinder to uafhængige dele af grafen Kruskal vedligeholder således en skov at træer. Til at starte med er der V træer, der hver især består af én knude. Når en kant tilføjes, så samles to træer til ét, og algoritmen terminerer, når der kun er ét træ i skoven. Prim Prim() Q V // Placér alle knuder i en prioritetskø for alle knuder u Q u.nøgle rod.nøgle rod.forgænger null sålænge Q u Q.deleteMin() for alle knuder v Adj(u) hvis v Q AND w(u, v) < v.nøgle v.nøgle w(u, v) v.forgænger u Med henvisning til ovenstående pseudokode, så kan følgende siges om Prim: side
17 Grafer / Otto Knudsen -- Invarianten A er et træ En sikker kant er en kant med mindst vægt, der forbinder træet med en knude, som ikke i forvejen er i træet Prim gror således et træ én kant ad gangen med udgangspunkt i en vilkårlig knude. For hvert skridt vælges en kant med minimal vægt fra en knude i træet til en knude, der ikke indgår i træet. Algoritmen terminerer, når alle knuder i grafen er repræsenteret i træet. side 7
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 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 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 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 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 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. 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 mereP2-projektforslag Kombinatorik: grafteori og optimering.
P2-projektforslag Kombinatorik: grafteori og optimering. Vejledere: Leif K. Jørgensen, Diego Ruano 1. februar 2013 1 Indledning Temaet for projekter på 2. semester af matematik-studiet og matematikøkonomi-studiet
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 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 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 mereDMG Bachelor Maj/Juni 2002
Indholdsfortegnelse 1 INDLEDNING... 2 1.1 PROBLEMFORMULERING... 2 1.2 FORMÅL... 2 1.3 MÅL... 2 2 PROBLEMANALYSE... 3 2.1 INDLEDNING... 3 2.2 TRANSPARENTE BROER I COMPUTERNETVÆRK... 3 2.3 ROUTERE I COMPUTERNETVÆRK...
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 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 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 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 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 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 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 mereEt udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè
Opgave 1 è20èè Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives af fçlgende rekursive Trine-type: Type Expr = Sumèplus, minus, times, div: rgs, const: Int, name: Textè Type
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 mereOplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal
Oplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal Datalogisk Institut Aarhus Universitet MasterClass Matematik, Mærsk Mc-Kinney Møller Videncenter, Sorø, 29-31. oktober 2009 Algoritmer: Matricer
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 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 mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereHamilton-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 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 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 mereLineære ligningssystemer
enote 2 1 enote 2 Lineære ligningssystemer Denne enote handler om lineære ligningssystemer, om metoder til at beskrive dem og løse dem, og om hvordan man kan få overblik over løsningsmængdernes struktur.
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 mereGrafteori, Kirsten Rosenkilde, september 2007 1. Grafteori
Grafteori, Kirsten Rosenkilde, september 007 1 1 Grafteori Grafteori Dette er en kort introduktion til de vigtigste begreber i grafteori samt eksempler på opgavetyper inden for emnet. 1.1 Definition af
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 mereEt udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
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 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 mereDATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =
Læs mere9.1 Egenværdier og egenvektorer
SEKTION 9.1 EGENVÆRDIER OG EGENVEKTORER 9.1 Egenværdier og egenvektorer Definition 9.1.1 1. Lad V være et F-vektorrum; og lad T : V V være en lineær transformation. λ F er en egenværdi for T, hvis der
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 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 mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereHøjere Teknisk Eksamen maj 2008. Matematik A. Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING. Undervisningsministeriet
Højere Teknisk Eksamen maj 2008 HTX081-MAA Matematik A Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING Undervisningsministeriet Fra onsdag den 28. maj til torsdag den 29. maj 2008 Forord
Læs mereSkriftlig 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 mereMatematik A. Studentereksamen. Ny ordning. Forberedelsesmateriale. ny-stx191-mat/a
Matematik A Studentereksamen Ny ordning Forberedelsesmateriale ny-stx191-mat/a-24042019 Onsdag den 24. april 2019 Forberedelsesmateriale til stx-a MATEMATIK Der skal afsættes 6 timer af holdets sædvanlige
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 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 mereDansk Datalogi Dyst 2015 DDD Runde 2
. 19. februar, 2015 linetest DK v1.0 Line Test Sigurd er begyndt i gymnasiet og har lært om linjer på formen f(x) = ax + b. Han har prøvet at tegne nogle linjer på papir for at finde ud af hvilke koordinater
Læs mereFørsteårsprojekt F2008 Flere grafalgoritmer, og visualisering SØGES
Førsteårsprojekt F2008 Flere grafalgoritmer, og visualisering Peter Sestoft 2008-03-11* SØGES 1-2 studerende til Åbent Hus torsdag 10. april kl 1700-1800 Skal kunne fortælle 5-10 minutter om hvad hvordan
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 mereSommeren 2001, opgave 1
Sommeren 2001, opgave 1 Vi antager at k 3, da det ellers er uklart hvordan trekanterne kan sættes sammen i en kreds. Vi ser nu at for hver trekant er der en knude i kredsen, og en spids. Derfor er n =
Læs mereLøs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel
I dag Løsning af NP -hårde optimeringsproblemer Repetition: branch-and-bound Flere begreber Konkret eksempel: TSP Lagrange relaxering Parallel branch-and-bound 1 Opsummering Løsning af NP -hårde optimeringsproblemer
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 mereKapitel 9: Netværksmodeller
Kapitel 9: Netværksmodeller Terminologi: Et netværk eller en JUDI bestar af et sæt punkter samt et sæt linier, der forbinder par af punkter; netværket betegnes som komplet, hvis ethvert par af punkter
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 mereVæ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 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 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 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 mereGrafteori. 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 mereKapitel 9: Netværksmodeller
Kapitel 9: Netværksmodeller Terminologi: Et netværk eller en graf bestar af et sæt punkter samt et sæt linier, der forbinder par af punkter; netværket betegnes som komplet, hvis ethvert par af punkter
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 mereDM72 Diskret matematik med anvendelser
DM72 Diskret matematik med anvendelser En hurtig gennemgang af de vigtigste resultater. (Dvs. ikke alle resultater). Logik Åbne udsagn 2 + 3 = 5 Prædikater og kvantorer P (x) := x er et primtal x N : n
Læs merei x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0
BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den
Læs mereDifferentialregning Infinitesimalregning
Udgave 2.1 Differentialregning Infinitesimalregning Noterne gennemgår begreberne differentialregning, og anskuer dette som et derligere redskab til vækst og funktioner. Noterne er supplement til kapitel
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 mereGrafteori. 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 mereEksempler på elevbesvarelser af gådedelen:
Eksempler på elevbesvarelser af gådedelen: Elevbesvarelser svinger ikke overraskende i kvalitet - fra meget ufuldstændige besvarelser, hvor de fx glemmer at forklare hvad gåden går ud på, eller glemmer
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 mereSynopsis: Titel: Flugtveje. Tema: Algoritmer og netværk. Projektperiode: P2, forårssemesteret 2010. Projektgruppe: A312
Flugtveje [1] A312 Jens Stokholm Høngaard Kristian Pilegaard Jensen Thomas Birch Mogensen Niels Asger Aunsborg Nicolai Vesterholt Søndergaard Daniel Agerskov Heidemann Jensen 18. maj 2010 I II Det Teknisk-Naturvidenskabelige
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 mereReeksamen 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 mereReeksamen i Diskret Matematik
Reeksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet Torsdag den 9. august, 202. Kl. 9-3. Nærværende eksamenssæt består af 9 nummererede sider med ialt 2 opgaver.
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 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 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 mereKom/IT rapport Grafisk design Anders H og Mikael
Kom/IT rapport Grafisk design Anders H og Mikael Denne rapport i grafisk design, vil tage udgangspunkt i den PowerPoint præsentation vi lavede i forbindelse med en opgave i samfundsfag. Rapporten er inddelt
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 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 mereBjælkeoptimering. Opgave #1. Afleveret: 2005.10.03 Version: 2 Revideret: 2005.11.07. 11968 Optimering, ressourcer og miljø. Anders Løvschal, s022365
Bjælkeoptimering Opgave # Titel: Bjælkeoptimering Afleveret: 005.0.0 Version: Revideret: 005..07 DTU-kursus: Underviser: Studerende: 968 Optimering, ressourcer og miljø Niels-Jørgen Aagaard Teddy Olsen,
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 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 mereDefinition (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 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 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 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 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 mereDeskriptiv statistik. Version 2.1. Noterne er et supplement til Vejen til matematik AB1. Henrik S. Hansen, Sct. Knuds Gymnasium
Deskriptiv (beskrivende) statistik er den disciplin, der trækker de væsentligste oplysninger ud af et ofte uoverskueligt materiale. Det sker f.eks. ved at konstruere forskellige deskriptorer, d.v.s. regnestørrelser,
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 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 mereAppendiks 1: Om baggrund og teori bag valg af skala
Appendiks 1: Om baggrund og teori bag valg af skala De nationale test gav i 2010 for første gang danske lærere mulighed for at foretage en egentlig måling på en skala af deres elevers præstationer på grundlag
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 mereM=3 kunde forbindelse. oprettet lokation Steinerkant
M=3 åben facilitet kunde forbindelse lukket facilitet oprettet lokation Steinerkant v Connected facility location-problemet min i f i y i + d j c ij x ij + M c e z e (1) j i e hvorom gælder: x ij 1 j (2)
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 mereFig. 1 Billede af de 60 terninger på mit skrivebord
Simulation af χ 2 - fordeling John Andersen Introduktion En dag kastede jeg 60 terninger Fig. 1 Billede af de 60 terninger på mit skrivebord For at danne mig et billede af hyppighederne flyttede jeg rundt
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 mereAlgorithms & Architectures I 2. lektion
Algorithms & Architectures I 2. lektion Design-teknikker: Divide-and-conquer Rekursive algoritmer (Recurrences) Dynamisk programmering Greedy algorithms Backtracking Dagens lektion Case eksempel: Triple
Læs mere