Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Σχετικά έγγραφα
Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1.

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Αλγόριθμοι και Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Μαθηµατικά για Πληροφορική

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Δομές Δεδομένων Ενότητα 2

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

Εξαντλητική Απαρίθµηση

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

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

Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Τηλ , Fax: , URL:

Δομές Δεδομένων & Αλγόριθμοι

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Δομές Δεδομένων και Αλγόριθμοι

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

1o Φροντιστήριο ΗΥ240

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Ασκήσεις (2) Άσκηση 1

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

Αλγόριθµοι και Πολυπλοκότητα

Εισαγωγή στην Ανάλυση Αλγορίθμων

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

Επιπλέον Ασκήσεις. Μαθηµατική Επαγωγή. ιαιρετότητα. Προβλήµατα ιαιρετότητας.

Δομές Δεδομένων (Data Structures)

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Πολυπλοκότητα Αλγορίθµων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2

- εξίσωση που εκφράζει τον n-οστό όρο a n της ακολουθίας, - µέσω ενός ή περισσότερων όρων από τους a 0, a 1,..., a n 1, - για κάθε n n 0, όπου n 0 N.

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 3

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΗΥ240: οµές εδοµένων

Υπολογιστικά & Διακριτά Μαθηματικά

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Κεφάλαιο 2 Ανάλυση Αλγορίθμων

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Αλγόριθµοι και Πολυπλοκότητα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 1η: Εισαγωγή Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Αλγόριθμοι και Πολυπλοκότητα

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ ΣΗΜΕΙΩΣΕΙΣ #6 ΘΕΟ ΟΥΛΟΣ ΓΑΡΕΦΑΛΑΚΗΣ

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

Επίλυση Γραµµικών Συστηµάτων

ιακριτά Μαθηµατικά Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

Transcript:

Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C και n 0, τέτοιες ώστε: f(n) C g(n) για κάθε n n 0 Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Κατά τα γνωστά, γράφουµε f(n) = Ω(g(n)) (αλλά ξέρουµε τι εννοούµε). Θεώρηµα. f(n) = Ω(g(n)) αν και µόνο αν g(n) = O(f(n)). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα / 19 Συµβολισµός Ω( ) Συµβολισµός Θ( ) f(n) Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C και n 0, τέτοιες ώστε: cg(n) C 1 g(n) f(n) C g(n) για κάθε n n 0 Κατά τα γνωστά, γράφουµε f(n) = Θ(g(n)) (αλλά ξέρουµε τι εννοούµε). Προτάσεις (χρήσιµες για την εκτίµηση του Θ( )): n 0 f = Ω(g) Η f(n) µεγαλώνει τουλάχιστον τόσο γρήγορα όσο ένα σταθερό πολλαπλάσιο της g(n), καθώς το n πηγαίνει στο άπειρο. n f(n) = Θ(g(n)) αν και µόνο αν g(n) = Θ(f(n)). f(n) = Θ(g(n)) αν και µόνο αν f(n) = O(g(n)) και g(n) = O(f(n)). f(n) = Θ(g(n)) αν και µόνο αν f(n) = O(g(n)) και f(n) = Ω(g(n)). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 3 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 4 / 19

