Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ZΕπίδοση αλγορίθμων zΠολυπλοκότητα αλγορίθμων Κεφάλαιο 5 : Ανάλυση Αλγορίθμων.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ZΕπίδοση αλγορίθμων zΠολυπλοκότητα αλγορίθμων Κεφάλαιο 5 : Ανάλυση Αλγορίθμων."— Μεταγράφημα παρουσίασης:

1 zΕπίδοση αλγορίθμων zΠολυπλοκότητα αλγορίθμων Κεφάλαιο 5 : Ανάλυση Αλγορίθμων

2 zνα μελετήσετε τις μεθόδους εύρεσης και τυποποίησης της επίδοσης των αλγορίθμων, zνα σχολιάσετε και να τυποποιήσετε τους κανόνες επιλογής αλγορίθμων με βάση την αποδοτικότητα τους, zνα εξοικειωθείτε με την έννοια της πολυπλοκότητας των αλγορίθμων, zνα εξειδικεύσετε στην ανάλυση αλγορίθμων για λειτουργίες σε συχνά χρησιμοποιούμενα είδη προβλημάτων, Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Διδακτικοί στόχοι κεφαλαίου

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

4 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Επίδοση αλγορίθμων Η χειρότερη περίπτωση ενός αλγορίθμου αφορά στο μέγιστο κόστος εκτέλεσης του αλγορίθμου, κόστος που μετράται σε υπολογιστικούς πόρους. Για να εκφρασθεί η χειρότερη περίπτωση χρειάζεται κάποιο μέγεθος σύγκρισης που να χαρακτηρίζει τον αλγόριθμο. Η πλέον συνηθισμένη πρακτική είναι η μέτρηση του αριθμού των βασικών πράξεων που θα πρέπει να εκτελέσει ο αλγόριθμος στη χειρότερη περίπτωση. Μία βασική πράξη μπορεί να είναι :  ανάθεση τιμής,  σύγκριση μεταξύ δύο μεταβλητών, ή  οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών.

5 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Επίδοση αλγορίθμων Αλγόριθμος Χειρότερη_περίπτωση Ν ← 10 Αρχή_επανάληψης Διάβασε Μ Ν ← Ν-1 Μέχρις_ότου (Μ=0) ή (Ν=0) Εμφάνισε M Τέλος Χειρότερη_περίπτωση Ποια θα είναι η χειρότερη περίπτωση όταν εφαρμόζουμε Σειριακή αναζήτηση στον πίνακα Α[100]; Ι ← 1 DONE ← ΨΕΥΔΗΣ ΘΕΣΗ ← 0 ΟΣΟ Ι<=100 ΚΑΙ DONE=ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ ΑΝ Α[Ι]=ΚΕΥ ΤΟΤΕ ΘΕΣΗ ← Ι DONE ← ΑΛΗΘΗΣ ΤΕΛΟΣ_ΑΝ Ι ← Ι+1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

6 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Μέγεθος εισόδου αλγορίθμων Μέγεθος (size) αλγορίθμου προκύπτει από τις μεταβλητές που απεικονίζουν τους διαφορετικούς συνδυασμούς τιμών που κρίνουν τη συμπεριφορά ενός αλγορίθμου και δίνονται ως δεδομένα στον αλγόριθμο. ΑλγόριθμοςΜέγεθος εισόδου αλγορίθμου (n) Βασική Πράξη ΤΑΞΙΝΟΜΗΣΗ το πλήθος των αντικειμένων που θα ταξινομηθούν σύγκριση ΠΟΛΛΑΠΛΑΣΙΑ ΣΜΟΣ το πλήθος των ψηφίων των αριθμών που θα πολλαπλασιασθούν αριθμητικές πράξεις ΑΝΑΖΗΤΗΣΗτο πλήθος των στοιχείων του πίνακασύγκριση

