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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2 ΗΥ240: Δομές Δεδομένων Διδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθημα 2ου έτους Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

3 Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 3

4 Εισαγωγικά Θέματα Αντικείμενο του μαθήματος των Δομών Δεδομένων είναι η αναπαράσταση και η διαχείριση συνόλων αντικειμένων (δεδομένα), τα οποία επιδέχονται πράξεις εξαγωγής πληροφορίας ή αλλαγής της συνθέσεως τους. ΗΥ240 - Παναγιώτα Φατούρου 4

5 Εισαγωγικά Θέματα Αφηρημένοι Τύποι Δεδομένων Ένα ή περισσότερα σύνολα αντικειμένων και μια συλλογή λειτουργιών (πράξεων) επί των στοιχείων των συνόλων. Παράδειγμα (εύρεση στοιχείου σε πίνακα) Τα δεδομένα είναι κάποιου τύπου, έστω Type, και υπάρχει μια γραμμική διάταξη ανάμεσά τους: u,v τύπου Type, είτε u < v, ή v < u, ή v = u. Δίδεται ένα σύνολο S από στοιχεία τύπου Type και ζητείται απάντηση στο ερώτημα: «u S?» Σύνολα αντικειμένων: στοιχεία τύπου Type (π.χ., u,v) και πεπερασμένα σύνολα αυτών (π.χ., S) Σύνολο λειτουργιών: Απάντηση της ερώτησης «u S?», όπου: u είναι στοιχείο τύπου Type και S είναι πεπερασμένο σύνολο από στοιχεία τύπου Type. ΗΥ240 - Παναγιώτα Φατούρου 5

6 Εισαγωγικά Θέματα Δομές Δεδομένων Μια δομή δεδομένων υλοποιεί έναν αφηρημένο τύπο δεδομένων. Μια δομή δεδομένων επομένως συμπεριλαμβάνει: ένα σύνολο δεδομένων τα οποία επιδέχονται επεξεργασία μέσω του συνόλου λειτουργιών που υποστηρίζονται από τον αφηρημένο τύπο δεδομένων που υλοποιεί η δομή μια δομή αποθήκευσης των δεδομένων (π.χ., έναν πίνακα, μια λίστα, κλπ.) ένα σύνολο από ορισμούς συναρτήσεων/διαδικασιών, όπου η κάθε συνάρτηση/διαδικασία αντιστοιχίζεται σε μια από τις λειτουργίες της δομής, ένα σύνολο από «αλγόριθμους», κάθε ένας εκ των οποίων υλοποιεί μια από τις παραπάνω συναρτήσεις/διαδικασίες. ΗΥ240 - Παναγιώτα Φατούρου 6

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

8 Εισαγωγικά Θέματα Αλγόριθμοι Αλγόριθμος είναι μια πεπερασμένη ακολουθία υπολογιστικών βημάτων (ή εντολών) αυστηρά καθορισμένων (που κάθε ένα εκτελείται σε πεπερασμένο χρόνο), τα οποία αν ακολουθηθούν επιλύεται κάποιο πρόβλημα. Ο αλγόριθμος δέχεται κάποια τιμή ή κάποιο σύνολο τιμών ως είσοδο και δίνει κάποια τιμή ή κάποιο σύνολο τιμών ως έξοδο. Είσοδος: Δεδομένα που παρέχονται στον αλγόριθμο κατά την εκκίνηση της εκτέλεσής του. Έξοδος: Δεδομένα που αποτελούν το αποτέλεσμα του αλγορίθμου. Πρόγραμμα Υλοποίηση ενός αλγορίθμου σε κάποια γλώσσα προγραμματισμού. ΗΥ240 - Παναγιώτα Φατούρου 8

9 Ένα Απλό Παράδειγμα Αλγορίθμου Ύψωση ενός αριθμού x σε μια ακέραια δύναμη n Algorithm Power(x, n) {// Περιγραφή με C-like ψευδο-κώδικα // Είσοδος: ένας πραγματικός αριθμός x και ένας ακέραιος αριθμός n // Έξοδος: ένας πραγματικός αριθμός που ισούται με x n int j = 0; double y = 1; } while (j < n) { y = y*x; j = j+1; } return y; ΗΥ240 - Παναγιώτα Φατούρου 9

10 Τεχνικές Απόδειξης Χρήση παραδείγματος ή αντιπαραδείγματος Ισχυρισμός: «Υπάρχει τουλάχιστον ένα στοιχείο x στο σύνολο S που έχει την ιδιότητα P» -> Για να δείξουμε ότι ο ισχυρισμός ισχύει, αρκεί να βρούμε ένα στοιχείο x του S που ικανοποιεί την P. Ισχυρισμός: «Κάθε στοιχείο του S ικανοποιεί την ιδιότητα P» -> Για να δείξουμε ότι ο ισχυρισμός δεν ισχύει, αρκεί να βρούμε ένα στοιχείο x του S που δεν έχει την P. ΗΥ240 - Παναγιώτα Φατούρου 10

11 Τεχνικές Απόδειξης Αντιθετο-αντιστροφή & Απαγωγή εις Άτοπο Ισχυρισμός: «Αν το γινόμενο ab είναι περιττό, τότε και το a είναι περιττό και το b είναι περιττό» Αντιθετο-αντιστροφή: Για να αποδειχθεί ότι «αν ο ισχυρισμός p είναι αληθής τότε και ο ισχυρισμός q είναι αληθής», αποδεικνύουμε ότι «αν ο ισχυρισμός ΝΟΤ(q) είναι αληθής, τότε και ο ΝΟΤ(p) είναι αληθής». Αποδεικνύουμε ότι «Αν ή το α είναι άρτιο ή το b είναι άρτιο, τότε το γινόμενο ab είναι άρτιο». Έστω, χωρίς βλάβη της γενικότητας ότι το a είναι άρτιο, δηλαδή α = 2*k, για κάποιο ακέραιο k. Τότε, το ab = (2*k)*b = 2 * (k*b) είναι άρτιο. Η περίπτωση που το b είναι άρτιο είναι παρόμοια. Με εις άτοπο απαγωγή. Έστω ότι το ab είναι περιττό. Υποθέτουμε για να καταλήξουμε σε άτοπο πως ή το a είναι άρτιο ή το b είναι άρτιο. Έστω, χωρίς βλάβη της γενικότητας, πως το b είναι άρτιο, δηλαδή b = 2 * k, για κάποιο ακέραιο k. Τότε, το ab = α* (2*k) = 2*(α*k) είναι άρτιο. Αυτό αντιτίθεται στην υπόθεσή μας ότι το ab είναι περιττό. Η περίπτωση που το α είναι άρτιο είναι παρόμοια. ΗΥ240 - Παναγιώτα Φατούρου 11

12 Μαθηματική Επαγωγή Ζητείται να αποδειχθεί πως ένας ισχυρισμός Ι, που σχετίζεται με κάποια μεταβλητή j, ισχύει για κάθε τιμή της μεταβλητής j, όπου η j παίρνει τιμές από μια ακολουθία τιμών x 1, x 2,, x n. Αποδεικνύουμε τα εξής: Αν ο ισχυρισμός Ι ισχύει για κάποια τιμή του j (π.χ., την x k ) που μπορεί να είναι οποιαδήποτε τιμή εκτός της τελευταίας της ακολουθίας τιμών της j, τότε ο Ι ισχύει και για την επόμενη τιμή της ακολουθίας τιμών της j (δηλαδή για την x k+1 ). (1) Ο Ι ισχύει για την πρώτη τιμή της ακολουθίας τιμών της j (την x 1 ). (2) Εφόσον από (2) ο ισχυρισμός ισχύει για την x 1, από (1) ισχύει και για την x 2. (3) Εφόσον από (3) ο ισχυρισμός ισχύει για την x 2, από (1) ισχύει και για την x 3. (4) Εφόσον από (4) ο ισχυρισμός ισχύει για την x 3, από (1) ισχύει και για την x 4. (5) Εφόσον από ( ) ο ισχυρισμός ισχύει για την x n-1, από (1) ο ισχυρισμός ισχύει και για την x n. O ισχυρισμός ισχύει για όλες τις τιμές της j. ( ) ΗΥ240 - Παναγιώτα Φατούρου 12

13 Μαθηματική Επαγωγή - Παράδειγμα Ορθότητα Αλγόριθμου Power Συμβολίζουμε με y j την τιμή της μεταβλητής y στην αρχή της k-οστής ανακύκλωσης, k = 1,, n+1. Θα δείξουμε πως y k = x k-1, k=1,, n+1. Με επαγωγή στο k. Βάση επαγωγής k = 1. Αρχικά, y 1 = 1 = x 0 = x 1-1 = x k-1. Επαγωγική Υπόθεση Έστω ότι για κάποιο m, 1 m < m +1, y m = x m-1 (1) Επαγωγικό Βήμα Θα δείξουμε ότι o ισχυρισμός ισχύει για (m+1): y m+1 = x m. Από αλγόριθμο: y m+1 = y m *x. Aπό επαγωγική υπόθεση: y m = x m-1. Άρα, y m+1 = x m, όπως απαιτείται. Algorithm Power(x, n) int j = 0; double y = 1; } while (j < n) { y = y*x; j = j+1; } return y; ΗΥ240 - Παναγιώτα Φατούρου 13

