ρυθμός αύξησης συναρτήσεων Παύλος Εφραιμίδης 1
περιεχόμενα Ασυμπτωτικός συμβολισμός Καθιερωμένοι συμβολισμοί και συνήθεις συναρτήσεις 2
ασυμπτωτική πολυπλοκότητα Πολυπλοκότητα χειρότερης περίπτωσης Συγχωνευτική ταξινόμηση: Θ(nlgn) Ενθετική ταξινόμηση: Θ(n 2 ) Για αρκετά μεγάλο μέγεθος εισόδου n, η συγχωνευτική ταξινόμηση υπερτερεί της ενθετικής Το παραπάνω συμπέρασμα προκύπτει ανεξάρτητα από τις πολλαπλασιαστικές σταθερές και τους όρους κατώτερης τάξης στην πολυπλοκότητα χρόνου 3
ασυμπτωτική επίδοση Δεδομένου ενός αλγορίθμου, για μεγάλα μεγέθη εισόδου μας ενδιαφέρει ο αυξητικός χαρακτήρας του χρόνου εκτέλεσης, δηλαδή ουσιαστικά η ασυμπτωτική επίδοση του αλγορίθμου. Ασχολούμαστε δηλαδή με το ρυθμό αύξησης του χρόνου εκτέλεσης στην οριακή περίπτωση που το μέγεθος της εισόδου αυξάνει απεριόριστα. 4
ασυμπτωτικός συμβολισμος Χρησιμοποιούμε διάφορους συμβολισμούς για την ασυμπτωτικό χρόνο εκτέλεσης ενός αλγορίθμου Χρησιμοποιούμε συναρτήσεις με πεδίο ορισμού τους φυσικούς αριθμούς Ν={0,1,2,...} Καταχρηστικά μπορεί να το χρησιμοποιούμε για διαφορετικά πεδία ορισμού 5
ασυμπτωτικοί συμβολισμοί Συμβολισμός Θ Συμβολισμός Ο Συμβολισμός Ω Συμβολισμός ο Συμβολισμός ω 6
συμβολισμός Θ Ο χρόνος εκτέλεσης χειρότερης περίπτωσης της ενθετικής ταξινόμησης είναι T(n)=Θ(n 2 ) Τι σημαίνει αυτό; Για δεδομένη συνάρτηση g(n), το Θ(g(n)) δηλώνει το σύνολο των συναρτήσεων: Θ(g(n)) = {f(n): θετικές σταθερές c 1,c 2 και n 0 : 0 c 1 g(n) f(n) c 2 g(n) n n 0 } 7
f(n)=θ(g(n)) Ησυνάρτησηf(n) είναι ασυμπτωτικά φραγμένη από επάνω και από κάτω από τη συνάρτηση g(n). c 2 g(n) f(n) c 1 g(n) n 0 8
συμβολισμός Ο Ο χρόνος εκτέλεσης χειρότερης περίπτωσης της ενθετικής ταξινόμησης είναι T(n)=Ο(n 2 ) Τι σημαίνει αυτό; Για δεδομένη συνάρτηση g(n), το Ο(g(n)) δηλώνει το σύνολο των συναρτήσεων: Ο(g(n)) = {f(n): θετικές σταθερές c και n 0 : 0 f(n) cg(n) n n 0 } 9
f(n)=ο(g(n)) Ησυνάρτησηg(n) είναι ένα ασυμπτωτικό άνω φράγμα για τη συνάρτηση f(n). c g(n) f(n) n 0 10
συμβολισμός Ω Ο χρόνος εκτέλεσης χειρότερης περίπτωσης της ενθετικής ταξινόμησης είναι T(n)=Ω(n 2 ) Τι σημαίνει αυτό; Για δεδομένη συνάρτηση g(n), το Ω(g(n)) δηλώνει το σύνολο των συναρτήσεων: Ω(g(n)) = {f(n): θετικές σταθερές c και n 0 : 0 cg(n) f(n) n n 0 } 11
f(n)=ω(g(n)) Ησυνάρτησηg(n) είναι ένα ασυμπτωτικό κάτω φράγμα για τη συνάρτηση f(n). f(n) c g(n) n 0 12
Συμβολισμός ο Για δεδομένη συνάρτηση g(n), το ο(g(n)) δηλώνει το σύνολο των συναρτήσεων: ο(g(n)) = {f(n): για οποιαδήποτε θετική σταθερά c, υπάρχει σταθερά n 0 : 0 f(n)<cg(n) n n 0 } Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό (tight) άνω όριο ή αλλιώς μη αυστηρό άνω όριο 13
μια ερμηνεία του ο() Μια διαφορετική ερμηνεία του συμβολισμού ο() είναι: Το f(n) = o(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αμελητέα σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο: f ( n) lim = 0 n g( n) 14
Συμβολισμός ω Για δεδομένη συνάρτηση g(n), το ω(g(n)) δηλώνει το σύνολο των συναρτήσεων: ω(g(n)) = {f(n): για οποιαδήποτε θετική σταθερά c, υπάρχει σταθερά n 0 : 0 cg(n)<f(n) n n 0 } Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό (tight) κάτω όριο ή αλλιώς μη αυστηρό κάτω όριο 15
μια ερμηνεία του ω() Μια διαφορετική ερμηνεία του συμβολισμού ς() είναι: Το f(n) = ς(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αυθαίρετα μεγάλη σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο: f ( n) lim n g ( n ) =,εάν υπάρχει το όριο. 16
καθιερωμένη συμβολισμοί και συνήθεις συναρτήσεις 17
μονοτονία Αύξουσες συναρτήσεις: συνάρτηση f(n) μονότονα αύξουσα: m n, f(m) f(n) συνάρτηση f(n) γνησίως αύξουσα: m<n, f(m)<f(n) Όμοια, φθίνουσες συναρτήσεις: f(n) μονότονα φθίνουσα f(n) γνησίως φθίνουσα 18
κατώφλι και ανώφλι x πραγματικός αριθμός x κατώφλι του x: ο μεγαλύτερος ακέραιος που είναι μικρότερος ή ίσος του x x ανώφλι του x: ο μικρότερος ακέραιος που είναι μεγαλύτερος ή ίσος του x Ισχύει για κάθε πραγματικό αριθμό x: x 1 < + x x x < x 1 19
υπολοιπική αριθμητική υπολοιπική αριθμητική (modulr rithmetic) υπόλοιπο διαίρεσης: α: οποιοσδήποτε ακέραιος n: οποιοσδήποτε θετικός ακέραιος τότε: mod n = / n n Αν (α mod n) = (b mod n), γράφουμε b(mod n) 20
πολυώνυμα Δοθέντος μη αρνητικού ακεραίου d, μια συνάρτηση p(n) της μορφής p ( n) = d i = 0 i n i είναι ένα πολυώνυμο του n βαθμού d. Όταν f(n)=o(n k ) γιακάποιασταθεράk, λέμε ότι η συνάρτηση f(n) είναι πολυωνυμικά φραγμένη 21
εκθετικές συναρτήσεις 0 ( m ) n ( n = ) 1 1 m = 1 = = 1 n = m m+ n = m n Για κάθε α 1, η συνάρτηση α n είναι μονότονα αύξουσα ως προς n. Συγκρίνετε την ασυμπτωτική συμπεριφορά της 2 n με την n 15. Αν α και b πραγματικές σταθερές με α>1, τι ισχύει γενικά για τις συναρτήσεις α n και n b ; 22
λογάριθμοι lg n=log 2 n (δυαδικός λογάριθμος) ln n=log e n(φυσικός λογάριθμος) lg k n = (lgn) k (ύψωση σε δύναμη) lg lg n = lg( lg n)) (σύνθεση) 23
ιδιότητες λογαρίθμων Για πραγματικούς α>0,b>0,c>0 και n: = b log log log log log log c b b b b b c log n b ( b ) = = = = c log log log b c 1 log log = n log (1 / ) = c b b c b log + b log c b 24
παραγοντικά Για ακέραιο n 0, το n! (διαβάζεται «n παραγοντικό») ορίζεται ως: n!= 1, για n = 0 n (n-1)!, για n>0 Επομένως n! = 1 2... n 25
επαναληπτική εφαρμογή συνάρτησης Για συνάρτηση f(n) επί των πραγματικών αριθμών και μη αρνητικό ακέριαο i, ορίζουμε αναδρομικά: f (i) (n)= n, εάν i = 0, f(f (i-1) (n)), εάν i > 0 26
επαναληπτική εφαρμογή λογαρίθμου lg*n: «λογάριθμος αστερίσκος του n» ( i ) Ορισμός: lg* n = min{ i 0 : lg n Η συνάρτηση αυξάνεται με πολύ αργό ρυθμό: lg* 2 = 1, lg* 16 lg* (2 = 65536 3, ) log* = lg* 5 65536 Αν λάβουμε υπόψη ότι ο αριθμός των ατόμων στο παρατηρήσιμο σύμπαν εκτιμάται ότι είναι της τάξης του 10 80, αντιλαμβανόμαστε ότι είναι μάλλον απίθανο να συναντήσουμε τέτοιο n ώστε lg*n > 5. 4 = 2 = 4 1} 27
αριθμοί Fiboncci Οι αριθμοί Fiboncci ορίζονται με την ακόλουθη αναδρομική σχέση: F 0 =0, F 1 =1, F i =F i-1 +F i-2, για i 2 i i Προκύπτει ότι: φ φ F i =, 5 όπου φ είναι ο λόγος της χρυσής τομής (golden rtio): 1+ 5 1 5 φ =, φ = 2 2 28
Αναφορές/Πηγές Εισαγωγή στους αλγόριθμους, Κεφάλαιο 3 29