DSAlg Lec03 Growth - Euclid...ΔομέςΔεδομένωνκαι 24 Αλγόριθμοι ρυθιμόςαύξησηςσυναρτήσεων ιδιότητεςλογαρίθμων ...

Post on 10-Mar-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων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