14 Μαθηματική Επαγωγή Ισχυρή Επαγωγή Για κάποιους ισχυρισμούς Ι, δεν μπορεί να αποδειχθεί η (1), αλλά μπορεί να αποδειχθεί ότι: Αν ο ισχυρισμός Ι ισχύει για κάθε τιμή του j που προηγείται στην ακολουθία τιμών της j από οποιαδήποτε τιμή x k x n (δηλαδή αν ο ισχυρισμός ισχύει για τις τιμές x 1, x 2,, x k-1 ), τότε ο Ι ισχύει και για την x k. (1 ) Αποδεικνύεται επίσης ότι: Ο Ι ισχύει για την πρώτη τιμή της ακολουθίας τιμών της j (την x 1 ). (2) Τότε: αφού από (2) ο ισχυρισμός ισχύει για την x 1, από (1 ) ισχύει και για την χ 2. (3) αφού από (2) και (3) ο ισχυρισμός ισχύει για τις x 1, x 2, από (1 ) ισχύει και για την χ 3. (4) αφού από (2), (3) και (4) ο ισχυρισμός ισχύει για τις x 1, x 2, x 3, από (1 ) ισχύει και για την x 4. (5) αφού από (2), (3), (4), (5),, ( ) ο ισχυρισμός ισχύει για τις x 1, x 2, x 3, x 4,, x n-1, από (1 ) ο ισχυρισμός ισχύει για την x n. ( ) O ισχυρισμός ισχύει για όλες τις τιμές της j. ΗΥ240 - Παναγιώτα Φατούρου 14

15 Μαθηματική Επαγωγή Ισχυρή Επαγωγή Αιγυπτιακός Πολλαπλασιασμός Δίνεται η συνάρτηση: { 0, αν y = 0 m(x,y) = m(x+x, y/2), αν y άρτιος & 0 x + m(x, y-1), αν y περιττός & 0 Θα δείξω ότι m(x,y) = x*y, θετικό ακέραιο x,y Απόδειξη: Με επαγωγή στο y. Βάση της επαγωγής: Αν y = 0, m(x,y) = 0, αλλά και x*y = 0, οπότε ο ισχυρισμός ισχύει. Επαγωγική Υπόθεση: Έστω οποιαδήποτε τιμή y > 0. Υποθέτουμε ότι m(x,z) = x*z, για κάθε τιμή z, 0 z < y. Επαγωγικό Βήμα: Αποδεικνύουμε τον ισχυρισμό για την τιμή y, δηλαδή αποδεικνύουμε πως m(x,y) = x*y. Διακρίνουμε περιπτώσεις: Ο y είναι περιττός: m(x,y) = x + m(x,y-1). Από επαγωγική υπόθεση (z = y-1 < y) ισχύει ότι m(x,y-1) = x*(y-1). Άρα: m(x,y) = x + x*(y-1) = x + x*y x = x*y. Ο y είναι άρτιος: m(x,y) = m(x+x, y/2). Από επαγωγική υπόθεση (z = y/2 < y) ισχύει ότι m(x,y) = (x+x)*y/2 = x*y. Άρα, m(x,y) = x*y. Και στις δύο περιπτώσεις, ο ισχυρισμός ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 15

16 Κριτήρια Επιλογής Αλγορίθμων Χρόνος Εκτέλεσης (χρονική πολυπλοκότητα ή πολυπλοκότητα χρόνου) Απαιτούμενος χώρος αποθηκευτικές θέσεις (θέσεις μνήμης) που χρησιμοποιούνται (χωρική πολυπλοκότητα ή πολυπλοκότητα χώρου) Ευκολία προγραμματισμού Γενικότητα Ανάλυση Αλγορίθμου αποκαλείται η εύρεση των πόρων (χρόνος, χώρος) που αυτός απαιτεί για να εκτελεστεί. Μας ενδιαφέρει κυρίως η χρονική και η χωρική πολυπλοκότητα. Οι δύο αυτοί παράμετροι καθορίζουν την αποδοτικότητα του αλγορίθμου. Το μοντέλο υπολογισμού αποτελεί την αφαιρετική θεώρηση του υλικού που διατίθεται για την εκτέλεση του αλγορίθμου. ΗΥ240 - Παναγιώτα Φατούρου 16

17 Το Μοντέλο Υπολογισμού RAM Μηχανή Τυχαίας Προσπέλασης (Random Access Machine, RAM) Το σύστημα παρέχει: τους αναγκαίους καταχωρητές (registers) έναν συσσωρευτή (accumulator) μια ακολουθία αποθηκευτικών θέσεων (memory cells) με διευθύνσεις 0, 1, 2, που αποτελούν την κύρια μνήμη Το σύστημα είναι σε θέση: να εκτελεί αριθμητικές πράξεις (+, -, *, /, mod) να παίρνει αποφάσεις διακλαδώσεως (if else ) βάσει των τελεστών (==, <, >, =<, >=,!=) να διαβάζει ή να γράφει από και προς οποιαδήποτε θέση μνήμης. ΗΥ240 - Παναγιώτα Φατούρου 17

18 Το Μοντέλο Υπολογισμού RAM Στοιχειώδεις εντολές Καταχώρηση τιμής σε μια μεταβλητή Κλήση μιας μεθόδου Εκτέλεση μιας αριθμητικής πράξης Σύγκριση δύο αριθμών Δεικτοδότηση πίνακα (συμβολίζουμε με Α[s..u] έναν πίνακα του οποίου η πρώτη θέση δεικτοδοτείται από την τιμή s ενώ η τελευταία από την τιμή u, συμβολίζουμε επίσης με A[i] το i-οστό στοιχείο του πίνακα Α, s i u) Πρόσβαση στη διεύθυνση μνήμης που δείχνει ένας δείκτης Επιστροφή από μια μέθοδο (return) ΗΥ240 - Παναγιώτα Φατούρου 18

19 Το Μοντέλο Υπολογισμού RAM Μέτρηση Μοναδιαίου Κόστους O χρόνος εκτέλεσης κάθε στοιχειώδους εντολής εξαρτάται από το υλικό (είναι ανεξάρτητος από τη γλώσσα προγραμματισμού) και ισούται με κάποια σταθερά. Θεωρούμε ότι κάθε τέτοια εντολή εκτελείται σε μία μονάδα χρόνου. Μέτρηση Λογαριθμικού Κόστους Η στοιχειώδης εντολή απαιτεί χρόνο ανάλογο του μήκους της δυαδικής αναπαράστασης των τελεσταίων. Παράδειγμα: Η μετακίνηση ενός αριθμού n από την κύρια μνήμη προς έναν καταχωρητή μπορεί να απαιτεί logn + 1 μονάδες χρόνου. Συνήθως, πραγματοποιείται ανάλυση των αλγορίθμων βάσει μετρήσεως μοναδιαίου κόστους (εκτός και αν γίνεται εκτενής χρήση πράξεων επί συμβολοσειρών bit). ΗΥ240 - Παναγιώτα Φατούρου 19

20 Χρονική Πολυπλοκότητα Εισάγεται μια μεταβλητή n που εκφράζει το μέγεθος της εισόδου. Παραδείγματα Στο πρόβλημα ανυψώσεως σε δύναμη το μέγεθος αυτό είναι το n, η δύναμη στην οποία πρέπει να υψωθεί ο δεδομένος αριθμός. Η ύψωση ενός αριθμού στη δύναμη 10 απαιτεί την εκτέλεση περισσότερων στοιχειωδών εντολών από την ύψωση του αριθμού σε μια μικρότερη δύναμη. Σε ένα πρόβλημα ταξινόμησης ενός πίνακα, το μέγεθος του προβλήματος είναι το πλήθος των στοιχείων του πίνακα. Η ταξινόμηση 1000 αριθμών απαιτεί περισσότερο χρόνο από την ταξινόμηση 10 αριθμών. Αυτό ισχύει γενικότερα: «Ο χρόνος που απαιτεί ένας αλγόριθμος για να εκτελεστεί συχνά εξαρτάται από το μέγεθος της εισόδου»! Χρόνος Εκτέλεσης για συγκεκριμένη είσοδο Ο χρόνος εκτέλεσης (running time) ή η χρονική πολυπλοκότητα ενός αλγορίθμου για μια συγκεκριμένη είσοδο είναι το πλήθος των στοιχειωδών εντολών που εκτελούνται κατά την εκτέλεση του αλγορίθμου με αυτήν την είσοδο. ΗΥ240 - Παναγιώτα Φατούρου 20

21 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθμος Power Algorithm Power(x, n) int j = 0; 1 double y = 1; 1 } while (j < n) { n+1 y = y*x; 2*n j = j+1; 2*n } return y; 1 Πλήθος Στοιχειωδών Εντολών T(n) = n+1 + 2*n + 2*n + 1 = 5n + 4 Ο παραπάνω τύπος ισχύει για οποιαδήποτε τιμή του n. Το πλήθος των στοιχειωδών εντολών που εκτελεί ο αλγόριθμος είναι μια συνάρτηση του μεγέθους n της εισόδου! ΗΥ240 - Παναγιώτα Φατούρου 21

