Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων1
ρυθμός αύξησης συναρτήσεων
Παύλος Εφραιμίδης
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων2
περιεχόμενα
Ασυμπτωτικός συμβολισμόςΚαθιερωμένοι συμβολισμοί και συνήθειςσυναρτήσεις
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων3
ασυμπτωτική πολυπλοκότητα
Πολυπλοκότητα χειρότερης περίπτωσης– Συγχωνευτική ταξινόμηση: Θ(nlgn)– Ενθετική ταξινόμηση: Θ(n2)Για αρκετά μεγάλο μέγεθος εισόδου n, ησυγχωνευτική ταξινόμηση υπερτερεί της ενθετικήςΤο παραπάνω συμπέρασμα προκύπτει ανεξάρτητααπό τις πολλαπλασιαστικές σταθερές και τους όρουςκατώτερης τάξης στην πολυπλοκότητα χρόνου
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων4
ασυμπτωτική επίδοση
Δεδομένου ενός αλγορίθμου,– για μεγάλα μεγέθη εισόδου μας ενδιαφέρει ο αυξητικόςχαρακτήρας του χρόνου εκτέλεσης,
– δηλαδή ουσιαστικά η ασυμπτωτική επίδοση τουαλγορίθμου.
Ασχολούμαστε δηλαδή με το ρυθμό αύξησης τουχρόνου εκτέλεσης
– στην οριακή περίπτωση που το μέγεθος της εισόδουαυξάνει απεριόριστα.
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων5
ασυμπτωτικός συμβολισμος
Χρησιμοποιούμε διάφορους συμβολισμούςγια την ασυμπτωτικό χρόνο εκτέλεσης ενόςαλγορίθμουΧρησιμοποιούμε συναρτήσεις με πεδίοορισμού τους φυσικούς αριθμούςΝ=0,1,2,...Καταχρηστικά μπορεί να το χρησιμοποιούμεγια διαφορετικά πεδία ορισμού
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων6
ασυμπτωτικοί΄συμβολισμοί
Συμβολισμός ΘΣυμβολισμός ΟΣυμβολισμός ΩΣυμβολισμός οΣυμβολισμός ω
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων7
συμβολισμός Θ
Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Θ(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Θ(g(n))δηλώνει το σύνολο των συναρτήσεων:Θ(g(n)) = f(n): ∃ θετικές σταθερές c1,c2 καιn0: 0≤c1g(n)≤f(n)≤c2g(n) ∀n≥n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων8
f(n)=Θ(g(n))Η συνάρτηση f(n) είναι ασυμπτωτικά φραγμένη από επάνω καιαπό κάτω από τη συνάρτηση g(n).
f(n)
c1·g(n)
c2·g(n)
n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων9
συμβολισμός Ο
Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Ο(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Ο(g(n))δηλώνει το σύνολο των συναρτήσεων:Ο(g(n)) = f(n): ∃ θετικές σταθερές c και n0: 0≤f(n)≤cg(n) ∀n≥n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων10
f(n)=Ο(g(n))Η συνάρτηση g(n) είναι ένα ασυμπτωτικό άνω φράγμαγια τη συνάρτηση f(n).
f(n)
c·g(n)
n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων11
συμβολισμός Ω
Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Ω(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Ω(g(n))δηλώνει το σύνολο των συναρτήσεων:Ω(g(n)) = f(n): ∃ θετικές σταθερές c και n0: 0≤cg(n)≤f(n) ∀n≥n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων12
f(n)=Ω(g(n))Η συνάρτηση g(n) είναι ένα ασυμπτωτικό κάτω φράγμαγια τη συνάρτηση f(n).
f(n)
c·g(n)
n0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων13
Συμβολισμός ο
Για δεδομένη συνάρτηση g(n), το ο(g(n))δηλώνει το σύνολο των συναρτήσεων:ο(g(n)) = f(n): για οποιαδήποτε θετικήσταθερά c, υπάρχει σταθερά n0: 0≤f(n)<cg(n) ∀n≥n0Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό(tight) άνω όριο ή αλλιώς μη αυστηρό άνωόριο
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων14
μια ερμηνεία του ο()
Μια διαφορετική ερμηνεία του συμβολισμού ο() είναι:Το f(n) = o(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αμελητέα σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο:
( )lim 0( )n
f ng n→∞
=
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων15
Συμβολισμός ω
Για δεδομένη συνάρτηση g(n), το ω(g(n))δηλώνει το σύνολο των συναρτήσεων:ω(g(n)) = f(n): για οποιαδήποτε θετικήσταθερά c, υπάρχει σταθερά n0: 0≤cg(n)<f(n)∀n≥n0Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό(tight) κάτω όριο ή αλλιώς μη αυστηρό κάτωόριο
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων16
μια ερμηνεία του ω()
Μια διαφορετική ερμηνεία του συμβολισμού ς() είναι:Το f(n) = ς(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αυθαίρετα μεγάλη σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο:
( )lim( )n
f ng n→∞
= ∞ ,εάν υπάρχει το όριο.
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων17
καθιερωμένη συμβολισμοίκαι συνήθεις συναρτήσεις
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων18
μονοτονία
Αύξουσες συναρτήσεις:– συνάρτηση f(n) μονότονα αύξουσα: ∀m≤n, f(m)≤f(n)– συνάρτηση f(n) γνησίως αύξουσα: ∀m<n, f(m)<f(n)
Όμοια, φθίνουσες συναρτήσεις:– f(n) μονότονα φθίνουσα– f(n) γνησίως φθίνουσα
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων19
κατώφλι και ανώφλι
x πραγματικός αριθμός– κατώφλι του x: ο μεγαλύτερος ακέραιος που είναι
μικρότερος ή ίσος του x– ανώφλι του x: ο μικρότερος ακέραιος που είναι
μεγαλύτερος ή ίσος του x
Ισχύει για κάθε πραγματικό αριθμό x:
⎣ ⎦x
x⎡ ⎤⎢ ⎥
⎣ ⎦ ⎡ ⎤ 11 +<≤≤<− xxxxx
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων20
υπολοιπική αριθμητική
υπολοιπική αριθμητική (modular arithmetic)υπόλοιπο διαίρεσης:
– α: οποιοσδήποτε ακέραιος– n: οποιοσδήποτε θετικός ακέραιος– τότε: ⎣ ⎦ nnaana ⋅−= /mod
Αν (α mod n) = (b mod n), γράφουμε
)(mod nba ≡
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων21
πολυώνυμα
Δοθέντος μη αρνητικού ακεραίου d, μια συνάρτησηp(n) της μορφής
είναι ένα πολυώνυμο του n βαθμού d.Όταν f(n)=O(nk) για κάποια σταθερά k, λέμε ότι ησυνάρτηση f(n) είναι πολυωνυμικά φραγμένη
∑=
=d
i
ii nanp
0)(
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων22
εκθετικές συναρτήσεις
Για κάθε α≥1, η συνάρτηση αn είναι μονότονα αύξουσα ως προς n.Συγκρίνετε την ασυμπτωτική συμπεριφορά της 2n με την n15.Αν α και b πραγματικές σταθερές με α>1, τι ισχύει γενικά για τιςσυναρτήσεις αn και nb;
( ) ( )nmnm
nmmnnm
aaaaaa
aa
aaa
+
⋅
−
=⋅
==
=
=
=
1
1
1
1
0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων23
λογάριθμοι
lg n=log2n (δυαδικός λογάριθμος)ln n=logen (φυσικός λογάριθμος)lgkn = (lgn)k (ύψωση σε δύναμη)lg lg n = lg( lg n)) (σύνθεση)
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων24
ιδιότητες λογαρίθμων
Για πραγματικούς α>0,b>0,c>0 και n:
aca
b
bb
c
cb
bn
b
ccc
a
bb
b
ca
ba
aabaa
ana
baabba
loglog
log
log1log
log)/1(loglogloglog
loglog
loglog)(log
=
=
−=
=
=
+==
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων25
παραγοντικά
Για ακέραιο n≥0, το n! (διαβάζεται «n παραγοντικό») ορίζεται ως:n!=– 1, για n = 0– n·(n-1)!, για n > 0Επομένως
n! = 1·2·... ·n
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων26
επαναληπτική εφαρμογή συνάρτησης
Για συνάρτηση f(n) επί των πραγματικώναριθμών και μη αρνητικό ακέριαο i, ορίζουμεαναδρομικά:f(i)(n)=– n, εάν i = 0,– f(f(i-1)(n)), εάν i > 0
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων27
επαναληπτική εφαρμογή λογαρίθμου
lg*n: «λογάριθμος αστερίσκος του n»Ορισμός:Η συνάρτηση αυξάνεται με πολύ αργό ρυθμό:
Αν λάβουμε υπόψη ότι ο αριθμός των ατόμων στοπαρατηρήσιμο σύμπαν εκτιμάται ότι είναι της τάξης του 1080, αντιλαμβανόμαστε ότι είναι μάλλον απίθανο νασυναντήσουμε τέτοιο n ώστε lg*n > 5.
1lg:0minlg* )( ≤≥= nin i
5)2(lg*465536lg* ,316lg*
24log* ,12lg*
65536 =
====
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων28
αριθμοί Fibonacci
Οι αριθμοί Fibonacci ορίζονται με την ακόλουθηαναδρομική σχέση:F0=0, F1=1, Fi=Fi-1+Fi-2, για i≥2Προκύπτει ότι:
,5
όπου είνα ι ο λόγος της χρυσής τομής (go lden ratio ):
1 5 1 5,2 2
ii
iF φ φ
φ
φ φ
−=
+ −= =
Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων29
Αναφορές/Πηγές
Εισαγωγή στους αλγόριθμους, Κεφάλαιο 3
Top Related