Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α."— Μεταγράφημα παρουσίασης:

1 Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α Μας δίνεται ένα δένδρο Τ με ρίζα και μια λίστα Λ από ζεύγη κόμβων. Θέλουμε να υπολογίσουμε τον κκπ(x,y ) για κάθε ζεύγος κόμβων {x,y} της Λ. Λ = { {ι,ξ}, {τ,θ}, {ο,μ}, {λ,ι}, {τ,σ}, {λ,π}, {π,σ}, {ξ,ο} }

2 Κοντινότεροι Κοινοί Πρόγονοι Στατικό δένδρο, γνωστά ζεύγη Μας δίνεται ένα δένδρο Τ και μια λίστα Λ από ζεύγη κόμβων. Θέλουμε να υπολογίσουμε τον κκπ(x,y ) για κάθε ζεύγος κόμβων {x,y} της Λ. Στατικό δένδρο, άγνωστα ζεύγη Μας δίνεται ένα δένδρο Τ το οποίο θέλουμε να επεξεργαστούμε ώστε να μπορούμε να υπολογίσουμε γρήγορα τον κκπ(x,y ) για οποιοδήποτε ζεύγος κόμβων {x,y}. Δυναμικό πρόβλημα Το δένδρο Τ μπορεί να μεταβάλλεται.

3 Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(π,σ)=γ ξο Στατικό δένδρο, γνωστά ζεύγη Απλοϊκή λύση για υπολογισμό κκπ(x,y) Ανεβαίνουμε τα μονοπάτια από το x και το y προς τη ρίζα μέχρι να βρούμε τον πρώτο κοινό κόμβο. για ζεύγη

4 Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ ξο Στατικό δένδρο, γνωστά ζεύγη Ιδέα: Συρρικνώνουμε τα μονοπάτια που έχουμε ήδη επεξεργαστεί. Η επεξεργασία των κόμβων πρέπει να γίνει από τα φύλλα προς τη ρίζα α βγ θ δεζ η π ν κλμ ρσ τ ξο συρρίκνωση του ι στον δ κκπ(ι,ξ) = κκπ(δ,ξ)

5 Κοντινότεροι Κοινοί Πρόγονοι Στατικό δένδρο, γνωστά ζεύγη Σε κάθε κόμβο x του δένδρου αποθηκεύουμε μια λίστα κόμβων Επισκεπτόμαστε τους κόμβους σε σειρά μεταδιάταξης του Επεξεργασία κόμβου : Εξετάζουμε τη λίστα Για κάθε κόμβο που έχουμε ήδη επεξεργαστεί Θέτουμε κόμβος στον οποίο έχει συμπιεστεί ο Συρρικνώνουμε τον στον γονέα του στο

6 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 2 2 6 6 1 1 8 8 12 10 16 5 5 9 9 11 14 15 13 α βγ θ δεζ η π ν ι κλμ ρσ τ 3 3 4 4 ξο Λ(ι)={ξ,λ} Λ(ξ)={ι,ο}Λ(ο)={μ,ξ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο}

7 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 2 2 6 6 8 8 12 10 16 5 5 9 9 11 14 15 13 α βγ θ δεζ η π ν κλμ ρσ τ 3 3 4 4 ξο {ι} Λ(ξ)={ι,ο}Λ(ο)={μ,ξ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο}

8 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 6 6 8 8 12 10 16 5 5 9 9 11 14 15 13 α βγ θ εζ η π ν κλμ ρσ τ 3 3 4 4 ξο {ι,δ} Λ(ξ)={ι,ο}Λ(ο)={μ,ξ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} κκπ(ξ,ι)=β

9 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 6 6 8 8 12 10 16 5 5 9 9 11 14 15 13 α βγ θ εζ η π ν κλμ ρσ τ 4 4 ο {ι,δ} Λ(ο)={μ,ξ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} {ξ} κκπ(ο,ξ)=κ

10 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 6 6 8 8 12 10 16 5 5 9 9 11 14 15 13 α βγ θ εζ η π ν κλμ ρσ τ {ι,δ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} {ξ,ο}

11 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 6 6 8 8 12 10 16 9 9 11 14 15 13 α βγ θ εζ η π ν λμ ρσ τ {ι,δ} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} {ξ,ο,κ}

12 Κοντινότεροι Κοινοί Πρόγονοι 19 18 7 7 17 8 8 12 10 16 9 9 11 14 15 13 α βγ θ ζ η π ν λμ ρσ τ {ι,δ,ξ,ο,κ,ε} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο}

13 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 8 8 12 10 16 9 9 11 14 15 13 α γ θ ζ η π ν λμ ρσ τ {ι,δ,ξ,ο,κ,ε,β} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο}

14 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 12 10 16 9 9 11 14 15 13 α γ θ {ζ} η π ν λμ ρσ τ {ι,δ,ξ,ο,κ,ε,β} Λ(λ)={ι,π} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} κκπ(λ,ι)=α

15 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 12 10 16 11 14 15 13 α γ θ {ζ} η π ν μ ρσ τ {ι,δ,ξ,ο,κ,ε,β} {λ} Λ(τ)={θ,σ} Λ(π)={λ,σ}Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} κκπ(π,λ)=η

16 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 12 16 11 14 15 13 α γ θ {ζ} η ν μ ρσ τ {ι,δ,ξ,ο,κ,ε,β} {λ} Λ(τ)={θ,σ} {π} Λ(σ)={τ,π} Λ(θ)={τ} Λ(μ)={ο} κκπ(μ,ο)=α

17 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 12 16 14 15 13 α γ θ {ζ} η ν ρσ τ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ} Λ(τ)={θ,σ} Λ(σ)={τ,π} Λ(θ)={τ}

18 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 16 14 15 13 α γ θ ν ρσ τ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η} Λ(τ)={θ,σ} Λ(σ)={τ,π} Λ(θ)={τ}

19 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 16 14 15 α γ θ ν ρσ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η} {τ} Λ(σ)={τ,π} Λ(θ)={τ}

20 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 16 15 α γ θ ν σ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η} {τ,ρ} Λ(σ)={τ,π} Λ(θ)={τ} κκπ(σ,τ)=ν κκπ(σ,π)=γ

21 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 16 α γ θ ν {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η} {τ,ρ,σ} Λ(θ)={τ}

22 Κοντινότεροι Κοινοί Πρόγονοι 19 18 17 α γ θ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η} {τ,ρ,σ,ν} Λ(θ)={τ} κκπ(θ,τ)=θ

23 Κοντινότεροι Κοινοί Πρόγονοι 19 18 α γ {ι,δ,ξ,ο,κ,ε,β} {λ,π,μ,ζ,η,τ,ρ,σ,ν,θ}

24 Κοντινότεροι Κοινοί Πρόγονοι 19 α {ι,δ,ξ,ο,κ,ε,β,λ,π,μ,ζ,η,τ,ρ,σ,ν,θ,γ}

25 Κοντινότεροι Κοινοί Πρόγονοι Η συρρίκνωση των κόμβων μπορεί να γίνει αποτελεσματικά με μια δομή ένωσης- εύρεσης σε ξένα σύνολα Υποστηρίζει τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση ( α, β ) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση ( α ) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α ένωση ( α, β )

26 Δομή ένωσης-εύρεσης σε ξένα σύνολα Υποστηρίζει τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση ( α, β ) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση ( α ) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 ένωση(3,6) εύρεση(2) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» όνομα συνόλου = ρίζα δένδρου

27 Δομή ένωσης-εύρεσης σε ξένα σύνολα Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί Αρχικά κάθε αντικείμενο αποτελεί ένα ξεχωριστό σύνολο μεγέθους 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Χρησιμοποιούμε πίνακες και μεγέθους για Αρχικοποίηση : Δομή «σταθμισμένης ένωσης» Κάθε σύνολο έχει ένα αντιπρόσωπο. Αν το αντικείμενο k είναι αντιπρόσωπος τότε ισχύει ότι και το σύνολο έχει αντικείμενα

