Τηλ , Fax: , URL:
|
|
- Παντελεήμων Δημαράς
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου Σεπτέµβριος, 2005 Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ , Fax: , URL:
2 ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ
3 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή. Αλγόριθµος Αλγόριθµος είναι ένα πεπερασµένο σύνολο βηµάτων/εντολών αυστηρά καθορισµένων (και εκτελέσιµων µέσα σε πεπερασµένο χρόνο), τα οποία αν ακολουθηθούν επιλύεται κάποιο πρόβληµα. Είσοδος: εδοµένα που παρέχονται εξ αρχής στον αλγόριθµο. Έξοδος: δεδοµένα που αποτελούν το αποτέλεσµα του αλγορίθµου. Ευκρίνια/Αποτελεσµατικότητα: Κάθε εντολή θα πρέπει να είναι απλή και ο τρόπος εκτέλεσής της να καθορίζεται χωρίς καµία αµφιβολία. Περατότητα: Ο αλγόριθµος θα πρέπει να τερµατίζει µετά από πεπερασµένα βήµατα εκτέλεσης των εντολών του. Πρόγραµµα Υλοποίηση ενός αλγορίθµου σε κάποια γλώσσα προγραµµατισµού. Φατούρου Παναγιώτα 2
4 Παράδειγµα Εύρεση ενός στοιχείου Κ σε έναν ταξινοµηµένο πίνακα? Αλγόριθµοι (περιγραφή σε φυσική γλώσσα) 1. Ξεκινώντας από το πρώτο στοιχείο του πίνακα προσπέλασε κάθε στοιχείο του πίνακα και εξέτασε αν είναι το Κ, µέχρι είτε να βρεθεί το Κ, ή να εξεταστούν όλα τα στοιχεία του πίνακα Ξεκινώντας από το πρώτο στοιχείο του πίνακα προσπέλασε κάθε στοιχείο του πίνακα και εξέτασε αν είναι το Κ, µέχρι είτε να βρεθεί το Κ, ή να βρεθεί κάποιο στοιχείο µεγαλύτερο από το Κ ή να εξεταστούν όλα τα στοιχεία του πίνακα υαδική Αναζήτηση Ξεκίνησε από το µεσαίο στοιχείο του πίνακα. Αν αυτό είναι το Κ επέστρεψε. ιαφορετικά, σύγκρινε το µεσαίο στοιχείο µε το Κ. Αν είναι µικρότερο, το Κ βρίσκεται στο δεξί µισό του πίνακα, αν όχι τότε βρίσκεται στο αριστερό µισό του πίνακα. Σε κάθε περίπτωση µόνο το ένα µισό του πίνακα πρέπει να εξεταστεί. Επανέλαβε την διαδικασία αυτή µέχρι είτε να βρεθεί το Κ ή το προς εξέταση µέγεθος του πίνακα να µηδενιστεί. Φατούρου Παναγιώτα 3
5 Παράδειγµα Ύψωση ενός αριθµού x σε µια ακέραια δύναµη n. Αλγόριθµος 1 (Περιγραφή µε ψευδο-κώδικα) double power 1 (double x, int n) int j = 0; double y = 1; while (j < n) y = y*x; j = j+1; return y; Υλοποίηση του Αλγ. 1 στη γλώσσα C double power_1(double x, int n) { int j; double y = 1; } j = n; /* j = 0 */ while (j > 0 ) { /* while (j < n) { */ y = y*x; j = j -1; /* j = j +1 */ } return y; Φατούρου Παναγιώτα 4
6 Κριτήρια Επιλογής Αλγορίθµων Ταχύτητα Απαιτούµενος χώρος µνήµης Ευκολία προγραµµατισµού Γενικότητα Μας ενδιαφέρει κυρίως η ταχύτητα και ο απαιτούµενος χώρος µνήµης. Οι δύο αυτοί παράµετροι καθορίζουν την αποδοτικότητα ενός αλγόριθµου. Είναι η Power 1 ο πιο αποδοτικός αλγόριθµος για το πρόβληµα µας? Αλγόριθµος Power 2 : είσοδος & έξοδος ίδια µε πριν double y 1. if (n == 1) return x 2. y = power 2 (x, n/2 ) 3. if n is even 4. return y*y; 5. else 6. return x*y*y; Φατούρου Παναγιώτα 5
7 Μοντέλο Εργασίας Ο υπολογιστής στον οποίο δουλεύουµε έχει έναν επεξεργαστή και ένα µεγάλο µπλοκ µνήµης. Κάθε θέση µνήµης έχει µια αριθµητική διεύθυνση (διεύθυνση µνήµης). Η µνήµη είναι τυχαίας προσπέλασης, το οποίο σηµαίνει πως η πρόσβαση σε οποιαδήποτε θέση µνήµης (ανεξάρτητα από τη διεύθυνση στην οποία βρίσκεται) γίνεται µε την ίδια ταχύτητα. Συνεχόµενες θέσεις µνήµης µπορούν να αποθηκεύσουν τα πεδία µιας εγγραφής. Τα πεδία µιας εγγραφής µπορεί να µην είναι του ίδιου τύπου. Συνεχόµενες θέσεις µνήµης µπορούν επίσης να αποθηκεύσουν ένα πίνακα (δηλαδή ένα σύνολο στοιχείων του ίδιου τύπου). Μια µεταβλητή στην οποία είναι αποθηκευµένη µια διεύθυνση µνήµης ονοµάζεται µεταβλητή δείκτη (ή δείκτης). Γιατί οι δείκτες είναι πολύ χρήσιµοι; Φατούρου Παναγιώτα 6
8 Απλά Συνδεδεµένη Λίστα Γιατί οι λίστες είναι πολύ χρήσιµες; Σύγκριση µε Πίνακες Θετικά Εισαγωγή/διαγραφή νέων στοιχείων γίνεται πολύ εύκολα Ο συνολικός αριθµός στοιχείων δεν χρειάζεται να είναι γνωστός εξ αρχής Αρνητικά Απαιτούν περισσότερη µνήµη (λόγω των δεικτών). Ανάκτηση στοιχείου για το οποίο είναι γνωστή η θέση του στη δοµή (π.χ., ανάκτηση του 5 ου στοιχείου) δεν µπορεί να γίνει σε σταθερό χρόνο. Φατούρου Παναγιώτα 7
9 Αφηρηµένος Τύπος εδοµένων Αποτελείται από δύο µέρη: Ένα ή περισσότερα πεδία (σύνολα αντικειµένων, classes of mathematical objects) Ένα σύνολο λειτουργιών (mathematical operations) στα στοιχεία αυτών των πεδίων. Παράδειγµα (εύρεση στοιχείου σε πίνακα) Τα δεδοµένα µας είναι κάποιου τύπου, έστω key, και υπάρχει µια γραµµική διάταξη ανάµεσά τους: u,v τύπου key, είτε u < v, ή v < u, ή v = u. Έχουµε ένα σύνολο S από στοιχεία τύπου key και θέλουµε να µπορούµε να απαντάµε το ερώτηµα: u S? Πεδία: στοιχεία τύπου key (π.χ., u,v) και πεπερασµένα σύνολα αυτών (π.χ., S) Σύνολο λειτουργιών: Παροχή true ή false απάντησης στην ερώτηση «u S?, όπου: u είναι στοιχείο τύπου key, S είναι πεπερασµένο σύνολο από στοιχεία τύπου key. Φατούρου Παναγιώτα 8
10 οµή εδοµένων Μια δοµή δεδοµένων υλοποιεί έναν αφηρηµένο τύπο δεδοµένων. Μια δοµή δεδοµένων εποµένως συµπεριλαµβάνει: ένα σύνολο αποθηκευµένων δεδοµένων τα οποία µπορούν να υποστούν επεξεργασία από ένα σύνολο λειτουργιών που σχετίζονται µε τη συγκεκριµένη δοµή µια δοµή αποθήκευσης ένα σύνολο από ορισµούς συναρτήσεων, όπου η κάθε συνάρτηση εκτελεί µια λειτουργία στο περιεχόµενο της δοµής, και ένα σύνολο από αλγόριθµους, έναν αλγόριθµο για κάθε συνάρτηση. Οι βασικές λειτουργίες επί των δοµών δεδοµένων είναι οι ακόλουθες: Προσπέλαση Εισαγωγή ιαγραφή Αναζήτηση Ταξινόµηση Αντιγραφή Συγχώνευση ιαχωρισµός Φατούρου Παναγιώτα 9
11 Μαθηµατικό Υπόβαθρο Μονοτονία Συναρτήσεων Ακέραια Μέρη πραγµατικών αριθµών x, x, [x] Πολυώνυµα Πολυωνυµικές Συναρτήσεις f(x) = a n x n + a n-1 x n a 1 x + a 0 Λογάριθµοι & Εκθέτες Ιδιότητες Χρήσιµοι Συµβολισµοί: lg n = log 2 n ln n = log e n lg k n = (lg n) k lg lg n = lg(lg n) Παραγοντικά n! Άθροισµα όρων γεωµετρικής ή αριθµητικής προόδου Φατούρου Παναγιώτα 10
12 Μαθηµατική Επαγωγή Παράδειγµα 1 Βασική Μέθοδος Ορθότητα Αλγόριθµου Power 1 Με επαγωγή στο j. Συµβολίζουµε µε y j την τιµή της µεταβλητής y στην αρχή της j-οστής ανακύκλωσης, j = 1,, n+1 Αρκεί να δείξουµε πως y j = x j-1. Βάση επαγωγής j = 1. Αρχικά, y 1 = 1 = x 0 = x 1-1 = x j-1. Επαγωγική Υπόθεση Έστω ότι για κάποιο k, 1 k < n +1, y k = x k-1. Επαγωγικό Βήµα Θα δείξουµε ότι o ισχυρισµός ισχύει για (k+1): y k+1 = x k. Από αλγόριθµο: y k+1 = y k *x. Aπό επαγωγική υπόθεση: y k = x k-1. Άρα, y k+1 = x k, όπως απαιτείται. Φατούρου Παναγιώτα 11
13 Παράδειγµα 3: Ορθότητα Προγ/τος Power_1 Με επαγωγή στο j, j = n,, 0. Αρκεί να δείξω ότι y n-j+1 =x n-j Βάση Επαγωγής j = n: y n-n+1 = y 1 = 1 = x 0 = x n-n, όπως απαιτείται. Επαγωγική Υπόθεση Έστω ότι για κάποιο k, n k > 0, ισχύει ότι y n-k+1 = x n-k. Επαγωγικό Βήµα Θα δείξουµε ότι o ισχυρισµός ισχύει για (k-1): y n- k+2 = x n-k+1. Από αλγόριθµο: y n-k+2 = y n-k+1 *x. Aπό επαγωγική υπόθεση: y n-k+1 = x n-k. Άρα, y n-k+2 = x n-k+1, όπως απαιτείται. Φατούρου Παναγιώτα 12
14 Παράδειγµα 3 Ισχυρή Επαγωγή Αιγυπτιακός Πολλαπλασιασµός ίνεται η συνάρτηση: { 0, αν y = 0 m(x,y) = m(x+x, y/2), αν y ζυγός & 0 x + m(x, y-1), διαφορετικά Θα δείξω ότι 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). Eπαγωγική υπόθεση (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. Φατούρου Παναγιώτα 13
15 Ανάλυση Αλγορίθµων Εµπειρικός τρόπος µέτρησης της επίδοσης Θετικά: απλότητα Αρνητικά: ύσκολο να προβλεφθεί η συµπεριφορά για άλλα σύνολα δεδοµένων. Ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραµµατισµού και το µεταφραστή, αλλά και από το πόσο δεινός είναι ο προγραµµατιστής. Θεωρητικός τρόπος µέτρησης της επίδοσης Εισάγεται µια µεταβλητή n που εκφράζει το µέγεθος του προβλήµατος. Παραδείγµατα Στο πρόβληµα ανυψώσεως σε δύναµη το µέγεθος του προβλήµατος είναι το n: η δύναµη στην οποία πρέπει να υψωθεί ο δεδοµένος αριθµός. Σε ένα πρόβληµα ταξινόµησης ενός πίνακα, το µέγεθος του προβλήµατος είναι ο αριθµός στοιχείων του πίνακα. Φατούρου Παναγιώτα 14
16 Απλές Αναδροµικές Σχέσεις Έστω ότι η f(n) αναπαριστά το άθροισµα των n µικρότερων ακεραίων. Τότε, η f(n) µπορεί να οριστεί αναδροµικά ως εξής: f(n) = 1, αν n = 1 και f(n) = f(n-1) + n, αν n > 1. O υπολογισµός µιας µη-αναδροµικής φόρµας για την f(n) είναι απλός: f(n) = f(n-1) + n = f(n-2) + (n-1) + n =... = f(1) (n-1) + n = (n-1) + n = (n+1) n / 2 Παράδειγµα 2 Έστω ότι f(0) = 1 και f(n) = 2f(n-1). Ο υπολογισµός µιας µη-αναδροµικής φόρµας για την f(n) είναι και πάλι απλός: f(n) = 2 f(n-1) = 2 2 f(n-2) =... = 2 n f(0) = 2 n. Φατούρου Παναγιώτα 15
17 Αναδροµές τύπου «ιαίρει και Βασίλευε» υαδική Αναζήτηση int BinarySearch(table T[a...b], key K) /* επιστρέφει τη θέση του Κ µέσα στον ταξινοµηµένο πίνακα T, αν το Κ υπάρχει, και -1 διαφορετικά */ } int middle, tmp; if (a > b) return -1; middle = κάτω ακέραιο µέρος του (a+b)/2; if (K == T[middle]) return middle; else if (K < T[middle]) { tmp = BinarySearch(T[a...middle-1], K); return tmp; } else { tmp = BinarySearch(T[middle+1...b],K); return tmp; } Κάθε µια από τις αναδροµικές κλήσεις εξετάζει περίπου το µισό πίνακα. Έστω ότι n είναι το µέγεθος του πίνακα (n=b-a+1). Ας υποθέσουµε για λόγους απλότητας ότι n = 2 k -1. Φατούρου Παναγιώτα 16
18 Αναδροµές τύπου «ιαίρει και Βασίλευε» Τότε: 2 k -1 = b-a +1 b = 2 k a Οπότε, κατά την 1 η κλήση της BinarySearch(): middle = [(a+b)/2] = [(a+2 k -2+a)/2] = a+2 k-1-1 H 1 η αναδροµική κλήση αναφέρεται σε πίνακα µήκους: middle -1-a+1 = middle a = a + 2 k-1-1-a = 2 k-1-1. H 2 η αναδροµική κλήση αναφέρεται σε πίνακα µήκους: b (middle +1) +1 = b middle = 2 k -2 +a a -2 k-1 +1 = 2 k-1-1. Ποιο είναι το χειρότερο σενάριο που µπορεί να συµβεί κατά την εκτέλεση; Ο πίνακας δεν περιέχει το κλειδί και οι αναδροµικές κλήσεις συνεχίζονται µέχρι να γίνει κλήση σε άδειο πίνακα. Φατούρου Παναγιώτα 17
19 Αναδροµές τύπου «ιαίρει και Βασίλευε» Αν T(n) : µέγιστος δυνατός χρόνος εκτέλεσης σε πίνακα µε n στοιχεία, και c,d: σταθερές Τότε: T(2 k -1) = c, αν k = 0 και Τ(2 k -1) = d + T(2 k-1-1), αν k >0. Έχουµε: Τ(2 k -1) = d + T(2 k-1-1) = 2d + T(2 k-2-1) =... = kd + T(0) = kd + c. Αφού n = 2 k -1, είναι k = log(n+1) και T(n) = d log(n+1) + c. Φατούρου Παναγιώτα 18
20 Ανάλυση Αλγορίθµων Πρόβληµα Ταξινόµησης Είσοδος (input): Μια ακολουθία από n αριθµούς <a 1, a 2,..., a n >. Έξοδος (output): Μια «αναδιάταξη» < a 1, a 2,..., a n > της ακολουθίας εισόδου έτσι ώστε: a 1 a 2... a n InsertionSort void InsertionSort(int A[n]) { /* ταξινόµηση των στοιχείων του Α */ } int key, i, j; for (j = 1; 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; } Πως λειτουργεί ο αλγόριθµος αν A = <5,2,4,6,1,3>? Φατούρου Παναγιώτα 19
21 Ανάλυση του Αλγορίθµου InsertionSort Ο χρόνος που σπαταλιέται από την InsertionSort εξαρτάται από την είσοδο: «Η ταξινόµηση 1000 αριθµών απαιτεί περισσότερο χρόνο από την ταξινόµηση 3 αριθµών»! Αυτό ισχύει γενικότερα: «Ο χρόνος που απαιτεί ένας αλγόριθµος για να εκτελεστεί εξαρτάται από το µέγεθος της εισόδου»! Χρόνος Εκτέλεσης Ο χρόνος εκτέλεσης (running time) ενός αλγορίθµου για µια συγκεκριµένη είσοδο είναι ο αριθµός των βασικών λειτουργιών/εντολών (ή βηµάτων) που εκτελούνται κατά την εκτέλεση του αλγορίθµου µε αυτή την είσοδο. Φατούρου Παναγιώτα 20
22 Ανάλυση Αλγορίθµων void InsertionSort(int A[n]) { Κόστος Χρόνος } int key, i, j; for (j = 1; j < n; j++) { } > c 1 n key = A[j]; > c 2 n-1 i = j-1; > c 3 n-1 while (i >= 0 && A[i] > key) { > c 4 Σ t j A[i+1] = A[i]; > c 5 Σ (t j 1) } i = i-1; > c 6 Σ (t j 1) A[i+1] = key; > c 7 n-1 t j : ο αριθµός των φορών που ο έλεγχος του while loop εκτελείται για αυτή την τιµή του j. Φατούρου Παναγιώτα 21
23 Ανάλυση του Αλγορίθµου InsertionSort Συνολικός Χρόνος Εκτέλεσης T(n) = c 1 n + c 2 (n-1) + c 3 (n-1) +c 4 Σ t j + c 5 Σ (t j -1) + c 6 Σ (t j -1) + c 7 (n-1) Ποιος είναι ο καλύτερος χρόνος εκτέλεσης που µπορεί να επιτευχθεί από την InsertionSort? O πίνακας είναι εξ αρχής ταξινοµηµένος σε αύξουσα διάταξη. Τότε, t j = 1, j = 1,2,, n-1: T(n) = c 1 n + c 2 (n-1) + c 3 (n-1) +c 4 (n-1) + c 7 (n-1) = (c 1 + c 2 + c 3 +c 4 + c 7 )n - (c 2 + c 3 + c 4 + c 7 ) γραµµική συνάρτηση του n! Φατούρου Παναγιώτα 1
24 Ανάλυση του Αλγορίθµου InsertionSort Ποιος είναι ο χειρότερος χρόνος εκτέλεσης κατά την εκτέλεση της ΙnsertionSort? Τα στοιχεία του πίνακα είναι σε φθίνουσα διάταξη. Τότε, t j = (j+1), j = 1,, n-1 και: o Σ t j = Σ (j+1) = n = ( n) 1 = n(n+1)/2 1 o Σ (t j -1) = Σ j = (n-1) = n(n-1)/2 Εποµένως: Τ(n)= c 1 n + c 2 (n-1) + c 3 (n-1) +c 4 (n(n+1)/2-1) + c 5 n(n-1)/2 + c 6 n(n-1)/2 + c 7 (n-1) = = (c 4 /2 + c 5 /2 + c 6 /2) n 2 + (c 1 +c 2 +c 3 +c 4 /2- c 5 /2-c 6 /2+c 7 ) n (c 2 +c 3 +c 4 +c 7 ) τετραγωνική συνάρτηση του n! Φατούρου Παναγιώτα 2
25 Χρονική Πολυπλοκότητα Χείριστος Χρόνος Εκτέλεσης Ο χείριστος χρόνος εκτέλεσης (ή χρονική πολυπλοκότητα) ενός αλγορίθµου ορίζεται να είναι ο µέγιστος χρόνος εκτέλεσης για κάθε είσοδο µεγέθους n (και είναι συνάρτηση του n). Πως µπορούµε να βρούµε ένα πάνω όριο στη χρονική πολυπλοκότητα ενός αλγορίθµου; Πως µπορούµε να βρούµε ένα κάτω όριο στην χρονική πολυπλοκότητα ενός αλγορίθµου; Φατούρου Παναγιώτα 3
26 Τάξη Χρονικής Πολυπλοκότητας Η χρονική πολυπλοκότητα της InsertionSorn είναι an 2 +bn+c, όπου a = c 4 /2 + c 5 /2 + c 6 /2, b = c 1 +c 2 +c 3 +c 4 /2-c 5 /2-c 6 /2+c 7 και c = c 2 +c 3 +c 4 +c 7. Τα κόστη c i δεν µας δίνουν χρήσιµη πληροφορία. Πολλές φορές, κατά τη µελέτη της χρονικής πολυπλοκότητας, είναι χρήσιµο να θεωρούµε ακόµη πιο απλουστευτικές αφαιρέσεις από την an 2 +bn+c. Μας ενδιαφέρει µόνο ο ρυθµός µεταβολής της συνάρτησης της χρονικής πολυπλοκότητας: Από το άθροισµα an 2 +bn+c µας ενδιαφέρει µόνο ο κυρίαρχος όρος an 2, αφού οι άλλοι δύο όροι είναι µη-σηµαντικοί για µεγάλες τιµές του n. Αγνοούµε επίσης το συντελεστή a, αφού οι σταθεροί παράγοντες είναι λιγότεροι σηµαντικοί για µεγάλες τιµές του n. Η χρονική πολυπλοκότητα της InsertionSort είναι τετραγωνικής τάξης. Φατούρου Παναγιώτα 4
27 Τάξη Χρονικής Πολυπλοκότητας Μερικές φορές µπορούµε να υπολογίσουµε την ακριβή πολυπλοκότητα ενός αλγορίθµου. Όταν το n (είσοδος) είναι µεγάλο, οι σταθερές και οι χαµηλότερης τάξης όροι δεν είναι σηµαντικοί (κυριαρχεί έναντι αυτών ο υψηλότερης τάξης όρος). Η µελέτη της πολυπλοκότητας για πολύ µεγάλα n (όριο συνάρτησης πολυπλοκότητας όταν το n τείνει στο άπειρο), ονοµάζεται ασυµπτωτική µελέτη. Συνήθως, ένας αλγόριθµος που είναι ασυµπτωτικά ο πιο αποτελεσµατικός, είναι η καλύτερη επιλογή για όλες εκτός από πολύ µικρές εισόδους. Φατούρου Παναγιώτα 5
28 Ανάλυση Αλγορίθµων Ο χρόνος επεξεργασίας ή ο απαιτούµενος χώρος µνήµης εκτιµώνται µε τη βοήθεια µιας συνάρτησης f(n) που εκφράζει τη χρονική πολυπλοκότητα ή την πολυπλοκότητα χώρου. Μας ενδιαφέρει κυρίως η γενική συµπεριφορά αυτής της συνάρτησης, δηλαδή η τάξη της. Συµβολισµός Ο Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) είναι Ο(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) = an 2 +bn, όπου a,b θετικές σταθερές.? f(n) = O(n 2 ). Ψάχνουµε για c & n 0 τ.ω. 0 (c-a)n 2 bn 0 n [(c-a)n b] (c-a)n - b 0 an 2 + bn cn 2, για κάθε n n 0 Αν επιλέξουµε c = a+1 και οποιοδήποτε n 0 b, η ανισότητα (c-a)n - b 0 ισχύει. Φατούρου Παναγιώτα 6
29 Συµβολισµός Ω Έστω 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) = Ω(n). an 2 + bn cn an 2 + (b-c)n 0 an + b-c 0. Aν επιλέξουµε c = b ισχύει ότι an 0, για κάθε n 0, άρα για c = b & n 0 = 0, ο ισχυρισµός αποδεικνύεται. Φατούρου Παναγιώτα 7
30 Συµβολισµός Θ Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) είναι Θ(g(n)), f(n) = Θ(g(n)), αν f(n) = O(g(N)) και f(n) = Ω(g(n)). Παράδειγµα Αποδεικνύουµε πως f(n) = Ω(n 2 ), οπότε f(n) = Θ(n 2 ). Ψάχνουµε για c > 0 & 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. Aν επιλέξουµε c = a/2 > 0 ισχύει ότι (c-a)n-b = -an/2-b 0, για κάθε n 0, άρα για c = a/2 & n 0 = 0, ο ισχυρισµός αποδεικνύεται. Φατούρου Παναγιώτα 8
31 Συνήθεις Κατηγορίες Χρονικής Πολυπλοκότητας Ο(1): σταθερή πολυπλοκότητα Ο(logn): λογαριθµική πολυπλοκότητα O(n): γραµµική πολυπλοκότητα O(n logn): πολυπλοκότητα Ο(n log n) (συνήθης πολυπλοκότητα βέλτιστων αλγόριθµων ταξινόµησης) O(n 2 ): τετραγωνική πολυπλοκότητα O(n 3 ): κυβική πολυπλοκότητα Ο(n k ), για κάποιο προκαθορισµένο ακέραιο k: πολυωνυµική πολυπλοκότητα O(2 n ): εκθετική πολυπλοκότητα Φατούρου Παναγιώτα 9
32 Ιδιότητες Ο, Ω, Θ Ανακλαστική Ιδιότητα f(n) = Ο(f(n)) f(n) = Ω(f(n)) f(n) = Θ(f(n)) Μεταβατική Ιδιότητα f(n) = Ο(g(n)) & g(n) = Ο(h(n)) f(n) = Ο(h(n)) f(n) = Ω(g(n)) & g(n) = Ω(h(n)) f(n) = Ω(h(n)) f(n) = Θ(g(n)) & g(n) = Θ(h(n)) f(n) = Θ(h(n)) Συµµετρική Ιδιότητα f(n) = Θ(g(n)) αν και µόνο αν g(n) = Θ(f(n)) Αντίστροφη Συµµετρική Ιδιότητα f(n) = O(g(n)) αν και µόνο αν g(n) = Ω(f(n)) Καλή άσκηση για το σπίτι Αποδείξτε τις παραπάνω ιδιότητες. Φατούρου Παναγιώτα 10
33 ΕΝΟΤΗΤΑ 2 ΠΙΝΑΚΕΣ Φατούρου Παναγιώτα 11
34 Πίνακες οµή δεδοµένων που αποθηκεύει µια ακολουθία από διαδοχικά αριθµηµένα αντικείµενα. Πιο φορµαλιστικά: l,u: ακέραιοι Το διάστηµα l u είναι το σύνολο των ακεραίων j τ.ω. l j u. Ένας πίνακας είναι µια συνάρτηση µε πεδίο ορισµού ένα διάστηµα, που λέγεται σύνολο δεικτών, και πεδίο τιµών ένα σύνολο από αντικείµενα (τα στοιχεία του πίνακα). Χ: πίνακας j: δείκτης στο σύνολο δεικτών του Χ X[j]: το j-οστό στοιχείο του Χ Φατούρου Παναγιώτα 12
35 Λειτουργίες σε πίνακες o Access(X,j): επιστρέφει Χ[j] o Length(X): Επιστρέφει u, τον αριθµό των στοιχείων του Χ o Assign(X,j,a): εκτελεί τη λειτουργία Χ[j] = a o Initialize(X,a): Αρχικοποιεί σε a κάθε στοιχείο του Χ o Iterate(X,f): Εφαρµόζει την συνάρτηση f σε κάθε ένα στοιχείo του Χ, ξεκινώντας από το µικρότερο και καταλήγοντας στο µεγαλύτερο. Πολυδιάστατοι Πίνακες o Ένας διδιάστατος πίνακας ορίζεται ως ο µονοδιάστατος πίνακας του οποίου τα στοιχεία είναι µονοδιάστατοι πίνακες. o Ένας d-διάστατος πίνακας ορίζεται ως ο µονοδιάστατος πίνακας του οποίου τα στοιχεία είναι (d-1)-διάστατοι πίνακες. o Αν <j 1,, j d > είναι ένα διάνυσµα d ακεραίων που ανήκει στο σύνολο δεικτών ενός d- διάστατου πίνακα Χ, τότε Χ[j 1,,j d ] είναι η τιµή του πίνακα για το συγκεκριµένο δείκτη. Φατούρου Παναγιώτα 13
36 Υλοποίηση Πινάκων σε ιαδοχικές Θέσεις Μνήµης o o o Στη C το όνοµα, π.χ. Χ, ενός πίνακα είναι και δείκτης στο 1 ο στοιχείο του. Αν L είναι το µέγεθος κάθε στοιχείου του πίνακα, τότε το j-οστό στοιχείο του πίνακα βρίσκεται στη διεύθυνση X + L*(j-1). Κάποιες φορές το µήκος του πίνακα δεν είναι γνωστό και αντί αυτού χρησιµοποιείται ένα στοιχείο φρουρός το οποίο σηµατοδοτεί το τέλος του πίνακα (αυτό π.χ. γίνεται στη C µε τα strings). ιδιάστατοι Πίνακες Στη C οι πίνακες αποθηκεύονται κατά γραµµές: Χ[0,0], Χ[0,1],..., Χ[0, m], Χ[1,0],..., Χ[1,m],..., Χ[n,0],..., Χ[n,m] m 0 [0,0] [0,1] [0,m] 1 [1,0] [1,1] [1,m]... n [n,0] [n,1] [n,m] Άρα το στοιχείο Χ[k,j] βρίσκεται στη θέση µνήµης Χ + L*(m*k + j). Γιατί? Φατούρου Παναγιώτα 14
37 Ειδικές Μορφές Πινάκων Συµµετρικοί Πίνακες Συµµετρικός λέγεται ο τετραγωνικός πίνακας µε στοιχεία Χ[k,j] = X[j,k], για κάθε 0 j,k n Υπάρχουν n διαφορετικά στοιχεία και άρα απαιτούνται (1+n)*n/ 2 θέσεις µνήµης για την αποθήκευση του πίνακα. Τριγωνικοί Πίνακες Για τα στοιχεία ενός πάνω (κάτω) τριγωνικού πίνακα ισχύει Χ[k,j] = 0, αν k < j (αντίστοιχα k > j), όπου 1 k,j n Πως µπορούµε να υλοποιήσουµε τριδιαγώνιους πίνακες χωρίς µεγάλη σπατάλη µνήµης? Φατούρου Παναγιώτα 15
38 Αραιοί Πίνακες Ένας πίνακας λέγεται αραιός, όταν ένα µεγάλο ποσοστό των στοιχείων του έχουν την τιµή 0. Παράδειγµα Τρόπος Αποθήκευσης Αποθήκευση του αντίστοιχου δυαδικού πίνακα: ακολουθούµενο από ένα µονοδιάστατο πίνακα µε τιµές: ( ) Φατούρου Παναγιώτα 16
οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ
Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ 1 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος
Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις
Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για
ΗΥ240: οµές εδοµένων
ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 1 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική
ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2
ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο
1o Φροντιστήριο ΗΥ240
1o Φροντιστήριο ΗΥ240 Άσκηση 1 Αποδείξτε τη μεταβατική και τη συμμετρική ιδιότητα του Θ Μεταβατική Ιδιότητα (ορισμός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)) Για να ισχύει f(n)= Θ(h(n))
Ορισµός. Εστω συναρτήσεις: 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
Στοιχεία Αλγορίθµων και Πολυπλοκότητας
Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις
Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου
ΗΥ240: Δοµές Δεδοµένων Διδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο
Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)
Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν
Δομές Δεδομένων Ενότητα 2
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Αλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων
Δομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 1η: Εισαγωγή Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 1η: Εισαγωγή Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΗΥ240: Δομές Δεδομένων Διδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθημα 2ου
Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;
Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε; Πως θα υπολογίσουμε το χρόνο εκτέλεσης ενός αλγόριθμου; Για να απαντήσουμε
Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018
Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018 Αλγόριθμοι Ρυθμός αύξησης συναρτήσεων [Rosen 3.2] Αριθμητικές συναρτήσεις Τάξη αριθμητικών συναρτήσεων
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα
Κεφάλαιο 5 Ανάλυση Αλγορίθμων
Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι
Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;
5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας
Δομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 2: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }
Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20 Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΕΡΙΓΡΑΦΗ Σε αυτή την άσκηση καλείστε να αναλύσετε και να υπολογίσετε το
Ασυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική
Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος
Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες
Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1
Ανάλυση Αλγορίθμων Θέματα Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα Προσεγγίσεις: Θεωρητική ανάλυση Εμπειρική ανάλυση Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Θεωρητική
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση
Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Υπολογιστική Πολυπλοκότητα
Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής:
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου 2015 1 / 53 Περιεχόµενα
ρυθιμός αύξησης συναρτήσεων
ρυθμός αύξησης συναρτήσεων Παύλος Εφραιμίδης 1 περιεχόμενα Ασυμπτωτικός συμβολισμός Καθιερωμένοι συμβολισμοί και συνήθεις συναρτήσεις 2 ασυμπτωτική πολυπλοκότητα Πολυπλοκότητα χειρότερης περίπτωσης Συγχωνευτική
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις
Γενικό πλάνο Μαθηµατικά για Πληροφορική 6ο Μάθηµα 1 Ανάλυση αλγορίθµων Ηλίας Κουτσουπιάς, Γιάννης Εµίρης 2 Συµβολισµοί O, Ω και Θ Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 3
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
Μαθηµατικά για Πληροφορική
Μαθηµατικά για Πληροφορική 6ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 27/11/2008 1 / 55 Γενικό πλάνο 1 Ανάλυση αλγορίθµων 2 Συµβολισµοί
Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. α. Να βάλετε σε αύξουσα σειρά μεγέθους τις παρακάτω συναρτήσεις χρονικής πολυπλοκότητας αλγορίθμων: nlogn, n logn,
Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Διαίρει-και-Βασίλευε Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική
Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2
Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.
Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012
Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Ενδεικτικές απαντήσεις 1 ου σετ ασκήσεων. Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του χρόνου εκτέλεσης τριών
Ασυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθμου Α: Ποσότητα
Ασυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός Επιμέλεια διαφανειών: Δημήτρης Φωτάκης (λίγες προσθήκες: Άρης Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα
Ασκήσεις (2) Άσκηση 1
Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,
Δομές Δεδομένων & Αλγόριθμοι
Απόδοση Αλγορίθμων Πληροφορικής 1 Απόδοση Αλγορίθμων Συνήθως υπάρχουν πολλοί τρόποι (αλγόριθμοι) για την επίλυση ενός προβλήματος. Πώς επιλέγουμε μεταξύ αυτών; Πρέπει να ικανοποιηθούν δύο (αντικρουόμενοι)
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας
Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας
Πολυπλοκότητα Αλγορίθµων
Πολυπλοκότητα Αλγορίθµων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εµπειρική Θεωρητική Ανάλυση Αλγορίθµων Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις
ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα
Δομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
5.1. Προσδοκώμενα αποτελέσματα
5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση
Εισαγωγή στην Ανάλυση Αλγορίθμων
Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Αλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013
Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Λυμένες Ασκήσεις Σετ Α: Ανάλυση Αλγορίθμων Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του
Insert(K,I,S) Delete(K,S)
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και
Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).
Ανάλυση Αλγορίθµων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Ανάλυση αλγορίθµων Ο, Θ, Ω Ανάλυση µη αναδροµικών αλγόριθµων Ανάλυση αναδροµικών αλγόριθµων Εµπειρική Ανάλυση Visualization Απόδοση Αλγορίθµων Απόδοση
Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1
Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Ασυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό
Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»
Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε» ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε
Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή
Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1
Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος
Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη
Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων 1. (α) Αλγόριθµος: ηµιούργησε το σύνολο P που αποτελείται από τα άκρα όλων των ευθυγράµµων τµηµάτων. Βρες το κυρτό περίβληµα του P µε τον αλγόριθµο του Graham. Ορθότητα:
Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Quicksort Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 6] Στοιχείο διαχωρισμού (pivot),
Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Quicksort ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 62] Στοιχείο διαχωρισμού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση
ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 2: Ανάλυση Αλγορίθμων Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα
Διάλεξη 04: Παραδείγματα Ανάλυσης
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ενότητα 1 Εισαγωγικές έννοιες Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 1 / 57 Περιεχόµενα 1.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών
ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες
Αναδρομή Ανάλυση Αλγορίθμων
Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).
Τηλ , Fax: , URL:
Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax: +30 26510 98890,
Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος
ΔιακριτάΜαθηματικά Γιάννης Εμίρης http://eclass.uoa.gr/ Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ Οκτώβριος 2016 Διακριτά Μαθηματικά Αλγόριθμοι Ρυθμόςαύξησηςσυναρτήσεων[Rosen 3.2] Διακριτά Μαθηματικά Ορισμοί
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη - Πολυπλοκότητα Αλγορίθμων / Επανάληψη Χρήσιμων Μαθηματικών Ορισμών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αλγόριθμοι, Κριτήρια Αξιολόγησης Αλγόριθμων, Γιατί αναλύουμε τους Αλγορίθμων
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3 ιδασκοντες: Α. Μπεληγιάννης - Σ. Παπαδάκης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt.html Τετάρτη 13 Μαρτίου 2013 Ασκηση 1. Αφού ϐρείτε την
Τηλ , Fax: , URL:
Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax: +30 26510 98890,
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,
Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης
Δοµές Δεδοµένων 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων Ε. Μαρκάκης Περίληψη Διπλά συνδεδεµένες λίστες Αναπαράσταση γράφων µε λίστες Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 1: Εισαγωγή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή
Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο ιδασκοντες: Α. Μπεληγιάννης - Σ. Παπαδάκης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt.html Τετάρτη 7 Φεβρουαρίου 03 Ασκηση. είξτε ότι
Δυναμικός Προγραμματισμός
Δυναμικός Προγραμματισμός Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διωνυμικοί Συντελεστές Διωνυμικοί
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
υναμικός Προγραμματισμός
υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί
Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου
(Γραμμικές) Αναδρομικές Σχέσεις
(Γραμμικές) Αναδρομικές Σχέσεις Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Quicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Quicksort ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται