ΔιακριτάΜαθηματικά Γιάννης Εμίρης http://eclass.uoa.gr/ Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ Οκτώβριος 2016 Διακριτά Μαθηματικά
Αλγόριθμοι Ρυθμόςαύξησηςσυναρτήσεων[Rosen 3.2] Διακριτά Μαθηματικά
Ορισμοί Ορ. Οισυναρτήσεις: f : N R,μεπεδίοορισμούτους φυσικούς, λέγονται αριθμητικές(διακριτές). Κάθε αριθμητική συνάρτηση ορίζει μια ακολουθία και αντιστρόφως. Π.χ. a : {0,1,...} {a 0,a 1,...},δηλ. a k = a(k). Χάριν απλότητας θα περιοριστούμε στη μελέτη αριθμητικών συναρτήσεωνπουπαίρνουνμόνοθετικέςτιμές,δηλ. f : N R +. Διακριτά Μαθηματικά
Παραδείγματααριθμητικώνσυναρτήσεων Π.χ. Κατάθεση 100 Ευρώ, ετήσιο επιτόκιο 7%. Τέλος1ουέτους = 107 = 100(1+0,07) Τέλος2ουέτους = 107+ 100 7 107 = 114,49 = 100(1+0,07)2 Τέλος3ουέτους = 122,50 = 100(1+0,07) 3 δηλαδή (100,107,114.49,122.50,...). Ογενικόςτύποςείναι a(k) = 100 (1,07) k,στοτέλος kέτους, k = 0,1,2,... Διακριτά Μαθηματικά
Παραδείγματααριθμητικώνσυναρτήσεων Π.χ. Ο χρόνος εκτέλεσης ενός προγράμματος με είσοδο μεγέθους nεκφράζεταιαπόμιαπαράσταση T(n).Ακόμακαιγια ισομεγέθεις εισόδους, ο χρόνος εκτέλεσης δύναται να ποικίλλει λόγω της ιδιομορφίας κάθε εισόδου. Μας ενδιαφέρει μια αριθμητική συνάρτηση που είναι άνω φράγμα στην τιμή της T(n) για κάθε είσοδο μεγέθους n(πολυπλοκότητα χειρότερης περίπτωσης), και για n«αρκετά» μεγάλο. Μας ενδιαφέρει λοιπόν η ασυμπτωτική μελέτη της T(n). Διακριτά Μαθηματικά
Ασυμπτωτικήμελέτη Η ασυμπτωτική μελέτη είναι ένας βολικός τρόπος για να συγκρίνουμε τη συμπεριφορά δυο συναρτήσεων f(n) και g(n) για μεγάλα n. Π.χ. χρόνος εκτέλεσης προγράμματος για μεγάλο μέγεθος εισόδου, μακροπρόθεσμη συμπεριφορά επένδυσης. Η ασυμπτωτική μελέτη αριθμητικών συναρτήσεων ταξινομεί τις συναρτήσεις με βάση την τάξη«μεγέθους» τους. Π.χ: 34logn αλλάπιοαργάαπό 2n 2 κιακόμηπιοαργάαπό 2 n. Διακριτά Μαθηματικά
ΟρισμόςΤάξης Ορ. Εστω αριθμητικές συναρτήσεις f, g με θετικές τιμές. Λέμε πως η f(n)«είναι» O(g(n)) εφόσον υπάρχουν σταθερές c R +,n 0 N τ.ώ. f(n) cg(n), n > n 0. Ορ. Τάξη της αριθμητικής συνάρτησης g(n) είναι το σύνολο O(g(n)) = {f(n) : σταθ. c > 0,n 0 0 : n > n 0, f(n) cg(n)} Γιαοποιαδήποτε f O(g),γράφουμε f = O(g)καιλέμεπως«η fείναι O(g(n))». Διακριτά Μαθηματικά
Παρατηρήσεις Απότονορισμότης,ητάξηδηλώνει μόνο άνω φράγμα(στον ρυθμό αύξησης), μπορεί να κρύβει μια σταθερά, κρύβεισυμπεριφοράπεπερασμένουπλήθους(n 0 )όρων. Υπάρχει απειρία αριθμητικών συναρτήσεων g τ.ω. για μια δεδομένη b(n), b(n) = O(g(n)).(γιατί;) Διακριτά Μαθηματικά
Παραδείγματα(Ι) 1 n +7 = O(n). Απόδειξη: n n 0 = 8,c = 1 n 8 7+ 1 n, Β απόδειξη: n n 0 = 1,c = 8 8n 8 7+ 1 n. n O( 1 n +7),διότι n 0,c, k : k n 0,όπου k > 8c > ( 1 k +7)c.Αρκείναδιαλέξω k = 1+max{n 0,8c}. 1/n = O(1). nlogn = O(n 2 ),n 2 +10 6 n = O(n 2 ). n 2 32n+199nlogn = O(n 2 ) O(n 3 ) O(2 n ). Διακριτά Μαθηματικά
Παραδείγματα(ΙΙ) Γιακάθεσταθερά T,ισχύει: T = O(lgn). Απόδειξη. n 0 = 2 T,c = 1 : n n 0 : lgn lgn 0 = T. Β απόδειξη. n 0 = 1,c = T : n 1,clgn T. Είναιδυνατόναισχύει f = O(g)και g = O(f). Π.χ.Ελέγξτετηνπερίπτωση f(n) = 13n, g(n) = 35n+211.
Ασυμπτωτικήσυμπεριφορά
Παρατηρήσεις 1. f(n) = O(g(n)) f(n) = O(g(n)), σταθερά. 2. f(n) = O(g(n))και g(n) = O(h(n)) f(n) = O(h(n)). 3. Μπορείναισχύει a(n) O(b(n))και b(n) O(a(n)) : a(n) = { 1 nάρτιος, 0 nπεριττός, b(n) = { 0 nάρτιος 1 nπεριττός
Ιδιότητες Εστω f 1 = O(g 1 ),f 2 = O(g 2 ). Προσθετική: f 1 +f 2 = O(max{g 1,g 2 }) Πολλαπλασιαστική: f 1 f 2 = O(g 1 g 2 ). Μέγιστο: max{f 1,f 2 } = O(f 1 +f 2 ) = O(g 1 +g 2 ).
Λόγος Λήμμ. lim n a(n) b(n) = 0 a = O(b). Απόδ. lim n a(n) b(n) = 0 [ ε n 0 : n > n 0 a(n) ] b(n) < ε Διάλεξεμίασυγκεκριμένητιμήτου εκαιθέσε c := ε.τότε n 0 (ε) : n > n 0 ισχύει a(n) b(n) < c a = O(b). Δεν ισχύει το αντίστροφο: n 2 +n = O(n 2 ),ενώ lim n2 +n n 2 = lim 1+ 1 n 1 = 1.
Εκθετικέςσυναρτήσεις Λήμμ. n b = O(a n ),γιακάθεπραγματικό a > 1,φυσικό b > 0 Απόδ. Αρκείναδείξουμεπως lim n n b a n = 0: lim x x b a x = lim x bx b 1 a x lna = = lim x b! a x ln b a = 0. Οπου εφαρμόσαμε κανόνα L Hôpital, διότι αριθμητής και παρονομαστής είναι γνησίως αύξοντες ως προς x, και: (a x ) = (e xlna ) = e xlna lna = a x lna. Π.χ. n 8 = O(2 n ) 10 6 n 8 = O(2 n ).
Λογάριθμοι Λήμμ. Γιακάθε a,b N ισχύειπως (lnn) a = O(n b ). Απόδ. Αρκείν.δ.ό. n 0,τ.ω. n n 0 : (lnn) a n b alnlnn blnn lnlnn (b/a)lnn. Θαδείξουμεπως lnlnn = O(lnn)μετοπροηγούμενολήμμα: L Hôpital: lim x lnlnx (b/a)lnx = a b lim x 1/lnx 1/x 1/x = 0, διότι (f g) = (f g)g και (lnx) = 1/x.
Παραγοντικό Λήμμ. Για a N, a n = O(n!). Απόδ. Θέτουμε c = a a,n 0 = a : n n 0 = a : a n a a a n a a! = c a a(a 1) 2 1 }{{} n c n!
Συναρτήσειςπρότυπα
Ορισμός Θ( ) Ορ. Εστω f,g : N R +.Ηfείναι Θ(g)ανυπάρχουν σταθερές c 1,c 2 R +,n 0 N τ.ώ. Ισοδύναμα, Θ(g(n)) := c 1 g(n) f(n) c 2 g(n), n > n 0. {f(n) : σταθ. c 1,c 2 > 0,n 0 0 : n n 0,c 1 g(n) f(n) c 2 g(n)} Παρατήρηση: Ο συμβολισμός Θ δίνει σφιχτά πάνω και κάτω φράγματα. Αντίγια f Θ(g),γράφουμε f = Θ(g). f = Θ(g) f = O(g) g = O(f).
Παραδειγμα Π.χ. Ισχύει 1 2 n2 3n = Θ(n 2 )αφού c 1,c 2 > 0,n 0 0 : c 1 n 2 1 2 n2 3n c 2 n 2, n n 0 Διαιρώνταςμε n 2 έχουμε c 1 1 2 3 n c 2. Ανδιαλέξουμε c 1 = 1 14,c 2 = 1 2,n 0 = 7τότεησχέσηισχύει.
Λογάριθμοι Λήμμ. Γιακάθε f(n), a,b > 1,ισχύει log a f(n) = Θ(log b f(n)). Απόδ. log a f(n) = log bf(n) log b a = Θ(log b f(n)). Πόρ. lgf(n) = Θ(lnf(n)).
Ορισμός Ω( ) Ορ. Εστω f,g : N R +.Λέμεπωςηfείναι Ω(g)εφόσον υπάρχουνσταθερές c R +, n 0 N τ.ώ. Ισοδύναμα, f(n) cg(n), n > n 0. Ω(g(n)) = {f(n) : σταθ. c > 0,n 0 0 : cg(n) f(n), n n 0 } Λέμεπωςηf«είναιμεγάλοΩμέγατης g».
Ιδιότητες Ω( ) Π.χ. Ισχύει 2n 2 = Ω(105n 2 +45n)αλλά n 2/3 Ω(n 4/5 ). Παρατήρηση: Το Ωδίνεικάτωφράγμα,μπορείνακρύβειμιασταθεράκαι να αγνοεί σταθερό πλήθος αρχικών όρων. f = Ω(g) g = O(f). f = Θ(g) f = Ω(g).
Σχέση O,Ω,Θ Θεώρ. Γιακάθεδύοσυναρτήσεις f,g : N R, f(n) = Θ(g(n)) ανκαιμόνοαν f(n) = O(g(n))και f(n) = Ω(g(n)). Απόδ. O(g) = {f(n) : σταθ. c 2 > 0,n 0 0 : 0 f(n) c 2 g(n), n n 0 } Ω(g) = {f(n) : σταθ. c 1 > 0,n 0 0 : 0 c 1 g(n) f(n), n n 0 } Θ(g) = {f(n) : σταθ. c 1,c 2 > 0,n 0 0 : 0 c 1 g(n) f(n) c 2 g(n), n n 0 }
Ιδιότητες(Ι) Μεταβατική ιδιότητα f = Θ(g) g = Θ(h) f = Θ(h) f = O(g) g = O(h) f = O(h) f = Ω(g) g = Ω(h) f = Ω(h) Ανακλαστική ιδιότητα f(n) = Θ(f(n)) f(n) = O(f(n)) f(n) = Ω(f(n))
Ιδιότητες(ΙΙ) Συμμετρική ιδιότητα f(n) = Θ(g(n)) g(n) = Θ(f(n)) Ιδιότητα αναστροφής f(n) = O(g(n)) g(n) = Ω(f(n)) Συνδυασμοί(αθροιστική) 2n 2 +3n+1 = 2n 2 +Θ(n) = Θ(n 2 )