ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΜΕ ΧΡΗΣΗ ΤΟΥ MATLAB

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

Download "ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΜΕ ΧΡΗΣΗ ΤΟΥ MATLAB"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΜΕ ΧΡΗΣΗ ΤΟΥ MATLAB ιπλωµατική Εργασία της Στεργιανής όβα Αριθµός µητρώου: 2311 Επιβλέπων καθηγητής: Σαµαράς Νικόλαος Θεσσαλονίκη Νοέµβριος 2013

2 ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΜΕ ΧΡΗΣΗ ΤΟΥ MATLAB Στεργιανή όβα Πτυχίο Μηχανικού Πληροφορικής και Επικοινωνιών, ΤΕΙ Σερρών, 2010 ιπλωµατική Εργασία υποβαλλόµενη για τη µερική εκπλήρωση των απαιτήσεων του ΜΕΤΑΠΤΥΧΙΑΚΟΥ ΤΙΤΛΟΥ ΣΠΟΥ ΩΝ ΣΤΗΝ ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Επιβλέπων Καθηγητής Σαµαράς Νικόλαος Εγκρίθηκε από την τριµελή εξεταστική επιτροπή την /11/2013 Σαµαράς Νικόλαος Ευαγγελίδης Γεώργιος Μαυρίδης Ιωάννης Στεργιανή όβα...

3 Περίληψη Η παρούσα εργασία αποσκοπεί στη µελέτη αλγορίθµων κατηγοριοποίησης, µε τη χρήση του προγράµµατος MATLAB. Το πρόβληµα της κατηγοριοποίησης έγκειται στον καθορισµό της κατηγορίας που ανήκει ένα αντικείµενο, βάσει κάποιων µετρήσεων που έχουν ληφθεί για αυτό. Το MATLAB είναι µία τεχνική γλώσσα προγραµµατισµού υψηλού επιπέδου, που παρέχει διαδραστικά εργαλεία για την ανάπτυξη αλγορίθµων, την οπτικοποίηση και ανάλυση δεδοµένων, καθώς και την εύκολη διενέργεια περίπλοκων αριθµητικών υπολογισµών. Στα πλαίσια της εργασίας εξετάζονται τέσσερις µεθοδολογίες κατηγοριοποίησης: η διαχωριστική ανάλυση, ο απλός κατηγοριοποιητής Bayes, ο κατηγοριοποιητής εγγύτατου γείτονα και τα δέντρα αποφάσεων. Για κάθε µεθοδολογία παρέχεται µία συνοπτική περιγραφή των βασικών θεωρητικών αρχών στις οποίες βασίζεται και επεξηγείται λεπτοµερώς η σύνταξη των αντίστοιχων εντολών στο MATLAB. Επιπλέον παρέχονται εποπτικά παραδείγµατα εφαρµογής κάθε µεθόδου, προκειµένου να αναδειχθούν οι διαφορές στον τρόπο λειτουργίας των επιµέρους µεθοδολογιών. Τέλος, οι εξεταζόµενοι κατηγοριοποιητές συγκρίνονται βάσει της ακρίβειά τους σε πραγµατικά προβλήµατα κατηγοριοποίησης, προκειµένου να αναδειχθούν τα συγκριτικά προτερήµατα και µειονεκτήµατα των τεσσάρων µεθοδολογιών κατηγοριοποίησης που εξετάζονται. Λέξεις Κλειδιά: Αλγόριθµοι κατηγοριοποίησης, MATLAB, παραµετρική κατηγοριοποίηση, επιβλεπόµενη εκµάθηση, διαχωριστική ανάλυση, απλός κατηγοριοποιητής Bayes, κατηγοριοποιητής εγγύτατου γείτονα, δέντρα αποφάσεων. i

4 Abstract This dissertation aims at studying classification algorithms using the MATLAB software program. The problem of classification deals with determining the category an object belongs to, through the evaluation of certain measurements which have been obtained for the object. MATLAB is a high-level technical programming language, providing interactive tools for algorithm development, data visualization and analysis and for easily performing complex numeric computation. Four classification methodologies are studied in the current dissertation, namely, discriminant analysis, the naïve Bayes classifier, the nearest neighbor classifier and decision trees. In each case, a concise description of the basic theoretical principles underlying the methodology is provided, along with a detailed description of the respective commands in MATLAB. Moreover, visual examples regarding the application of each methodology are provided, in order to highlight the differences between the various classifiers. Finally, the four classifiers are compared in terms of their accuracy in real-world classification problems, in order to highlight the relative advantages and disadvantages of each methodology. Keywords: Classification algorithms, MATLAB, parametric classification, supervised learning, discriminant analysis, naïve Bayes classifier, nearest neighbor classifier, decision trees. ii

5 Περιεχόµενα Κεφάλαιο 1: Εισαγωγή Το πρόβληµα της κατηγοριοποίησης Σφάλµα κατηγοριοποίησης και τεχνικές διασταυρωµένης επικύρωσης Πίνακας σύγχυσης Εισαγωγή στο MATLAB Εργαλεία της επιφάνεια εργασίας Τύποι δεδοµένων και µεταβλητών οµές Πίνακες κελιών Συναρτήσεις Χειρισµός συναρτήσεων Αντικειµενοστραφής προγραµµατισµός στο MATLAB Προβλήµατα κατηγοριοποίησης που εξετάζονται στη διπλωµατική εργασία Το πρόβληµα Iris Το πρόβληµα Ionosphere Το πρόβληµα Cancer Το πρόβληµα Glass Χρήσιµες συναρτήσεις του MATLAB για προβλήµατα κατηγοριοποίησης Υπολογισµός πίνακα σύγχυσης (confusionmat) Παραγωγή διαγραµµάτων διασποράς (gscatter) ηµιουργία διαµερίσεων των δεδοµένων (cvpartition) Εφαρµογή τεχνικής διασταυρωµένης επικύρωσης (crossval) Κεφάλαιο 2: ιαχωριστική Ανάλυση Περιγραφή της µεθοδολογίας Σύνταξη των εντολών Εποπτικά παραδείγµατα εφαρµογής Εφαρµογή σε πραγµατικά προβλήµατα κατηγοριοποίησης Κεφάλαιο 3: Απλός κατηγοριοποιητής Bayes Συνοπτική περιγραφή της µεθοδολογίας Σύνταξη των εντολών Εποπτικά παραδείγµατα εφαρµογής Εφαρµογή σε πραγµατικά προβλήµατα κατηγοριοποίησης iii

6 Περιεχόµενα Κεφάλαιο 4: Κατηγοριοποιητής Εγγύτατου Γείτονα Περιγραφή της µεθοδολογίας Σύνταξη των εντολών Εποπτικά παραδείγµατα εφαρµογής Εφαρµογή σε πραγµατικά προβλήµατα κατηγοριοποίησης Κεφάλαιο 5: έντρα αποφάσεων Περιγραφή της µεθοδολογίας Σύνταξη των βασικών εντολών Εποπτικό παράδειγµα εφαρµογής Τεχνικές απλοποίησης της δοµής του δέντρου Απλοποίηση δοµής µέσω της παραµέτρου MinLeaf ιαδικασία κλαδέµατος του δέντρου αποφάσεων Εφαρµογή σε πραγµατικά προβλήµατα κατηγοριοποίησης Κεφάλαιο 6: Συµπεράσµατα Σύγκριση ακρίβειας των εξεταζόµενων µεθοδολογιών κατηγοριοποίησης Ποιοτική σύγκριση των κατηγοριοποιητών ιαχωριστική ανάλυση Απλός κατηγοριοποιητής Bayes Κατηγοριοποιητής εγγύτατου γείτονα έντρα αποφάσεων Βιβλιογραφία iv

7 Κατάλογος Σχηµάτων Σχήµα 1.1 Η επιφάνεια εργασίας του MATLAB Σχήµα 1.2 Στιγµιότυπο του επεξεργαστή κώδικα του MATLAB Σχήµα 1.3 ιάγραµµα διασποράς των δεδοµένων του προβλήµατος Iris Σχήµα 2.1 ιάγραµµα διασποράς των δεδοµένων του προβλήµατος Iris, θεωρώντας τα δύο πρώτα χαρακτηριστικά (µήκος και πλάτος σέπαλων) Σχήµα 2.2 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris, µέσω της κατηγοριοποίησης LDA Σχήµα 2.3 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris, για όλες τις δυνατές περιπτώσεις της διαχωριστικής ανάλυσης Σχήµα 2.4 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο τελευταίων χαρακτηριστικών του προβλήµατος Iris, για όλες τις δυνατές περιπτώσεις της διαχωριστικής ανάλυσης Σχήµα 3.1 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris, που προκύπτουν εφαρµόζοντας τον απλό κατηγοριοποιητή Bayes Σχήµα 3.2 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο τελευταίων χαρακτηριστικών του προβλήµατος Iris, που προκύπτουν εφαρµόζοντας τον απλό κατηγοριοποιητή Bayes Σχήµα 4.1 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris, που προκύπτουν εφαρµόζοντας τον κατηγοριοποιητή knn για διάφορες τιµές k Σχήµα 4.2 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο τελευταίων χαρακτηριστικών του προβλήµατος Iris, που προκύπτουν εφαρµόζοντας τον κατηγοριοποιητή knn για διάφορες τιµές k Σχήµα 5.1 Παράδειγµα ενός απλού µοντέλου CART, θεωρώντας το πρόβληµα κατηγοριοποίησης Iris Σχήµα 5.2 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris, που προκύπτουν εφαρµόζοντας τον κατηγοριοποιητή CART Σχήµα 5.3 Η δοµή του κατηγοριοποιητή CART του παραδείγµατος v

8 Κατάλογος Σχηµάτων Σχήµα 5.4 Οι περιοχές κατηγοριοποίησης στο χώρο των δύο πρώτων χαρακτηριστικών του προβλήµατος Iris και τα αντίστοιχα µοντέλα CART που δηµιουργούνται, για διαφορετικές τιµές της παραµέτρου MinLeaf Σχήµα 5.5 Οπτικοποίηση των διαφόρων επιπέδων κλαδέµατος Σχήµα 5.6 Σύγκριση των σφαλµάτων αντικατάστασης και δοκιµής, για τα διάφορα επίπεδα κλαδέµατος του δέντρου του παραδείγµατος Σχήµα 5.7 Η διαδικασία κλαδέµατος στο ελαττωµένο πρόβληµα Iris, θεωρώντας µόνο τα δύο πρώτα χαρακτηριστικά Σχήµα 5.8 Η διαδικασία κλαδέµατος στο ελαττωµένο πρόβληµα Iris, θεωρώντας µόνο τα δύο τελευταία χαρακτηριστικά vi