7 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνος επίδοσης αλγορίθμων Αλγόριθμος Παράδειγμα_5.1 x  123 y  234 Για i από 0 μέχρι 4 Εκτύπωσε i z  x * y Τέλος_επανάληψης Εκτύπωσε x, y, z Τέλος Παράδειγμα_5.1 Εντολή αλγορίθμου Αριθμός πράξεων ανάθεση τιμών στα x και y2 Βρόχος επανάληψης αρχική τιμή i έλεγχος i εκτύπωση i υπολογισμός z (2X5) αύξηση i Εκτύπωση x, y, z3 ΣΥΝΟΛΟ32 F(5)= (5+1) * F(n)= (n+1) + n + 2*n + n + 3 F(n)= 5*n + 7

8 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνος επίδοσης αλγορίθμων Αλγόριθμος Παράδειγμα_1 a  1 b  2 Για i από 1 μέχρι 100 a  i b  a*i Τέλος_επανάληψης Εκτύπωσε a, b Τέλος Παράδειγμα_1 Εντολή αλγορίθμου Αριθμός πράξεων ανάθεση τιμών στα a και b2 Βρόχος επανάληψης αρχική τιμή i έλεγχος i ανάθεση τιμών στο a ανάθεση τιμών στο b (2X100) αύξηση i Εκτύπωση a, b2 ΣΥΝΟΛΟ506 F(100)= (100+1) * F(n)= (n+1) + n + 2*n + n + 2 F(n)= 5*n + 6

9 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνος επίδοσης αλγορίθμων Αλγόριθμος Παράδειγμα_2 Για i από 1 μέχρι n Για j από 1 μέχρι n Διάβασε Α[i,j] Εμφάνισε Α[i,j] Τέλος_επανάληψης Τέλος Παράδειγμα_2 Από ό,τι παρατηρούμε υπάρχουν δύο βρόχοι επανάληψης (ένας βρόχος για κάθε διάσταση του πίνακα). Είναι φανερό ότι οι βρόχοι επανάληψης είναι εκείνοι που καθορίζουν την επιβάρυνση στο κόστος εκτέλεσης του αλγορίθμου. Επομένως η πολυπλοκότητα του παραπάνω αλγορίθμου θα εκφράζεται με n * n  n 2, δηλαδή ο αλγόριθμος είναι τετραγωνικός (n 2 ). F(n)= n*( n*4 + 1) F(n)= 2 + n + n + 4*n 2 + n F(n)= 4*n 2 +3*n+2 Αλγόριθμος Παράδειγμα_2 i ← 1 Όσο i ≤ n επανάλαβε j ← 1 Όσο j ≤ n επανάλαβε Διάβασε A[i,j] Γράψε A[i,j] j←j + 1 Τέλος_επανάληψης i ← i +1 Τέλος_επανάληψης Τέλος Παράδειγμα_2

10 Γενικά, ο χρόνος εκτέλεσης κάθε αλγορίθμου εξαρτάται από ένα σύνολο παραγόντων που μπορούν να συνοψισθούν στους εξής:  Τύπος ηλεκτρονικού υπολογιστή που θα εκτελέσει το πρόγραμμα του αλγορίθμου,  Γλώσσα προγραμματισμού που θα χρησιμοποιηθεί,  Δομή προγράμματος και δομές δεδομένων που χρησιμοποιούνται,  Χρόνος για πρόσβαση στο δίσκο και στις ενέργειες εισόδου- εξόδου,  Είδος συστήματος, ενός χρήστη ή πολλών χρηστών. Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνος επίδοσης αλγορίθμων

11 Επομένως, για να έχει έννοια κάθε σύγκριση μεταξύ δύο προγραμμάτων/αλγορίθμων, θα πρέπει να ικανοποιούνται οι παρακάτω προϋποθέσεις:  και τα δύο προγράμματα να έχουν συνταχθεί στην ίδια γλώσσα προγραμματισμού,  να έχει χρησιμοποιηθεί ο ίδιος μεταφραστής της γλώσσας προγραμματισμού,  να χρησιμοποιείται η ίδια υπολογιστική πλατφόρμα,  ακριβώς τα ίδια δεδομένα να αποτελούν είσοδο κατά τον έλεγχο των δύο αλγορίθμων. Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνος επίδοσης αλγορίθμων

