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

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

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

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

5.1. Προσδοκώμενα αποτελέσματα

ΠΕΡΙΕΧΟΜΕΝΑ. Επίδοση αλγορίθμων. Πολυπλοκότητα αλγορίθμων Είδη αλγορίθμων

Φίλη μαθήτρια, φίλε μαθητή

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

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

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

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

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

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

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

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

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

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

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

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

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

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

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

ΘΕΜΑΤΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΕΠΑΝΑΛΗΠΤΙΚΟ 10/4/2016

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

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

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

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

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

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

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

«Η Αλγοριθμική Πολυπλοκότητα στο Γενικό Λύκειο»

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

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

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

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

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

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

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

ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΕΠΙΔΟΣΗ ΑΛΓΟΡΙΘΜΩΝ. 3. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

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

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

ΑΕΠΠ 6o Επαναληπτικό Διαγώνισμα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

περιεχόμενα ρυθιμός αύξησης συναρτήσεων ασυμπτωτική πολυπλοκότητα ασυμπτωτική επίδοση ασυμπτωτικοί συμβολισμοί ασυμπτωτικός συμβολισμος

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Πρόβλημα 37 / σελίδα 207

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

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

Προτεινόμενος τρόπος διδασκαλίας του μαθήματος με ενδεικτικό χρονοπρογραμματισμό. Α/Α Ενότητες Περιγραφή Ώρες 1 Εισαγωγικό μάθημα 1

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

ÁÎÉÁ ÅÊÐÁÉÄÅÕÔÉÊÏÓ ÏÌÉËÏÓ

ΘΕΜΑ Α. Μονάδες 10 Α2.

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

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

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 29 ΜΑΪΟΥ 2013 ΕΚΦΩΝΗΣΕΙΣ

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

ΦΡΟΝΤΙΣΤΗΡΙΟ Μ.Ε. «ΠΕΡΙ ΓΝΩΣΕΩΣ»

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

Συνδυαστική Βελτιστοποίηση

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

Προτεινόμενα Θέματα ΑΕΠΠ

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

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

ΘΕΜΑ 1ο Α. 1-6 Σωστό Λάθος Μονάδες 12 Β. Στήλης Στήλης Β Στήλης Α Στήλης Β).

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

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

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

Περιεχόμενα. Περιεχόμενα

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

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

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

Chapter 7, 8 : Time, Space Complexity

Transcript:

Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι αλγόριθμοι; 3. πώς μπορεί να γνωρίζει κανείς, αν ένας αλγόριθμος είναι "βέλτιστος"; 1

5.1.1 Χειρότερη περίπτωση ενός αλγορίθμου Με κάποιες συγκεκριμένες τιμές εισόδου σε έναν αλγόριθμο, προκύπτει το μέγιστο κόστος εκτέλεσης του αλγορίθμου και ισούται με τον μέγιστο αριθμό των βασικών πράξεων (π.χ. εκχώρηση, σύγκριση, πράξη). 2

5.1.2 Μέγεθος εισόδου ενός αλγορίθμου Kάποια ή κάποιες μεταβλητές εκφράζουν το μέγεθος (size) του αλγορίθμου. 3

5.1.3 Χρόνος εκτέλεσης προγράμματος ενός αλγορίθμου Οι βρόχοι επανάληψης αποτελούν το κρίσιμο σημείο για τον χαρακτηρισμό της επίδοσης ενός αλγορίθμου Έτσι αν ο αλγόριθμος αυτός γενικευθεί ώστε ο βρόχος να εκτελεσθεί n φορές, ο χρόνος εκτέλεσης θα εξαρτάται από το μέγεθος του n. 4

5.1.4 Αποδοτικότητα αλγορίθμων Αν η επίλυση ενός προβλήματος επιτυγχάνεται με τη χρήση δύο ή περισσοτέρων αλγορίθμων, χρειάζεται να γίνει η επιλογή του καταλληλότερου με βάση την αποδοτικότητά τους με βασικούς παράγοντες την ταχύτητα και το μέγεθος της απαιτούμενης μνήμης. Όταν συγκρίνονται δύο αλγόριθμοι, θα πρέπει να συγκρίνονται με χρήση των ίδιων δεδομένων και κάτω από τις ίδιες συνθήκες. Ο χρόνος εκτέλεσης κάθε αλγορίθμου εξαρτάται από τα εξής: 1. Τύπος ΗΥ 2. Γλώσσα προγραμματισμού 3. Δομή προγράμματος και δομές δεδομένων 4. Χρόνος πρόσβασης στο δίσκο και στις ενέργειες εισόδου-εξόδου 5. Είδος συστήματος (ενός χρήστη ή πολλών χρηστών) 5