9 Κατάλογος Πινάκων Πίνακας 1.1 Παράδειγµα ενός πίνακα σύγχυσης, για ένα υποθετικό πρόβληµα κατηγοριοποίησης µε τρεις κατηγορίες Πίνακας 1.2 Προσδιοριστικά χρωµάτων που χρησιµοποιούνται στη συνάρτηση gscatter Πίνακας 1.3 Προσδιοριστικά µορφής συµβόλου που χρησιµοποιούνται στη συνάρτηση gscatter Πίνακας 2.1 Ακρίβεια κατηγοριοποίησης δοκιµής (%) για τις διάφορες µορφές διαχωριστικής ανάλυσης στα θεωρούµενα προβλήµατα κατηγοριοποίησης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold Πίνακας 3.1 Ακρίβεια κατηγοριοποίησης δοκιµής (%) για τις δύο µορφές του NBC στα θεωρούµενα προβλήµατα κατηγοριοποίησης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold Πίνακας 4.1 Ακρίβεια κατηγοριοποίησης δοκιµής (%) του knn για διάφορες τιµές του k στα θεωρούµενα προβλήµατα κατηγοριοποίησης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold Πίνακας 4.2 Ακρίβεια κατηγοριοποίησης δοκιµής (%) του knn για διαφορετικά µέτρα απόστασης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold σε όλα τα θεωρούµενα προβλήµατα κατηγοριοποίησης Πίνακας 5.1 Ακρίβεια κατηγοριοποίησης δοκιµής (%) του CART στα θεωρούµενα προβλήµατα κατηγοριοποίησης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold Πίνακας 6.1 Ακρίβεια δοκιµής (%) των διαφόρων µεθοδολογιών κατηγοριοποίησης στα θεωρούµενα προβλήµατα κατηγοριοποίησης, εφαρµόζοντας τη µεθοδολογία της διασταυρωµένης επικύρωσης 10-fold vii

10 Κεφάλαιο 1 Εισαγωγή Η ευκολία µε την οποία αναγνωρίζουµε ένα πρόσωπο, αντιλαµβανόµαστε τον προφορικό λόγο, διαβάζουµε ένα κείµενο, αναγνωρίζουµε µε την αφή τον αναπτήρα στην τσέπη µας και αποφασίζουµε αν ένα φρούτο είναι ώριµο από τη µυρωδιά του, αποκρύπτει την πολυπλοκότητα των απαιτούµενων εγκεφαλικών διαδικασιών. Η διαδικασία κατά την οποία παρατηρούµε απλά δεδοµένα και λαµβάνουµε αποφάσεις βασιζόµενες στην κατηγορία κάποιου προτύπου έχει καθοριστικό ρόλο στη ζωή µας. Παρόλο που οι διαδικασίες αυτές φαντάζουν αυτονόητες για τους ανθρώπους, η ανάπτυξη αντίστοιχων υπολογιστικών αλγορίθµων εµπεριέχει αρκετές δυσκολίες. Το γνωστικό αντικείµενο της αναγνώρισης προτύπων (pattern recognition) ασχολείται µε την ανάπτυξη υπολογιστικών µεθόδων που αναγνωρίζουν πρότυπα, σε µία προσπάθεια να µιµηθούν τις αντιληπτικές ικανότητες των ανθρώπων (Bishop, 2006; Koutroumbas and Theodoridis, 2008; Watanabe, 1985). Οι διεργασίες της αυτόµατης αναγνώρισης, περιγραφής, κατηγοριοποίησης και οµαδοποίησης προτύπων αποτελούν καίρια ζητήµατα σε διάφορους επιστηµονικούς τοµείς, µεταξύ των ο- ποίων είναι η βιολογία, η φυσιολογία, η ιατρική και η τεχνητή νοηµοσύνη. Η παρούσα εργασία εστιάζεται σε ένα από τα σηµαντικότερα κοµµάτια της αναγνώρισης προτύπων, στο πρόβληµα της κατηγοριοποίησης (classification) (Duda et al., 2000). Το πρόβληµα της κατηγοριοποίησης συνίσταται στον προσδιορισµό της κατηγορίας που ανήκει ένα αντικείµενο, βάσει ενός συνόλου µετρήσεων. Οι µετρήσεις λαµβάνονται µέσω ενός συνόλου αισθητήρων, που συλλέγουν πληροφορίες για τα αντικείµενα υπό εξέταση. Όλα τα µετρούµενα αυτά φυσικά µεγέθη αποτελούν τις εισόδους του προβλήµατος. Ο στόχος είναι ο προσδιορισµός της κατηγορίας (ή κλάσης) στην οποία ανήκει κάθε αντικείµενο, θεωρώντας ένα προκαθορισµένο σύνολο κατηγοριών. Η διαδικασία αυτή διενεργείται υπολογιστικά µέσω ενός αλγοριθµικού µοντέλου, που ονοµάζεται κατηγοριοποιητής (classifier). Ένας κατηγοριοποιητής αποτελεί ένα γενικότερο σύστηµα που περιέχει κάποιες ελεύθερες πα- 1

11 Κεφάλαιο 1 Εισαγωγή 2 ραµέτρους, παρέχοντας έτσι τη δυνατότητα επίλυσης διαφορετικών προβληµάτων κατηγοριοποίησης. Σκοπός κάθε µεθοδολογίας κατηγοριοποίησης είναι η εύρεση των κατάλληλων τιµών των ελεύθερων αυτών παραµέτρων, έτσι ώστε να επιλύεται ορθά το υπό εξέταση κάθε φορά πρόβληµα, δηλαδή να ελαχιστοποιείται (και ή δυνατόν να µηδενίζεται) ο αριθµός των εσφαλµένων κατηγοριοποιήσεων. Η διαδικασία αυτή ονοµάζεται εκπαίδευση (training) του κατηγοριοποιητή. Οι πρώτες µέθοδοι κατηγοριοποίησης που αναπτύχθηκαν βασίστηκαν κυρίως στις αρχές της στατιστικής, η χρήση της οποίας αποτελούσε µονόδροµο στην αντιµετώπιση του προβλήµατος της κατηγοριοποίησης (Duda et al., 2000; Hastie et al., 2001; McLachlan, 1992). Τις τελευταίες δεκαετίες όµως έχουν προταθεί διάφοροι εξελιγµένοι αλγόριθµοι κατηγοριοποίησης, οι οποίοι αποσκοπούν στην επίλυση ολοένα και δυσκολότερων προβλη- µάτων (Mitchell, 1997). Έτσι, στη διεθνή βιβλιογραφία συναντώνται πλέον πολλές µεθοδολογίες κατηγοριοποίησης, καθεµία από τις οποίες παρουσιάζει συγκριτικά πλεονεκτήµατα έναντι άλλων µεθόδων για συγκεκριµένες κλάσεις προβληµάτων. Σε κάθε περίπτωση πάντως, δεν υπάρχει κάποια µεθοδολογία κατηγοριοποίησης που να υπερτερεί των υπολοίπων σε όλα τα προβλήµατα κατηγοριοποίησης (Wolpert and Macready, 1997). Η παρούσα εργασία παρουσιάζει τις µεθοδολογίες κατηγοριοποίησης που παρέχει το προγραµµατιστικό πακέτο MATLAB. Το MATLAB είναι µία τεχνική γλώσσα προγραµµατισµού υψηλού επιπέδου, που παρέχει διαδραστικά εργαλεία για την ανάπτυξη αλγορίθµων, την οπτικοποίηση και ανάλυση δεδοµένων, καθώς και την εύκολη διενέργεια περίπλοκων αριθµητικών υπολογισµών (Mathworks Inc., 2011). Προσφέρει δε µία πολύ µεγάλη γκάµα συναρτήσεων και εργαλείων για την επίλυση διαφόρων τεχνικών προβληµάτων. Στα πλαίσια του προβλήµατος της κατηγοριοποίησης προσφέρονται συναρτήσεις για τις πλέον διαδοµένες µεθοδολογίες κατηγοριοποίησης, οι οποίες και θα περιγραφούν στα επόµενα κεφάλαια. Το εισαγωγικό αυτό κεφάλαιο παρέχει µία συνοπτική περιγραφή των βασικών εννοιών που θα χρειαστούν στα επόµενα κεφάλαια. Συγκεκριµένα, παρουσιάζεται ο ορισµός του προβλήµατος της κατηγοριοποίησης µε µαθηµατικούς όρους και επεξηγούνται οι διάφορες µορφές σφάλµατος που υπεισέρχονται κατά τη διαδικασία της κατηγοριοποίησης (ενότητα 1.1). Η ενότητα 1.2 παρέχει µία σύντοµη εισαγωγή στις βασικές αρχές προγραµµατισµού στο MATLAB. Η εισαγωγή αυτή δεν αποσκοπεί να είναι ενδελεχής, αλλά επικεντρώνεται στην κατά το δυνατόν πληρέστερη επεξήγηση των προγραµµατιστικών εργαλείων που θα χρησιµοποιηθούν στα επόµενα κεφάλαια. Στη συνέχεια περιγράφονται τα προβλήµατα κατηγοριοποίησης που θα χρησιµοποιηθούν για την επίδειξη της χρήσης των διαφόρων αλγορίθµων στην εργασία αυτή (ενότητα 1.3). Τέλος, η ενότητα 1.4 αναλύει τη σύνταξη και 2

