Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ΠΛΗ30 Τυπολόγιο Ενότητας 1

12,200 views

Published on

Ανάλυση Αλγορίθμων

Published in: Education
  • Be the first to comment

ΠΛΗ30 Τυπολόγιο Ενότητας 1

  1. 1. ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΜΑΘΗΜΑΤΙΚΟ ΥΠΟΒΑΘΡΟ Ιδιότητες ∆υνάµεων Λογάριθµοι µε βάση το b Λογάριθµοι µε βάση το 2 Ιδιότητες Αθροισµάτων 1, 2 1 2 1/α, 1/ ∙ ∙ 1 2 1 6 "# "# " " $ $ % $ 1 $ 1 " ∙ "% "/ " & & & & ' ( ) ' 1 ( ) , ': ,- .. " ∙ " ∙ " " / " " & 0 ∙ & 0 ∙ log & 0 ∙ Α Β & 6 & 7 & / .8 9:;<& 0 29:;& 0 1 ( ) 7 $ 6 1 (= ( ) > > > >2 ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΑΣΥΜΠΤΩΤΙΚΗ ΣΥΓΚΡΙΣΗ ΣΥΝΑΡΤΗΣΕΩΝ (1): Επειδή κάνουµε ασυµπτωτική σύγκριση των συναρτήσεων εξάγουµε το Θ(.) των συναρτήσεων Αν έχουµε έστω µία απροσδιόριστη συνάρτηση προχωράµε στο επόµενο βήµα (2): Γράφουµε τα Θ(.) ως εκθετικές µε βάση το 2. (3): Κάνουµε πράξεις στους εκθέτες για να είναι όλες οι µορφές στην βασική ιεραρχία. Σε περίπτωση απροσδιοριστίας => Εκθετικές µε βάση 2 στους όρους του αθροίσµατος Σε περίπτωση απροσδιοριστίας => Ξανά εκθετικές µε βάση το 2 (4): Σε περίπτωση ισόπαλίας => Προτεραιότητα στον πολλαπλασιασµό και έπειτα στην πρόσθεση (εναλλακτικά όρια µε χρήση κανόνα De L’Hospital) Παράδειγµα: Ιεραρχήστε τις παρακάτω συναρτήσεις σε αύξουσα σειρά ασυµπτωτικής πολυπλοκότητας: ? 5 1 4 9:; 2 ∙ 5 Απάντηση: B ? 5 1 ? 5 5 C 5 5 Θ C B 4 9:; Θ 9:; BC 2 ∙ 5 Θ 5 ) Εκφράζουµε τις συναρτήσεις ως εκθετικές µε βάση το 2: B : C 2EFG H B : 9:; 2EFG IJK# BC: 5 2EFG 8# Για τους εκθέτες έχουµε: B : log C 3 log B : log 9:; log ∙ log log BC: log 5 n ∙ log 5 2,32 Ισχύει: 3 log N N 2,32 Άρα έπεται: B N B N BC ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΚΛΑΣΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Και πιο αναλυτικά: Μορφή Συναρτήσεων Σχόλια ΣΤΑΘΕΡΕΣ Θ 1 ΛΟΓΑΡΙΘΜΙΚΕΣ N N O Το Κ>1 σταθερά «καθαρό» n ΠΟΛΥΩΝΥΜΙΚΕΣ N N ⋯ N O Το Κ σταθερά «καθαρό» n ΕΚΘΕΤΙΚΕΣ N ⋯ N 2 N 3 N ⋯ N a>1,b: Σταθερές «καθαρό» n ΥΠΕΡΕΚΘΕΤΙΚΕΣ ! N «καθαρό» n ΒΑΣΙΚΗ ΙΕΡΑΡΧΙΑ ΣΥΝΑΡΤΗΣΕΩΝ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ: ΣΤΑΘΕΡΕΣ < ΛΟΓΑΡΙΘΜΙΚΕΣ < ΠΟΛΥΩΝΥΜΙΚΕΣ < ΕΚΘΕΤΙΚΕΣ < ΥΠΕΡΕΚΘΕΤΙΚΕΣ ΠΑΡΑΤΗΡΗΣΗ: Μία συνάρτηση που δεν έχει µία από τις παραπάνω µορφές είναι απροσδιοριστη και για να την συγκρίνουµε µε άλλες πρέπει να ακολουθήσουµε ειδική διαδικασία (εκθετικές µε βάση το 2) Μικρότερη Πολυπλοκότητα = Πιο Γρήγορος Αλγόριθµος = Καλύτερη Πολυπλοκότητα Μεγαλύτερη Πολυπλοκότητα = Πιο Αργός Αλγόριθµος = Χειρότερη Πολυπλοκότητα Θ 1 Θ O Θ O Θ Θ n! Θ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΥΠΟΛΟΓΙΣΜΟΣ ΑΣΥΜΠΤΩΤΙΚΗΣ ΕΚΤΙΜΗΣΗΣ ( Υπολογισμός Θ ) Υπολογισμός του Θ(.) μιας συνάρτησης πολυπλοκότητας Για να εξάγουμε το Θ(.) μιας συνάρτησης πολυπλοκότητας, θα πρέπει να κάνουμε τις όποιες επιμεριστικές ιδιότητες έτσι ώστε να έχουμε «καθαρά» αθροίσματα. Κάνουμε και τυχόν εύκολες πράξεις (ρίζες=>δυνάμεις, απλοποίηση λογαρίθμων κ.λπ.) Έπειτα επιλέγουμε τον μέγιστο από τους όρους του αθροίσματος, και τον εισάγουμε στο Θ(.) Προσοχή ότι απαλείφονται οι σταθερές που είναι πολλαπλασιασμένες με τους όρους του αθροίσματος. ΠΑΡΑΔΕΙΓΜΑΤΑ: )()1()( 22 nnnnnn Θ=+=+=Τ )( 6 1 6 3 6 2 6 )12)(( 6 )12)(1( )( 323 2 nnnn nnnnnn n Θ=++= ++ = ++ =Τ . Στοιχειώδης Ιεραρχία Συναρτήσεων πολυπλοκότητας: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΥΠΟΛΟΓΙΣΜΟΣ (και ΕΚΤΙΜΗΣΗ) ΛΟΓΑΡΙΘΜΩΝ ΠΕΡΙΠΤΩΣΗ 1: Ο λογάριθµος µπορεί να υπολογιστεί ακριβώς. Τον υπολογίζουµε σύµφωνα µε την εξίσωση του λογαρίθµου (δοκιµάζοντας τις διαδοχικές δυνάµεις) Παράδειγµα 1: 32 ? Λύση: 32 5 2 32 2 2 2 4 2C 8 2T 16 28 32 ΠΡΟΧΕΙΡΟ Παράδειγµα 2: ?216 ? Λύση: ?216 3 6 216 6 6 6 36 6C 216 ΠΡΟΧΕΙΡΟ ΠΕΡΙΠΤΩΣΗ 2: Ο λογάριθµος δεν µπορεί να υπολογιστεί ακριβώς, αλλά παρατηρούµε ότι βάση και αριθµός του λογαρίθµου είναι δυνάµεις του ίδιου αριθµού. Τότε κάνουµε αλλαγή βάσης βάζοντας νέα βάση τον κοινό αριθµό τ. Τον υπολογίζουµε σύµφωνα µε την εξίσωση του λογαρίθµου (δοκιµάζοντας τις διαδοχικές δυνάµεις) Παράδειγµα: U27 ? Λύση: U27 9:;H W 9:;HU C 1.5 3 27 3 3 3 9 3C 27 ΠΡΟΧΕΙΡΟ ΠΕΡΙΠΤΩΣΗ 3: Ο λογάριθµος δεν µπορεί να υπολογιστεί ακριβώς, ούτε η βάση και ο αριθµός του λογαρίθµου είναι δυνάµεις του ίδιου αριθµού. Τότε κάνουµε εκτίµηση του λογαρίθµου υπολογίζοντας τις διαδοχικές δυνάµεις της βάσης στις οποίες µπορούµε να εντοπίσουµε τον αριθµό. Παράδειγµα: 11 ? Λύση: 3 N 11 N 4 2 11 2 2 2 4 2C 8 2T 16 ΠΡΟΧΕΙΡΟ 11 ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΟΡΙΑ και ΑΣΥΜΠΤΩΤΙΚΟΙ ΣΥΜΒΟΛΙΣΜΟΙ Ορισµός Ορίων για Απόδειξη Ασυµπτωτικών Συµβολισµών lim → ] ; ^ ' _ 0 -ό-b B Θ 0 -ό-b B ∞ -ό-b B d Και ισχύουν και τα ακόλουθα: • Λήµµα 1: B Θ αν και µόνο αν B Ο και B Ω • Λήµµα 2: Αν B ο τότε B Ο • Λήµµα 3: Αν B ω τότε B Ω ..και ανάποδα: B N lim → ] ; 0 B αλλά και B Ο B lim → ] ; ' _ 0 B Θ αλλά και B Ω και B Ο B i lim → ] ; ∞ B d αλλά και B Ω Παράδειγµα: Αποδείξτε ότι 2 Ο 3 Λύση: lim → ] ; lim → # C# lim → C 0 Άρα: 2 ο 3 άρα και 2 Ο 3
  2. 2. ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΘΕΩΡΗΜΑ ΚΥΡΙΑΡΧΙΑΣ (MASTER THEOREM) Το Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση j k lm n o p n όπου a≥1, b>1 είναι σταθερές, και B είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: Α) Αν p n q nrsto u v για κάποια σταθερά ε>0, τότε: w n x nyz{o u Β) Αν p n x nrsto u τότε: w n x nyz{o u yz{ n Γ) Αν p n | nrsto u%v για κάποια σταθερά ε>0 και lp n o } ~p n για κάποια σταθερά c<1, τότε: w n x p n Έχω: Ισχύει: για κάποια σταθερά ε>0 Άρα από την Α’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: n n TnT +      = 2 8)( 38loglog,)(,2,8 2 ===== annfba b )()( 3 ε− == nOnnf )()( 3 nnT Θ= Έχω: Ισχύει: Άρα από την B’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 2 3 9)( n n TnT +      = 29loglog,)(,3,9 3 2 ===== annfba b )()( 22 nnnf Θ== )log()( 2 nnnT Θ= Έχω: Ισχύει: για κάποια σταθερά ε>0 Ελέγχω αν υπάρχει c<1 τέτοιο ώστε: Άρα ισχύει για ½≤c<1. Άρα από την Γ’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 3 2 4)( n n TnT +      = 24loglog,)(,2,4 2 3 ===== annfba b )()( 23 ε+ Ω== nnnf cccn n cn n ncf n fncf b n af ≤⇔≤⇔≤⇔≤      ⇔≤      ⇔≤      2 1 8 4 2 4 2 4)( 2 4)( 3 3 3 3 3 )()( 3 nnT Θ= Σύγκριση: B ? 9:;< ‡ N Α’ΘΚ Β’ΘΚ i Γ’ΘΚ Παραδείγµατα: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΘΟΔΟΣ ΕΠΑΝΑΛΗΨΗΣ Παράδειγµα: Να λύσετε την αναδροµή: Τ ‰ 3Š T i 1 0 1 Λύση: Τ 3Š T 3 3Š T‹ T 3 Š T‹ 3 T 3 3Š TH T‹ 3 T 3C Š TH 3 T‹ 3 T ⋯ 3 Š TŒ 3 TŒ•Ž ⋯ 3 T‹ 3 T Η αναδροµή σταµατά όταν TŒ 1 ⇒ n 4 ⇒ k logT 3EFG‘ Š T’“”‘ # 3EFG‘ T’“”‘ #•Ž ⋯ 3 T‹ 3 T 3EFG‘ Š 1 3EFG‘ T’“”‘ #•Ž ⋯ 3 T‹ 3 T ∑ 3 T– EFG‘ ∑ 3 ‹ T– ‹ EFG‘ ∑ C– T‹ – EFG‘ ∑ C– ?– EFG‘ ∑ C ? EFG‘ H Ž— ’“”‘ # H Ž— Θ 1. Κάνουµε 3 εφαρµογές της αναδροµικής σχέσης (µέχρι να φτάσουµε στη µορφή: Τ n CŠ H ). Χρήσιµο το πρόχειρο 2. Εκτίµηση της σειράς που προκύπτει µετά από k επαναλήψεις (µας καθοδηγεί ο όρος: Š Œ ) 3. Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτουµε Œ και λύνουµε ως προς k). Π.χ. αν 1, τότε k log 4. Αντικατάσταση του k στον τύπο του βήµατος 2 5. Υπολογισµός της σειράς που προκύπτει. Χρήσιµος ο τύπος: ∑ #˜Ž Η µέθοδος της επανάληψης χρησιµοποιείται για την επίλυση της αναδροµικής σχέσης j n ™ š› n o p n , n i nœ ~, n nœ • Όταν το ζητάει ρητά η εκφώνηση • Όταν αποτυγχάνει το θεώρηµα κυριαρχίας • Όταν δεν θέλουµε απλά µία ασυµπτωτική εκτίµηση Τ 3Š T Š T 3Š T‹ T Š T‹ 3Š TH T‹ Πρόχειρο: 0 ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΘΟΔΟΣ ΕΠΑΝΑΛΗΨΗΣ › n š› n $ o ~ Παράδειγµα: Να λύσετε την αναδροµή: Τ • 3Š $ 2 4 i 0 1 0 Λύση: Τ 3Š $ 2 4 3 3Š $ 4 4 4 3 Š $ 4 3 ∙ 4 4 3 3Š $ 6 4 3 ∙ 4 4 3CŠ $ 6 3 ∙ 4 3 ∙ 4 4 ⋯ 3 Š $ 2ž 3 ∙ 4 ⋯ 3 ∙ 4 3 ∙ 4 4 Η αναδροµή σταµατά όταν $ 2ž 0 ⇒ k /2 3 # ‹Š 0 3 # ‹ ∙ 4 ⋯ 3 ∙ 4 3 ∙ 4 4 3 # ‹ 4 3 # ‹ ⋯ 3 3 1 3 # ‹ 4 ∑ 3 # ‹ 3 # ‹ 4 C # ‹ C 3 # ‹ 2 3 # ‹ $ 1 Θ 3 # ‹ 1. Κάνουµε 3 εφαρµογές της αναδροµικής σχέσης (µέχρι να φτάσουµε στη µορφή: Τ n C Š $ ž ). Χρήσιµο το πρόχειρο 2. Εκτίµηση της σειράς που προκύπτει µετά από k επαναλήψεις (µας καθοδηγεί ο όρος: Š $ ž ) 3. Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτουµε $ ž και λύνουµε ως προς k). Π.χ. αν 0, τότε k / 4. Αντικατάσταση του k στον τύπο του βήµατος 2 5. Υπολογισµός της σειράς που προκύπτει. Χρήσιµοι οι τύποι:∑ #˜Ž Η µέθοδος της επανάληψης χρησιµοποιείται για την επίλυση της αναδροµικής σχέσης j n Ÿ š› n $ o ~, n i nœ , n nœ • Όταν το ζητάει ρητά η εκφώνηση • Προσοχη: š _ ¡ Τ 3Š $ 2 4 Š $ 2 3Š $ 4 4 Š $ 4 3Š $ 6 4 Πρόχειρο: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΘΟΔΟΣ ΕΠΑΝΑΛΗΨΗΣ › n › n $ o p n Παράδειγµα: Να λύσετε την αναδροµή: Τ • Š $ 1 3 i 0 1 0 Λύση: 1. Γράφουµε όλους τους αναδροµικούς όρους T(n), T(n- 1),… µέχρι και την οριακή περίπτωση της αναδροµής 2. Προσθέτουµε τις εξισώσεις κατά µέλη 3. Υπολογισµός της σειράς που προκύπτει. Χρήσιµοι οι τύποι: ∑ % ∑ % % ? Η µέθοδος της επανάληψης (κάνοντας άθροισµα κατά µέλη) χρησιµοποιείται για την επίλυση της αναδροµικής σχέσης j n Ÿ › n $ o p n , n i nœ ~, n nœ 1)0( 13)0()1( 23)1()2( ... )2(3)3()2( )1(3)2()1( 3)1()( = ⋅+= ⋅+= −+−=− −+−=− +−= T TT TT nnTnT nnTnT nnTnT )(+ 15,15,1 2 )1( 3131 ])1()2(...21[31 3)1(3)2(3...23131 11323...)2(3)1(33)( 2 1 ++= = + +=+= +−+−++++= +−+−++⋅+⋅+= +⋅+⋅++−+−+= ∑= nn nn i nnn nnn nnnnT n i ΠΑΡΑ∆ΕΙΓΜΑ: Λύση: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΑΝΑΔΡΟΜΙΚΗ ΣΧΕΣΗ › n › n u › n o p n Λύση της αναδρομής: › n › n u › n o p n Υπολογίζουμε την ποσότητα 1. Αν τότε (δραστ.3.6) 2. Αν τότε (δραστ.3.6) 3. Αν τότε η δραστηριότητα 3.6 έχει αποτύχει και πάμε υποχρεωτικά με δένδρο αναδρομής ba 11 + ))(()( nfnT Θ= )log)(()( nnfnT ⋅Θ= 1 11 <+ ba 1 11 =+ ba 1 11 >+ ba ΠΑΡΑ∆ΕΙΓΜΑ: Να υπολογίσετε µια ασυµπτωτική εκτίµηση της αναδροµής: Λύση: Ισχύει: άρα από την δραστ.3.6 ισχύει: ΠΑΡΑ∆ΕΙΓΜΑ: Να υπολογίσετε µια ασυµπτωτική εκτίµηση της αναδροµής: Λύση: Ισχύει: άρα από την δραστ.3.6 ισχύει: 1 12 7 12 3 12 4 4 1 3 1 <=+=+ )()( 2 nnT Θ= n n T n TnT +      +      = 3 2 3 )( 1 3 3 3 2 3 1 ==+ )log()( nnnT ⋅Θ= 2 43 )( n n T n TnT +      +      = Το ύψος του δένδρου είναι log2n (αν c είναι ο µικρότερος από τους δύο παρονοµαστές (δηλ. c=min{a,b} ) έπεται ότι το ύψος του δένδρου είναι logcn.) ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΥΠΟΛΟΓΙΣΜΟΣ ΦΡΑΓΜΑΤΩΝ ΑΘΡΟΙΣΜΑΤΩΝ Παράδειγµα: Υπολογίστε ασυµπτωτικά άνω και κάτω φραγµατα του αθροίσµατος: Š log Υπολογισµός Άνω Φράγµατος: Εκτιµούµε από ποια ποσότητα είναι πάντα µικρότερος ο όρος του αθροίσµατος Άνω Φράγµα: (αφού ισχύει ότι log } log για κάθε 1, … , ) Š log } log log 1 log $ 1 1 log Θ log Συνεπώς Š £ log Υπολογισµός Κάτω Φράγµατος: Εκτιµούµε από ποια ποσότητα είναι πάντα µεγαλύτερος ο όρος του αθροίσµατος. Στην άσκηση αυτή έχουµε και µία αρκετά έξυπνη ιδέα! Κάτω Φράγµα: Š log ¤ log ¤ log 2 log 2 1 log 2 1 log $ log 2 $ 2 1 log $ 1 2 1 2 log $ 2 log $ 1 Θ n log n Συνεπώς Š Ω log Αν το άνω και το κάτω φράγµα είναι ίδια τότε ισχύει και το Θ(.) του κοινού φράγµατος. Αλλιώς ισχύουν τα φράγµατα της συνάρτησης πολυπλοκότητας που έχουµε υπολογίσει Συνεπώς αφού Š £ log και Š Ω log ισχύει ότι: Š Θ log

×