dsalg lec03 growth - euclid...ΔομέςΔεδομένωνκαι 24 Αλγόριθμοι...

29
Δομές Δεδομένων και Αλγόριθμοι ρυθιμός αύξησης συναρτήσεων 1 ρυθμός αύξησης συναρτήσεων Παύλος Εφραιμίδης

Upload: others

Post on 10-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων1

ρυθμός αύξησης συναρτήσεων

Παύλος Εφραιμίδης

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων2

περιεχόμενα

Ασυμπτωτικός συμβολισμόςΚαθιερωμένοι συμβολισμοί και συνήθειςσυναρτήσεις

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων3

ασυμπτωτική πολυπλοκότητα

Πολυπλοκότητα χειρότερης περίπτωσης– Συγχωνευτική ταξινόμηση: Θ(nlgn)– Ενθετική ταξινόμηση: Θ(n2)Για αρκετά μεγάλο μέγεθος εισόδου n, ησυγχωνευτική ταξινόμηση υπερτερεί της ενθετικήςΤο παραπάνω συμπέρασμα προκύπτει ανεξάρτητααπό τις πολλαπλασιαστικές σταθερές και τους όρουςκατώτερης τάξης στην πολυπλοκότητα χρόνου

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων4

ασυμπτωτική επίδοση

Δεδομένου ενός αλγορίθμου,– για μεγάλα μεγέθη εισόδου μας ενδιαφέρει ο αυξητικόςχαρακτήρας του χρόνου εκτέλεσης,

– δηλαδή ουσιαστικά η ασυμπτωτική επίδοση τουαλγορίθμου.

Ασχολούμαστε δηλαδή με το ρυθμό αύξησης τουχρόνου εκτέλεσης

– στην οριακή περίπτωση που το μέγεθος της εισόδουαυξάνει απεριόριστα.

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων5

ασυμπτωτικός συμβολισμος

Χρησιμοποιούμε διάφορους συμβολισμούςγια την ασυμπτωτικό χρόνο εκτέλεσης ενόςαλγορίθμουΧρησιμοποιούμε συναρτήσεις με πεδίοορισμού τους φυσικούς αριθμούςΝ=0,1,2,...Καταχρηστικά μπορεί να το χρησιμοποιούμεγια διαφορετικά πεδία ορισμού

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων6

ασυμπτωτικοί΄συμβολισμοί

Συμβολισμός ΘΣυμβολισμός ΟΣυμβολισμός ΩΣυμβολισμός οΣυμβολισμός ω

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων7