12 Κεφάλαιο 1 Εισαγωγή 3 τη χρήση µερικών βασικών συναρτήσεων που χρησιµοποιούνται από όλα τα υπόλοιπα κεφάλαια. 1.1 Το πρόβληµα της κατηγοριοποίησης Ας υποθέσουµε ότι διατίθεται ένα σύνολο δεδοµένων που περιέχει παρατηρήσεις από µετρήσεις σε διαφορετικές µεταβλητές, µαζί µε τις αντίστοιχες ετικέτες που αντιστοιχίζουν κάθε παρατήρηση σε κάποια γνωστή κατηγορία. Αν ληφθούν νέες παρατηρήσεις, είναι δυνατόν να καθοριστεί αυτοµάτως σε ποια κατηγορία ανήκουν αυτές; Αυτό είναι το πρόβλη- µα της κατηγοριοποίησης (classification). Οι µεταβλητές εισόδου του προβλήµατος συνήθως αναφέρονται ως χαρακτηριστικά (features) και καθεµία από τις προκαθορισµένες κατηγορίες ως κατηγορία (category) ή κλάση (class). Επιπλέον, κάθε µεµονωµένη παρατήρηση, δηλαδή κάθε σύνολο µετρήσεων για όλα τα χαρακτηριστικά, αποκαλείται δείγµα (sample). Με µαθηµατικούς όρους, σε κάθε πρόβληµα κατηγοριοποίησης ορίζεται ο χώρος των χαρακτηριστικών { },, N X = X1 X N R, ο οποίος αντιπροσωπεύει το σύνολο των N µετρήσεων που λαµβάνονται για κάθε δείγµα. Αντιστοίχως ορίζεται και ο χώρος των κλάσεων { C C } C =,, 1 M ℵ, καθεµία από τις οποίες αντιστοιχεί σε µία από τις M προκαθορισµένες κατηγορίες του προβλήµατος. Τα δείγµατα είθισται να συµβολίζονται µε πεζά γράµµατα για παράδειγµα x = [ x x ],, 1 N και µαθηµατικά ισοδυναµούν µε ένα διάνυσµα N στοιχείων. Χωρίς βλάβη της γενικότητας, παραπάνω θεωρήθηκε ότι οι τιµές όλων των χαρακτηριστικών είναι πραγµατικοί αριθµοί, που αποτελεί και την πλέον γενική περίπτωση. Επιπλέον, ο χώρος των κλάσεων µπορεί να θεωρηθεί υποσύνολο του συνόλου των φυσικών αριθµών ℵ, καθώς σε κάθε κατηγορία δύναται να αντιστοιχηθεί ένας αύξων φυσικός αριθ- µός (1,2,, M ). Βάσει των παραπάνω ορισµών, το πρόβληµα της κατηγοριοποίησης έγκειται στον προσδιορισµό µίας βέλτιστης απεικόνισης από τον χώρο των χαρακτηριστικών στο χώρο των κλάσεων. Η απεικόνιση αυτή πραγµατοποιείται µέσω ενός συστήµατος που ονοµάζεται κατηγοριοποιητής (classifier). Μαθηµατικά, ένας κατηγοριοποιητής αναπαρίσταται µέσω µίας απεικόνισης από τον χώρο των χαρακτηριστικών στο χώρο των κατηγοριών f : 3 X C, ό- που η σχέση f µπορεί να είναι από µία απλή µαθηµατική σχέση ως ένα σύνθετο αλγοριθµικό µοντέλο, που δεν επιδέχεται αναπαράστασης µέσω ενός κλειστού µαθηµατικού τύπου. Ανεξαρτήτως της πολυπλοκότητας του κατηγοριοποιητή, κάθε µεθοδολογία κατηγοριοποίησης είναι γενικότερη, επιτρέποντας την επίλυση ενός µεγάλου πλήθους προβλη- µάτων κατηγοριοποίησης. Έτσι, κάθε µοντέλο κατηγοριοποίησης εµπεριέχει ελεύθερες παραµέτρους, ο κατάλληλος προσδιορισµός των οποίων επιτρέπει την επίλυση διαφορετι-

13 Κεφάλαιο 1 Εισαγωγή 4 κών προβληµάτων κατηγοριοποίησης. Οι ελεύθερες αυτές παράµετροι µπορεί ναι είναι κάποια βάρη (απλοί αριθµοί) ή ακόµη και δοµικά στοιχεία, στις µεθοδολογίες που απαιτούν τον καθορισµό της δοµής του τελικού µοντέλου κατηγοριοποίησης. Οι ελεύθερες παράµετροι ενός κατηγοριοποιητή καθορίζονται µέσω του επονοµαζόµενου αλγορίθµου εκπαίδευσης (training algorithm) ή αλγορίθµου εκµάθησης (learning algorithm), που αποσκοπεί στον κατά το δυνατό βέλτιστο καθορισµό των τιµών τους, έτσι ώστε το σφάλµα κατηγοριοποίησης να ελαχιστοποιείται. Για το σκοπό αυτό είναι απαραίτητη η ύπαρξη ενός συνόλου δειγµάτων που είναι ήδη ορθά κατηγοριοποιηµένα. Το σύνολο αυτό ονοµάζεται σύνολο εκπαίδευσης (training set) και εµπεριέχει Q ζεύγη εισόδου-εξόδου (, c ) e p = x p p, p 1,, = Q, που ονοµάζονται πρότυπα εκπαίδευσης (training patterns). Για p p κάθε πρότυπο,,, p p x = x1 x N είναι το διάνυσµα εισόδου και c C η κλάση του προτύπου. Ο αλγόριθµος εκπαίδευσης αξιοποιεί το σύνολο εκπαίδευσης για τη κατάλληλη εκ- µάθηση του µοντέλου, έτσι ώστε ο κατηγοριοποιητής που προκύπτει να κατηγοριοποιεί ορθά νέα δείγµατα. Οι στατιστικοί κατηγοριοποιητές αποτέλεσαν την πρώτη προσπάθεια ανάπτυξης αλγοριθµικών µεθόδων κατηγοριοποίησης (Gnanadesikan, 1977; Hastie et al., 2001; McLachlan, 1992). Οι κατηγοριοποιητές της κατηγορίας αυτής δηµιουργούνται αξιοποιώντας τη θεωρία της επαγωγικής στατιστικής (statistical inference). Σύµφωνα µε αυτήν, οι µεταβλητές εισόδου του προβλήµατος θεωρούνται στοχαστικές µεταβλητές, που περιγράφονται από κάποια στατιστική κατανοµή πιθανότητας. Στη συντριπτική πλειονότητα των περιπτώσεων, η υπόθεση που γίνεται είναι ότι οι µεταβλητές εισόδου του προβλήµατος ακολουθούν κανονική κατανοµή (normal distribution). Στην ορολογία της επαγωγικής στατιστικής, ένα µοντέλο κατηγοριοποίησης που υποθέτει ότι οι µεταβλητές εισόδου του προβλήµατος ακολουθούν κάποια γνωστή κατανοµή ονοµάζεται παραµετρικό (parametric) και αντίστοιχο γνωστικό αντικείµενο αναφέρεται ως παραµετρική κατηγοριοποίηση (parametric classification). Το MATLAB προσφέρει τη δυνατότητα εφαρµογής των δύο πιο διαδεδοµένων παρα- µετρικών µεθοδολογιών κατηγοριοποίησης, της διαχωριστικής ανάλυσης (που περιγράφεται στο Κεφάλαιο 2) και του απλού κατηγοριοποιητή Bayes, που περιγράφεται στο Κεφάλαιο 3. Η υπόθεση ότι οι µεταβλητές εισόδου του προβλήµατος ακολουθούν κάποια συγκεκρι- µένη κατανοµή είναι περιοριστική και συνήθως δεν ισχύει σε πραγµατικά προβλήµατα κατηγοριοποίησης ή, τουλάχιστον, ισχύει µόνο για ένα µικρό υποσύνολο προβληµάτων. Για το λόγο αυτό, έχουν προταθεί πιο πρόσφατες µεθοδολογίες κατηγοριοποίησης, οι οποίες θεωρούν ένα γενικότερο µοντέλο κατηγοριοποίησης που εµπεριέχει έναν αριθµό ελεύθερων παραµέτρων. Οι κατάλληλες τιµές των παραµέτρων αυτών για το εκάστοτε πρόβληµα 4

14 Κεφάλαιο 1 Εισαγωγή 5 κατηγοριοποίησης υπολογίζονται αξιοποιώντας το σύνολο εκπαίδευσης, µέσω µίας διαδικασίας που ονοµάζεται επιβλεπόµενη εκµάθηση (supervised learning). Οι κατηγοριοποιητές τις κατηγορίας αυτής δεν κάνουν κάποια υπόθεση ως προς την κατανοµή που ακολουθούν οι µεταβλητές εισόδου και για αυτό το λόγο αναφέρονται ως µη παραµετρικοί (nonparametric) κατηγοριοποιητές. Η διαδικασία της επιβλεπόµενης εκµάθησης εξάγει τo τελικό µοντέλο κατηγοριοποίησης βάσει ενός εξειδικευµένου αλγορίθµου εκπαίδευσης, που δε βασίζεται στις αρχές της επαγωγικής στατιστικής. Ως εκ τούτου, οι µεθοδολογίες αυτές είναι γενικότερες των παραµετρικών κατηγοριοποιητών και µπορούν να αντιµετωπίσουν επιτυχώς µία µεγαλύτερη γκάµα προβληµάτων. Στην παρούσα διπλωµατική εργασία παρουσιάζονται δύο µη παραµετρικοί κατηγοριοποιητές και, συγκεκριµένα, ο κατηγοριοποιητής του εγγύτατου γείτονα (Κεφάλαιο 4) και τα δέντρα αποφάσεων (Κεφάλαιο 5) Σφάλµα κατηγοριοποίησης και τεχνικές διασταυρωµένης επικύρωσης Αντικειµενικός στόχος κάθε κατηγοριοποιητή είναι να κατηγοριοποιεί ορθά όλα τα α- ντικείµενα του προβλήµατος. Εντούτοις, η παντελής ανυπαρξία σφαλµάτων είναι πρακτικά αδύνατο να επιτευχθεί, σχεδόν σε όλα τα πραγµατικά προβλήµατα κατηγοριοποίησης. Έ- τσι, σε κάθε κατηγοριοποίηση υπεισέρχεται ένα σφάλµα κατηγοριοποίησης Err, το οποίο παραδοσιακά ορίζεται ως το ποσοστό των εσφαλµένων κατηγοριοποιήσεων προς το πλήθος των στοιχείων του συνόλου εκπαίδευσης. Με µαθηµατικούς όρους, αν το σύνολο εκπαίδευσης περιλαµβάνει Q πρότυπα αναφορά και Q e από αυτά έχουν ανατεθεί σε λάθος κατηγορία, το σφάλµα κατηγοριοποίησης ορίζεται ως εξής: Err Q = e. (1.1) Q Το σφάλµα κατηγοριοποίησης εκφράζεται είτε ως απόλυτος αριθµός στο διάστηµα [ 0,1 ] σύµφωνα µε την παραπάνω σχέση, είτε ως ποσοστό επί τοις εκατό, πολλαπλασιάζοντας το απόλυτο σφάλµα µε 100. Εναλλακτικά, πολλές φορές παρέχεται η ακρίβεια κατηγοριοποίησης (classification accuracy), η οποία εκφράζει το ποσοστό των ορθά κατηγοριοποιηµένων προτύπων: Acc = 1 Qe Qc Err = 1 Q = Q, (1.2) όπου Q c ο αριθµός των ορθά κατηγοριοποιηµένων στοιχείων του συνόλου εκπαίδευσης. Η ακρίβεια κατηγοριοποίησης είθισται να παρουσιάζεται ως ποσοστό επί τοις εκατό, παρά ως απόλυτος αριθµός. Προφανώς ο βέλτιστος κατηγοριοποιητής εµφανίζει ακρίβεια κατηγοριοποίησης ίση µε 100%. 5

