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

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

E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων1 ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΡΧΕΙΩΝ.

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


Παρουσίαση με θέμα: "E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων1 ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΡΧΕΙΩΝ."— Μεταγράφημα παρουσίασης:

1 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων1 ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΡΧΕΙΩΝ Ευριπίδης Πετράκης Χανιά, 2006

2 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων2 Εισαγωγή  Μελετάμε δομές δεδομένων και μαθαίνουμε να γράφουμε αποδοτικά προγράμματα  Αυτό δεν έχει να κάνει με προγραμματικά κόλπα αλλά με  Καλή οργάνωση της πληροφορίας και καλούς αλγορίθμους που κερδίζουν σε  Μνήμη και χρόνο εκτέλεσης

3 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων3 Δομές Δεδομένων  Ανaπαράσταση δεδομένων στην μνήμη  Δομές Αρχείων: αναπαράσταση δεδομένων στον δίσκο  Μια συλλογή εγγραφών μπορεί να αναπαριστάνεται με λίστα ή δέντρο  Τα αποδοτικά προγράμματα απαιτούν αποδοτικές δομές δεδομένων  Ένα πρόβλημα πρέπει να λυθεί μέσα στα όρια χρόνου και μνήμης της εφαρμογής

4 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων4 Περιορισμοί Προβλήματος  Κάθε πρόβλημα βάζει περιορισμούς χρόνου και χώρου μνήμης  π.χ., παράδειγμα τράπεζας:  άνοιγμα λογαριασμού: μερικά λεπτά  συναλλαγές: μερικά δευτερόλεπτα  κλείσιμο λογαριασμού: όλη τη νύκτα  Μια λύση είναι αποδοτική αν λύνει το πρόβλημα μέσα στα όρια μνήμης και χρόνου που έχουν δοθεί  Κόστος της λύσης: ποσοστό των πόρων που καταναλώθηκαν

5 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων5 Στόχοι του μαθήματος  Διδασκαλία δομών δεδομένων για την κύρια μνήμη και τον δίσκο  Διδασκαλία αλγορίθμων για διαφορετικά προβλήματα και δομές δεδομένων  Διδασκαλία της ιδέας των διλημμάτων  Υπάρχουν κόστη και κέρδη που συνδέονται με κάθε δομή δεδομένων και κάθε αλγόριθμο  Διδασκαλία μεθόδων μέτρησης της αποτελεσματικότητας αλγορίθμων και δομών δεδομένων

6 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων6 Selecting Data Structures 1.Ανάλυση του προβλήματος για να καθοριστούν τα όρια των πόρων που η λύση πρέπει να τηρεί 2.Καθορισμός των διαδικασιών που πρέπει να υποστηρίζονται από την εφαρμογή  π.χ., αναζήτηση, εισαγωγή, διαγραφή δεδομένων 3.Ποσοτικοποιήστε τα όρια για κάθε λειτουργία  π.χ., η αναζήτηση πρέπει να είναι γρήγορη 4.Επιλογή της δομής δεδομένων που ικανοποιεί καλύτερα αυτές τις απαιτήσεις

7 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων7 Κόστος & Κέρδος  Κάθε δομή δεδομένων χρειάζεται:  Χώρο για τον κάθε τύπο δεδομένων που αποθηκεύει  Χρόνο εκτέλεσης κάθε λειτουργίας  Προγραμματιστική προσπάθεια για να αναπτυχθεί  Κάθε δομή δεδομένων έχει κόστη και κέρδη  Σπάνια μια δομή δεδομένων είναι καλύτερη από μια άλλη σε όλες τις περιπτώσεις  Κάποια μπορεί να επιτρέπει γρηγορότερη αναζήτηση (ή εισαγωγή ή διαγραφή) από μια άλλη  Είναι όλες οι διαδικασίες το ίδιο σημαντικές;