22 Ένα Ακόμη Παράδειγμα Πρόβλημα Είσοδος Μια ακολουθία από n αριθμούς <a 1, a 2,..., a n >. Έξοδος (output): Μια μετάθεση (αναδιάταξη) < a 1, a 2,..., a n > της ακολουθίας εισόδου έτσι ώστε: a 1 a 2... a n Πως λειτουργεί ο αλγόριθμος αν A = <7,4,6,8,2,5,1>; Algorithm InsertionSort (Α[1..n]) { // Είσοδος: ένας μη-ταξινομημένος πίνακας Α ακέραιων αριθμών // Έξοδος: ο πίνακας Α με τα στοιχεία του σε αύξουσα διάταξη } int key, i, j; for (j = 2; j n; j++) { key = A[j]; i = j-1; while (i > 0 && A[i] > key) { A[i+1] = A[i]; i = i-1; } A[i+1] = key; } return A; ΗΥ240 - Παναγιώτα Φατούρου 22

23 Ένα Ακόμη Παράδειγμα Algorithm InsertionSort (Α[1..n]) { } int key, i, j; for (j = 2; j n; j++) { key = A[j]; i = j-1; while (i > 0 && A[i] > key) { A[i+1] = A[i]; i = i-1; } A[i+1] = key; } return A; Πως λειτουργεί ο αλγόριθμος αν A = <7,4,6,8,2,5,1>; ΗΥ240 - Παναγιώτα Φατούρου 23

24 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθμος InsertionSort Algorithm InsertionSort(A[1..n]) { Κόστος int key, i, j; for (j = 2; j =< n; j=j+1) { > 1+ n + 2*(n-1) key = A[j]; > 2* (n-1) i = j-1; > 2*(n-1) while (i > 0 && A[i] > key) { > 4 * Σ j=2..n s j A[i+1] = A[i]; > 4 * Σ j=2..n (s j 1) i = i-1; > 2 * Σ j=2..n (s j 1) } A[i+1] = key; > 3 * (n-1) } return A; > 1 } s j : ο αριθμός των φορών που ο έλεγχος του while loop εκτελείται για τη συγκεκριμένη τιμή του j, 2 j n. ΗΥ240 - Παναγιώτα Φατούρου 24

25 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθμος InsertionSort Συνολικός Χρόνος Εκτέλεσης T(n) = 1 + n + 2*(n-1) + 2 * (n-1) + 2*(n-1) + 4 * Σ s j + 4* Σ (s j -1) + 2 * Σ (s j -1) + 3*(n-1) + 1 = 10n *Σ j=2..n s j 6* Σ j=2..n 1 = 10n * Σ j=2..n s j 6 * (n-1) = 4n * Σ j=2..n s j Ποιος είναι ο καλύτερος χρόνος εκτέλεσης που μπορεί να επιτευχθεί από την InsertionSort? O πίνακας είναι εξ αρχής ταξινομημένος σε αύξουσα διάταξη. Τότε? s j = 1, j = 2,, n. Επομένως, T(n) = 4n *(n-1) = 14n 11 γραμμική συνάρτηση του n. ΗΥ240 - Παναγιώτα Φατούρου 25

26 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθμος InsertionSort Ποιος είναι ο χειρότερος χρόνος εκτέλεσης κατά την εκτέλεση της ΙnsertionSort? Τα στοιχεία του πίνακα είναι σε φθίνουσα διάταξη. Τότε? s j = j, j = 2,, n, και Σ j=2..n s j = Σ j=2..n j = n = (n+2)(n-1)/2 Επομένως: Τ(n)= 4n (n+2)(n-1) = 5n 2 + 9n - 11 τετραγωνική συνάρτηση του n. ΗΥ240 - Παναγιώτα Φατούρου 26

27 Ανάλυση Χειρότερης περίπτωσης Ο χείριστος χρόνος εκτέλεσης (ή η χρονική πολυπλοκότητα χειρότερης περίπτωσης) ενός αλγορίθμου ορίζεται να είναι ο μέγιστος χρόνος εκτέλεσης για οποιαδήποτε είσοδο με συγκεκριμένο μέγεθος n (και συνήθως είναι συνάρτηση του n). Μας ενδιαφέρει να βρούμε το χαμηλότερο άνω φράγμα και το υψηλότερο κάτω φράγμα. ΗΥ240 - Παναγιώτα Φατούρου 27

28 Ανάλυση Αναμενόμενης Περίπτωσης Αν είναι γνωστή κάποια κατανομή πιθανότητας επί του συνόλου των στιγμιοτύπων του εν λόγω προβλήματος (δηλαδή, όλων των δυνατών εισόδων μεγέθους n), τότε είναι δυνατή η ανάλυση αναμενόμενης περίπτωσης, η οποία μας δίνει την αναμενόμενη χρονική πολυπλοκότητα (ή τον αναμενόμενο χρόνο εκτέλεσης) του αλγορίθμου, όταν του δοθεί μια νόμιμη είσοδος με μέγεθος n. Παράδειγμα Ας υποθέσουμε ότι τα n στοιχεία του πίνακα στον αλγόριθμο InsertionSort έχουν επιλεγεί ομοιόμορφα με τυχαίο τρόπο από κάποιο αρχικό σύνολο στοιχείων (universe). Πόσες φορές θα εκτελεστεί το σώμα του while loop του αλγορίθμου για οποιαδήποτε τιμή του j; Κατά μέσο όρο, τα μισά στοιχεία στον Α[1..j-1] θα είναι μικρότερα του A[j] και τα άλλα μισά μεγαλύτερα. Επομένως, το αναμενόμενο πλήθος στοιχείων που θα ελεγχθούν είναι j/2. Άρα, s j = j/2. Ο αναμενόμενος χρόνος εκτέλεσης της InsertionSort είναι επομένως: T(n) = 4n * Σ j=2..n s j = 4n * Σ j=2..n j = 4n * (n+2)(n-1)/2 = (6n + 5n 2 + 5n -10-2)/2 = (5n n -12 )/2. τετραγωνική συνάρτηση του n. ΗΥ240 - Παναγιώτα Φατούρου 28

29 Ανάλυση Χειρότερης περίπτωσης Ανάλυση Αναμενόμενης Περίπτωσης Στο μάθημα αυτό θα εστιάσουμε στην ανάλυση χειρότερης περίπτωσης για τους ακόλουθους λόγους: Ο χείριστος χρόνος εκτέλεσης ενός αλγορίθμου είναι ένα πάνω φράγμα στον χρόνο εκτέλεσης για οποιαδήποτε είσοδο μεγέθους n. Σε πολλά προβλήματα, η χείριστη περίπτωση συμβαίνει συχνά (π.χ., αποτυχημένη αναζήτηση). Ο αναμενόμενος χρόνος εκτέλεσης συχνά δεν είναι πολύ καλύτερος από τον χείριστο χρόνο εκτέλεσης. Από εδώ και στο εξής, οι όροι χρονική πολυπλοκότητα και χρόνος εκτέλεσης ενός αλγορίθμου θα αναφέρονται στη χρονική πολυπλοκότητα χειρότερης περίπτωσης και στο χείριστο χρόνο εκτέλεσης του αλγορίθμου. ΗΥ240 - Παναγιώτα Φατούρου 29

30 Ασυμπτωτική Ανάλυση Η χρονική πολυπλοκότητα της InsertionSort είναι 5n 2 +9n-11. Οι σταθερές 5, 9, -11 δεν μας δίνουν χρήσιμη πληροφορία. Μας ενδιαφέρει κυρίως ο ρυθμός μεταβολής της συνάρτησης της χρονικής πολυπλοκότητας: Από το άθροισμα 5n 2 +9n-11 μας ενδιαφέρει μόνο ο κυρίαρχος όρος 5n 2, αφού οι άλλοι δύο όροι είναι μη σημαντικοί για μεγάλες τιμές του n. Αγνοούμε επίσης το συντελεστή 5, αφού οι σταθεροί παράγοντες δεν είναι σημαντικοί για μεγάλες τιμές του n. Λέμε πως η χρονική πολυπλοκότητα της InsertionSort είναι τετραγωνικής τάξης. ΗΥ240 - Παναγιώτα Φατούρου 30

31 Ασυμπτωτική Ανάλυση Συμβολισμός Ο Ορισμός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Ο(g(n)), f(n) O(g(n)) ή f(n) = O(g(n)), αν υπάρχουν σταθερές c R + (c πραγματικός, c > 0) και ακέραιος n 0 0, έτσι ώστε για κάθε n n 0 να ισχύει: 0 f(n) cg(n) Ο συμβολισμός Ο υποδηλώνει ότι μια συνάρτηση (f(n)) είναι ασυμπτωτικά άνω φραγμένη. Tο O(g(n)) είναι ένα σύνολο συναρτήσεων: το σύνολο των συναρτήσεων για τις οποίες η g(n) αποτελεί ασυμπτωτικό άνω φράγμα. O συμβολισμός f(n) = O(g(n)) (αν και συνηθίζεται γιατί είναι βολικός σε κάποιες περιπτώσεις) δεν είναι μαθηματικά σωστός. Δηλώνει απλά ότι η f(n) είναι μέλος του συνόλου Ο(g(n)). ΗΥ240 - Παναγιώτα Φατούρου 31

32 Ασυμπτωτική Ανάλυση Συμβολισμός Ο Σχήμα 3.1(α): Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους αλγόριθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 2006 ΗΥ240 - Παναγιώτα Φατούρου 32

33 Ασυμπτωτική Ανάλυση Συμβολισμός Ο Παράδειγμα 1 Έστω f(n) = an 2 +bn, όπου a,b θετικές σταθερές. Ισχύει ότι f(n) = O(n 2 ); Απάντηση Αναζητούμε σταθερές c R + & n 0 0, τ.ω.: an 2 + bn cn 2, για κάθε n n 0 0 (c-a)n 2 bn 0 n [(c-a)n b] (c-a)n - b 0 (αφού n n 0 0) Αν επιλέξουμε c = a+1 και οποιοδήποτε n 0 b, η ανισότητα (c-a)n - b 0 ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 33

34 Ασυμπτωτική Ανάλυση Συμβολισμός Ο Παράδειγμα 2 Έστω f(n) = 20n nlogn + 5. Ισχύει ότι f(n) = O(n 3 ); Απάντηση 20n nlogn n 3, για n 1. Αν αποδείξουμε πως υπάρχουν σταθερές c R + & n 0 0 τ. ω. 35n 3 cn 3, n n 0, θα ισχύει και πως f(n) cn 3, n n 0. Άρα, αν επιλέξουμε c = 35 και οποιoδήποτε n 0 1, ο ισχυρισμός f(n) = Ο(n 3 ) αποδεικνύεται. Παράδειγμα 3 Έστω f(n) = 3 logn + loglogn. Ισχύει ότι f(n) = Ο(logn); Απάντηση 3 logn + loglogn 4 logn, αν n > 1. Άρα, αν επιλέξουμε c = 4 και οποιoδήποτε n 0 > 1, ο ισχυρισμός f(n) = Ο(logn) αποδεικνύεται. ΗΥ240 - Παναγιώτα Φατούρου 34

35 Ασυμπτωτική Ανάλυση Συμβολισμός Ο Λέγοντας ότι ο χρόνος εκτέλεσης ενός αλγορίθμου είναι O(n 2 ) εννοούμε ότι υπάρχει μια συνάρτηση f(n) η οποία ανήκει στο O(n 2 ), τέτοια ώστε για οποιαδήποτε τιμή του n (εκτός ίσως από κάποιες μικρές τιμές), ανεξάρτητα από τη μορφή της κάθε συγκεκριμένης εισόδου μεγέθους n, ο χρόνος εκτέλεσης για αυτή την είσοδο φράσσεται εκ των άνω από την τιμή f(n). Δεν είναι συνηθισμένο να συμπεριλαμβάνονται σταθεροί παράγοντες και χαμηλότερης τάξης όροι στο συμβολισμό Ο. Ο ισχυρισμός 2n 2 = O(4n 2 + nlogn) είναι σωστός αλλά δεν θεωρείται «κομψός». Ο ισχυρισμός f(n) O(g(n)) δεν είναι επίσης κομψός αφού το Ο εμπεριέχει την έννοια του «μικρότερου ή ίσου»: υποδηλώνει ένα μη αυστηρό ασυμπτωτικό άνω φράγμα της f. Επιτρέπεται η χρήση του συμβολισμού Ο σε αριθμητικές εκφράσεις: H f(n) είναι στο h(n) + O(g(n)) υπάρχουν σταθερές c και n 0 τ.ω., για κάθε n n 0, f(n) h(n) + cg(n). ΗΥ240 - Παναγιώτα Φατούρου 35

36 Ασυμπτωτική Ανάλυση - Συμβολισμός Ω Ορισμός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Ω(g(n)), f(n) Ω(g(n)) ή f(n) = Ω(g(n)), αν υπάρχουν σταθερές c R + (c πραγματικός, c > 0) και ακέραιος n 0 0, έτσι ώστε, για κάθε n n 0, να ισχύει: 0 cg(n) f(n) Ο συμβολισμός Ω δηλώνει ότι μια συνάρτηση (f(n)) είναι ασυμπτωτικά κάτω φραγμένη. Σχήμα 3.1(β): Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους αλγόριθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 2006 ΗΥ240 - Παναγιώτα Φατούρου 36

37 Ασυμπτωτική Ανάλυση Συμβολισμός Ω Παράδειγμα 1. Έστω f(n) = an 2 +bn, όπου a,b θετικές σταθερές. Θα αποδείξουμε ότι f(n) = Ω(n). Απόδειξη Αναζητούμε σταθερές c R + & n 0 0 τ.ω., για κάθε n n 0 να ισχύει: an 2 + bn cn αn 2 + (b-c)n 0 an + b-c 0. Aν επιλέξουμε c = b ισχύει ότι an 0, για κάθε n 0 (αφού α R + ). Επομένως, για c = b & n 0 = 0, ο ισχυρισμός αποδεικνύεται. Παράδειγμα 2 Έστω f(n) = 20n nlogn + 5. Ισχύει ότι f(n) = Ω(n 3 ); Απάντηση 20n nlogn n 3, για n 1. Άρα, αν επιλέξουμε c = 20 και οποιoδήποτε n 0 1, ο ισχυρισμός f(n) = Ω(n 3 ) αποδεικνύεται. ΗΥ240 - Παναγιώτα Φατούρου 37

38 Ασυμπτωτική Ανάλυση Συμβολισμός Ω Παράδειγμα 3 Έστω f(n) = n 3-10nlogn - 5. Ισχύει ότι f(n) = Ω(n 3 ); Απάντηση n 3-10nlogn 5 n 3-10n 2 5n 2, για κάθε n 1. Αναζητούμε σταθερές c R + & n 0 0, τ.ω., για κάθε n n 0 να ισχύει: n 3-10nlogn 5 n 3-10n 2 5n 2 cn 3 n 3-15n 2 cn 3 (1-c)n 3-15n 2 0 (1-c)n Επιλέγοντας π.χ., c = 1/2 και n 0 = 30, η τελευταία ανισότητα ισχύει για κάθε n n 0. Άρα, ο ισχυρισμός f(n) = Ω(n 3 ) ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 38

39 Ασυμπτωτική Ανάλυση Συμβολισμός Θ Ορισμός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Θ(g(n)), f(n) Θ(g(n)) ή f(n) = Θ(g(n)), αν ισχύει ότι f(n) = O(g(n)) και f(n) = Ω(g(n)). Σχήμα 3.1(γ): Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους αλγόριθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 2006 Aν f(n) Θ(g(n)), ισχύει ότι υπάρχουν σταθερές c 1, c 2 R+ και ακέραιος n 0 0, έτσι ώστε για κάθε n n 0 να ισχύει: c 1 g(n) f(n) c 2 g(n) Ο συμβολισμός Θ υποδηλώνει ότι μια συνάρτηση (f(n)) είναι ασυμπτωτικά φραγμένη με αυστηρό τρόπο (η g(n) είναι ένα ασυμπτωτικά αυστηρό φράγμα για την f(n)). ΗΥ240 - Παναγιώτα Φατούρου 39

40 Ασυμπτωτική Ανάλυση Ιδιότητες Μεταβατική Ιδιότητα f(n) = O(g(n)) και g(n) = O(h(n)) f(n) = O(h(n)) (το ίδιο ισχύει και για τους συμβολισμούς Ω, Θ). Ανακλαστική Ιδιότητα f(n) = O(f(n)), f(n) = Ω(f(n)) και f(n) = Θ(f(n)) Συμμετρική Ιδιότητα f(n) = Θ(g(n)) αν και μόνο αν g(n) = Θ(f(n)) Αναστροφική Ιδιότητα f(n) = O(g(n)) αν και μόνο αν g(n) = Ω(f(n)) Άλλες Ιδιότητες Αν f(n) = O(g(n)), τότε (cf)(n) = O(g(n)), για οποιαδήποτε σταθερά c R +. Αν f(n) = O(g(n)) και h(n) = O(g(n)), τότε (c 1 f+c 2 h)(n) = O(g(n)) για οποιεσδήποτε σταθερές c 1, c 2 R +. ΗΥ240 - Παναγιώτα Φατούρου 40

41 Συνήθεις τάξεις πολυπλοκότητας Χαρακτηριστικές κλάσεις συναρτήσεων και οι μεταξύ τους σχέσεις Ο(1) Ο(log n) O(log m n), για κάθε m > 1 O(n 1/2 ) Ο(n) O(n log n) O(n 2 ) O(n m ), για κάθε m > 2 O(2 n ) O(n!) O(n n ) ΗΥ240 - Παναγιώτα Φατούρου 41

42 Γραφικές Παραστάσεις Συναρτήσεων f(x) = x 5 f(x) = x 2 f(x) = x log x f(x) = x f(x) = x f(x) = log x ΗΥ240 - Παναγιώτα Φατούρου 42

43 Γραφικές Παραστάσεις Συναρτήσεων f(x) = x x f(x) = 2 x f(x) = x 3 f(x) = x 2 ΗΥ240 - Παναγιώτα Φατούρου 43

44 Size of input Ασυμπτωτική Ανάλυση Γιατί είναι σημαντική; log n n n n log n n 2 n 3 2 n ,84 * ,40 * ,15 * ,34 * ,79 * Αυξητικός Χαρακτήρας Συναρτήσεων ΗΥ240 - Παναγιώτα Φατούρου 44

45 Ασυμπτωτική Ανάλυση Γιατί είναι σημαντική; Size of input n n 2 n 5 2 n 3 n 10 0,01 msec 20 0,02 msec 40 0,04 msec 0,1 msec 0,1 sec 1 msec 59 msec 0,4 msec 3,2 sec 1 sec 58 min 1,6 msec 1,7 min 12,7 days 3855 centuries 50 0,05 msec 60 0,06 msec 2,5 msec 5,2 min 35,7 years 3,6 msec 13 min 366 centuries 2*10 8 centuries 1,3 * centuries Ενδεικτικές Ανάγκες σε Χρόνο Υποτιθέμενων Αλγορίθμων Figure 1.2: Garey, M. R., Johnson, D. S., Victor Klee. Computers and Intractability: A Guide to the Theory of NP-Completeness. ΗΥ240 - Παναγιώτα Φατούρου 45

46 Ασυμπτωτική Ανάλυση Γιατί είναι σημαντική; Μέγεθος του μεγαλύτερου στιγμιότυπου ενός προβλήματος που μπορεί να επιλυθεί σε 1 ώρα Με έναν τρέχον υπολογιστή Με έναν υπολογιστή 100 φορές πιο γρήγορο n n 2 n 5 2 n 3 n Ν 1 Ν 2 Ν 3 Ν 4 Ν 5 100Ν 1 10Ν 2 2,5Ν 3 Ν 4 +6,64 Ν 5 +4,19 Με έναν υπολογιστή 1000 φορές πιο γρήγορο 1000Ν 1 31,6Ν 2 3,98Ν 3 Ν 4 +9,97 Ν 5 +6,29 Επίδραση βελτιωμένης τεχνολογίας σε διάφορους πολυωνυμικούς και εκθετικούς αλγορίθμους Figure 1.3: Garey, M. R., Johnson, D. S., Victor Klee. Computers and Intractability: A Guide to the Theory of NP-Completeness. ΗΥ240 - Παναγιώτα Φατούρου 46

47 Χρήσιμο Μαθηματικό Υπόβαθρο Εκθέτες & Λογάριθμοι Για οποιουσδήποτε πραγματικούς αριθμούς x > 0, m και n, ισχύουν τα εξής: x 0 = 1, x 1 = x, x -1 = 1/x, (x m ) n = x mn, (x m ) n = (x n ) m x m x n = x m+n, x m /x n = x m-n Συμβολίζουμε με e = 2,71828 τη βάση των φυσικών (νεπέρειων) λογαρίθμων. Για οποιουσδήποτε πραγματικούς αριθμούς x,y,z > 0, ισχύουν τα εξής: log z xy = log z x + log z y, log z (x/y) = log z x log z y, log z x y = y log z x log y x = (log z x) / log z y log x log x log y x y y, y z x z 1 log z (1/x) = - log z x n n log( k xk ) logxk k 1 ΗΥ240 - Παναγιώτα Φατούρου 47

48 Χρήσιμο Μαθηματικό Υπόβαθρο Κάτω και πάνω ακέραιο μέρος & Παραγοντικά Για κάθε πραγματικό αριθμό x: το σύμβολο x δηλώνει το μεγαλύτερο ακέραιο που είναι μικρότερος ή ίσος του x και το σύμβολο x δηλώνει το μικρότερο ακέραιο που είναι μεγαλύτερος ή ίσος του x x-1 < x x x < x+1 Για οποιουσδήποτε ακεραίους a,b > 0 ισχύει ότι: x/a /b = x/ab x/a /b = x/ab Για κάθε ακέραιο n, ισχύει ότι n/2 + n/2 = n n! = 1*2* * n, ή n! n n log(n!) = Θ(nlogn) 1 αν n=0 n! n*( n 1)! διαφορετικά ΗΥ240 - Παναγιώτα Φατούρου 48

49 Χρήσιμο Μαθηματικό Υπόβαθρο Αθροίσματα Αριθμητική Πρόοδος n nn ( 1) k 1 2 n k 1 2 n a1 a2 an ( a1 an) 2 n n k 2 n x x 1 x x x k 0 x k 1 x 1 x Γεωμετρική Πρόοδος Αν x < 1, τότε k 0 Τηλεσκοπική (Telescoping) Σειρά n k 1 ( a a ) a a k k 1 n Παράδειγμα ( ) 1 k( k 1) k k 1 n n 1 n 1 k 1 k 1 ΗΥ240 - Παναγιώτα Φατούρου 49

50 Ανάλυση Αναδρομικών Αλγορίθμων Είναι η Power ο πιο αποδοτικός αλγόριθμος για το πρόβλημα ύψωσης αριθμού σε δύναμη; Algorithm RPower(x, n) { double y; } if (n == 1) return x; y = RPower(x, n/2 ); if n is even return y*y; else return x*y*y; ΗΥ240 - Παναγιώτα Φατούρου 50

51 Ιχνηλάτιση (trace) της RPower() RPower(x, 5) RPower(x,5) if (5 == 1) //evaluates to false y = RPower(x, 2); RPower(x,2) if (2 == 1) // evaluates to false y = RPower(x,1); RPower(x,1) if (1 == 1) return x; if (2 is even) return y*y; // x 2 if (5 is even) //evaluates to FALSE return x*y*y; // x 5 Algorithm RPower(x, n) { double y; Memory x n = 5 y = x 2 x n = 2 y = x x n = 1 y } if (n == 1) return x; y = RPower(x, n/2 ); if n is even return y*y; else return x*y*y; ΗΥ240 - Παναγιώτα Φατούρου 51

52 Ανάλυση Αναδρομικών Αλγορίθμων: RPower() Algorithm RPower(x, n) { double y; } if (n == 1) return x; y = RPower(x, n/2 ); if n is even else return y*y; return x*y*y; ----> > 1 + Τ( n/2 ) ----> > > 3 Έστω οποιοσδήποτε ακέραιος n και έστω ότι συμβολίζουμε με T(n) τη χρονική πολυπλοκότητα του RPower() όταν αυτός καλείται με τη δεύτερη παράμετρο ίση με το n. Τότε: T(1) = 2 και T(n) = Τ( n/2 ) + 7 (1) Ο όρος αναδρομική σχέση δηλώνει μια εξίσωση ή ανίσωση η οποία ορίζει μια συνάρτηση μέσω της τιμής της για κάποιο μικρότερο όρισμα. Πως μπορούμε να λύσουμε την αναδρομική σχέση (1) (δηλαδή να βρούμε ασυμπτωτικά φράγματα τύπου Θ ή Ο για το Τ(n); ΗΥ240 - Παναγιώτα Φατούρου 52

53 Ανάλυση Αναδρομικών Αλγορίθμων Μέθοδοι επίλυσης αναδρομικών εξισώσεων Μέθοδος εικασίας Διατυπώνουμε μια εικασία για τη λύση. Με μαθηματική επαγωγή προσδιορίζουμε τις σταθερές και αποδεικνύουμε ότι η λύση ισχύει. Μέθοδος επαναληπτικής αντικατάστασης Εφαρμόζουμε επαναληπτικά τον ορισμό της αναδρομικής σχέσης μέχρι το T(n) να εκφραστεί ως ένα άθροισμα όρων που εξαρτώνται μόνο από το n και τις αρχικές συνθήκες. Γενική μέθοδος ΗΥ240 - Παναγιώτα Φατούρου 53

54 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Εικασίας Παράδειγμα 1: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: Εικάζουμε ότι η λύση είναι Ο(logn). Αποδεικνύουμε επαγωγικά ότι T(n) clogn, για κατάλληλη τιμή της σταθεράς c > 0. (1) Βάση Επαγωγής 2 αν n = 1 Tn ( ) T( n/ 2 ) 7 διαφορετικά Eλέγχω αν η (1) ισχύει για την τιμή n = 1. Από αναδρομική σχέση, Τ(1) = 2 > c log 1 = 0 H (1) δεν ισχύει για την τιμή n = 1. Ο ασυμπτωτικός συμβολισμός απαιτεί να αποδείξουμε T(n) clogn, για n n 0, όπου n 0 οποιαδήποτε σταθερά. Ελέγχω αν η (1) ισχύει για την τιμή n = 2. Από αναδρομική σχέση, Τ(2) = Τ(1) + 7 = 2+7 = 9. Εξετάζω αν υπάρχει c > 0, τ.ω. Τ(2) = 9 c log2 c 9. (2) Ελέγχω αν η (1) ισχύει για την τιμή n = 3. Από αναδρομική σχέση, Τ(3) = Τ(1) + 7 = 2+7 = 9 c log3. Ισχύει αν c 9. (3) ΗΥ240 - Παναγιώτα Φατούρου 54

55 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Εικασίας Επαγωγική Υπόθεση Θεωρούμε οποιαδήποτε ακέραια τιμή n > 2. Yποθέτουμε ότι η (1) ισχύει για κάθε ακέραια τιμή m, τέτοια ώστε: 2 m < n, δηλαδή υποθέτουμε ότι ισχύει η ακόλουθη ανίσωση: T(m) clogm, m, 2 m < n, όπου c 9 είναι μια πραγματική σταθερά. Επαγωγικό Βήμα Αποδεικνύουμε ότι ο ισχυρισμός ισχύει για την τιμή n, δηλαδή αποδεικνύουμε ότι T(n) clogn. Αν n = 3, o ισχυρισμός προκύπτει από (3). Υποθέτουμε ότι n > 3. Από αναδρομική σχέση: Τ(n) = T( n/2 ) + 7. (4) Εφόσον n > 3 n/2 2. Από επαγωγική υπόθεση (για όπου m = n/2 ) προκύπτει ότι T( n/2 ) clog( n/2 ) c(logn log2) = c(logn 1) (5) Από (4), (5) T(n) c logn c + 7 c logn, αν c 9. Αν επιλέξω επομένως τη σταθερά c = 9, ο ισχυρισμός ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 55

56 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Εικασίας Παράδειγμα 2: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 1 αν n = 1 Tn ( ) 2 T( n / 2 ) n διαφορετικά Εικάζουμε ότι η λύση είναι Ο(nlogn). Αποδεικνύουμε επαγωγικά ότι T(n) cnlogn, για κατάλληλη τιμή της σταθεράς c > 0. Αντικαθιστώντας στην παραπάνω εξίσωση και εφαρμόζοντας ισχυρή επαγωγή: T(n) 2(c n/2 log( n/2 )) + n cnlog(n/2)+n = cnlogn cnlog2 + n = cnlogn cn + n cnlogn, αν c 1. Ελέγχουμε τις αρχικές συνθήκες: n=1: T(n) cnlogn T(1) cnlog1 = 0, το οποίο αντιτίθεται στη συνθήκη Τ(1) =1. Ο ασυμπτωτικός συμβολισμός απαιτεί να αποδείξουμε T(n) cnlogn, για n n 0, όπου n 0 οποιαδήποτε σταθερά. Θέτοντας n 0 = 2, αποδεικνύεται ότι η βάση της επαγωγής ισχύει για κάθε n n 0 αν c 2: Από αναδρομική σχέση: Τ(2) = 4 Ισχυρισμός: Τ(2) c2log2 2*2 = 4. Ισχύει! ΗΥ240 - Παναγιώτα Φατούρου 56

57 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Εικασίας Παράδειγμα 3: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 1 Tn ( ) T ( n / 2 ) T( n / 2 ) 1 Εικάζουμε ότι η λύση είναι Ο(n). Προσπαθούμε να αποδείξουμε ότι T(n) cn, για κάποια σταθερά c > 0. (1) Ωστόσο, αντικαθιστώντας στην παραπάνω εξίσωση και εφαρμόζοντας ισχυρή επαγωγή: T(n) c n/2 + c n/2 + 1 cn+1 > cn, c > 0. Η (1) δεν ισχύει! Δοκιμάζουμε να ισχυροποιήσουμε την επαγωγική υπόθεση. Αποδεικνύουμε ότι T(n) cn b, όπου b 0 κάποια σταθερά. Άσκηση για το σπίτι! αν n = 1 διαφορετικά ΗΥ240 - Παναγιώτα Φατούρου 57

58 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Επαναληπτικής Αντικατάστασης Παράδειγμα 1: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 2 αν n = 1 Tn ( ) T( n/ 2 ) 7 διαφορετικά T(n) = T( n/2 ) + 7 = (T( n/4 ) + 7) + 7 = T( n/4 ) + 2* 7 = (T( n/8 ) + 7) + 2 * 7 = T( n/8 ) + 3* 7 = = T( n/2 i ) + i*7 Ποτέ σταματά η επαναληπτική αντικατάσταση; Όταν n/2 i = 1 i logn. Τότε: T(n) T(1) + 7logn = logn = O(logn). ΗΥ240 - Παναγιώτα Φατούρου 58

59 Επίλυση Αναδρομικών Σχέσεων Μέθοδος Επαναληπτικής Αντικατάστασης Παράδειγμα 2: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 1 αν n = 1 Tn ( ) 3 T( n / 4 ) n διαφορετικά T(n) = 3 * T( n/4 ) + n = 3 * (3*T( n/4 2 ) + n/4 ) + n = 3 2 *T( n/4 2 ) + 3* n/4 + n = 3 2 *(3*T( n/4 3 )+ n/4 2 )+ 3* n/4 + n = 3 3 *T( n/4 3 ) * n/4 2 +3* n/4 + n 3 3 *T( n/4 3 ) + n((3/4) 2 + (3/4) 1 + (¾) 0 ) = 3 i *T( n/4 i ) + n*((3/4) i (3/4) + 1) = 3 i *T( n/4 i ) + n* (1-(3/4) i /1-3/4) = 3 i *T( n/4 i ) + 4n* (1 (3/4) i ) 3 i *T( n/4 i ) + 4n Ποτέ σταματά η επαναληπτική αντικατάσταση; Όταν n/4 i = 1 i log 4 n. Τότε: T(n) 3 i *T(1) + 4n = 3 log 4n + 4n = n log n 4n + n = O(n) ΗΥ240 - Παναγιώτα Φατούρου 59

60 Δένδρo Αναδρομής Παράδειγμα 1: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 1 αν n = 1 Tn ( ) 2 T( n / 2 ) n διαφορετικά Λύση: Ο(nlogn) 4 * n/4 2* n/2 n n/2 n/2 n/4 n/4 n/4 n/4 1* n επίπεδο 0 επίπεδο 1 επίπεδο 2 2 i * n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i επίπεδο i Oι αναδρομικές κλήσεις σταματούν όταν n/2 i = 1 i = log n Το δένδρο έχει (log n +1) επίπεδα. Το k-οστό επίπεδο αντιστοιχεί σε 2 k αναδρομικές κλήσεις που κάθε μια απαιτεί την εκτέλεση n/2 k στοιχειωδών εντολών Συνολικό κόστος αναδρομικών κλήσεων επιπέδου = Θ(n). Συνολικό κόστος όλων των αναδρομικών κλήσεων = Θ(n log n) ΗΥ240 - Παναγιώτα Φατούρου 60

61 Δένδρo Αναδρομής Παράδειγμα 2: Προσδιορισμός άνω φράγματος για την αναδρομική σχέση: 2 αν n = 1 Tn ( ) 2 T( n/ 2 ) 7 διαφορετικά Λύση: Θ(n) 2 i * 7 4 * 7 Oι αναδρομικές κλήσεις σταματούν όταν n/2 i = 1 i = log n Το δένδρο έχει (log n +1) επίπεδα. Το k-οστό επίπεδο αντιστοιχεί σε 2 k αναδρομικές κλήσεις που κάθε μια απαιτεί την εκτέλεση 7 στοιχειωδών εντολών Συνολικό κόστος όλων των αναδρομικών κλήσεων = 7 * ( i ) = 7 * (2 i+1-1)/(2-1) = 7 * (2*2 logn 1) 14n = Θ(n). 2* 7 1 * 7 n n/2 n/2 n/4 n/4 n/4 n/4 επίπεδο 0 επίπεδο 1 επίπεδο 2 n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i n/2 i επίπεδο i ΗΥ240 - Παναγιώτα Φατούρου 61

62 Πειραματική Ανάλυση Η χρήση των Ο, Ω, Θ μπορεί να οδηγήσει σε λάθος συμπεράσματα όταν τα Ο, Ω, Θ υποκρύπτουν σταθερές που είναι μεγάλες. Παράδειγμα: Η συνάρτηση n = Θ(n), αλλά ένας αλγόριθμος με χρονική πολυπλοκότητα 10nlogn θα ήταν προτιμότερος αφού σε όλες τις λογικές εισόδους ο 2ος αλγόριθμος θα συμπεριφερόταν πολύ καλύτερα από τον πρώτο. Οι αλγόριθμοι που έχουν πολυωνυμική χρονική πολυπλοκότητα θεωρούνται αποτελεσματικοί, ενώ αυτοί που απαιτούν εκθετικό χρόνο εκτέλεσης είναι μηαποτελεσματικοί. Ωστόσο, ένας αλγόριθμος που απαιτεί χρόνο εκτέλεσης Θ(n 50 ) δεν θεωρείται αποτελεσματικός! ΗΥ240 - Παναγιώτα Φατούρου 62

63 Πειραματική Ανάλυση Η ασυμπτωτική ανάλυση: δεν παρέχει πληροφορίες για τους σταθερούς παράγοντες που κρύβονται κάτω από τους συμβολισμούς Ο, Ω και Θ δεν καθορίζει διαχωριστικές γραμμές μεταξύ ασυμπτωτικά αργών αλγορίθμων με μικρούς σταθερούς παράγοντες και ασυμπτωτικά πιο γρήγορων αλγορίθμων με μεγάλους σταθερούς παράγοντες εστιάζει κύρια σε εισόδους χειρότερης περίπτωσης, που μπορεί να μην είναι οι πιο αντιπροσωπευτικές για συγκεκριμένα προβλήματα για πολύ πολύπλοκους αλγορίθμους μπορεί να μην μπορεί να επιτευχθεί. Για όλους αυτούς τους λόγους, είναι χρήσιμο να μπορούμε να μελετάμε αλγορίθμους και με πειραματικό τρόπο. ΗΥ240 - Παναγιώτα Φατούρου 63

64 Πειραματική Ανάλυση - Επιλέγοντας μετρικά που θα μελετηθούν Εκτίμηση του ασυμπτωτικού χρόνου εκτέλεσης ενός αλγόριθμου στη μέση περίπτωση. Σύγκριση δύο ή περισσότερων αλγορίθμων προκειμένου να αποφασιστεί ποιος είναι πιο γρήγορος για κάποιο εύρος τιμών εισόδου [n 0,n 1 ]. Για αλγορίθμους που αποσκοπούν στην ελαχιστοποίηση ή στη μεγιστοποίηση κάποιας συνάρτησης, μελέτη της απόστασης της εξόδου του αλγορίθμου από τη βέλτιστη έξοδο. ΗΥ240 - Παναγιώτα Φατούρου 64

65 Πειραματική Ανάλυση Τι είδους μετρήσεις θα πραγματοποιηθούν Πραγματικός χρόνος εκτελέσης αλγορίθμου (χρήση gettimeofday() ή άλλων συναρτήσεων που μας παρέχει το σύστημα) Υπάρχουν πολλοί παράγοντες που μπορούν να επηρεάσουν τις μετρήσεις, όπως: Υπάρχουν άλλα προγράμματα που εκτελούνται ταυτόχρονα; Χρησιμοποιεί ο αλγόριθμoς την κρυφή μνήμη του συστήματος αποτελεσματικά; Είναι αρκετή η μνήμη του συστήματος για την αποτελεσματική εκτέλεση του αλγορίθμου; Μέτρηση πρωταρχικών λειτουργιών που επιτελούνται από τον αλγόριθμο Αναφορές στη μνήμη, Συγκρίσεις, Αριθμητικές λειτουργίες ΗΥ240 - Παναγιώτα Φατούρου 65

66 Παραγωγή Δεδομένων Εισόδου που θα χρησιμοποιηθούν για τα πειράματα Παραγωγή αρκετών δειγμάτων ώστε ο υπολογισμός μέσων τιμών να παρέχει στατιστικώς σημαντικά δεδομένα. Παραγωγή δειγμάτων διαφορετικών μεγεθών ώστε να είναι εφικτή η εξαγωγή συμπερασμάτων για διαφορετικά μεγέθη της εισόδου Παραγωγή δεδομένων αντιπροσωπευτικών εκείνων που ο αλγόριθμος θα συναντήσει στην πράξη. ΗΥ240 - Παναγιώτα Φατούρου 66

67 Πειραματική Ανάλυση - Θέματα Υλοποίησης Ο χρόνος εκτέλεσης ενός αλγορίθμου εξαρτάται από το υλικό, τη γλώσσα προγραμματισμού και το μεταφραστή, αλλά και από το πόσο δεινός είναι ο προγραμματιστής. Κατά τη σύγκριση μέσω πειραματικής μελέτης δύο αλγορίθμων, ο ίδιος βαθμός βελτιστοποίησης του κώδικα πρέπει να εφαρμοστεί στις υλοποιήσεις και των δύο αλγορίθμων (και οι αλγόριθμοι καλό είναι να έχουν υλοποιηθεί από προγραμματιστές ανάλογης εμπειρίας). Τα χαρακτηριστικά (πλήθος ΚΜΕ και ταχύτητα αυτών, μέγεθος κύριας και κρυφών μνημών, ταχύτητα του καναλιού επικοινωνίας με τη μνήμη) του συστήματος στο οποίο πραγματοποιείται το πείραμα θα πρέπει να καταγράφονται λεπτομερώς. ΗΥ240 - Παναγιώτα Φατούρου 67

68 Αναφορές Το υλικό της ενότητας αυτής περιέχεται στα ακόλουθα βιβλία: Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 Chapter 1: Introduction Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, (Το βιβλίο κυκλοφορεί μεταφρασμένο από τις Πανεπιστημιακές Εκδόσεις Κρήτης σε δύο μέρη και μεγάλο μέρος της ύλης βασίζεται στο 1ο μέρος του.) Κεφάλαιο 1: Θεμελιώδεις έννοιες: Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες, Κεφάλαιο 2: Προκαταρκτικές έννοιες και παρατηρήσεις Κεφάλαιο 3: Ρυθμός αύξησης συναρτήσεων Ενότητες : Αναδρομικές σχέσεις Μichael T. Goodrich and Roberto Tamassia, Algorithm Design Foundations, Analysis and Internet Examples, John Wiley & Sons, Inc., 4th edition. Μέρος του υλικού που αφορά την πειραματική ανάλυση αλγορίθμων προέρχεται από το βιβλίο αυτό. Garey, M. R., Johnson, D. S., Victor Klee. Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman and Co., ΗΥ240 - Παναγιώτα Φατούρου 68

69 Τέλος Ενότητας

70 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

71 Σημειώματα

72 Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί..

73 Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Παναγιώτα Φατούρου. «Δομές δεδομένων. Ενότητα 1η: Εισαγωγή». Έκδοση: 1.0. Ηράκλειο/Ρέθυμνο Διαθέσιμο από τη δικτυακή διεύθυνση:

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

Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου ΗΥ240: Δοµές Δεδοµένων Διδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

Διαβάστε περισσότερα

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

ΗΥ240: οµές εδοµένων ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

Διαβάστε περισσότερα

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

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2 ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

Διαβάστε περισσότερα

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

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ 1 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 2: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα

Διαβάστε περισσότερα

Τηλ , Fax: , URL:

Τηλ , Fax: , URL: Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Σεπτέµβριος, 2005 Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax:

Διαβάστε περισσότερα

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Διαίρει και Κυρίευε 7 9 4 4 7 9 7 7 9 4 4 9 7 7 9 9 4 4 Διαίρει και Κυρίευε

Διαβάστε περισσότερα

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. α. Να βάλετε σε αύξουσα σειρά μεγέθους τις παρακάτω συναρτήσεις χρονικής πολυπλοκότητας αλγορίθμων: nlogn, n logn,

Διαβάστε περισσότερα

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

1o Φροντιστήριο ΗΥ240 1o Φροντιστήριο ΗΥ240 Άσκηση 1 Αποδείξτε τη μεταβατική και τη συμμετρική ιδιότητα του Θ Μεταβατική Ιδιότητα (ορισμός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)) Για να ισχύει f(n)= Θ(h(n))

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

Διαβάστε περισσότερα

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

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί ενότητας Ασυμπτωτική ανάλυση Τίτλος Ενότητας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Aνάλυση Αλγορίθμων Είσοδος Αλγόριθμος Έξοδος Ένας αλγόριθμος είναι μια

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός 1 Περίληψη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 1: Εισαγωγή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

Διαβάστε περισσότερα

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

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Αλγόριθμοι ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Ανάπτυξη Λογισμικού Η διαδικασία ανάπτυξης λογισμικού μπορεί να παρομοιαστεί

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου 2 Σύνολα (Sets) Τα

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

Διαβάστε περισσότερα

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

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αλγόριθµοι γραµµικής άλγεβρας 1 Ο συµβολισµός µεγάλο O Εστω συναρτήσεις f(n), g(n)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αποτελεσµατικότητα αλγορίθµων 127 Αποτελεσµατικότητα αλγορίθµων Ενας σωστός αλγόριθµος

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υπολογιστική άλγεβρα Ενότητα 7: Βάσεις Groebner I

Υπολογιστική άλγεβρα Ενότητα 7: Βάσεις Groebner I Υπολογιστική άλγεβρα Ενότητα 7: Βάσεις Groebner I Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Κεφάλαιο 7 Βάσεις Groebner Ι Τετάρτη 21 Μαϊου 2014 7.1 Ιδεώδη μονονύμων Εχουμε ήδη δει οτι

Διαβάστε περισσότερα

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

Κεφάλαιο 2 Ανάλυση Αλγορίθμων Κεφάλαιο Ανάλυση Αλγορίθμων Περιεχόμενα.1 Εισαγωγή... 0. Εμπειρική και Θεωρητική Ανάλυση Αλγορίθμων.....1 Εμπειρική Πολυπλοκότητα..... Θεωρητική Πολυπλοκότητα... 3.3 Ανάλυση Χειρότερης και Αναμενόμενης

Διαβάστε περισσότερα

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 10: Δυναμικός προγραμματισμός Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Ενότητα 4: Τελεστές - Αλγόριθμος Διδάσκουσα: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Εισαγωγή στους Η/Υ Ενότητα 2β: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Εύρεση συνάρτησης Boole όταν είναι γνωστός μόνο ο πίνακας αληθείας.

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.

Διαβάστε περισσότερα

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Μέρος I Εναρξη μαθήματος 5 7 Υπολογιστική Άλγεβρα (439) ) Ευάγγελος

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Ενότητα 16: Δυαδική αναζήτηση και ταξινόμηση με συγχώνευση Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 4: Εισαγωγή / Σύνολα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