15 Κεφάλαιο 1 Εισαγωγή 6 Το σφάλµα κατηγοριοποίησης που υπολογίζεται στα πρότυπα αναφοράς του συνόλου εκπαίδευσης ονοµάζεται σφάλµα αντικατάστασης (resubstitution error) ή σφάλµα εκπαίδευσης (training error), καθώς αναφέρεται στα δεδοµένα που χρησιµοποιήθηκαν για την εκπαίδευση του κατηγοριοποιητή. Κάθε αλγόριθµος εκπαίδευσης αξιολογεί τα δεδοµένα αυτά και προσπαθεί να προσδιορίσει τις ελεύθερες παραµέτρους του µοντέλου κατηγοριοποίησης µε τέτοιο τρόπο ώστε να ελαχιστοποιείται το υπολογιζόµενο σφάλµα αντικατάστασης. Η διαδικασία αυτή είναι πιθανό να οδηγήσει στη µείωση της ακρίβειας κατηγοριοποίησης σε άγνωστα δεδοµένα, που δεν έχουν χρησιµοποιηθεί κατά την εκπαίδευση. Το φαινόµενο αυτό ονοµάζεται υπερπροσαρµογή (overfitting) στα δεδοµένα εκπαίδευσης και µειώνει τη δυνατότητα γενίκευσης (generalization) του κατηγοριοποιητή στην ορθή κατηγοριοποίηση δεδοµένων που δεν ανήκουν στα πρότυπα αναφοράς. Εντούτοις, η ορθή κατηγοριοποίηση των άγνωστων αυτών στοιχείων αποτελεί τον πρακτικό αντικειµενικό στόχο του εκάστοτε κατηγοριοποιητή. Για το λόγο αυτό, η απόδοση του µοντέλου κατηγοριοποίησης κρίνεται βάσει ενός ξεχωριστού συνόλου δεδοµένων, το επονοµαζόµενο σύνολο δοκιµής (testing set). Το υπολογιζόµενο σφάλµα κατηγοριοποίησης στο σύνολο δοκιµής ονοµάζεται σφάλµα δοκιµής (testing error) ή σφάλµα γενίκευσης (generalization error). Το σφάλµα αντικατάστασης κατά κανόνα υποεκτιµά (είναι δηλαδή µικρότερο) το σφάλµα γενίκευσης, δεδοµένου ότι ο κατηγοριοποιητής δηµιουργείται µε βάση τα ίδια δεδοµένα εκπαίδευσης που χρησιµοποιούνται στο υπολογισµό του σφάλµατος αντικατάστασης. Στην περίπτωση που δεν παρέχεται κάποιο ξεχωριστό σύνολο δοκιµής, είθισται να ε- φαρµόζεται µία διαδικασία που ονοµάζεται διασταυρωµένη επικύρωση (cross-validation) (Hastie et al., 2001; Dietterich, 1998). Η πλέον διαδεδοµένη επιλογή είναι η διασταυρω- µένη επικύρωση k-fold, σύµφωνα µε την οποία τα διαθέσιµα δεδοµένα διαχωρίζονται µε τυχαίο τρόπο σε k µη επικαλυπτόµενα τεµάχια (folds). Κάθε τεµάχιο έχει τον ίδιο αριθµό προτύπων, ενώ διατηρούνται προσεγγιστικά και οι σχετικές αναλογίες των προτύπων κάθε κλάσης. Η κατηγοριοποίηση επαναλαµβάνεται k φορές, κάθε φορά θεωρώντας ένα τεµάχιο ως δεδοµένα δοκιµής και τα υπόλοιπα k-1 ως δεδοµένα εκπαίδευσης. Στο τέλος, υπολογίζεται το συνολικό σφάλµα κατηγοριοποίησης στα k σύνολα δοκιµής, που ονοµάζεται σφάλµα διασταυρωµένης επικύρωσης (cross-validation error). Η πιο διαδεδοµένη επιλογή είναι k = 10, που σηµαίνει ότι παράγονται τελικά 10 ζεύγη (διαµερίσεις) δεδοµένων εκπαίδευσης/δοκιµής. Στην παρούσα εργασία χρησιµοποιείται η τεχνική 10-fold Πίνακας σύγχυσης Ένας εναλλακτικός τρόπος αναπαράστασης των σφαλµάτων κατηγοριοποίησης είναι µέσω του λεγόµενου πίνακα σύγχυσης (confusion matrix) (Stehman, 1997). Ο πίνακας σύγχυσης είναι ένας τετραγωνικός πίνακας, µε αριθµό γραµµών και στηλών ίσο µε τον αριθµό 6

16 Κεφάλαιο 1 Εισαγωγή 7 Πίνακας 1.1 Παράδειγµα ενός πίνακα σύγχυσης, για ένα υποθετικό πρόβληµα κατηγοριοποίησης µε τρεις κατηγορίες. Αποτέλεσµα κατηγοριοποίησης C 1 C 2 C 3 Κατηγορία αναφοράς C C C των κατηγοριών. Το εκάστοτε στοιχείο x i, j του πίνακα αναπαριστά τον αριθµό των προτύπων που ανήκουν στην κατηγορία i και ανατέθηκαν στην κατηγορία j. Έτσι, οι γραµµές του πίνακα εκφράζουν την κατηγορία αναφοράς και οι στήλες του την κατηγορία ανάθεσης (από τον κατηγοριοποιητή). Τα στοιχεία της κυρίας διαγωνίου αναπαριστούν τα ορθώς κατηγοριοποιηµένα πρότυπα (ανά κατηγορία), ενώ τα υπόλοιπα τις εσφαλµένες κατηγοριοποιήσεις. Ο Πίνακας 1.1 παρέχει ένα παράδειγµα ενός πίνακα σύγχυσης, για ένα υποθετικό πρόβληµα κατηγοριοποίησης µε τρεις κλάσεις {C 1, C 2, C 3} και θεωρώντας κάποιον κατηγοριοποιητή. Στον πίνακα αυτό, το στοιχείο στην τρίτη γραµµή και δεύτερη στήλη ( x 3,2 = 15) υποδεικνύει ότι 15 πρότυπα που ανήκουν στην κατηγορία C 3 σύµφωνα µε τα δεδοµένα αναφοράς, κατηγοριοποιήθηκαν τελικά στην κατηγορία C 2 από τον κατηγοριοποιητή. Αντίστοιχα, το στοιχείο x 1,1 = 49 υποδηλώνει ότι 49 πρότυπα της κατηγορίας C 1 κατηγοριοποιήθηκαν ορθά. Εν κατακλείδι, ο πίνακας σύγχυσης παρέχει συνοπτικά και µε εύληπτο τρόπο την πληροφορία για τη δυσκολία ή την ευκολία διαχωρισµού µεταξύ των κατηγοριών του προβλήµατος. 1.2 Εισαγωγή στο MATLAB Η παρούσα ενότητα παρέχει µία συνοπτική εισαγωγή στη χρήση του MATLAB. Για τις ανάγκες της εργασίας χρησιµοποιήθηκε η έκδοση R2011a (ή ) του προγράµµατος. Οι πληροφορίες που παρέχονται σε αυτό το κεφάλαιο προέρχονται από το αρχείο τεκµηρίωσης της έκδοσης αυτής (Mathworks Inc., 2011). Το MATLAB είναι µία τεχνική γλώσσα προγραµµατισµού υψηλού επιπέδου, που παρέχει διαδραστικά εργαλεία για την ανάπτυξη αλγορίθµων, την οπτικοποίηση και ανάλυση δεδοµένων, καθώς και την εύκολη διενέργεια περίπλοκων αριθµητικών υπολογισµών. Η χρήση του προϊόντος επιτρέπει την επίλυση πολλών τεχνικών υπολογιστικών προβληµάτων γρηγορότερα και ευκολότερα σε σχέση µε παραδοσιακές γλώσσες προγραµµατισµού, όπως η C, η C++ και η Fortran. 7

17 Κεφάλαιο 1 Εισαγωγή 8 Η χρήση του MATLAB καλύπτει ένα ευρύ φάσµα εφαρµογών, που συµπεριλαµβάνει την ανάλυση σηµάτων και εικόνων, τις τηλεπικοινωνίες, τη σχεδίαση ελεγκτών, τη στατιστική ανάλυση, καθώς και πολλών άλλων. Ο βασικός πυρήνας του πακέτου περιλαµβάνει τη γλώσσα προγραµµατισµού, το σύστηµα οπτικοποίησης των αποτελεσµάτων, καθώς επίσης και τα βασικά εργαλεία εκτέλεσης µαθηµατικών πράξεων. Ο πυρήνας αυτός αποτελείται από τα εξής µέρη: Εργαλεία της επιφάνειας εργασίας (desktop tools). Το µέρος αυτό περιλαµβάνει όλα τα διαδραστικά εργαλεία που επιτρέπουν τον χειρισµό των αρχείων και των παρεχόµενων συναρτήσεων. Μέσω αυτών επιτρέπεται ο εύκολος προγραµµατισµός στη γλώσσα του MATLAB, η αποσφαλµάτωση των προγραµµάτων που γράφονται και η λήψη των αποτελεσµάτων της εκτέλεσής τους. Βιβλιοθήκη µαθηµατικών συναρτήσεων (Mathematical Function Library). Αυτή η βιβλιοθήκη είναι µια τεράστια συλλογή των υπολογιστικών αλγορίθµων που κυµαίνονται από θεµελιώδεις µαθηµατικές πράξεις (όπως άθροισµα, ηµίτονο, συνηµίτονο), ως πιο εξελιγµένες λειτουργίες, όπως αντίστροφη πινάκων, υπολογισµό ιδιοτιµών, συναρτήσεις Bessel και µετασχηµατισµό Fourier. Γλώσσα προγραµµατισµού. Η γλώσσα προγραµµατισµού του MATLAB είναι µία γλώσσα υψηλού επιπέδου, µε έµφαση στην εύκολη διενέργεια πράξεων µεταξύ πινάκων. Μάλιστα, το όνοµα MATLAB προέρχεται από τις πρώτες συλλαβές των λέξεων matrix laboratory (εργαστήριο πινάκων), που υπήρξε ιστορικά και ο πρωταρχικός σκοπός του προγράµµατος. Πλέον το MATLAB προσφέρει εξελιγµένα εργαλεία προγραµµατισµού, µε εντολές ελέγχου ροής, συναρτήσεις, δοµές δεδοµένων, χειρισµό εισόδου/εξόδου, καθώς επίσης και χαρακτηριστικά αντικειµενοστραφούς προγραµ- µατισµού (object-oriented programming). Γραφικά. Το MATLAB προσφέρει εκτεταµένες δυνατότητες οπτικοποίησης δεδοµένων και σχεδίασης γραφηµάτων. Συµπεριλαµβάνει εντολές υψηλού επιπέδου για την παραγωγή γραφηµάτων δύο και τριών διαστάσεων, επεξεργασίας εικόνων και κινού- µενων γραφικών (animation). Ταυτόχρονα προσφέρει και συναρτήσεις χαµηλού επιπέδου που επιτρέπουν την πλήρη προσαρµογή της εµφάνισης των γραφικών παραστάσεων. Το µέρος αυτό του MATLAB επεκτείνεται ακόµη και σε σηµείο που επιτρέπει τη δηµιουργία ολόκληρων γραφικών διεπαφών χρήστη (graphical user interfaces). Εξωτερικές διεπαφές (External interfaces). Η βιβλιοθήκη εξωτερικών διεπαφών ε- πιτρέπει τη συγγραφή προγραµµάτων σε γλώσσες C/C++ και Fortran, που µπορούν να αλληλεπιδρούν µε το MATLAB. 8

