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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι. 3. Πολυπλοκότητα Αλγορίθμων

Διδάσκων: Παναγιώτης Ανδρέου

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Διδάσκων: Παναγιώτης Ανδρέου

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

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

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

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

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

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

Αλγόριθμοι ταξινόμησης

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

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

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

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

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 2

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

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

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κεφάλαιο 5ο: Εντολές Επανάληψης

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

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

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

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Αλγόριθµοι Ταξινόµησης

Αλγόριθµοι Ταξινόµησης

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

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

Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

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

Αναδρομικοί Αλγόριθμοι

Προγραμματιστικές Τεχνικές

( ) = inf { (, Ρ) : Ρ διαµέριση του [, ]}

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

f x = f a + Df a x a + R1 x, a, x U και από τον ορισµό της 1 h f a h f a h a h h a R h a i i j

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

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

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

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Υπολογιστικό Πρόβληµα

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ: ΠΛΗΡΟΦΟΡΙΚΗ ΘΕ: ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ Ι (ΠΛΗ 12) ΛΥΣΕΙΣ ΕΡΓΑΣΙΑΣ 3

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

11 Το ολοκλήρωµα Riemann

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

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

i : 0<=i<N-1 => data[i] <= data[i+1] 25/10/2009

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

ΘΕΩΡΙΑ: Έστω η οµογενής γραµµική διαφορική εξίσωση τάξης , (1)

Σχεδίαση και Ανάλυση Αλγορίθμων

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

f x = f a + Df a x a + R1 x, a, x U και από τον ορισµό της 1 h f a h f a h a h h a R h a i i j

Κεφάλαιο 6 Παράγωγος

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

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(), Ω(), Θ( ) Ανάλυση Πολυπλοκότητας Αλγορίθµων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-1

Βασικές Έννοιες Για πληροφορίες για τις πιο κάτω προκαταρτικές/ βασικές έννοιες (τις οποίες αναµένεται ότι ήδη γνωρίζετε) µπορείτε να συµβουλευτείτε τα κεφάλαια Ι και ΙΙ του βιβλίου του µαθήµατος, Itroductio to Algorithms, Corme, Leiserso, Rivest, ή/και τις σηµειώσεις του ΕΠΛ31. Σειρές, σχέσεις, συναρτήσεις, λογάριθµοι Απόδειξη µε τη µέθοδο της επαγωγής Απόδειξη µε τη µέθοδο της αντίφασης Γράφοι, δένδρα και οι σχετικές έννοιες Αναδροµικές Εξισώσεις. Αλγόριθµοι Ταξινόµησης ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-

Τι είναι ένας αλγόριθµος; οθέντος ενός προβλήµατος, αλγόριθµος είναι µια καλάπροσδιορισµένη διαδικασία η οποία παρέχει τις οδηγίες σύµφωνα µετις οποίες τα δεδοµένα του προβλήµατος µετασχηµατίζονται και συνδυάζονται για να προκύψει η λύση του προβλήµατος. al-khowarizmi, Πέρσης µαθηµατικός, 9ος αιώνας µ.χ. Αλγόριθµος του Ευκλείδη για υπολογισµό του µέγιστου κοινού διαιρέτη. Ένας αλγόριθµος πρέπει να αποτελείται από αντικειµενικές/ακριβείς οδηγίες. Και οι πιθανοτικοί αλγόριθµοι;; Η λήψη µιας πιθανοτικής απόφασης δεν είναι το ίδιο µε τη λήψη µιας τυχαιοποιηµένης απόφασης. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-3

Πολυπλοκότητα Αλγορίθµων Έννοιες: Πρόβληµα Αλγόριθµος Στιγµιότυπο (istace). Ένας αλγόριθµος πρέπει να ικανοποιεί τις εξής προϋποθέσεις: 1. πρέπει να εργάζεται σωστά για κάθε σύνολο δεδοµένων εισόδου, δηλ. για κάθε στιγµιότυπο του πεδίου ορισµού του προβλήµατος που λύνει.. πρέπει να είναι απoδοτικός. Υπάρχει ένα σύνολο σωστών αλγορίθµων για κάθε πρόβληµα. Όλοι οι αλγόριθµοι έχουν θεωρητικό ενδιαφέρον. Και πρακτικό ενδιαφέρον όµως παρουσιάζουν αυτοί που είναι αποδοτικοί, δηλαδή αυτοί που ελαχιστοποιούν: τον χρόνο που εκτελούνται, τον χώρο που χρησιµοποιούν. Στόχος: Εξοικείωση µε τεχνικές σχεδιασµού αλγορίθµων που ελαχιστοποιούν τον χρόνο εκτέλεσης και τον χώρο που χρησιµοποιούν. Έλεγχος αν και πότε ένας αλγόριθµος είναι άριστος/βέλτιστος (optimal), δηλαδή ο πιο αποδοτικός για το πρόβληµα για το οποίο σχεδιάστηκε. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-4