28 Δομή ένωσης-εύρεσης σε ξένα σύνολα Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί δείκτης σε αντικείμενο του συνόλου που περιέχει το k ένωση ( i, j ) : Εκτελούμε p=εύρεση ( i ) και q=εύρεση ( j ). Αν το σύνολο του q έχει περισσότερα αντικείμενα από το σύνολο του p θέτουμε. Διαφορετικά θέτουμε. εύρεση ( i ) : Ξεκινώντας από το i ακολουθούμε τους δείκτες μέχρι να βρούμε αντικείμενο j τέτοιο ώστε. Επιστρέφουμε τo j. Χρησιμοποιούμε πίνακες και μεγέθους αριθμός αντικειμένων του συνόλου με αντιπρόσωπο k Δομή «σταθμισμένης ένωσης»

29 Δομή ένωσης-εύρεσης σε ξένα σύνολα void union(int i, int j) { int p = find(i); int q = find(j); if (p == q) return; if (size[q] > size[p]) { parent[p] = q; size[q] += size[p]; } else { parent[q] = p; size[p] += size[q]; } void find(int i) { int j = i; while (j != parent[j]) j = parent[j]; return j; } Δομή «σταθμισμένης ένωσης»

30 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

31 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

32 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

33 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

34 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

35 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

36 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

37 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

38 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

39 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

40 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 δάσος ένωσης-εύρεσης (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) ακολουθία ενώσεων

41 Δομή ένωσης-εύρεσης σε ξένα σύνολα Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Δομή «σταθμισμένης ένωσης»

42 Δομή ένωσης-εύρεσης σε ξένα σύνολα Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 ένωση(1,3), ένωση(5,7) Δομή «σταθμισμένης ένωσης»

43 Δομή ένωσης-εύρεσης σε ξένα σύνολα Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 ένωση(1,3), ένωση(5,7) ένωση(1,5) Δομή «σταθμισμένης ένωσης»

44 Δομή ένωσης-εύρεσης σε ξένα σύνολα Ομοίως, για ένωση(9,10), ένωση(11,12), ένωση(13,14), ένωση(15,16) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 ένωση(9,11), ένωση(13,15) ένωση(9,13) 9 9 10 11 12 13 14 15 16 Δομή «σταθμισμένης ένωσης»

45 Δομή ένωσης-εύρεσης σε ξένα σύνολα ένωση(1,9) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 12 13 14 15 16 Δομή «σταθμισμένης ένωσης»

46 Δομή ένωσης-εύρεσης σε ξένα σύνολα 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 12 13 14 15 16 ο μέγιστος αριθμός των δεικτών μέχρι τη ρίζα είναι Δομή «σταθμισμένης ένωσης»

47 Δομή ένωσης-εύρεσης σε ξένα σύνολα Ιδιότητα: Για αντικείμενα, ο αλγόριθμος σταθμισμένης ένωσης δημιουργεί δέντρα με ύψος το πολύ Δομή «σταθμισμένης ένωσης»

48 Δομή ένωσης-εύρεσης σε ξένα σύνολα Απόδειξη:Με επαγωγή.Για ισχύει αφού. Έστω ότι μια πράξη ένωσης συνδυάζει σύνολα Α και Β με μέγεθος Ο αριθμός των δεικτών έως τη ρίζα του δέντρου για τα στοιχεία του A είναι B A Δομή «σταθμισμένης ένωσης» Ιδιότητα: Για αντικείμενα, ο αλγόριθμος σταθμισμένης ένωσης δημιουργεί δέντρα με ύψος το πολύ

49 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 12 13 14 15 16 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 12 13 14 15 16 εύρεση(16)

50 Δομή ένωσης-εύρεσης σε ξένα σύνολα Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» δείκτης σε αντικείμενο του συνόλου που περιέχει το k ένωση ( i, j ) : Εκτελούμε p=εύρεση ( i ) και q=εύρεση ( j ). Αν το σύνολο του q έχει περισσότερα αντικείμενα από το σύνολο του p θέτουμε. Διαφορετικά θέτουμε. εύρεση ( i ) : Ξεκινώντας από το i ακολουθούμε τους δείκτες μέχρι να βρούμε αντικείμενο j τέτοιο ώστε. Θέτουμε για κάθε αντικείμενο k που συναντήσαμε στη διαδρομή μέχρι το j. Επιστρέφουμε τo j. Χρησιμοποιούμε πίνακες και μεγέθους αριθμός αντικειμένων του συνόλου με αντιπρόσωπο k

51 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 12 13 14 15 16 ύψος

52 Δομή ένωσης-εύρεσης σε ξένα σύνολα Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = Συνολικός χρόνος εκτέλεσης m πράξεων εύρεσης-ένωσης = Μέσος χρόνος εκτέλεσης για μία πράξη εύρεσης ή ένωσης = Αλλά : σχεδόν σταθερός χρόνος ανά πράξη

53 Δομή ένωσης-εύρεσης σε ξένα σύνολα Η συνάρτηση Ackerman ορίζεται ως εξής Η συνάρτηση είναι αντίστροφη της αυξάνει με πάρα πολύ αργό ρυθμό! Π.χ. για Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής»

54 Κοντινότεροι Κοινοί Πρόγονοι Η συρρίκνωση των κόμβων μπορεί να γίνει αποτελεσματικά με μια δομή ένωσης- εύρεσης σε ξένα σύνολα Υποστηρίζει τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση ( α, β ) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση ( α ) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α β δ {ι} β β δ δ ι ι β β δ δ ι ι ένωση(β,δ) Τ δάσος εύρεσης-ένωσης Στον αλγόριθμο υπολογισμού κοντινότερων κοινών προγόνων κάθε σύνολο αποτελείται από τους κόμβους ενός υποδένδρου του Τ. Πρέπει να γνωρίζουμε τη ρίζα κάθε τέτοιου υποδένδρου (αντιπρόσωπος του συνόλου), η οποία μπορεί να διαφέρει από τη ρίζα του δένδρου ένωσης-εύρεσης. ρίζα = δ, αντιπρόσωπος = β

55 Κοντινότεροι Κοινοί Πρόγονοι Υποστηρίζει τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση ( α, β ) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση ( α ) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α Στον αλγόριθμο υπολογισμού κοντινότερων κοινών προγόνων κάθε σύνολο αποτελείται από τους κόμβους ενός υποδένδρου του Τ. Πρέπει να γνωρίζουμε τη ρίζα κάθε τέτοιου υποδένδρου (αντιπρόσωπος του συνόλου), η οποία μπορεί να διαφέρει από τη ρίζα του δένδρου ένωσης-εύρεσης. αντιπρόσωπος του συνόλου με ρίζα το k Χρησιμοποιούμε έναν ακόμα πίνακα που δίνει τον αντιπρόσωπο του κάθε συνόλου Η συρρίκνωση των κόμβων μπορεί να γίνει αποτελεσματικά με μια δομή ένωσης- εύρεσης σε ξένα σύνολα

56 Κοντινότεροι Κοινοί Πρόγονοι Στατικό δένδρο, γνωστά ζεύγη Σε κάθε κόμβο x του δένδρου αποθηκεύουμε μια λίστα κόμβων Επισκεπτόμαστε τους κόμβους σε σειρά μεταδιάταξης του Επεξεργασία κόμβου : Εξετάζουμε τη λίστα Για κάθε κόμβο που έχουμε ήδη επεξεργαστεί Θέτουμε κόμβος στον οποίο έχει συμπιεστεί ο Συρρικνώνουμε τον στον γονέα του στο εύρεση ένωση για ζεύγηΧρόνος εκτέλεσης = Αργότερα θα δούμε πως μπορεί να επιτευχθεί χρόνος ακόμα και στην περίπτωση όπου το Λ δεν είναι εξαρχής γνωστό


Κατέβασμα ppt "Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google