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

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

Αφαιρετικοί Τυποι Δεδομένων

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


Παρουσίαση με θέμα: "Αφαιρετικοί Τυποι Δεδομένων"— Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

11 ATΔ String: Συμβολοσειρά
ATΔ function length (s: string): integer; μετα-συνθήκη: length = len(s); ATΔ function concat (s1,s2: string): string; μετα-συνθήκη: concat = s1 + s2; 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 (s1, s2): integer; προϋπόθεση … μετα-συνθήκη … E. Πετράκης Αφαιρετικοί Τυποι Δεδομένων

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

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

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

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

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

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

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

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

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

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


Κατέβασμα ppt "Αφαιρετικοί Τυποι Δεδομένων"

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


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