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

Relaterede dokumenter
.. 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)}

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Danmarks Tekniske Universitet

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

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Mindste udspændende træ

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

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

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Danmarks Tekniske Universitet

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) 2. n 2 + log n 3 n. n n (log n)

Datastrukturer (recap)

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer og hobe. Philip Bille

Danmarks Tekniske Universitet

Datastrukturer (recap)

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Danmarks Tekniske Universitet

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

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

Algoritmisk geometri

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Mindste udspændende træ

Danmarks Tekniske Universitet

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

Danmarks Tekniske Universitet

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

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

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

Hamilton-veje og kredse:

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Sortering. Eksempel: De n tal i sorteret orden

Datastrukturer (recap) Datastruktur = data + operationer herpå

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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

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

Danmarks Tekniske Universitet

Sommeren 2001, opgave 1

Sortering af information er en fundamental og central opgave.

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

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

Træer. Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/

Søgetræer: Generel repræsentation af (sorterede) mængder og funktioner Databasesystemer...

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

Danmarks Tekniske Universitet

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

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

Minimum udspændende Træer (MST)

Danmarks Tekniske Universitet

Om binære søgetræer i Java

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Grafer og graf-gennemløb

Grafer og graf-gennemløb

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

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Symmetrisk Traveling Salesman Problemet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Dynamisk programmering. Flere eksempler

Skriftlig eksamen i Datalogi

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn

Binære søgetræer og skiplister

Dynamisk programmering. Flere eksempler

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype.

DM507 Algoritmer og datastrukturer

K 7 - og K 4,4 -minors i grafer

Netværksalgoritmer 1

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Grafer og graf-gennemløb

DM507 Algoritmer og datastrukturer

Transkript:

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 grafen. Definition : Rootede træ er en træ hvori et punkt v er valgt som værende rod og enhver kant derefter er rettet væk mod dette punkt. Definition : Et Rootede træ T kaldes et m-ary træ hvis ethvert indre punkt højst har m børn. Et ordnet rooted træ er et rooted træ hvor børnene til ethvert indre punkt er ordnet. Hvis m = 2 da kaldes et m-ary ordnet træ et binært træ. 1

Egenskaber for træer Et træ med n punkter har n 1 kanter. Et m-ary træ med i indre punkter har højst mi + 1 punkter. Hvis højden h af et rooted træ defineres som længden af den længste vej deri da gælder at et m-ary træ højst har m h blade (og der gælder lighed hvis m er fyldt). Hvis et m-ary træ har højde h og l blade da er h log m l. Hvis træet er fuldt og balanceret da gælder at h = log m l. Højden af et rooted træ defineres som længden af længste vej deri. Anvendelser af træer Binære søge træer (og andre søgetræer) Beslutningstræer komprimering 2

komprimering Simpel komprimering : præfiks koder. Målet er at omdanne almindelige strenge til binære strenge med mindst mulig længde. Ide : De k bogstaver i det givne alfabet laves om til strengene 0,10,110,1110,,11 110,11 11 (her har de to sidste strenge længde k 1) således bogstaver som oftest benyttes omdannes til 0, 10,110, osv. Konvertering kan repræsenteres ved binært træ. 3

Huffman 1. procedure huffman(c : Symboler a i med frekvenser w i, i=1,..., n) 2. F:= en skov med n rooted træer hver med et punkt a i og vægt w i. 3. while F ikke er et træ do 4. Erstat de to træer T og T (w(t) w(t )) fra F med mindst vægt med et træ der fås ved at tilføje et nyt punkt som vælges som rod, og derefter tilføje kanter fra dette punkt til roden i T og T og giv disse kanter labels hhv. 0 og 1 (Det nye træ har T som sit venstre deltræ og T som sit højre deltræ). Tildel vægten w(t) + w(t ) til det nye træ. 5. Huffmankodningen for et symbol a i er da konkatenationen af de labels som er på kanterne i den entydige vej mellem roden i F og punktet a i. Bemærk : Grådig algoritme men dog optimal. 4