18 Κεφάλαιο 1 Εισαγωγή 9 Παράλληλα µε το βασικό πυρήνα, η λειτουργικότητα του MATLAB επεκτείνεται περαιτέρω µέσω επιπρόσθετων πακέτων, που ονοµάζονται εργαλειοθήκες (toolboxes). Κάθε εργαλειοθήκη περιλαµβάνει συναρτήσεις που επιλύουν εξειδικευµένα προβλήµατα µίας κατηγορίας εφαρµογών. Για παράδειγµα, υπάρχει µία εργαλειοθήκη για την επεξεργασία εικόνων, µία άλλη για τη διαχείριση οικονοµικών δεδοµένων και ούτω καθεξής. Μεταξύ των πολλών διαθέσιµων εργαλειοθηκών, δύο συµπεριλαµβάνουν αλγορίθµους κατηγοριοποίησης και χρησιµοποιούνται σε αυτήν την εργασία: 1) Εργαλειοθήκη στατιστικής (Statistics Toolbox). Αποτελεί τη βασική εργαλειοθήκη που χρησιµοποιείται στα πλαίσια της εργασίας. Παρέχει συναρτήσεις για την εφαρ- µογή τριών µεθοδολογιών κατηγοριοποίησης και, συγκεκριµένα, της διαχωριστικής ανάλυσης (Κεφάλαιο 2), του απλού κατηγοριοποιητή Bayes (Κεφάλαιο 3) και των δέντρων απόφασης (Κεφάλαιο 5). Επιπλέον προσφέρει τις συναρτήσεις παραγωγής διαµερίσεων των δεδοµένων και εφαρµογής τεχνικών διασταυρωµένης επικύρωσης, καθώς επίσης και τη συνάρτηση παραγωγής διαγραµµάτων διασποράς των δεδοµένων. 2) Εργαλειοθήκη βιοϊατρικής (Bioinformatics Toolbox). Κύριος σκοπός της εργαλειοθήκης αυτής είναι η ανάλυση βιοϊατρικών δεδοµένων και πιο συγκεκριµένα γονιδιακών και πρωτεϊνικών υπογραφών. Παράλληλα όµως παρέχει και τον αλγόριθµο κατηγοριοποίησης του εγγύτατου γείτονα, που περιγράφεται στο Κεφάλαιο Εργαλεία της επιφάνεια εργασίας Το πρώτο πράγµα που εµφανίζεται κατά την εκτέλεση του MATLAB είναι η λεγόµενη επιφάνεια εργασίας (desktop). Η επιφάνεια εργασίας είναι ένα σύνολο εργαλείων που επιτρέπουν το χειρισµό αρχείων και µεταβλητών, καθώς και την εκτέλεση εντολών. Το Σχήµα 1.1 απεικονίζει ένα στιγµιότυπό της. Τα βασικά µέρη της επιφάνειας εργασίας είναι τα ε- ξής: Παράθυρο εντολών (Command Window). Το παράθυρο εντολών βρίσκεται στο κέντρο της επιφάνειας εργασίας και αποτελεί το κύριο µέρος της. Στο παράθυρο αυτό εισάγονται οι εντολές του MATLAB και λαµβάνονται τα αποτελέσµατα της εκτέλεσής τους. Η γραµµή εντολών (command line) ξεκινά µε το σύµβολο >>, που σηµατοδοτεί ότι το MATLAB είναι έτοιµο να δεχθεί την επόµενη εντολή. Περιηγητής τρέχοντα φακέλου (Current Folder). Το τµήµα στα αριστερά απεικονίζει τα περιεχόµενα του τρέχοντα φακέλου και επιτρέπει την περιήγηση σε άλλους φακέλους του υπολογιστή. Ο τρέχον φάκελος φαίνεται στη λίστα ακριβώς πάνω από το παράθυρο εντολών. 9

19 Κεφάλαιο 1 Εισαγωγή 10 Σχήµα 1.1 Η επιφάνεια εργασίας του MATLAB. 10

20 Κεφάλαιο 1 Εισαγωγή 11 Χώρος εργασίας (Workspace). Το workspace αποτελεί την εσωτερική µνήµη του MATLAB, δηλαδή το χώρο όπου αποθηκεύονται όλες οι µεταβλητές που δηµιουργούνται από τη γραµµή εντολών. Ιστορικό εντολών (Command History). Το µέρος αυτό της επιφάνειας εργασίας κρατά το ιστορικό των εντολών που εισάγονται στη γραµµή εντολών. Επιπλέον επιτρέπει την επανεκτέλεση κάποιας εντολής, µέσω διπλού αριστερού κλικ του ποντικιού. Ο πλέον εύκολος τρόπος εκτέλεσης εντολών στο MATLAB είναι µέσω της γραµµής εντολών. Το ιστορικό εντολών παρέχει την εύκολη επανεκτέλεση µίας εντολής. Επιπλέον, οι ε- ντολές που εισήχθησαν προηγουµένως επανέρχονται πιέζοντας το άνω βέλος του πληκτρολογίου, κάτι που επιτρέπει και την διόρθωση ή αλλαγή µίας εντολής. Ωστόσο, η παραπάνω διαδικασία καθίσταται κουραστική όταν απαιτείται η εκτέλεση πολλών εντολών. Για το λόγο αυτό οι εντολές µπορούν να συγκεντρωθούν και να αποθηκευτούν σε ένα αρχείο, που φέρει την επέκταση.m (π.χ. run_classifier.m). Οι εντολές του αρχείου εκτελούνται γράφοντας στη γραµµή εντολών το όνοµα του αρχείου, χωρίς την επέκταση (run_classifier για το προηγούµενο παράδειγµα). Τα απλά αρχεία-m (αυτά δηλαδή που δεν ορίζουν συναρτήσεις) ονοµάζονται αρχεία δέσµης ενεργειών (script files). Για την εύκολη συγγραφή τέτοιων αρχείων, το MATLAB προσφέρει έναν ενσωµατωµένο επεξεργαστή κώδικα (editor), ο οποίος είναι προσπελάσιµος από το µενού File ή µέσω διπλού αριστερού κλικ σε ένα αρχείο-m από τον περιηγητή τρέχοντα φακέλου. Το Σχήµα 1.2 απεικονίζει ένα στιγµιότυπο του επεξεργαστή κώδικα, έχοντας φορτώσει ένα προαποθηκευµένο αρχείο εντολών από τη στατιστική εργαλειοθήκη (classdemo.m). Ένα αρχείο-m εκτελείται γραµµή προς γραµµή, σαν οι εντολές αυτές να είχαν εισαχθεί στη γραµµή εντολών. Το σύµβολο επί τοις εκατό (%) εισάγει σχόλια στον κώδικα, που απεικονίζονται µε πράσινο χρώµα. Τέλος πρέπει να αναφερθεί ότι κάθε εντολή καταλαµβάνει µία γραµµή του αρχείου. Αν µία εντολή είναι όµως πολύ µακριά, µπορεί σπάσει για λόγους κατανόησης σε περισσότερες σειρές χρησιµοποιώντας αποσιωπητικά (...) στο τέλος κάθε γραµµής Τύποι δεδοµένων και µεταβλητών Πρωταρχική λειτουργία που παρέχει κάθε γλώσσα προγραµµατισµού είναι η δηµιουργία µεταβλητών. Στο MATLAB οι µεταβλητές δηµιουργούνται χρησιµοποιώντας τη γενική µορφή όνοµα µεταβλητής = τιµή ανάθεσης. Ο τελεστής ισότητας (=) αποτελεί ουσιαστικά τον τελεστή ανάθεσης τιµής που χρησιµοποιεί το MATLAB. Στην πιο απλή περίπτωση, µία µεταβλητή αποθηκεύει έναν απλό αριθµό. Για παράδειγµα, η εισαγωγή των παρακάτω ε- 11

21 Κεφάλαιο 1 Εισαγωγή 12 Σχήµα 1.2 Στιγµιότυπο του επεξεργαστή κώδικα του MATLAB. ντολών στη γραµµή εντολών του MATLAB ορίζουν δύο αριθµητικές µεταβλητές και υπολογίζουν το άθροισµα και το γινόµενό τους: 1 var1 = 2.1; 2 var2 = 1; 3 var1 + var2 4 var3 = var1 * var2; 5 var1 = 5; Από εδώ και στο εξής, οι εντολές που εισάγονται στο MATLAB θα παρουσιάζονται µε τον παραπάνω τρόπο, για λόγους εύκολης αναφοράς τους. Οι εντολές αυτές θεωρείται ότι εισάγονται στη γραµµή εντολών ή εναλλακτικά βρίσκονται σε κάποιο αρχείο script. Η γραµ- µή 1 στον παραπάνω κώδικα ορίζει τη µεταβλητή var1 και της αναθέτει τη δεκαδική τιµή 2.1. Η µεταβλητή αυτή αποθηκεύεται στο workspace του MATLAB και έτσι µπορεί στη συνέχεια να χρησιµοποιηθεί από όλες τις επόµενες εντολές. Η γραµµή 2 ορίζει µία δεύτερη µεταβλητή var2 και της αναθέτει την τιµή 1. Οι αριθµητικές µεταβλητές θεωρούνται εξ ορισµού ως δεκαδικοί αριθµοί στο MATLAB και συγκεκριµένα ως αριθµοί κινητής υποδιαστολής διπλής ακρίβειας (double precision floating-point numbers). Μεταξύ των αριθµητικών µεταβλητών µπορούν να εφαρµοστούν όλες οι γνωστές µαθηµατικές πράξεις, όπως πρόσθεση, αφαίρεση, πολλαπλασιασµός, διαίρεση, ύψωση σε δύναµη (τελεστής ^) και ού- 12