12 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Εκτίμηση του χρόνου επίδοσης αλγορίθμου Εμπειρικός (empirical) ή αλλιώς ο λεγόμενος εκ των υστέρων (a posteriori) Δύο κύρια μειονεκτήματα: με τη μέθοδο αυτή είναι δύσκολο να προβλεφθεί η συμπεριφορά του αλγορίθμου για κάποιο άλλο σύνολο δεδομένων. ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραμματισμού και το μεταφραστή και προ πάντων από τη δεινότητα του προγραμματιστή.

13 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Εκτίμηση του χρόνου επίδοσης αλγορίθμου Θεωρητικός (theoretical) ή αλλιώς ο λεγόμενος εκ των προτέρων (a priori). n Για το σκοπό αυτό εισάγεται μία μεταβλητή n, που εκφράζει το μέγεθος (size) του προβλήματος, ώστε η μέτρηση της αποδοτικότητας του αλγόριθμου να ισχύει για οποιοδήποτε σύνολο δεδομένων και ανεξάρτητα από υποκειμενικούς παράγοντες, όπως αυτοί που αναφέρθηκαν. Για παράδειγμα, αν το πρόβλημα είναι η ταξινόμηση k στοιχείων τότε n=k.

14 Η πολυπλοκότητα ενός αλγορίθμου δίνει ένα μέτρο  της χρονικής καθυστέρησης του αλγορίθμου για την επίλυση ενός προβλήματος, πχ πολυπλοκότητα Ο(n 2 )  της ταχύτητας εκτέλεσης του αλγορίθμου, πχ δευτερόλεπτα

15 ΑλγόριθμοςΠολυπλοκότηταΟνομασία Ώθηση-απώθηση σε στοίβαΟ(1)Σταθερή Εισαγωγή-εξαγωγή σε ουράΟ(1)Σταθερή Ταξινόμηση ευθείας ανταλλαγήςΟ(n 2 )Τετραγωνική Σειριακή αναζήτησηΟ(n)Γραμμική Δυαδική αναζήτησηO(logn)Λογαριθμική Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Πολυπλοκότητα αλγορίθμων

16 Αλγόριθμος Πολυπλοκότητα Τάξη αλγορίθμου Μέγεθος Προβλήματος (σε δευτερόλεπτα εκτός αν ορίζεται αλλιώς) n=4n=16n=64 Δυαδική αναζήτησηO(logn)0,06x ,6x ,8x10 -8 Σειριακή αναζήτησηΟ(n)4x x x10 -8 Γρήγορη Ταξινόμηση (Quick Sort) Ο(nlogn)2x x ,2x10 -6 Ταξινόμηση ευθείας ανταλλαγήςΟ(n 2 )2x ,6x x10 -5 Ταξινόμηση ευθείας ανταλλαγής σε δισδιάστατο (nxn) κατά γραμμή ή κατά στήλη Ο(n 3 )64x x x10 -3 Πύργοι του ΑνόιΟ(2 n )16x x x10 3 χρόνια Διαδρομή πλανόδιου πωλητήΟ(n!)24x ώρες4x10 73 χρόνια Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Χρόνοι εκτέλεσης και πολυπλοκότητες

17 Κεφάλαιο 5 : Ανάλυση Αλγορίθμων Ανακεφαλαίωση Στο Κεφάλαιο αυτό : zορίσθηκε και αναλύθηκε η έννοια της επίδοσης των αλγορίθμων με αναφορά στην χειρότερη περίπτωση κάθε αλγορίθμου zπεριγράφηκαν οι βασικές πράξεις και τα μεγέθη που σχετίζονται με την επίδοση των αλγορίθμων zέγινε καταγραφή των μεγεθών που επηρεάζουν την αποδοτικότητα και την πολυπλοκότητα των αλγορίθμων Επίδοση και αποδοτικότητα αλγορίθμου, Χειρότερη περίπτωση αλγορίθμου, Μέγεθος εισόδου, Πολυπλοκότητα αλγορίθμου


Κατέβασμα ppt "ZΕπίδοση αλγορίθμων zΠολυπλοκότητα αλγορίθμων Κεφάλαιο 5 : Ανάλυση Αλγορίθμων."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google