1 / 30

Κώστας Στεργίου Λέκτορας Τμήμα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστημάτων

Διακριτά Μαθηματικά Ι I Αναδρομή. Κώστας Στεργίου Λέκτορας Τμήμα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστημάτων Πανεπιστήμιο Αιγαίου e-mail: konsterg@aegean.gr. Αναδρομή. Αναδρομή είναι ο γενικός όρος για τον ορισμό ενός αντικειμένου σε σχέση με τον εαυτό του

tom
Download Presentation

Κώστας Στεργίου Λέκτορας Τμήμα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστημάτων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Διακριτά ΜαθηματικάΙIΑναδρομή Κώστας Στεργίου Λέκτορας Τμήμα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστημάτων Πανεπιστήμιο Αιγαίου e-mail: konsterg@aegean.gr ΤΜΗΜΑ ΜΠΕΣ

  2. Αναδρομή • Αναδρομήείναι ο γενικός όρος γιατον ορισμό ενός αντικειμένου σε σχέση με τονεαυτό του • ή με μέρος του εαυτού του • αυτό μπορεί να ακούγεται κυκλικό (ατέρμονος βρόγχος), αλλά δεν είναι απαραίτητα. • Μια επαγωγική απόδειξηδείχνει την αλήθεια τουP(n+1) αναδρομικάσε σχέση με τοP(n). • Υπάρχουν επίσης αναδρομικοίαλγόριθμοι, ορισμοί, συναρτήσεις, ακολουθίες, σύνολα, και άλλεςδομές ΤΜΗΜΑ ΜΠΕΣ

  3. Αναδρομικά Ορισμένες Συναρτήσεις • Για μια αριθμητική συνάρτηση (α0,α1,...,αr,...), μια εξίσωση που συσχετίζει το αr για οποιοδήποτε r, με ένα ή περισσότερα από τα αi, i<r, ονομάζεται αναδρομική σχέση • συχνά είναι πιο εύκολο να βρούμε έναν ορισμό μιας συνάρτησης σε μορφή αναδρομικής σχέσης από το να βρούμε μια γενική έκφραση για την τιμή της συνάρτησης στο r • έχοντας την αναδρομική σχέση μπορούμε να προσδιορίσουμε το αr από τα αr-1, αr-2..., να προσδιορίσουμε το αr+1 από τα αr, αr-1..., κ.ο.κ. • με την προϋπόθεση ότι δίνεται η τιμή της συνάρτησης σε ένα ή περισσότερα σημεία για να ξεκινήσει ο υπολογισμός. Αυτές οι δεδομένες τιμές της συνάρτησης ονομάζονται συνοριακές συνθήκες ή βασικές περιπτώσεις ΤΜΗΜΑ ΜΠΕΣ

  4. Αναδρομικά Ορισμένες Συναρτήσεις • Μια αριθμητική συνάρτηση μπορεί να περιγραφεί από μια αναδρομική σχέση μαζί με ένα κατάλληλο σύνολο βασικών περιπτώσεων • η συνάρτηση που ορίζεται με αυτόν τον τρόπο ονομάζεται και λύση της αναδρομικής σχέσης • εκτός από τις τιμές της συνάρτησης συχνά θέλουμε να προσδιορίσουμε και μια γενική (μη αναδρομική) έκφραση της λύσης • γενικά δεν υπάρχει μέθοδος που να μπορεί να το κάνει αυτό για όλες τις αναδρομικές σχέσεις ΤΜΗΜΑ ΜΠΕΣ

  5. Αναδρομικά Ορισμένες Συναρτήσεις • Απλή περίπτωση: Ένας τρόπος για να οριστεί η συνάρτησηf:ℕS (για κάθε σύνολοS) ή η σειράan=f(n) είναι να: • Ορίσουμε τοf(0). • Γιαn>0, να ορίσουμε τηνf(n) σε σχέση μεf(0),…,f(n−1). • Παράδειγμα:Ορίστε τη σειράan :≡2nαναδρομικά: • Ορίζουμεa0 :≡1. • Γιαn>0, ορίζουμεan:≡2an-1. ΤΜΗΜΑ ΜΠΕΣ

  6. Αναδρομικά Ορισμένες Συναρτήσεις • Ας υποθέσουμε ότι ορίζουμε τηνf(n) για όλα ταnℕαναδρομικά ως: • Ορίζουμεf(0)=3 • Γιακάθεnℕ, ορίζουμεf(n+1)=2f(n)+3 • Ποιες είναι οι τιμές των παρακάτω? • f(1)= f(2)= • f(3)= f(4)= 9 21 93 45 ΤΜΗΜΑ ΜΠΕΣ

  7. Αναδρομικός Ορισμός Παραγοντικού • Δώστε έναν αναδρομικό ορισμότης συνάρτησης παραγοντικού,F(n) :≡n! :≡ ∏1≤i≤n i = 12…n. • Βασική περίπτωση: F(0) :≡ 1 • Αναδρομικό μέρος: F(n) :≡n  F(n−1). • F(1)=1 • F(2)=2 • F(3)=6 ΤΜΗΜΑ ΜΠΕΣ

  8. Παραδείγματα • Γράψτε αναδρομικούς ορισμούς για τα παρακάτω: • i+n (iακέραιος, nφυσικός) • a·n (aπραγματικός, nφυσικός) χρησιμοποιώντας μόνο πρόσθεση • an(aπραγματικός, nφυσικός) χρησιμοποιώντας μόνο πολλαπλασιασμό • ∑0≤i≤nai (για μια οποιαδήποτε σειρά αριθμών {ai}) • ∏0≤i≤nai (για μια οποιαδήποτε σειρά αριθμών{ai}) • ∩0≤i≤n Si (για μια οποιαδήποτε σειρά συνόλων {Si}) ΤΜΗΜΑ ΜΠΕΣ

  9. Η σειρά Fibonacci • Η σειράFibonacci f(n)≥0 είναι μια διάσημη σειρά που ορίζεται ως εξής:f0 :≡ 0, f1 :≡ 1, f(n)≥2 :≡ f(n−1) + f(n−2) 0 1 1 2 3 5 8 13 Leonardo Fibonacci1170-1250 ΤΜΗΜΑ ΜΠΕΣ

  10. Επαγωγική Απόδειξη σχετικά με τη σειρά Fibonacci • Θεώρημαfn < 2n.Απόδειξη με επαγωγή.Βασικές περιπτώσεις: f0 = 0 < 20 = 1f1 = 1 < 21 = 2Επαγωγικό βήμα: Υποθέτουμε ότιk<n, fk < 2k. Τότεfn = fn−1 + fn−2είναι< 2n−1 + 2n−2 < 2n−1 + 2n−1 = 2n. ΤΜΗΜΑ ΜΠΕΣ

  11. Αναδρομικά Ορισμένα Σύνολα • Ένα άπειρο σύνολοSμπορεί να οριστεί αναδρομικά, δίνοντας: • Ένα μικρό πεπερασμένο σύνολοβασικώνστοιχείων τουS. • Έναν κανόνα για την κατασκευή νέων στοιχείων τουSαπό προϋπάρχοντα στοιχεία. • Έμμεσα, θεωρούμε ότι τοSδεν έχει άλλα στοιχεία εκτός από αυτά. ΠαραδείγματαΈστω 3S, καιx+ySανx,yS.Ποιο είναι το σύνολο S? Έστω1S, καιx+1SανxS. ΤΜΗΜΑ ΜΠΕΣ

  12. Το Σύνολο όλων των Συμβολοσειρών • ΟρισμόςΔοθέντος ενός αλφάβητουΣ, το σύνολοΣ*όλων των συμβολοσειρών πάνω στοΣμπορεί να οριστεί αναδρομικά ως:λ Σ* (λ :≡ “”, η κενή συμβολοσειρά) w Σ*  x  Σ → wx  Σ* • Άσκηση: Αποδείξτε ότι αυτός ο ορισμός είναι ισοδύναμος με τον γνωστό: ΤΜΗΜΑ ΜΠΕΣ

  13. Παραδείγματα Συμβολοσειρών • Δώστε αναδρομικούς ορισμούς για: • Τη συνένωση συμβολοσειρώνw1·w2. • Το μήκος(w) μιας συμβολοσειράςw. • Καλά σχηματισμένεςπροτάσεις προτασιακήςλογικής που περιέχουνT, F, προτασιακές μεταβλητές, και τους τελεστές {¬, , , →, ↔}. • Καλά σχηματισμένεςαριθμητικές προτάσεις που μεταβλητές, σταθερές, και τελεστές {+, −, *}. ΤΜΗΜΑ ΜΠΕΣ

  14. Δέντρα με Ρίζα • Ορισμός συνόλουδέντρων με ρίζα: • Κάθε μοναδική κορυφή rείναι ένα δέντρο με ρίζα. • ΑνT1, …, Tnείναι ασύνδετα δέντρα με ρίζαμε αντίστοιχες ρίζεςr1, …, rn, καιrείναι ένας κόμβος σε κανένα από ταTi, τότε ένα δέντρο με ρίζα είναι το {{r,r1},…,{r,rn}}T1…Tn. • Αυτά είναι όλα τα δέντρα με ρίζα. ΤΜΗΜΑ ΜΠΕΣ

  15. Δέντρα με Ρίζα • Ο τρόπος συνδυασμού δέντρων με ρίζα για τον σχηματισμό νέων δέντρων με ρίζα… r … T1 r1 T2 r2 Tn rn ΤΜΗΜΑ ΜΠΕΣ

  16. Δυαδικά Δέντρα • Ειδική περίπτωση δέντρων με ρίζα. • ΟρισμόςΔυαδικών Δέντρων (BT): • Το κενό σύνολο  είναι έναBT. • ΑνT1,T2 είναι ασύνδετα BTs, τότεe1e2 T1T2 είναι ένα BT, όπουe1 =  ανT1 = , καιe1 = {(r,r1)} ανT1≠ καιέχει ρίζαr1, και παρόμοια για τοe2. • Αυτά είναι τα μόνα ΒΤ. Παραδείγματα… ΤΜΗΜΑ ΜΠΕΣ

  17. Πλήρη Δυαδικά Δέντρα • Ειδική περίπτωση δυαδικών δέντρων όπου κάθε κορυφή έχει 0 ή 2 παιδιά. • Αναδρομικός ορισμόςΠλήρων Δυαδικών Δέντρων(FBT): i) Μια μοναδική κορυφήrείναι έναFBT. Προσέξτε τη διαφορά από τη βασική περίπτωση των ΒΤ. ii) ΑνT1,T2είναι ασύνδετα FBTs, τότεe1e2T1T2είναι ένα FBT, όπουe1 =  ανT1 = , καιe1 = {(r,r1)} ανT1≠ καιέχει ρίζαr1, καιομοίως για τοe2. Ίδια με την αναδρομική περίπτωση των ΒΤ! Απλοποιείται ως “ΑνT1,T2είναι ασύνδετα FBTs με ρίζεςr1καιr2, τότε {(r, r1),(r,r2)} T1T2είναι ένα FBT.” i) Αυτά είναι όλα τα FBT. Παραδείγματα… ΤΜΗΜΑ ΜΠΕΣ

  18. Δομική Επαγωγή • Η απόδειξη μιας ιδιότητας ενός αναδρομικά ορισμένου αντικειμένουχρησιμοποιώντας μια επαγωγική απόδειξη της οποίας η δομήαντικατοπτρίζει τον ορισμό του αντικειμένου. ΤΜΗΜΑ ΜΠΕΣ

  19. Δομική Επαγωγή • ΘεώρημαΈστω 3S, καιx+ySανx,yS.ΈστωA = {nℤ+| (3|n)}. ΤότεA=S. Απόδειξη.Θα δείξουμε ότιASκαιSA. • Για να δείξουμεAS, δείξτε [nℤ+  (3|n)]→ nS. • Επαγωγική απόδειξη.ΈστωP(n) :≡ nS. Επαγωγή πάνω στα θετικά πολλαπλάσια του 3. Βάση.n=3, οπότε 3Sαπό τον ορισμό τουS. Βήμα.Δοθέντος P(n), αποδείξτεP(n+3). Από την υπόθεση, nS, και 3S, άρα από τον ορισμό του S, n+3S. • Για να δείξουμεSA: έστωnS, δείξτεnA. • Δομική επαγωγική απόδειξη.ΈστωP(n):≡nA. Βάση. 3S. Μια και 3|3, 3A.Αναδρομικό βήμα.x,y S,n=x+ySκαιx,y A . Μια και 3|xκαι 3|y, έχουμε 3|(x+y), οπότεx+y= n  A. ΤΜΗΜΑ ΜΠΕΣ

  20. Αναδρομικοί Αλγόριθμοι • Εκτός από την περιγραφή συναρτήσεων και συνόλων, αναδρομικοί ορισμοί μπορούν να χρησιμοποιηθούν και για την περιγραφήαλγορίθμων. • ΠαράδειγμαΜια διαδικασία για τον υπολογισμό τουan. procedurepower(a≠0: real, nℕ) ifn = 0 then return 1elsereturna · power(a, n−1) ΤΜΗΜΑ ΜΠΕΣ

  21. Απόδοση Αναδρομικών Αλγόριθμων • Η χρονική πολυπλοκότηταενός αναδρομικού αλγόριθμουεξαρτάται από το πλήθος των αναδρομικών κλήσεων που κάνει. • ΠαράδειγμαΟ υπολογισμός του Modular exponentiationσε μια δύναμηnμπορεί να γίνει με log(n) χρόνο αν γίνει σωστά, αλλά με γραμμικό χρόνο αν γίνει λίγο διαφορετικά. • Υπολογίστε τοbnmodm, όπουm≥2, n≥0, and 1≤b<m. ΤΜΗΜΑ ΜΠΕΣ

  22. Modular Exponentiation Alg. #1 • Χρησιμοποιεί το γεγονός ότιbn= b·bn−1και ότιx·ymod m = x·(ymodm) mod m. procedure mpower(b≥1,n≥0,m>b ℕ) {Returns bnmod m.}ifn=0 then return 1 elsereturn (b·mpower(b,n−1,m)) modm • Αυτός ο αλγόριθμος εκτελείΘ(n) βήματα! ΤΜΗΜΑ ΜΠΕΣ

  23. Modular Exponentiation Alg. #2 • Χρησιμοποιεί το γεγονός ότιb2k = bk·2 = (bk)2. procedurempower(b,n,m) if n=0 then return 1else if 2|nthenreturnmpower(b,n/2,m)2modmelse return (mpower(b,n−1,m)·b) modm • Ποια είναι η χρονική πολυπλοκότητα? Θ(log n) ΤΜΗΜΑ ΜΠΕΣ

  24. Μια μικρή παραλλαγή • Σχεδόν όμοιος αλλά απαιτείΘ(n) χρόνο! procedurempower(b,n,m) if n=0 then return 1else if 2|nthenreturn (mpower(b,n/2,m)·mpower(b,n/2,m)) modmelse return (mpower(b,n−1,m)·b) modm Το πλήθος των αναδρομικών κλήσεων είναι κρίσιμο! ΤΜΗΜΑ ΜΠΕΣ

  25. Αναδρομικοί Αλγόριθμοι • Οι αναδρομικοί αλγόριθμοι είναι συχνά πιο εύκολοι στην υλοποίηση από ότι οι επαναληπτικοί… • Όμως (όπως θα δείτε στο Β’ έτος)μπορούν να έχουν προβλήματα υπερβολικής κατανάλωσης μνήμης ΤΜΗΜΑ ΜΠΕΣ

  26. Αναδρομική Γραμμική Αναζήτηση • Εδώ δεν υπάρχει κανένα πραγματικό πλεονέκτημα από τη χρήση αναδρομής, μπορεί απλά να υλοποιηθεί με έναν βρόγχοforloc := i to j… proceduresearch(a: ακολουθία; i, j: ακέραιοι;x: στοιχείο προς εύρεση) if ai = x then returni {Το βρήκαμε? Επέστρεψε το!}ifi = j then return 0 {Δεν υπάρχει? Αποτυχία!}returnsearch(i+1, j, x) {Δοκίμασε το υπόλοιπο διάστημα} ΤΜΗΜΑ ΜΠΕΣ

  27. Αναδρομική Δυαδική Αναζήτηση procedurebinarySearch(a, x, i, j) {Βρες τοxστην ακολουθίαa, ≥iκαι <j}m := (i + j)/2 {Πήγαινε στο μεσαίο σημείο}if x = amthen returnm{Βρέθηκε?}ifx<am  i<m{Αν είναι προς τα αριστερά}then returnbinarySearch(a,x,i,m−1)else ifam<x  m<j{Αν είναι προς τα δεξιά}then return binarySearch(a,x,m+1,j)elsereturn 0{Δεν υπάρχουν άλλα στοιχεία, αποτυχία} ΤΜΗΜΑ ΜΠΕΣ

  28. Αναδρομικός Αλγόριθμος Fibonacci • procedurefibonacci(n N)ifn=0 then return 0ifn=1 then return 1returnfibonacci(n−1)+fibonacci(n−2) • Είναι ο αλγόριθμος αποδοτικός? • Έχει πολυωνυμική πολυπλοκότητα στοn? • Πόσες προσθέσεις εκτελούνται? ΤΜΗΜΑ ΜΠΕΣ

  29. Ανάλυση του Αλγόριθμου • ΘεώρημαΟ προηγούμενος αλγόριθμος για τοfibonacci(n) εκτελείfn+1−1 προσθέσεις.ΑπόδειξηΜε δομική επαγωγή στοn, βασισμένη στην αναδρομική περιγραφή του αλγόριθμου. • Βάση:fibonacci(0) εκτελεί 0 προσθέσεις, καιf0+1−1 = f1 − 1 = 1 − 1 = 0. Παρόμοια, fibonacci(1) εκτελεί 0 προσθέσεις, καιf1+1−1 = f2−1 = 1−1 = 0. • Βήμα: For n>1, από την υπόθεση, fibonacci(n−1) καιfibonacci(n−2) εκτελούνfn−1 καιfn−1−1 προσθέσεις, καιfibonacci(n) προσθέτειάλλη μια, με σύνολοfn−1+ fn−1−1+1 = fn+fn−1−1 = fn+1−1. ■ ΤΜΗΜΑ ΜΠΕΣ

  30. Ένας καλύτερος Αλγόριθμος • procedurefindFib(a,b,m,n){Δοθέντωνa=fm−1, b=fm,καιm≤n, επέστρεψε τοfn}ifm=nthen returnbreturnfindFib(b, a+b, m+1, n) • procedurefastFib(n) {Βρες τοfnσεΘ(n) βήματα}ifn=0 then return 0returnfindFib(0,1,1,n) ΤΜΗΜΑ ΜΠΕΣ

More Related