Εµπειρική Θεωρητική Ανάλυση Αλγορίθµων Ένας αλγόριθµος µπορεί να µελετηθεί εµπειρικά µετρώντας τον χρόνο και χώρο εκτέλεσής του σε συγκεκριµένο υπολογιστή. Θεωρητικά µπορούµεναυπολογίσουµε τον χρόνο και τον χώρο που απαιτεί ο αλγόριθµος σαν συνάρτηση του µεγέθους των εξεταζοµένων στιγµιότυπων. Τυπικά, µέγεθος ενός στιγµιότυπου αντιστοιχεί στο µέγεθος της µνήµης που απαιτείται για αποθήκευση του στιγµιότυπου στον υπολογιστή. Για απλούστευση της ανάλυσης θα µετρούµε τοµέγεθος ως τον ακέραιο (ή τους ακέραιους) που αντιστοιχούν στο πλήθος των ποσοτήτων του στιγµιότυπου. π.χ. Πρόβληµα: ταξινόµηση λίστας. Στιγµιότυπο: λίστα µε στοιχεία. Μέγεθος: Πλεονεκτήµατα της θεωρητικής προσέγγισης υπολογισµού αποδοτικότητας αλγορίθµων περιλαµβάνουν: 1. δεν εξαρτάται από το υλικό του Η/Υ (µνήµη, cache, κλπ). δεν εξαρτάται από τη γλώσσα προγραµµατισµού ή τον µεταφραστή 3. δεν εξαρτάται από τις ικανότητες του προγραµµατιστή. 4. είναι ΓΕΝΙΚΗ ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-5

Μονάδα Έκφρασης της Αποδοτικότητας Η αρχή της σταθερότητας ύο διαφορετικές υλοποιήσεις του ίδιου αλγορίθµου (σε διαφορετικές µηχανές ή σε διαφορετικές γλώσσες ή από διαφορετικούς προγραµµατιστές) δεν διαφέρουν στον χρόνο εκτέλεσής τους περισσότερο από κάποιο σταθερό πολλαπλάσιο. δηλ. αν E 1 είναι o χρόνος εκτέλεσης της µίας υλοποίησης και E της άλλης, τότε ισχύει E 1 = c E για κάποια σταθερά c. Θα λέµε ότι ένας αλγόριθµος απαιτεί (ή εκτελείται σε) χρόνο t() αν υπάρχει σταθερά c και εφαρµογή του αλγορίθµου τέτοια ώστε, για κάθε στιγµιότυπο µεγέθους ο χρόνος εκτέλεσης του αλγορίθµου είναι µικρότερος ή ίσος του c t(). Eίδη αλγορίθµων t() k c log k Όνοµα γραµµικός πολυωνυµικός εκθετικός λογαριθµικός ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-6

Μοντέλο Υπολογισµού Στο µεγαλύτερο µέρος του µαθήµατος θα υποθέσουµε τη χρήση υπολογιστή που εκτελεί οδηγίες διαδοχικά, RAM (radom-access machie). Αντιπαραθέστε το µοντέλο RAM µεέναµοντέλο το οποίο, χρησιµοποιώντας >1 επεξεργαστές, έχει τη δυνατότητα να εκτελεί m, m 0, οδηγίες παράλληλα. Βασική πράξη θεωρούµε ότι είναι οποιαδήποτε πράξη της οποίας ο χρόνος εκτέλεσης είναι φραγµένος από κάποια σταθερά (δηλ. c, γιακάποιασταθερά c). Συνεπώς ο χρόνος εκτέλεσης µιας βασικής πράξης είναι ανεξάρτητος από το µέγεθος ή τις παραµέτρους στιγµιότυπου οποιουδήποτε προβλήµατος. Επειδή ορίζουµε τον χρόνο εκτέλεσης ενός αλγορίθµου µε την έννοια του σταθερού πολλαπλασίου, για την ανάλυση θα χρειαστούµε µόνο τον αριθµό των βασικών πράξεων που εκτελούνται από ένα αλγόριθµο και όχι τον ακριβή χρόνο που απαιτούν η κάθε µια από αυτές. Άρα για τον υπολογισµό του χρόνου εκτέλεσης ενός αλγόριθµου απλά µετρούµετοναριθµό των βασικών πράξεων που εκτελεί. Με τον όρο "βασικές πράξεις" εννοούµε µαθηµατικές πράξεις (πρόσθεση, αφαίρεση ), σύγκριση, καταχώρηση µεταβλητής, επιστροφή αποτελέσµατος. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-7

Ανάλυση Χειρίστης Περίπτωσης Αν D είναι το σύνολο όλων των εισόδων (στιγµιότυπων)µεγέθους, και t(i) ο αριθµός βασικών πράξεων που εκτελούνται από τον αλγόριθµο γιακάθεi D τότε ορίζουµετηνπολυπλοκότητα Χειρίστης Περίπτωσης του αλγορίθµου ως W() = max { t(i) I D } ηλαδή, ο ορισµός δίνει ένα άνω φράγµα της πολυπλοκότητας του αλγορίθµου. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-8

Ανάλυση Μέσης Περίπτωσης Υποθέτουµεπωςµπορούµε να αντιστοιχίσουµε µια πιθανότητα p(i) σε κάθε είσοδο I D. Ορίζουµετην πολυπλοκότητα Μέσης Περίπτωσης ως A ( ) = p( I) t( I) I D ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-9

Εργαλεία Εκτίµησης Πολυπλοκότητας Ορισµός: Θεωρούµε συνάρτησητ(). Ορίζουµε 1. Τ() Ο(f ()), αν υπάρχουν θετικές σταθερές c και 0 ώστε Τ() c f(), για κάθε 0.. Τ() Ω(g()), αν υπάρχουν σταθερές c και 0 ώστε Τ() c g(), για κάθε 0. 3. Τ() Θ(h()), αν Τ() Ο(h()) και Τ() Ω(h()). Αν Τ() Ο(f ()), τότε λέµε πως η συνάρτηση Τ είναι της τάξεως f(). Αν Τ() Ω(f ()), τότε λέµε πως η Τ είναι της τάξεως ωµέγα της f (). Αν Τ() Θ(f ()), τότε λέµε πωςητείναιτηςτάξεως θήτα της f (). ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-10

Γραφική Απεικόνιση της τάξης Ο c g() f() f() O(g()) 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-11

Παραδείγµατα 3 O( ) c = 3, 0 = 1 3 O(.5 ) c = 1, 0 = 9 ( + 1) k = O( ) k= 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-1

Προσοχή Αν f O(g) και h O(g) f = h g() = 3, f() =, h() = Αν f O(g) και h O(g) f O(h) g() = 3, f() =, h() = Αν f O(g) και g O(h) f O(h) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-13

Γραφική Απεικόνιση της τάξης Ω f() c g() f() Ω(g()) 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-14

Κανόνες Αν f = Ω(g) και g = Ω(h) f = Ω(h) f = O(g) αν και µόνο αν g = Ω(f) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-15

Γραφική Απεικόνιση της τάξης Θ c g() f() c 1 g() f() Θ(g()) 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-16

Παραδείγµατα 1 c 3 1 1 =, c =, 14 Θ ( 1 0 = 7 ) α + β + γ Θ( ),α > 0 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-17

Εργαλεία Εκτίµησης Πολυπλοκότητας Θεώρηµα: Αν T 1 O(f) και T O(g), τότε 1. T 1 + T max (O(f),O(g)),. T 1 T O(f g), 3. αν T(x) είναι πολυώνυµο βαθµού k τότε T(x) O(x k ), 4. log k O() για κάθε σταθερά k. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-18

Εργαλεία Εκτίµησης Πολυπλοκότητας Απόδειξη του : Αφού T 1 O(f) και T O(g) τότε υπάρχουν 1,,c 1,c τέτοια ώστε Τ 1 () c 1 f(), για κάθε 1 και Τ () c g(), για κάθε. Θέτουµε c= c 1 c και m= max( 1, ). Tότε Τ 1 () Τ () c 1 f() c g() = c f() g(), για κάθε m. Εποµένως το ζητούµενο έπεται. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-19