22 Κεφάλαιο 1 Εισαγωγή 13 τω καθεξής. Για παράδειγµα, η γραµµή 3 προσθέτει τις µεταβλητές var1 και var2 και α- πεικονίζει στο παράθυρο εντολών το αποτέλεσµα της πράξης: ans = Το αποτέλεσµα µίας πράξης µπορεί να αποθηκευτεί και σε µία νέα µεταβλητή, όπως φαίνεται στη γραµµή 4. Αν το αποτέλεσµα δεν αποθηκευτεί σε κάποια νέα µεταβλητή, το MATLAB δηµιουργεί αυτόµατα µία µεταβλητή µε το όνοµα ans και την αποθηκεύει στο workspace. Βέβαια, η µεταβλητή αυτή θα αλλάξει τιµή µε την επόµενη αντίστοιχη πράξη που θα διενεργηθεί. Το ελληνικό ερωτηµατικό (;) στο τέλος µίας εντολής αποτρέπει την εµφάνιση του αποτελέσµατος στο παράθυρο εντολών. Έτσι, σε ένα τυπικό πρόγραµµα MATLAB, όλες σχεδόν οι γραµµές τελειώνουν µε ελληνικό ερωτηµατικό, εκτός ίσως από κάποιες λίγες, των οποίων τα αποτελέσµατα θέλουµε να φανούν στο παράθυρο εντολών. Η επαναχρησιµοποίηση του ονόµατος µίας µεταβλητής έχει ως αποτέλεσµα την αλλαγή της τιµής του, όπως φαίνεται στη γραµµή 5. Όσον αφορά το όνοµα των µεταβλητών, οι επιτρεπτοί χαρακτήρες είναι όλα τα κεφαλαία και πεζά αγγλικά γράµµατα, οι αριθµοί και η κάτω παύλα (_). Ο µόνος περιορισµός είναι ότι το όνοµα µίας µεταβλητής δε µπορεί να ξεκινά από αριθµό ή κάτω παύλα. Έτσι, τα ο- νόµατα var5 και some_variable είναι αποδεκτά, αλλά όχι τα _var ή 8var. Ειδικοί χαρακτήρες #), κενά και παρενθέσεις δεν επιτρέπονται στα ονόµατα µεταβλητών. Επίσης, πρέπει να τονιστεί ότι το MATLAB ξεχωρίζει τους πεζούς από τους κεφαλαίους χαρακτήρες (case sensitive). Έτσι, οι µεταβλητές var, Var και VAR θεωρούνται ως τρεις διαφορετικές µεταβλητές και µπορούν να συνυπάρχουν στο workspace. Για την αποφυγή λοιπόν σφαλµάτων, πρέπει να αποφεύγεται η χρήση ίδιων ονοµάτων µε διαφορές µόνο σε πεζά ή κεφαλαία γράµµατα. Ένας δεύτερος τύπος δεδοµένων είναι η συµβολοσειρά (string), που αντιστοιχεί σε ένα σύνολο χαρακτήρων. Η συµβολοσειρές ορίζονται εντός µονών εισαγωγικών, για παράδειγµα 'a few words'. Για λόγους καλύτερης οπτικοποίησης, οι συµβολοσειρές εµφανίζονται µε µωβ χρώµα στη διπλωµατική αυτή εργασία, όπως συµβαίνει και στο MATLAB. Οι συµβολοσειρές µπορούν να αποθηκευτούν στο workspace όπως ακριβώς και οι αριθµητικές ε- ντολές: 6 text = 'a few words'; 7 text = 2.1; Η γραµµή 7 παραπάνω δείχνει ότι ο τύπος µίας µεταβλητής µπορεί να αλλάξει αν χρησι- µοποιηθεί το ίδιο όνοµα. Γενικότερα, όταν χρησιµοποιείται ο τελεστής ανάθεσης στο 13

23 Κεφάλαιο 1 Εισαγωγή 14 MATLAB, η µεταβλητή λαµβάνει την νέα τιµή, ανεξαρτήτως διαφορών στον τύπο των δεδο- µένων. Μαθηµατικοί πίνακες ορίζονται εύκολα στο MATLAB, χρησιµοποιώντας τετράγωνες α- γκύλες [ ]. Για παράδειγµα ο πίνακας: A= µε τρεις γραµµές και τέσσερις στήλες δηµιουργείται ως εξής: 8 A = [2, 5, 6, 7; 3, 8, 9, 2; 1, 4, 5, 3] Κατά τον ορισµό πινάκων, το κόµµα ή το κενό µεταφράζεται ως αλλαγή στήλης και το ελληνικό ερωτηµατικό ως αλλαγή γραµµής. Ένα στοιχείο του πίνακα µπορεί να ληφθεί χρησιµοποιώντας τη γραφή A(αριθµός γραµµής, αριθµός στήλης). Για παράδειγµα, η εντολή s = A(1,2) αποθηκεύει στη µεταβλητή s το στοιχείο A 1,2 του πίνακα, ενώ η εντολή A(3,3) = 2 αλλάζει την τιµή του στοιχείου A 3,3. Υποπίνακες µπορούν να ληφθούν χρησι- µοποιώντας τη γραφή αρχή:τέλος είτε για το όρισµα των γραµµών, είτε για το όρισµα των στηλών είτε και για τα δύο. Για παράδειγµα, η εντολή: 9 Β = Α(1:2, 3:4) έχει ως αποτέλεσµα τη δηµιουργία του πίνακα: 6 7 B= 9 2. Πολύ συχνά απαιτείται να παρθεί µία ολόκληρη γραµµή ή στήλη του πίνακα. Αυτό γίνεται χρησιµοποιώντας τον τελεστή : στην αντίστοιχη θέση, χωρίς δείκτες. Για παράδειγµα, στον παρακάτω κώδικα: 10 C = A(:,2); 11 D = A(3,:); η γραµµή 10 αποθηκεύει τη δεύτερη στήλη του πίνακα ( C = [ 5 8 4] T ), ενώ η γραµµή 11 την τρίτη γραµµή ( D= [ ] ). Οι µεταβλητές C και D αποτελούν ειδικές µορφές πινάκων, για τους οποίους η µία διάσταση είναι µοναδιαία, δηλαδή ορίζουν διανύσµατα. Το MATLAB ξεχωρίζει τα διανύσµατα- γραµµή (row vectors) από τα διανύσµατα-στήλη (column vectors). Τα διανύσµατα µπορούν να οριστούν απευθείας όπως οι πίνακες: 12 C = [5; 8; 4]; 13 D = [ ]; 14 C = [5 8 4]'; 14

24 Κεφάλαιο 1 Εισαγωγή 15 Η γραµµή 12 χρησιµοποιεί τον τελεστή ; µεταξύ των στοιχείων για να ορίσει ένα διάνυσµα-στήλη, ενώ η γραµµή 13 κενά (θα µπορούσε και κόµµατα) για τον ορισµό ενός διανύσµατος-γραµµή. Εναλλακτικά, µπορεί να χρησιµοποιηθεί ο τελεστής ', που εκφράζει την αναστροφή ενός πίνακα ή διανύσµατος. Έτσι, η γραµµή 14 παράγει το ίδιο αποτέλεσµα µε τη γραµµή 12. Ο τελεστής αναστροφής µπορεί να εφαρµοστεί και σε πίνακες. Για παράδειγµα, η εντολή Α' παράγει τον ανάστροφο πίνακα: A T = Για τη δεικτοδότηση των διανυσµάτων απαιτείται µόνο ένα όρισµα. Έτσι, οι εντολές C(2) και D(2) επιστρέφουν το δεύτερο στοιχείο των διανυσµάτων C και D, αντίστοιχα. Οι πράξεις µεταξύ πινάκων και διανυσµάτων ακολουθούν τους γνωστούς µαθηµατικούς κανόνες για τις πράξεις µεταξύ πινάκων. Έτσι, η πράξη C' * D είναι αδύνατη και παράγει στο παράθυρο εντολών το ακόλουθο σφάλµα:??? Error using ==> mtimes Inner matrix dimensions must agree. Αντίθετα, η πράξη C * D είναι εφικτή και παράγει έναν πίνακα µε διαστάσεις 3 4. Όλες οι µεταβλητές που παρουσιάστηκαν ως τώρα θεωρούνται µαθηµατικοί πίνακες από το MATLAB, ή καλύτερα ως ορθογώνια µητρώα (rectangular arrays). Τα ορθογώνια µητρώα θεωρούνται γενικά πίνακες. Ειδικές περιπτώσεις αποτελούν οι πίνακες διαστάσεων 1 1 (που θεωρούνται βαθµωτά µεγέθη) και οι πίνακες µε µία διάσταση µοναδιαία (που ορίζουν διανύσµατα). Επίσης, και οι συµβολοσειρές θεωρούνται διανύσµατα-γραµµή, αλλά διανύσµατα χαρακτήρων και όχι αριθµών οµές Στον προγραµµατισµό απαιτείται συχνά η δηµιουργία σύνθετων τύπων δεδοµένων, που συνενώνουν διάφορες µεταβλητές σε µία. Το MATLAB προσφέρει αυτή τη δυνατότητα µέσω των λεγόµενων δοµών (structures). Έστω για παράδειγµα ότι ζητείται να κρατηθεί ένα µητρώο µαθητών, όπου για κάθε µαθητή θα κρατείται το όνοµα του µαθητή, ο ακριβής βαθ- µός του σε κάποιο µάθηµα και ο αντίστοιχος λεκτικός βαθµός. Τα στοιχεία αυτά θα αποθηκεύονται σε µία µεταβλητή ανά µαθητή, δηλαδή σε µία δοµή. Οι δοµές στο MATLAB δηµιουργούνται πολύ εύκολα, χρησιµοποιώντας τον τελεστή τελεία (.). Για παράδειγµα: 1 S.name = 'Ed G. Plum'; 2 S.score = 83; 3 S.grade = 'B+'; 15