8 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων8 Αφαιρετικοί Τύποι Δεδομένων (ΑΤΔ)  ATΔ: ορισμός του τύπου δεδομένων εφαρμογής  Ένα σύνολο τιμών και  Ένα σύνολο διαδικασιών που επιτρέπονται σε αυτόν τον τύπο δεδομένων  Κάθε ΑΤΔ εξαρτάται από τις εισόδους και τις εξόδους της εφαρμογής  Οι ΑΤΔ έχουν κρύβουν τις λεπτομέρειες υλοποίησης  Μια δομή δεδομένων είναι η υλοποίηση ενός ΑΤΔ  Οι διαδικασίες που συνδέονται με τον ATΔ υλοποιούνται από μια ή περισσότερες συναρτήσεις

9 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων9 Λογικές και Φυσικές Μορφές  Τα στοιχεία των δεδομένων έχουν και λογική και φυσική μορφή 1.Λογική μορφή: καθορισμός ενός στοιχείου δεδομένων ενός ATΔ  π.χ., ακέραιοι αριθμοί υπό τη μαθηματική έννοια: +, - 2.Φυσική Μορφή: υλοποίηση του στοιχείου δεδομένων  π.χ., 16 ή 32 bit ακέραιοι

10 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων10 Τύποι Δεδομένων Στοιχεία Δεδομένων: Λογική Μορφή Στοιχεία Δεδομένων: Φυσική Μορφή Δομή Δεδομένων: Χώρος Αποθήκευσης + συναρτήσεις ATΔ:Δομές + Διαδικασίες

11 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων11 ATΔ String: Συμβολοσειρά  ATΔ function length (s: string): integer; μετα-συνθήκη: length = len(s);  ATΔ function concat (s 1,s 2 : string): string; μετα-συνθήκη: concat = s 1 + s 2 ;  ATΔ function substr (s: string, i, j: integer): string; προϋπόθεση: 0 < i < len(s), 0 < j < len(s) – i + 1 μετα-συνθήκη: substr(s, i, j);  ATΔ function pos (s 1, s 2 ): integer; προϋπόθεση … μετα-συνθήκη …

12 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων12 Ορισμός ενός ΑΤΔ  Εξαρτάται από την εφαρμογή  Μπορεί να υπάρχουν διαφορετικοί ορισμοί για την ίδια εφαρμογή  Μπορεί να υπάρχουν διαφορετικές υλοποιήσεις για τον ίδιο ορισμό  Ο ορισμός ενός ΑΤΔ κρύβει τις λεπτομέρειες υλοποίησης  Όταν δίνεται ο ΑΤΔ μπορεί να χρησιμοποιηθεί από τον προγραμματιστή  π.χ.,, στην C  Όταν η υλοποίηση αλλάζει τα προγράμματα που χειρίζονται τον ΑΤΔ δεν χρειάζονται αλλαγές

13 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων13 Αλγόριθμοι  Η μέθοδος που λύνει ένα πρόβλημα  Ένας αλγόριθμος παίρνει την είσοδο ενός προβλήματος και υπολογίζει μία έξοδο  Ένα πρόβλημα μπορεί να έχει πολλούς αλγορίθμους που να το λύνουν  Ένα πρόγραμμα είναι η υλοποίηση ενός αλγορίθμου σε κάποια γλώσσα προγραμματισμού

14 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων14 Ιδιότητες των Αλγορίθμων  Αποτελεσματικότητα: ο αλγόριθμος μπορεί να γραφτεί ως πρόγραμμα  Υπάρχουν προβλήματα για τα οποία δεν υπάρχει αλγόριθμος  Ορθότητα: βρίσκει τη σωστή λύση για κάθε είσοδο  Τερματισμός: ολοκληρώνεται μετά από έναν πεπερασμένο αριθμό βημάτων  Κάθε βήμα απαιτεί ένα πεπερασμένο χρόνο  Αποδοτικότητα: κάνει σωστή χρήση των πόρων του υπολογιστή  Πολυπλοκότητα: υλοποιείται εύκολα σε κώδικα, μπορεί να διορθωθεί και να αλλάξει εύκολα

15 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων15 Πρόβλημα Πλακιδίων  Ο αλγόριθμος δέχεται ένα πεπερασμένο σύνολο πλακιδίων Τ στην είσοδο  Υποτίθεται ότι ένας απεριόριστος αριθμός πλακιδίων κάθε τύπου είναι διαθέσιμος  Πρόβλημα: είναι δυνατόν να δομηθεί κάθε πιθανή πεπερασμένη περιοχή (οποιουδήποτε μεγέθους) έτσι ώστε τα χρώματα των πλακιδίων σε κάθε δύο γειτονικές πλευρές είναι τα ίδια;  Για οποιοδήποτε αλγόριθμο μπορούν να υπάρχουν είσοδοι Τ για τις οποίες ο αλγόριθμος δεν ολοκληρώνεται ποτέ ή βρίσκει μια λάθος λύση

16 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων16 Τύποι πλακιδίων που γεμίζουν οποιαδήποτε περιοχή Τύποι πλακιδίων που δεν γεμίζουν οποιαδήποτε περιοχή From “Algorithmics”, David Harel,

17 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων17 Ένα Πρόβλημα Λήξης  Ένας αλγόριθμος πρέπει να τερματίζει με την σωστή λύση για κάθε είσοδο  Κανένας δεν μπορεί να αποδείξει ότι ο αλγόριθμος ολοκληρώνεται για οποιοδήποτε θετικό αριθμό n αν και οι περισσότεροι άνθρωποι το πιστεύουν!! int OddEven( int n ) { while ( n > 1 ) if (( n % 2 ) == 0) n = n / 2; else n = 3n + 1; return n; }

18 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων18 Ταξινόμηση Αλγορίθμων  Ένα αλγοριθμικό πρόβλημα που δεν έχει λύση με κανέναν αλγόριθμο ονομάζεται ‘‘μη- υπολογίσιμο’’  Αν είναι πρόβλημα απόφασης καλείται ‘‘μη-αποφασίσιμο’’

19 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων19 Μοντέλο Δίσκου (1/2)  T = Tπρόσβασης + Tπεριστροφής + Tανάγνωσης  Block: μονάδα μεγέθους μνήμης για τον δίσκο  Μέγεθος των δεδομένων που μεταφέρονται στην κύρια μνήμη σε μία προσπέλαση στο δίσκο  Τις περισσότερες φορές page=block=track  1, 2, 4 ή 8Kbytes

20 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων20 Μοντέλο Δίσκου (2/2)  Tπρόσβασης > Tπρόσβασης > Tανάγνωσης ==> αύξηση της ποσότητας δεδομένων που μεταφέρεται στην κύρια μνήμη σε κάθε προσπέλαση (disk access) στο δίσκο  Μεγάλα blocks, συμπίεση, δεδομένα στη μνήμη  Στα συστήματα πολλών χρηστών, η κεφαλή του δίσκου μπορεί να είναι οπουδήποτε απόσταση που διανύεται από την κεφαλή χρόνος

21 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων21 Βιβλιογραφία  "Data Structures and Algorithm Analysis'', Clifford A. Shaffer, Prentice Hall, 1997  "Data Structures and Algorithms in C++", M. T. Goodrich, R. Tamassia and D. Mount, Wiley, 2004  "Algorithms Data Structures and Problem Solving Using C++'', Mark Allen Weis, Addison-Wesley, 2000  "Data Structures & Algorithm Analysis in C++”, Mark Allen Weis, Addison-Wesley, 1999  “Δομές Δεδομένων”, Sahni, Εκδόσεις Τζίόλα, 2004  Σημειώσεις του μαθήματος

22 E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων22 Σύστημα Βαθμολόγησης ελάχιστο 5!!!!  Τελική Εξέταση (F): 50%, ελάχιστο 5!!!! Ασκήσεις (Α): 30% Πρόοδος (M): 20% Αν M = 3: Βαθμός= max { 0.2M + 0.5F + 0.3A, 0.7F + 0.3A }  Όλες ανεξαιρέτως οι αντιγραφές θα μηδενιστούν !!!!!!!!


Κατέβασμα ppt "E. ΠετράκηςΑφαιρετικοί Τυποι Δεδομένων1 ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΡΧΕΙΩΝ."

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


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