5.1.4 Αποδοτικότητα αλγορίθμων Προϋποθέσεις σύγκρισης μεταξύ δύο προγραμμάτων: 1. ίδια γλώσσα προγραμματισμού 2. ίδιος μεταφραστής 3. ίδια υπολογιστική πλατφόρμα 4. ίδια δεδομένα εισόδου κατά τον έλεγχο 6

5.3 Πολυπλοκότητα αλγορίθμων Τρόποι μέτρησης της επίδοσης ενός αλγορίθμου α) εμπειρικός (empirical) ή αλλιώς ο λεγόμενος εκ των υστέρων (a posteriori). ο αλγόριθμος εφαρμόζεται σε ένα σύνολο δεδομένων, ώστε να υπολογισθεί: ο απαιτούμενος χρόνος επεξεργασίας (processing time) και η χωρητικότητα μνήμης (memory space) Μειονεκτήματα - λόγοι λανθασμένων εκτιμήσεων: 1. δύσκολη η πρόβλεψη της συμπεριφοράς του αλγορίθμου για άλλο σύνολο δεδομένων 2. ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραμματισμού και το μεταφραστή και τη δεινότητα του προγραμματιστή. 7

5.3 Πολυπλοκότητα αλγορίθμων β) θεωρητικός (theoretical) ή αλλιώς ο λεγόμενος εκ των προτέρων (a priori) στον οποίο εισάγεται μία μεταβλητή n, που εκφράζει το μέγεθος (size) του προβλήματος. π.χ. αν το πρόβλημα είναι η ταξινόμηση k στοιχείων τότε n=k. Μία συνάρτηση f(n) εκφράζει τη χρονική πολυπλοκότητα (time complexity) ή την πολυπλοκότητα χώρου (space complexity) χωρίς να ενδιαφέρουν οι επακριβείς τιμές αλλά μόνο η γενική συμπεριφορά των αλγορίθμων, δηλαδή η τάξη του αλγορίθμου Ο (Onotation) order. Ορισμός: Αν η πολυπλοκότητα ενός αλγορίθμου είναι f(n), τότε λέγεται ότι είναι τάξης O(g(n)), αν υπάρχουν δύο θετικοί ακέραιοι c και n 0, έτσι ώστε για κάθε n n 0 να ισχύει: f(n) c g(n) Ο συμβολισμός Ο δίνει ένα άνω φράγμα για την πολυπλοκότητα ενός αλγορίθμου. 8

5.3 Πολυπλοκότητα αλγορίθμων π.χ.1. έστω ότι η πολυπλοκότητα ενός αλγορίθμου είναι f(n)=2n 3 +5n 2-4n+3. Ο πιο σημαντικός όρος (που έχει το μεγαλύτερο «ειδικό βάρος») του πολυωνύμου είναι η τρίτη δύναμη η πολυπλοκότητα του αλγορίθμου είναι O(n 3 ) π.χ.2. έστω ότι η πολυπλοκότητα ενός αλγορίθμου είναι f(n) = 5 2 n +4n 2-4logn Ο πιο σημαντικός όρος του πολυωνύμου είναι το 2 n η πολυπλοκότητα του αλγορίθμου είναι O(2 n ) 9

5.3 Πολυπλοκότητα αλγορίθμων Κατηγορίες πολυπλοκότητας Ο(1): σταθερή πολυπλοκότητα όπου κάθε εντολή εκτελείται μία φορά ή το πολύ μερικές μόνο φορές O(logn): λογαριθμική πολυπλοκότητα όπου "log" ο δυαδικός λογάριθμος O(n): γραμμική πολυπλοκότητα. Η καλύτερη επίδοση για έναν αλγόριθμο που πρέπει να εξετάσει ή να δώσει στην έξοδο n στοιχεία. Ο(n logn): Διαβάζεται όπως ακριβώς γράφεται. Στην κατηγορία αυτή ανήκει μία πολύ σπουδαία οικογένεια αλγορίθμων ταξινόμησης. Ο(n 2 ): τετραγωνική πολυπλοκότητα. Ο(n 3 ): κυβική πολυπλοκότητα Ο(2 n ): εκθετική πολυπλοκότητα Οι τρεις τελευταίες πρέπει να χρησιμοποιούνται μόνο για προβλήματα μικρού μεγέθους. 10

5.3 Πολυπλοκότητα αλγορίθμων Εάν κάθε στοιχειώδης πράξη απαιτεί ένα μικροδευτερόλεπτο: Σκοπός κατά την ανάλυση των αλγορίθμων δεν είναι μόνο να σχεδιάσουμε έναν αλγόριθμο, αλλά και να διαπιστώσουμε την επίδοση του, δηλαδή να εκφράσουμε την πολυπλοκότητά του με το συμβολισμό Ο. 11

5.3.1 Ταξινόμηση ευθείας ανταλλαγής 5.3.2 Γραμμική αναζήτηση 12

Τέλος Κεφ. 5 13