Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεMeliza Gogola Τροποποιήθηκε πριν 10 χρόνια
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 του δένδρου αποθηκεύουμε μια λίστα κόμβων Επισκεπτόμαστε τους κόμβους σε σειρά μεταδιάταξης του Επεξεργασία κόμβου : Εξετάζουμε τη λίστα Για κάθε κόμβο που έχουμε ήδη επεξεργαστεί Θέτουμε κόμβος στον οποίο έχει συμπιεστεί ο Συρρικνώνουμε τον στον γονέα του στο εύρεση ένωση για ζεύγηΧρόνος εκτέλεσης = Αργότερα θα δούμε πως μπορεί να επιτευχθεί χρόνος ακόμα και στην περίπτωση όπου το Λ δεν είναι εξαρχής γνωστό
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.