Διαβάστε περισσότερα

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διδακτική Πληροφορικής Ενότητα 12: Επίλυση προβλημάτων σε προγραμματιστικό περιβάλλον Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Εργαστήριο 2 Καθηγητές: Αβούρης Νικόλαος, Παλιουράς Βασίλης, Κουκιάς Μιχαήλ, Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άσκηση 2 ου εργαστηρίου

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος

Διαβάστε περισσότερα

Εφαρμοσμένη Βελτιστοποίηση

Εφαρμοσμένη Βελτιστοποίηση Εφαρμοσμένη Βελτιστοποίηση Ενότητα 1: Το πρόβλημα της βελτιστοποίησης Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών ΠΕΡΙΕΧΟΜΕΝΟ

Διαβάστε περισσότερα

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Κεφάλαιο 10 Βάσεις Groebner ενός ιδεώδους 10.1 Τρίτο μέρος Επαναλαμβάνουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Συναρτήσεις & Υποπρογράμματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Τμηματικός Προγραμματισμός Η επίλυση ενός προβλήματος διευκολύνεται

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Εφαρμοσμένη Βελτιστοποίηση

Εφαρμοσμένη Βελτιστοποίηση Εφαρμοσμένη Βελτιστοποίηση Ενότητα 3: Αναλυτικές μέθοδοι βελτιστοποίησης για συναρτήσεις μιας μεταβλητής Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες

Διαβάστε περισσότερα

Επιχειρησιακή Έρευνα

Επιχειρησιακή Έρευνα Επιχειρησιακή Έρευνα Ενότητα 10: Ειδικές περιπτώσεις επίλυσης με τη μέθοδο simplex (2o μέρος) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων

Διαβάστε περισσότερα

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 2: Θεωρία Απόφασης του Bayes Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.) Θεωρία

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη

Διαβάστε περισσότερα

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 8: Εφαρμογές παραγώγων Μελέτη και βελτιστοποίηση συναρτήσεων μιας μεταβλητής (Φροντιστήριο) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 6: Όριο και συνέχεια συναρτήσεων (Θεωρία) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8β: Ταξινόμηση-Ταξινόμηση του Shell Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

6 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

6 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων 6 η Διάλεξη Ενδεικτικές λύσεις ασκήσεων 1 Περιεχόμενα 1 η Άσκηση... 3 2 η Άσκηση... 4 3 η Άσκηση... 4 4 η Άσκηση... 4 5 η Άσκηση... 5 6 η Άσκηση... 5 7 η Άσκηση... 5 8 η Άσκηση... 6 Χρηματοδότηση... 7

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ασκήσεις (2) Άσκηση 1 Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 11: Διανύσματα (Φροντιστήριο) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων &

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20 Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός

Διαβάστε περισσότερα

Πληροφορική ΙΙ Ενότητα 1

Πληροφορική ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

Διαβάστε περισσότερα

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 4: Εκθετικές και λογαριθμικές συναρτήσεις (Θεωρία) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 2: Γραμμικές συναρτήσεις (Φροντιστήριο) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων

Διαβάστε περισσότερα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Ενότητα 2: Δημιουργία και Επεξεργασία διανυσμάτων και πινάκων μέσω του Matlab Διδάσκουσα: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών ΤΕ Άδειες

Διαβάστε περισσότερα