25 Κεφάλαιο 1 Εισαγωγή 16 Ο παραπάνω κώδικας δηµιουργεί µία δοµή S στο workspace του MATLAB, που περιέχει δύο συµβολοσειρές (name και grade) και µία αριθµητική τιµή (score). Οι επιµέρους µεταβλητές της δοµής (name, score και grade, εν προκειµένω) ονοµάζονται πεδία (fields) της µεταβλητής. Ένα πεδίο µπορεί να αποθηκευτεί σε µία νέα µεταβλητή, χρησιµοποιώντας και πάλι τον τελεστή τελεία, π.χ.: 4 g = S.grade; Τα πεδία µίας δοµής µπορεί να έχουν οποιονδήποτε τύπο, ακόµη και µία νέα δοµή. Για παράδειγµα το όνοµα του µαθητή θα µπορούσε να είναι και αυτό µία δοµή: 5 S.name.first = 'Ed'; 6 S.name.middle = 'G.'; 7 S.name.family = 'Plum'; 8 S.score = 83; 9 S.grade = 'Β+'; Σε αυτήν την περίπτωση, το επώνυµο του µαθητή µπορεί να αποθηκευτεί ως εξής: 10 familyname = S.name.family; Οι δοµές παρέχουν ένα ευέλικτο εργαλείο συγκερασµού µεταβλητών διαφόρων τύπων σε µία µεταβλητή, η οποία στη συνέχεια µπορεί να χρησιµοποιηθεί ως όρισµα κάποιας συνάρτησης Πίνακες κελιών Ένας τρόπος συγκέντρωσης µεταβλητών διαφορετικών τύπων σε µία µεταβλητή είναι µέσω των δοµών που περιγράφηκαν παραπάνω. Εντούτοις, τα πεδία των δοµών φέρουν ένα όνοµα. Πολλές φορές είναι πιο ευέλικτη η χρήση ενός αντίστοιχου τύπου δεδοµένων, που θα χρησιµοποιεί όµως δεικτοδότηση αντίστοιχη των πινάκων, δηλαδή µέσω ακεραίων δεικτών. Σε ένα πρόβληµα κατηγοριοποίησης για παράδειγµα, η κατηγορία κάθε πρότυπου ενός συνόλου δεδοµένων αναπαρίσταται µε µία συµβολοσειρά, που φέρει το όνοµα της κατηγορίας. Πώς µπορούν να αποθηκευτούν οι ετικέτες όλων των προτύπων σε µία µεταβλητή; Όπως αναφέρθηκε παραπάνω, οι συµβολοσειρές στο MATLAB θεωρούνται ως διανύσµατα χαρακτήρων. Μία πρώτη σκέψη είναι η δηµιουργία ενός πίνακα χαρακτήρων, κάθε γραµµή του οποίου θα αντιστοιχεί και σε ένα πρότυπο. Εντούτοις, οι πίνακες είναι πάντα ορθογώνιοι, έχουν δηλαδή τον ίδιο αριθµό στηλών σε όλες τις γραµµές, ενώ τα ονόµατα των διαφόρων κλάσεων έχουν εν γένει διαφορετικό µήκος. Τέτοιοι πίνακες όντως παρέχονται από το MATLAB και ονοµάζονται µητρώα χαρακτήρων (character arrays). Προκειµένου να είναι ορθογώνιο, ένα µητρώο έχει τόσες στήλες όσο και το µήκος της µεγαλύτερες συµβολοσειράς. Οι συµβολοσειρές µικρότερου µήκους συµπληρώνονται µε κενά στο τέλος τους, έτσι ώστε όλες οι γραµµές να έχουν ίσο αριθµό στηλών. 16

26 Κεφάλαιο 1 Εισαγωγή 17 Τα µητρώα χαρακτήρων έχουν ένα βασικό µειονέκτηµα: συµβολοσειρές µικρότερου µήκους καταλήγουν µε κενά στο τέλος τους, που είναι άχρηστα. Για το λόγο αυτό, το MATLAB προσφέρει έναν επιπλέον τύπο µεταβλητών, που ονοµάζονται διανύσµατα κελιών (cell vectors). Ένα διάνυσµα κελιών µπορεί να θεωρηθεί ως διάνυσµα, όπου όµως κάθε στοιχείο του µπορεί να έχει διαφορετικό µήκος (αν πρόκειται για συµβολοσειρές) ή γενικά διαφορετικό τύπο δεδοµένων. Τα διανύσµατα κελιών ορίζονται όπως και τα αριθµητικά διανύσµατα, χρησιµοποιώντας όµως απλές αγκύλες { } αντί για τετράγωνες [ ], για παράδειγµα: 1 labelsrow = {'class1', 'anotherclass', 'class2', 'class1'}; 2 labelscol = {'class1'; 'anotherclass'; 'class2'; 'class1'}; 3 labelscol = {'class1', 'anotherclass', 'class2', 'class1'}'; Και στα διανύσµατα κελιών υπάρχει διάκριση µεταξύ διανυσµάτων στήλης και διανυσµάτων γραµµής, αν και δεν µπορούν να εφαρµοστούν µαθηµατικές πράξεις µεταξύ τους. Έ- τσι, η γραµµή 1 του παραπάνω κώδικα δηµιουργεί ένα διάνυσµα κελιών γραµµή, ενώ η γραµµή 2 ένα διάνυσµα κελιών στήλη. Ο τελεστής αναστροφής ' µπορεί να εφαρµοστεί και σε αυτήν την περίπτωση, όπως φαίνεται στη γραµµή 3. Για την προσπέλαση κάποιου στοιχείου ενός διανύσµατος κελιών χρησιµοποιούνται αγκύλες αντί για παρενθέσεις. Για παράδειγµα, το δεύτερο στοιχείο της µεταβλητής labelsrow µπορεί να αντιγραφεί σε µία νέα µεταβλητή ως εξής: 4 classname = labelsrow{2}; Η έννοια των διανυσµάτων κελιών επεκτείνεται περαιτέρω στα µητρώα κελιών (cell arrays), που είναι ορθογώνιοι πίνακες κελιών διαστάσεων N M. Μάλιστα, ο τύπος της µεταβλητής κάθε κελιού µπορεί να είναι διαφορετικός. Για παράδειγµα, οι παρακάτω εντολές δηµιουργούν έναν πίνακα κελιών διαστάσεων 2 2, όπου κάθε κελί έχει διαφορετικό τύπο µεταβλητής: 5 a = 2; 6 b = 'some sentence'; 7 c = [1 2; 3 4]; 8 S.name = 'Ed Plum'; 9 S.score = 83; 10 S.grade = 'B+'; 11 cellarray = {a, b; c, S} Έτσι, η εντολή cellarray{1,2} επιστρέφει τη συµβολοσειρά 'some sentence', η εντολή cellarray{2,2} τη δοµή S και ούτω καθεξής. Στην παρούσα εργασία η χρήση των µητρώων κελιών περιορίζεται στην αποθήκευση των ετικετών όλων των προτύπων ενός συνόλου δεδοµένων κατηγοριοποίησης. 17

27 Κεφάλαιο 1 Εισαγωγή Συναρτήσεις Κοµβικό σηµείο όλων των γλωσσών προγραµµατισµού αποτελούν οι συναρτήσεις. Η συνάρτηση (function) είναι ένα αυτόνοµο κοµµάτι κώδικα, που δέχεται κάποιες εισόδους, ε- κτελεί κάποιες λειτουργίες και παράγει κάποια αποτελέσµατα. Οι συναρτήσεις στο MATLAB δεν µπορούν να οριστούν στη γραµµή εντολών, αλλά πρέπει να βρίσκονται υποχρεωτικά αποθηκευµένες σε κάποιο αρχείο-m. Η πρώτη γραµµή ενός αρχείου συνάρτησης ξεκινά µε τη δεσµευµένη λέξη function και συνεχίζεται µε την υπογραφή της συνάρτησης, για παράδειγµα: function result = some_function(arg1, arg2) Το παραπάνω παράδειγµα ορίζει µία συνάρτηση µε το όνοµα some_function. Η συνάρτηση αυτή πρέπει να αποθηκευτεί σε ένα αρχείο που φέρει το όνοµα της συνάρτησης και κατάληξη (δηλαδή some_function.m). Για να είναι προσπελάσιµη, το αρχείο θα πρέπει να βρίσκεται στο τρέχοντα φάκελο ή σε κάποιον φάκελο που βρίσκεται στη διαδροµή φακέλων (path) του MATLAB. Η παραπάνω συνάρτηση δέχεται δύο ορίσµατα εισόδου (arg1 και arg2) και επιστρέφει ένα όρισµα εξόδου result. Έστω ότι το πρώτο όρισµα εισόδου απαιτείται να είναι αριθµός και το δεύτερο µία συµβολοσειρά. Η συνάρτηση εκτελείται γράφοντας στη γραµµή εντολών µία εντολή της µορφής: 1 res = some_function(2.1, 'a string'); οπότε και το αποτέλεσµα αποθηκεύεται στο workspace στη µεταβλητή res. Εσωτερικά, κάθε συνάρτηση χρησιµοποιεί ένα ξεχωριστό προσωπικό χώρο εργασίας, ανεξάρτητο του κεντρικού workspace του MATLAB. Με αυτόν τον τρόπο αποφεύγονται τυχόν σφάλµατα από διαφορετικές µεταβλητές που θα είχαν το ίδιο όνοµα. Μία συνάρτηση δεν είναι απαραίτητο να επιστέφει κάποια µεταβλητή. Θα µπορούσε απλώς να παράγει ένα γράφηµα. Επιπλέον, µία συνάρτηση µπορεί να επιστρέφει πολλαπλά ορίσµατα εξόδου. Σε αυτήν την περίπτωση χρησιµοποιούνται τετράγωνες αγκύλες στο αριστερό µέρος της έκφρασης. Για παράδειγµα: 2 [out1, out2, out3] = some_other_function(features); Σε αυτήν την περίπτωση η υπογραφή της συνάρτησης θα είχε µία µορφή του τύπου: function [output, error, accuracy] = some_other_function(sample) Πρέπει επίσης να σηµειωθεί ότι το MATLAB επιτρέπει τον ορισµό συναρτήσεων µε πολλαπλές µορφές σύνταξης, που περιέχουν διαφορετικό αριθµό εισόδων ή/και εξόδων. Οι εργαλειοθήκες του MATLAB αποτελούνται ουσιαστικά από ένα µεγάλο πλήθος συναρτήσεων, καθεµία από τις οποίας επιτελεί µία συγκεκριµένη διεργασία. Έστω ότι υπάρ- 18