Εργαλεία Εκτίµησης Πολυπλοκότητας Παραδείγµατα: 15 + 3 Ο() 134 Ο(1) 5 Θ( ) + 4 + O( ), O( 3 ), Με αυτό τον τρόπο µπορούµεναεκφράζουµε ανώτερα (τάξη Ο) και κατώτερα όρια (τάξη Ω) του χρόνου εκτέλεσης ενός αλγορίθµου. Προφανώς, κατά την ανάλυση αλγορίθµων, στόχος µαςείναιαυτάταόρια να είναι όσο το δυνατό πιο ακριβή. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-0

Υπολογισµός Χρόνου Εκτέλεσης 1. Οχρόνος που απαιτείται για την εκτέλεση µιας εντολής for είναι το πολύ ο χρόνος εκτέλεσης του βρόχου επί τον αριθµό επαναλήψεων του βρόχου.. Φωλιασµένοι βρόχοι: Η ανάλυση γίνεται από τα µέσα προς τα έξω. Προσοχή: αν ο χρόνος εκτέλεσης του εσωτερικού βρόχου εξαρτάται από τον εξωτερικό βρόχο, η ανάλυση πρέπει να το λάβει υπόψη. 3. Ο χρόνος εκτέλεσης της εντολής S ; S παίρνει χρόνο ίσο του αθροίσµατος των χρόνων εκτέλεσης των S και S. 4. Ο χρόνος εκτέλεσης της εντολής if b the S else S παίρνει χρόνο µικρότερο του αθροίσµατος των χρόνων εκτέλεσης των b, S και S. 5. Ο χρόνος εκτέλεσης µιας αναδροµικής διαδικασίας µπορεί να υπολογιστεί µε τηλύσηµιας αναδροµικής εξίσωσης. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-1

Παραδείγµατα 1. it k=0; for ( it i=0; i<; i++) for ( it j=0; j<; j++) k++; ² ²+1 O(²). it k=0; for ( it i=1; i<; i = *i) for ( it j=1; j<; j++) k++ lg O(lg ) 3. it sum=0; for ( it i=0; i<; i++) for ( it j=0; j<i*i; j++) sum++; ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-

Λύση παραδείγµατος 3 Παρατηρούµε ότι ο χρόνος εκτέλεσης του εσωτερικού βρόχου εξαρτάται από την τιµή i, η οποία καθορίζεται από τον εξωτερικό βρόχο. Ο πιο κάτω πίνακας δείχνει το πόσες φορές εκτελείται ο εσωτερικός βρόχος, Ν(i), σαν συνάρτηση του i: i 0 1-1 N(i) 0 1 4 (-1)² Άρα Ν(i)=i². Ο χρόνος εκτέλεσης του προγράµµατος είναι ίσος µε το άθροισµα του χρόνου εκτέλεσης κάθε επανάληψης του εσωτερικού βρόχου, δηλαδή: T( ) = = i 1 0 i ( 1)( 1) = Θ( 6 3 ) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-3

Γραµµική - υαδική ιερεύνηση εδοµένα Εισόδου: Πίνακας Χ µε στοιχεία, ταξινοµηµένος από το µικρότερο στο µεγαλύτερο, και ακέραιος k. Στόχος: Να εξακριβώσουµε αν το k είναι στοιχείο του Χ. Γραµµική ιερεύνηση: εξερευνούµε τον πίνακα από τα αριστερά στα δεξιά. it liear( it X[], it, it k){ it i=0; while ( i < ) if (X[i] == k) retur i; if (X[i] > k) retur -1; i++; retur -1; } Χρόνος εκτέλεσης: Εξαρτάται από το που (και αν) ο k βρίσκεται στον Χ[]. Χείριστη περίπτωση: O() ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-4

Γραµµική - υαδική ιερεύνηση υαδική ιερεύνηση: βρίσκουµε το µέσο του πίνακα και αποφασίζουµε αν το k ανήκει στο δεξιό ή το αριστερό µισό. Επαναλαµβάνουµε την ίδια διαδικασία στο "µισό" που µας ενδιαφέρει. it biary( it X[],it,it k){ it low = 0, high = -1; it mid; while ( low < high ){ mid = (high + low)/; if (X[mid] < k) low = mid + 1; else if (X[mid] > k) high=mid-1; else retur mid; } retur -1; } Χρόνος εκτέλεσης; O(lg ) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-5