Traversering af træer preorder inorder postorder Definition : Lad T være et ordnet rooted træ med rod r. Hvis T kun består af r da er r preorder Traverseringen af T. Ellers antag at T 1,...,T n er deltræerne under r fra venstre til højre. Da fås preorder Traverseringen som r, efterfulgt af preorder Traverseringen af T 1, efterfulgt af preorder Traverseringen af T 2,, efterfulgt af preorder Traverseringen af T n (i deltræerne benyttes naboen til r som rod og samme ordning benyttes som ved T). 5

Definition : Lad T være et ordnet rooted træ med rod r. Hvis T kun består af r da er r inorder Traverseringen af T. Ellers antag at T 1,...,T n er deltræerne under r fra venstre til højre. Da fås inorder Traverseringen som inorder Traverseringen af T 1, efterfulgt af r, efterfulgt af inorder Traverseringen af T 2,, efterfulgt af inorder Traverseringen af T n (i deltræerne benyttes naboen til r som rod og samme ordning benyttes som ved T). Definition : Lad T være et ordnet rooted træ med rod r. Hvis T kun består af r da er r postorder Traverseringen af T. Ellers antag at T 1,...,T n er deltræerne under r fra venstre til højre. Da fås postorder Traverseringen som posrorder Traverseringen af T 1, efterfulgt af postorder Traverseringen af T 2,, efterfulgt af postorder Traverseringen af T n efterfulgt af r (i deltræerne benyttes naboen til r som rod og samme ordning benyttes som ved T). 6

1. procedure preorder(t : ordnet rooted træ) 2. r:= rod for T 3. list r 4. for hvert barn c af r fra venstre mod højre do 5. T(c):= deltræ med c som rod 6. preorder(t(c)) 7

Udspændende træer Definition : Hvis G er en simpel graf da er et træ T et udspændende træ for G hvis T er en delgraf af G med alle punkter fra G. Sætning : En simpel graf er sammenhængende hvis og kun hvis grafen har et udspændende træ. 8

Konstruktion af udspændende træ via dybde og breds først søgning 1. procedure dfs(g : samh. graf med punkter v 1,...,v n ) 2. T:= træet der kun består af punktet v 1. 3. besøg (v 1 ) 4. procedure besøg(v: punkt i G) 5. for hver nabo w til v som ikke er i T do 6. tilføj w og {v, w} til T 7. besøg(w) 8. return T Kompleksitet : O(e) (derved også O(n 2 )). 9

1. procedure BFS(G : samh. graf med punkter v 1,...,v n ) 2. T:= træet der kun består af punktet v 1. 3. L:= kø kun med elementet v 1. 4. while L ikke er tom do 5. fjern det første punkt v fra køen 6. for hver nabo w til vdo 7. if w ikke er i L eller T then 8. tilføj w til køen L og tilføj w og {v, w} til T 9. return T Kompleksitet : O(e) (derved også O(n 2 )). 10

Minimum udspændende træer Definition : Et minimum udspændende træ i en sammenhængende vægtet graf er et udspændende træ hvori summen af kanternes vægte er minimal. 1. procedure prim(g : samh. vægtet graf med n punkter) 2. T:= en kant med minimal vægt (eller T vælges til at være et punkt) 3. for i:=1 to n-2do (her skal i gå til n 1 hvis T blev valgt til et punkt fra starten) 4. e i := en kant med minimal vægt når e i er incident med et punkt i T og G T. 5. T:=T med kanten e i tilføjet. 6. return T 11

Korrekthed : Lad T være træet der dannes af Prims-algoritme, og lad H være et minimum spannig træ som har så mange kanter som muligt tilfælles med T. Antag at e i er den første algoritme som tilføjes til T som ikke er i H. Lad U være T forinden e i tilføjes (eller et punkt hvis i = 1). Det følger at H + e indeholder en kreds og deri må e i oe en anden kant e 0 gå mellem V (U)ogV (T U). Da e i blev tilføjet ved algoritme er w(e i ) w(e 0 ). Derved er w(h + e i e 0 ) et minimum udspændende træ. Da dette træ har en kant mere tilfælles med T end H havde er der opnået en modstrid. 12

1. procedure kruskal(g : samh. vægtet graf med n punkter) 2. T:= tom graf 3. for i:=1 to n-1do 4. e i := en kant med minimal vægt når e i ikke må være incident med to punkter i T. 5. T:=T med kanten e i tilføjet. 6. return T 13