28 Κεφάλαιο 1 Εισαγωγή 19 χει µία υποθετική συνάρτηση run_classifier, που εκπαιδεύει κάποιον κατηγοριοποιητή και επιδέχεται διάφορες µορφές. Στην παρούσα διπλωµατική εργασία, η περιγραφή της σύνταξης των συναρτήσεων θα γίνεται µέσα σε πλαίσιο για όλες τις µορφές της συνάρτησης, όπως για παράδειγµα: (1) result = run_classifier(sample,training,group) (2) result = run_classifier(sample,training,group, type) (3) result = run_classifier(sample,training,group, 'Name',value,...) (4) [result,error,posterior,logp,coeff] = run_classifier(...) Η µορφή (1) της συνάρτησης απαιτεί τρία ορίσµατα εισόδου και επιστρέφει ένα όρισµα εξόδου. Η συνάρτηση µπορεί να δέχεται ένα επιπλέον όρισµα εισόδου type, όπως φαίνεται στη µορφή (2). Αυτό σηµαίνει ότι όταν καλείται η µορφή (1) της συνάρτησης, το όρισµα type έχει κάποια προκαθορισµένη τιµή. Εντούτοις, ο προγραµµατιστής της συνάρτησης επιτρέπει την αλλαγή της προκαθορισµένης αυτής τιµής της, µέσω της µορφής (2). Επιπλέον, πολλοί αλγόριθµοι κατηγοριοποίησης επιδέχονται προαιρετικές παραµέτρους, που συνήθως καθορίζουν λεπτοµέρειες της εκπαίδευσης. Οι παράµετροι αυτές έχουν προκαθορισµένες τιµές, αλλά ο χρήστης µπορεί να τις αλλάξει. Ένας συνηθισµένος τρόπος εισαγωγής επιλογών σε συναρτήσεις του MATLAB είναι µέσω ζευγών ορισµάτων, όπως δείχνει η µορφή (3). Το πρώτο στοιχείο του ζεύγος είναι µία συµβολοσειρά µε το όνοµα της παραµέτρου και το δεύτερο η τιµή της. Έστω για παράδειγµα ότι η συνάρτηση run_classifier προσφέρει δύο επιλογές, την 'MaxError' (που λαµβάνει ως τιµή έναν αριθµό στο διάστη- µα [0,1]) και την 'Cost' (που λαµβάνει ως τιµή ένα διάνυσµα τριών στοιχείων). Η µορφή (3) της συνάρτησης θα µπορούσε να κληθεί µε µία εντολή της µορφής: 1 result = run_classifier(sample,training,group,... 'MaxError',0.2, 'Cost',[1 2 1]); Σε τέτοιες περιπτώσεις, η τιµή ενός ζεύγους πρέπει να ακολουθεί τη συµβολοσειρά µε το όνοµα της παραµέτρου. Εντούτοις, τα ζεύγη µπορούν να εισαχθούν µε οποιαδήποτε σειρά. Για παράδειγµα, η παρακάτω εντολή θα παρήγαγε τα ίδια αποτελέσµατα: 2 result = run_classifier(sample,training,group,... 'Cost',[1 2 1], 'MaxError',0.2); Επιπλέον, ο χρήστης µπορεί να επιλέξει τον καθορισµό µόνο της µίας από τις δύο επιλογές: 3 result = run_classifier(sample,training,group, 'MaxError',0.2); Σε αυτήν την περίπτωση η επιλογή 'Cost' θα λάβει την προκαθορισµένη της τιµή. Τέλος, η µορφή (4) υποδηλώνει ότι η συνάρτηση µπορεί να επιστρέφει περισσότερα ορίσµατα ε- ξόδου. Η γραφή µε τις τρεις τελείες σηµαίνει ότι οποιαδήποτε από τις τρεις προηγούµενες 19

Μελέτη Αλγορίθμων Κατηγοριοποίησης με Χρήση του MATLAB

Μελέτη Αλγορίθμων Κατηγοριοποίησης με Χρήση του MATLAB Διπλωματική Εργασία Μελέτη Αλγορίθμων Κατηγοριοποίησης με Χρήση του MATLAB Στεργιανή Δόβα Διπλ. Μηχανικός Πληροφορικής και Επικοινωνιών Επιβλέπων Καθηγητής: Σαμαράς Νικόλαος Εισαγωγή: Το πρόβλημα της κατηγοριοποίησης

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα, Πανεπιστήμιο

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 4 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Συστήματα Αναμονής (Queuing Systems)

Συστήματα Αναμονής (Queuing Systems) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βέλτιστου Σχεδιασμού Δικτύων Τηλεματικής

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #2: Αναπαράσταση δεδομένων Αβεβαιότητα και Ακρίβεια Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Αναπαράσταση δεδομένων (Data Representation), Αβεβαιότητα

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

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.]

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.] Εισαγωγή στο MATLAB Το MATLAB αποτελεί ένα εμπορικό εργαλείο το οποίο προσφέρει ένα διαδραστικό προγραμματιστικό περιβάλλον στον χρήστη και χρησιμοποιείται σε ένα μεγάλο εύρος εφαρμογών. Ενσωματώνει μια

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος 1 Τι είναι τα Matlab και Simulink? Το Matlab (MATrix LABoratory) είναι ένα περιβάλλον επιστημονικού

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Εισαγωγή στη Matlab Βασικές Συναρτήσεις Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας Εισαγωγή στη Matlab Βασικές Συναρτήσεις 2016-2017 Εισαγωγή στη Matlab Matlab

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με εφαρμογές στη Βιοϊατρική Εργαστήριο Μαθηματικής Ανάλυσης Ι Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις Εισαγωγή στη

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0 Εθνικό & Καποδιστριακό Πανεπιστήµιο Αθηνών Τµήµα Μεθοδολογίας, Ιστορίας & Θεωρίας της Επιστήµης ιαπανεπιστηµιακό Πρόγραµµα Μεταπτυχιακών Σπουδών «Βασική και Εφαρµοσµένη Γνωσιακή Επιστήµη» Σύντοµο Εγχειρίδιο

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

Γνωρίστε το Excel 2007

Γνωρίστε το Excel 2007 Εισαγωγή τύπων Γνωρίστε το Excel 2007 Πληκτρολογήστε το σύμβολο της ισότητας (=), χρησιμοποιήστε ένα μαθηματικό τελεστή (+,-,*,/) και πατήστε το πλήκτρο ENTER. Πρόσθεση, διαίρεση, πολλαπλασιασμός και αφαίρεση

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

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση Ηµεροµηνία επιστροφής : Τετάρτη 4/11/2010 18 Οκτωβρίου 2010 1 Γραµµική άλγεβρα (20 µονάδες) Η παράγωγος ενός µητρώου H ορίζεται ως η παράγωγος κάθε

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Αναγνώριση Προτύπων Ι

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 1 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Μεταβλητές Μεταβλητή ονομάζεται ένα μέγεθος

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

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα 1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα: ΜΑΘΑΙΝΟΝΤΑΣ ΤΟ MATLAB, ΜΕΡΟΣ Α Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 25 Ενότητα 3 οκιµή Προγραµµάτων (Program Testing)

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 1 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 1 1.1 ΕΙΣΑΓΩΓΗ ΣΤΗ FORTRAN 77 Ένα πρόγραµµα σε οποιαδήποτε γλώσσα προγραµµατισµού δεν τίποτα άλλο από µια σειρά εντολών που πρέπει

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

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. MATLAB Tι είναι το λογισµικό MATLAB? Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. Σύστηµα αλληλεπίδρασης µε τοχρήστηγια πραγµατοποίηση επιστηµονικών υπολογισµών (πράξεις µε πίνακες επίλυση

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

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Εργαστήριο Εκπαιδευτικής Τεχνολογίας Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Φιλοσοφική Σχολή Τμήμα Φ.Π.Ψ., Τομέας Παιδαγωγικής Διευθυντής: Καθ. Χ. Κυνηγός Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Πίνακας

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

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Πληροφορική Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. Κωνσταντίνος Καρατζάς

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Μέρος Α Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Το όνομα του προέρχεται από τα αρχικά γράμματα των λέξεων MATtrix LABoratory (εργαστήριο πινάκων). To MATLAB (MathWorks Inc.) παρέχει

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

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

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

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης

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

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2 1. 1-Σ, 2-Σ, 3-Λ, 4-Σ, 5-Σ 2. 1-α, 2-α, 3-β, 4-β, 5-α, 6-α, 7-α, 8-β, 9-β, 10-β 3. Τι ονομάζουμε αλγόριθμο; Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Γρήγορες προσθέσεις αριθμών Γρήγορες συγκρίσεις αριθμών Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σχετικά γρήγορη μετάδοση και πρόσληψη

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

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Ενότητα 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα α. Θέση και προσανατολισμός της μορφής Η θέση της κάθε μορφής στο σκηνικό προσδιορίζεται

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Μάθηση και Γενίκευση. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Μάθηση και Γενίκευση. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Μάθηση και Γενίκευση Το Πολυεπίπεδο Perceptron (MultiLayer Perceptron (MLP)) Έστω σύνολο εκπαίδευσης D={(x n,t n )}, n=1,,n. x n =(x n1,, x nd ) T, t n =(t n1,, t np ) T Θα πρέπει το MLP να έχει d νευρώνες

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

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

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ Ι ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ Τύποι δεδομένων Οι παρακάτω τύποι δεδομένων υποστηρίζονται από τη γλώσσα προγραμματισμού Fortran: 1) Ακέραιοι αριθμοί (INTEGER). 2) Πραγματικοί αριθμοί απλής ακρίβειας

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

1. Εισαγωγή στο Sage.

1. Εισαγωγή στο Sage. 1. Εισαγωγή στο Sage. 1.1 Το μαθηματικό λογισμικό Sage Το Sage (System for Algebra and Geometry Experimentation) είναι ένα ελεύθερο (δωρεάν) λογισμικό μαθηματικών ανοιχτού κώδικα που υποστηρίζει αριθμητικούς

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

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) 2. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ H υλοποίηση ενός προβλήµατος σε σύστηµα Η/Υ που επιδεικνύει ΤΝ 1 απαιτεί: Την κατάλληλη περιγραφή του προβλήµατος

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

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Εκπαιδευτικό Εργαλείο Κανονικοποίησης Εκπαιδευτικό Εργαλείο Κανονικοποίησης Σύντομες οδηγίες χρήσης Εισαγωγή Το πρόγραμμα Εκπαιδευτικό Εργαλείο Κανονικοποίησης αυτοματοποιεί τη διαδικασία της κανονικοποίησης πινάκων σε BCNF μορφή. Ο χρήστης

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Σχήµα 2.1: Εισαγωγή array στο Front Panel.

Σχήµα 2.1: Εισαγωγή array στο Front Panel. Arrays (Πίνακες) 1. Στο LAbVIEW η εισαγωγή πινάκων γίνεται µε τα arrays. Για να εισάγουµε ένα array στο Front Panel κάνουµε δεξί κλικ σε αυτό και επιλέγουµε την εντολή «Array» από το µενού «Array, Matrix

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος Εργαστήρια Αριθμητικής Ανάλυσης Ι 4 ο Εργαστήριο Διανύσματα-Πίνακες 1 ο Μέρος 2017 Εισαγωγή Όπως έχουμε προαναφέρει σε προηγούμενα εργαστήρια. Ο βασικός τύπος δεδομένων στο Matlab είναι οι πίνακες. Ένα

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1. ΔΗΜΙΟΥΡΓΙΑ ΕΓΓΡΑΦΩΝ ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1.1. Ορισµός εγγράφου, προτύπου, πρωτεύοντος και δευτερεύοντος εγγράφου 1.2. Πρότυπα 1.2.1. Δηµιουργία, µεταβολή, χρήση και διαγραφή προτύπων εγγράφων 1.2.2.

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

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης Μάθημα 5 ο Δρ. Ανέστης Γ. Χατζημιχαηλίδης Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Ανατολικής Μακεδονίας και Θράκης 2016-2017 Διευρυμένη Υπολογιστική Νοημοσύνη (ΥΝ) Επεκτάσεις της Κλασικής ΥΝ. Μεθοδολογίες

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα 4o Εργαστήριο Σ.Α.Ε Ενότητα : Μελέτη και Σχεδίαση Σ.Α.Ε Με χρήση του MATLAB Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Δομημένος Προγραμματισμός

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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