Απόδειξη Πρότασης Συµβολισµός Θ( ) f(n) = Θ(g(n)) αν και µόνο αν f(n) = O(g(n)) και g(n) = O(f(n)). c g(n) 1. f(n) = Θ(g(n)) = C 1 g(n) f(n) C g(n), για κάθε n n 0. Αρα: c 1g(n) f(n) n n 0 : f(n) C g(n) = f(n) = O(g(n)). n n 0 : g(n) C 1 1 f(n) = g(n) = O(f(n)). { f(n) C1 g(n) για n n 1. f(n) = O(g(n)), g(n) = O(f(n)) g(n) C f(n) για n n n 0 n Αρα: για κάθε n max(n 1, n ): C 1 g(n) f(n) C 1 g(n) Εποµένως: f(n) = Θ(g(n)) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 5 / 19 f = Θ(g) ηλαδή η f(n) µεγαλώνει ακριβώς τόσο γρήγορα όσο η g(n), καθώς το n πηγαίνει στο άπειρο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 6 / 19 Παραδείγµατα Να δείξετε ότι: (1) 8n 3 + 5n + 7 = Ω( n ) () log a n = Θ(log b n), για κάθε δύο ϐάσεις a, b. (3) Ποιά η τάξη της f(n) = 1 + c + c + + c n αναλόγως των τιµών του c; (4) Να εξάγετε έκφραση Θ( ) για την τάξη των πολυωνύµων. (5) Να εξάγετε έκφραση Θ( ) για την τάξη των κλασµάτων πολυωνύµων. (6) Να δείξετε ότι log(n!) = Θ(n log n). Παράδειγµα 3 Αν c < 1: Αν c = 1: Αν c > 1: άθροισµα άπειρων όρων γεωµετρικής προόδου f(n) = 1 + c + c + + c n f(n) 1 = Ω(1) f(n) = 1 + c + c + + c n = k=0 c k = 1 1 c = O(1) n + 1 ϕορές {}}{ 1 + 1 + 1 + + 1 = Θ(n) άθροισµα n + 1 πρώτων όρων γεωµετρικής προόδου f(n) = 1 + c + c + + c n = n k=0 c k = cn+1 1 c 1 = Θ(c n+1 ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 7 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 8 / 19

Παράδειγµα 4α: Η Τάξη των Πολυωνύµων Παράδειγµα 4β: Η Τάξη των Πολυωνύµων Εχουµε δείξει p(n) = O(n k ), για p(n) = n k + 1 n k 1 + + a 0, 0. Μένει να δείξουµε ότι: p(n) = Ω(n k ). Θέτουµε: Τότε, για κάθε n n 0 είναι: C =, και n 0 = max ( 1, ) a i Παρατήρηση. Μπορούµε να υποθέσουµε ότι > 0: Αν < 0, αρκεί να δείξουµε ότι p(n) = Ω(n k ). Τότε ϑα είναι p(n) C n k για n n 0, για κατάλληλα n 0, C. Εποµένως ϑα ισχύει και p(n) C n k, για τα ίδια n 0, C. Αρα ϑα είναι p(n) = Ω(n k ) επίσης. k 1 n a i a i n i (k 1) Παρατηρήστε ότι n i (k 1) 1, για κάθε i = 0,..., k 1, και επειδή n 1. Πολλαπλασιάζοντας µε n (k 1) και τα δύο µέλη: nk a i n i = ( 1)a i n i a i n i Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 9 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 10 / 19 Παράδειγµα 4γ: Η Τάξη των Πολυωνύµων Παράδειγµα 5: Η Τάξη των Κλασµάτων Πολυωνύµων Θεωρούµε τη συνάρτηση r(n) = p(n)/q(n), όπου: Προσθέτουµε ( /)n k και στα δύο µέλη και έχουµε: n k a k nk a i n i Εποµένως: p(n) nk, για κάθε n n 0. Και είναι C = /, όπως είχαµε ορίσει. Τελικά, p(n) = Ω(n k ). p(n) είναι πολυώνυµο ϐαθµού k q(n) είναι πολυώνυµο ϐαθµού λ. Είναι p(n) = Θ(n k ), άρα: C 1 nk p(n) C 1 n k για n n 1. Είναι q(n) = Θ(n λ ), άρα: C nλ q(n) C n λ, για n n. Εποµένως έχουµε: C 1 n k λ p(n) C q(n) C 1 n k λ, για n max{n 1, n } C Αρα, τελικά r(n) = Θ(n k λ ). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 11 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 19

Ασκηση Αλγόριθµοι «Ορισµός» Να γράψετε τις συναρτήσεις σε σειρά αύξουσας τάξης. n + (log n), n 100 + n, n + (log n) 100, n + n!, n + 3 n, 4n + n n, n(log n) + n log n, n n + (log n) 10 Αλγόριθµος είναι µια πεπερασµένη ακολουθία σαφών οδηγιών (ϐηµάτων) για την εκτέλεση ενός υπολογισµού ή την επίλυση ενός προβλήµατος. ιόλου µαθηµατικός «ορισµός», µε υποκειµενικά και αναδροµικά στοιχεία: «σαφείς»: όχι αντικειµενικά σαφές. «οδηγίες»: είναι η οδηγία αλγόριθµος; είναι ο αλγόριθµος οδηγία; «υπολογισµός»: τί είναι; είναι η εκτέλεση αλγορίθµου; (που µε τη σειρά του είναι η εκτέλεση του υπολογισµού;) Επισήµως δεν έχουµε ορθό και πλήρη µαθηµατικό ορισµό του αλγορίθµου Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 13 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 14 / 19 Επιθυµητά Χαρακτηριστικά Αλγορίθµων Υπολογιστική Πολυπλοκότητα Αλγορίθµου Είσοδος: από ένα προδιαγεγραµµένο σύνολο τιµών εισόδου. Εξοδος: από ένα προδιαγεγραµµένο σύνολο τιµών εξόδου. Πληρότητα Περιγραφής: πλήρης και σαφής προδιαγραφή ϐηµάτων. Ορθότητα: παραγωγή ορθής εξόδου για δεδοµένη είσοδο. Πεπερασµένο Πλήθος Βηµάτων: εκτελέσιµων σε πεπερασµένο χρόνο. Ανω φράγµα πλήθους στοιχειωδών πράξεων που εκτελεί ο αλγόριθµος Χειρότερη περίπτωση χρόνου εκτέλεσης, για όλες τις δυνατές εισόδους. Η πολυπλοκότητα (χρόνος χειρότερης περίπτωσης) του αλγορίθµου: είναι συνάρτηση f(n) του µεγέθους n των δεδοµένων εισόδου, εκφράζεται από την τάξη O(f(n)) της συνάρτησης αυτής. Λέµε ότι ο αλγόριθµος: Γενικότητα: Ενας αλγόριθµος επιλύει ορθά όλα τα «στιγµιότυπα» ενός προβλήµατος και όχι µόνο ένα συγκεκριµένο (για συγκεκριµένη είσοδο). έχει πολυπλοκότητα O(f(n)), ή είναι χρόνου O(f(n)) ή έχει χρόνο (εκτέλεσης) χειρότερης περίπτωσης O(f(n)). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 15 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 16 / 19

Αλγόριθµος Εύρεσης Μεγίστου Παραδείγµατα findmax(a 1, a,..., a n : ακέραιοι) 1. max := a 1. για i := έως n 1. αν max < a i τότε max := a i 3. επίστρεψε max. Περιγραφή µε Ψευδοκώδικα Ενδεικτικές Στοιχειώδεις Πράξεις: int find_max(int a[],int n) { int max, i; max = a[0]; for(i = 1; i < n; i++) if (max < a[i]) max = a[i]; return max; } Υλοποίηση σε γλώσσα C Προσθέσεις, αφαιρέσεις, πολλαπλασιασµοί, διαιρέσεις. Αναθέσεις / Αναγνώσεις / Επιστροφές τιµών µεταβλητών. Συγκρίσεις (π.χ. σε if... else, σε while και σε do... while). 1. t := 0. για i := 1 έως 3:.1. για j := 1 έως 4:.1.1. t := t + i j 1. Χρόνος: O(1) 1. m := 0. για i := 1 έως n:.1. για j := i + 1 έως n:.1.1. m := max(a i a j, m) 3. Χρόνος: O(n ) 1. t := 0. για i := 1 έως n:.1. για j := 1 έως n:.1.1. t := t + i + j. Χρόνος: O(n ) 1. i := 1. t := 0 3. όσο i n: 3.1. t := t + i 3.. i := i 4. Χρόνος: O(log n) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 17 / 19 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 18 / 19 Επεξηγήσεις 1. 3 «εξωτερικές» επαναλήψεις, έκαστη αποτελούµενη από 4 «εσωτερικές»: σταθερός χρόνος σε κάθε «εσωτερική» επανάληψη.. n «εξωτερικές» επαναλήψεις, έκαστη αποτελούµενη από n «εσωτερικές» σταθερός χρόνος σε κάθε «εσωτερική» επανάληψη. 3. Η i-οστή «εξωτερική» επανάληψη έχει n i «εσωτερικές» επαναλήψεις: 1 + + 3 + + (n 1) = n(n 1) = O(n ) 4. Στο τέλος της k-στής επανάληψης ϑα είναι i = k : τερµατισµός όταν k = n + 1 = k = log(n + 1) = O(log n). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 19 / 19