συμβολισμός Θ

Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Θ(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Θ(g(n))δηλώνει το σύνολο των συναρτήσεων:Θ(g(n)) = f(n): ∃ θετικές σταθερές c1,c2 καιn0: 0≤c1g(n)≤f(n)≤c2g(n) ∀n≥n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων8

f(n)=Θ(g(n))Η συνάρτηση f(n) είναι ασυμπτωτικά φραγμένη από επάνω καιαπό κάτω από τη συνάρτηση g(n).

f(n)

c1·g(n)

c2·g(n)

n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων9

συμβολισμός Ο

Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Ο(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Ο(g(n))δηλώνει το σύνολο των συναρτήσεων:Ο(g(n)) = f(n): ∃ θετικές σταθερές c και n0: 0≤f(n)≤cg(n) ∀n≥n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων10

f(n)=Ο(g(n))Η συνάρτηση g(n) είναι ένα ασυμπτωτικό άνω φράγμαγια τη συνάρτηση f(n).

f(n)

c·g(n)

n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων11

συμβολισμός Ω

Ο χρόνος εκτέλεσης χειρότερης περίπτωσηςτης ενθετικής ταξινόμησης είναι T(n)=Ω(n2)Τι σημαίνει αυτό;Για δεδομένη συνάρτηση g(n), το Ω(g(n))δηλώνει το σύνολο των συναρτήσεων:Ω(g(n)) = f(n): ∃ θετικές σταθερές c και n0: 0≤cg(n)≤f(n) ∀n≥n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων12

f(n)=Ω(g(n))Η συνάρτηση g(n) είναι ένα ασυμπτωτικό κάτω φράγμαγια τη συνάρτηση f(n).

f(n)

c·g(n)

n0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων13

Συμβολισμός ο

Για δεδομένη συνάρτηση g(n), το ο(g(n))δηλώνει το σύνολο των συναρτήσεων:ο(g(n)) = f(n): για οποιαδήποτε θετικήσταθερά c, υπάρχει σταθερά n0: 0≤f(n)<cg(n) ∀n≥n0Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό(tight) άνω όριο ή αλλιώς μη αυστηρό άνωόριο

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων14

μια ερμηνεία του ο()

Μια διαφορετική ερμηνεία του συμβολισμού ο() είναι:Το f(n) = o(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αμελητέα σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο:

( )lim 0( )n

f ng n→∞

=

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων15

Συμβολισμός ω

Για δεδομένη συνάρτηση g(n), το ω(g(n))δηλώνει το σύνολο των συναρτήσεων:ω(g(n)) = f(n): για οποιαδήποτε θετικήσταθερά c, υπάρχει σταθερά n0: 0≤cg(n)<f(n)∀n≥n0Το ο() δηλώνει ένα ασυμπτωτικά μη σφιχτό(tight) κάτω όριο ή αλλιώς μη αυστηρό κάτωόριο

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων16

μια ερμηνεία του ω()

Μια διαφορετική ερμηνεία του συμβολισμού ς() είναι:Το f(n) = ς(g(n)) σημαίνει ότι η συνάρτηση f(n) γίνεται αυθαίρετα μεγάλη σε σχέση με την g(n) καθώς το n τείνει προς το άπειρο:

( )lim( )n

f ng n→∞

= ∞ ,εάν υπάρχει το όριο.

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων17

καθιερωμένη συμβολισμοίκαι συνήθεις συναρτήσεις

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων18

μονοτονία

Αύξουσες συναρτήσεις:– συνάρτηση f(n) μονότονα αύξουσα: ∀m≤n, f(m)≤f(n)– συνάρτηση f(n) γνησίως αύξουσα: ∀m<n, f(m)<f(n)

Όμοια, φθίνουσες συναρτήσεις:– f(n) μονότονα φθίνουσα– f(n) γνησίως φθίνουσα

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων19

κατώφλι και ανώφλι

x πραγματικός αριθμός– κατώφλι του x: ο μεγαλύτερος ακέραιος που είναι

μικρότερος ή ίσος του x– ανώφλι του x: ο μικρότερος ακέραιος που είναι

μεγαλύτερος ή ίσος του x

Ισχύει για κάθε πραγματικό αριθμό x:

⎣ ⎦x

x⎡ ⎤⎢ ⎥

⎣ ⎦ ⎡ ⎤ 11 +<≤≤<− xxxxx

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων20

υπολοιπική αριθμητική

υπολοιπική αριθμητική (modular arithmetic)υπόλοιπο διαίρεσης:

– α: οποιοσδήποτε ακέραιος– n: οποιοσδήποτε θετικός ακέραιος– τότε: ⎣ ⎦ nnaana ⋅−= /mod

Αν (α mod n) = (b mod n), γράφουμε

)(mod nba ≡

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων21

πολυώνυμα

Δοθέντος μη αρνητικού ακεραίου d, μια συνάρτησηp(n) της μορφής

είναι ένα πολυώνυμο του n βαθμού d.Όταν f(n)=O(nk) για κάποια σταθερά k, λέμε ότι ησυνάρτηση f(n) είναι πολυωνυμικά φραγμένη

∑=

=d

i

ii nanp

0)(

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων22

εκθετικές συναρτήσεις

Για κάθε α≥1, η συνάρτηση αn είναι μονότονα αύξουσα ως προς n.Συγκρίνετε την ασυμπτωτική συμπεριφορά της 2n με την n15.Αν α και b πραγματικές σταθερές με α>1, τι ισχύει γενικά για τιςσυναρτήσεις αn και nb;

( ) ( )nmnm

nmmnnm

aaaaaa

aa

aaa

+

=⋅

==

=

=

=

1

1

1

1

0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων23

λογάριθμοι

lg n=log2n (δυαδικός λογάριθμος)ln n=logen (φυσικός λογάριθμος)lgkn = (lgn)k (ύψωση σε δύναμη)lg lg n = lg( lg n)) (σύνθεση)

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

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

=

=

−=

=

=

+==

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων25

παραγοντικά

Για ακέραιο n≥0, το n! (διαβάζεται «n παραγοντικό») ορίζεται ως:n!=– 1, για n = 0– n·(n-1)!, για n > 0Επομένως

n! = 1·2·... ·n

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων26

επαναληπτική εφαρμογή συνάρτησης

Για συνάρτηση f(n) επί των πραγματικώναριθμών και μη αρνητικό ακέριαο i, ορίζουμεαναδρομικά:f(i)(n)=– n, εάν i = 0,– f(f(i-1)(n)), εάν i > 0

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων27

επαναληπτική εφαρμογή λογαρίθμου

lg*n: «λογάριθμος αστερίσκος του n»Ορισμός:Η συνάρτηση αυξάνεται με πολύ αργό ρυθμό:

Αν λάβουμε υπόψη ότι ο αριθμός των ατόμων στοπαρατηρήσιμο σύμπαν εκτιμάται ότι είναι της τάξης του 1080, αντιλαμβανόμαστε ότι είναι μάλλον απίθανο νασυναντήσουμε τέτοιο n ώστε lg*n > 5.

1lg:0minlg* )( ≤≥= nin i

5)2(lg*465536lg* ,316lg*

24log* ,12lg*

65536 =

====

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

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

φ

φ φ

−=

+ −= =

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

Δομές Δεδομένων καιΑλγόριθμοι ρυθιμός αύξησης συναρτήσεων29

Αναφορές/Πηγές

Εισαγωγή στους αλγόριθμους, Κεφάλαιο 3