ΟΑλγόριθµος Ταξινόµησης IsertioSort void ΙsertioSort(it A[], it ){ it temp; } for (it i=; i<=; i++){ temp=a[i]; for (it j=i;(j>1)&&(temp < A[j-1]); j--) A[j]=A[j-1]; A[j]=temp; } Χρόνος Εκτέλεσης Χειρίστης Περίπτωσης: O(²) ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-6

Ανάλυση Μέσης Περίπτωσης Έστω ότι έχουµε στοιχεία, το καθένα διαφορετικό από όλα τα άλλα. Υπάρχουν! διαφορετικές τοποθετήσεις των στοιχείων. Έστω ότι είναι όλες εξίσου πιθανές. Για να υπολογίσουµε τον χρόνο εκτέλεσης µέσης περίπτωσης µπορούµε 1. να προσθέσουµε τους χρόνους που απαιτούνται για τις ταξινοµήσεις της κάθε µιας από τις πιθανές τοποθετήσεις και να διαιρέσουµε δια!, ή. να αναλύσουµε άµεσα το χρόνο εκτέλεσης µέσης περίπτωσης επιχειρηµατολογώντας πιθανοτικά: Για κάθε i, θεωρήστε τον υποπίνακα Α[1..i]. Ορίζουµε τη συνάρτηση θέση(i) που για κάθε i µας δίνει τη θέση στην οποία θα βρισκόταν το στοιχείο Α[i] αν ο πίνακας Α[1..i] ήταν ταξινοµηµένος. π.χ. Αν Α=[4,,1,5,7,3] τότε θέση[3]=1. ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-7

Ανάλυση Μέσης Περίπτωσης Παρατήρηση: Αν όλες οι τοποθετήσεις των στοιχείων του πίνακα Α είναι εξίσου πιθανές, τότε όλες οι τιµές της συνάρτησης θέση(i), οι οποίες µπορεί να ανήκουν στο σύνολο [1..i] είναι επίσης εξίσου πιθανές. Αυτή η ιδιότητα ισχύει κάθε φορά που εκτελούµε τον εσωτερικό βρόχο του IsertioSort. Αν θέση(i) = k, τότε ο εσωτερικός βρόχος θα εκτελεστεί i-k+1 φορές. Άρα ο µέσος όρος βηµάτων κατά την i-οστή εκτέλεση του εξωτερικού βρόχου είναι i 1 i + 1 ci = ( i k + 1) = i k = 1 Και ο συνολικός µέσος όρος βηµάτων είναι i = c i = i = i + 1 ( 1)( + 4) = = Θ ( ) 4 ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-8

MergeSort Ανάλυση Αναδροµικού Αλγόριθµου Η πιο κάτω διαδικασία ταξινοµεί τον πίνακα Α[l, r] µε συγχώνευση, όπου θεωρούµε ότι η διαδικασία Merge(A[l,mid], A[mid+1,r]) συγχωνεύει τους δύο ταξινοµηµένους υποπίνακες A[l,mid], και A[mid+1,r] σε ένα ταξινοµηµένο πίνακα. MergeSort(A[],it l, it r){ if (l == r) retur; it mid = (l+r)/; MergeSort(A, l, mid); MergeSort(A, mid + 1, r); Merge(A[l,mid], A[mid+1,r]); } ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-9

ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 1-30 Ανάλυση Αναδροµικού Αλγόριθµου Έστω Τ() ο χρόνος εκτέλεσης της διαδικασίας MergeSort µε δεδοµένο εισόδου l=1, r=. Τότε έχουµε Λύση της αναδροµικής εξίσωσης µε τη µέθοδο της επανάληψης: Μπορεί να αποδειχθεί ότι ο αλγόριθµος είναι άριστος για το πρόβληµα. δηλ. ότι το πρόβληµα είναι της τάξης Θ( lg ). + = = otherwise, / 1 if 1, ) ( ) T( T T k ) T( k i ) T( ) T( ) ) T( ( ) T( T() k k i i lg lg (1) / } lg { /... / / 4 / / + = + = + = = + = = + = + + = + =