Π Τ Υ Χ Ι Α Κ Η /ΔΙ Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

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

Download "Π Τ Υ Χ Ι Α Κ Η /ΔΙ Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α"

Transcript

1 Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Π Τ Υ Χ Ι Α Κ Η /ΔΙ Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α ΜΑΘΗΣΗ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ ΑΠΟ ΔΕΔΟΜΕΝΑ ΠΟΛΛΑΠΛΩΝ ΕΤΙΚΕΤΩΝ ΣΥΓΓΡΑΦΕΑΣ Μάνδρος Παναγιώτης ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Τσουμάκας Γρηγόριος, Λέκτορας ΘΕΣΣΑΛΟΝΙΚΗ 2012

2 1

3 Περιεχόμενα Κατάλογος πινάκων... 4 Κατάλογος σχημάτων... 4 Κατάλογος εικόνων Εισαγωγή Συμβολή της πτυχιακής Δομή της πτυχιακής Υπόβαθρο Μηχανική μάθηση Μάθηση πολλαπλών ετικετών Κατηγορίες εργασιών Μετασχηματισμός προβλήματος Προσαρμογή αλγορίθμου Στατιστικές παράμετροι Μετρικές αξιολόγησης Κλιμάκωση αλγορίθμων μηχανικής μάθησης Ευκαιρίες και προκλήσεις για τη μηχανική μάθηση Θεωρητικό μοντέλο υπολογισμού και προβλήματα με το μεγέθος των δεδομένων Τεχνικές για ενασχόληση με πολλά δεδομένα που χωράνε στην κύρια μνήμη Big Data Κλιμάκωση μάθησης πολλαπλών ετικετών Hadoop Αρχιτεκτονικές υπολογιστών και διαφάνεια Hadoop Hadoop Distributed Filesystem Hadoop Map/Reduce Στήσιμο ενός Hadoop cluster και Hadoop API Ευκαιρίες με το Hadoop Δέντρα απόφασης Ανάπτυξη αλγορίθμων μάθησης πολλαπλών ετικετών στο Hadoop PLANET Το δέντρο απόφασης Κόμβοι του δέντρου (DecisionTreeNode) Το δέντρο απόφασης (DecisionTree)

4 Διάσχιση του δέντρου Αποθήκευση του δέντρου Αλγόριθμος Κατανεμημένο χτίσιμο (single label) Χτίσιμο στη μνήμη (single label) Διάσπαση (single label) Κριτήρια τερματισμού Επέκταση σε δεδομένα πολλαπλών ετικετών Controller Πρόβλεψη και αξιολόγηση Τεχνάσματα για καλύτερη απόδοση Αριθμός κόμβων για ταυτόχρονη διάσπαση Χτίσιμο στη μνήμη Εύρεση σημείων διαχωρισμού Binary Relevance Aποτελέσματα PLANET Binary Relevance Μελλοντική εργασία PLANET BR Βιβλιογραφία

5 Κατάλογος πινάκων Πίνακας 1: Είσοδος αλγορίθμου μετασχηματισμού προβλήματος Πίνακας 2: Μέθοδος αντιγραφής Πίνακας 3: Μέθοδος τυχαίας επιλογής Πίνακας 4: Μέθοδος παράληψης Πίνακας 5: Πρώτη ετικέτα Πίνακας 6: Δεύτερη ετικέτα Πίνακας 7: Τρίτη ετικέτα Πίνακας 8: Τέταρτη ετικέτα Πίνακας 9: Δεδομένα εισόδου Πίνακας 10: Υπολογισμός κατάταξης Πίνακας 11: Δεδομένα διάσχισης Πίνακας 12: Σύνολα δεδομένων για μέτρηση Πίνακας 13: Αποτελέσματα Πίνακας 14: Ranking των αλγορίθμων βάσει Πίνακας 15: Σύνολα δεδομένων για απολογισμό κλιμάκωσης Κατάλογος σχημάτων Σχήμα 1: Δέντρο απόφασης για διάσχιση Σχήμα 2: HashMap της ρίζας μετά την εκπαίδευση Σχήμα 3: Σύνολο δεδομένων εισόδου ενός map task Σχήμα 4: Το HashMap του map task μετά τον τερματισμό του Σχήμα 5: Κόμβος γονέας D Σχήμα 6: Παιδί D Σχήμα 7 : Παιδί D Κατάλογος εικόνων Εικόνα 1: RAkEL ο, εκπαίδευση Εικόνα 2: RAkEL ο, πρόβλεψη Εικόνα 3: RAkEL d, πρόβλεψη Εικόνα 4: RAkEL d, εκπαίδευση Εικόνα 5: RAkEL ο, ensemble πρόβλεψη Εικόνα 6: Αρχιτεκτονική HDFS Εικόνα 7: Δημιουργία αντεστραμμένου καταλόγου με Map/Reduce Εικόνα 8: Αρχιτεκτονική Map/Reduce Εικόνα 9: Αρχιτεκτονική ενός Cluster Εικόνα 10: Δεδομένα εισόδου δέντρου απόφασης Εικόνα 11: Δέντρο απόφασης μετά την εκπαίδευση

6 5

7 1 Εισαγωγή 1.1 Συμβολή της πτυχιακής Μπορούμε να πούμε με βεβαιότητα ότι στην εποχή που ζούμε τα δεδομένα είναι άπειρα. Η πρόοδος της τεχνολογίας, το Web 2.0 και ο ανταγωνισμός μεταξύ εταιριών έχουν συμβάλει τα μέγιστα σε αυτό το γεγονός. Μέχρι τώρα η ανθρωπότητα έχει επωφεληθεί πάρα πολύ από την επεξεργασία δεδομένων. Πρωταρχικό ρόλο σε αυτή την επεξεργασία έχει παίξει η μηχανική μάθηση, που αποτελεί σημαντικό κλάδο της επιστήμης των υπολογιστών. Ένας τομέας της μηχανικής μάθησης που πρόσφατα κέντρισε το ενδιαφέρον πολλών ερευνητών και θα απασχολήσει και εμάς, είναι η μάθηση πολλαπλών ετικετών. Το γεγονός της ύπαρξης πάρα πολλών δεδομένων, γνωστό και ως Big Data, αποτελεί μία από τις μεγαλύτερες προκλήσεις για τη μηχανική μάθηση. Τα δεδομένα είναι πάρα πολλά και οι συμβατικοί αλγόριθμοι αδυνατούν να τα διαχειριστούν. Στην πτυχιακή αυτή εργασία θα σχολιάσουμε λεπτομερώς την κλιμάκωση αλγορίθμων μηχανικής μάθησης. Θα παρουσιάσουμε επίσης υλοποιήσεις για την επίλυση αυτού του προβλήματος με τη χρήση κατανεμημένων συστημάτων, κυρίως στον τομέα της μάθησης πολλαπλών ετικετών. 1.2 Δομή της πτυχιακής Στο κεφάλαιο 2 παρουσιάζουμε το γνωστικό υπόβαθρο της πτυχιακής αυτής εργασίας. Πιο συγκεκριμένα περιγράφουμε τι είναι μηχανική μάθηση και μάθηση πολλαπλών ετικετών. Αναφερόμαστε επίσης στο πρόβλημα της κλιμάκωσης των αλγορίθμων, στο Hadoop καθώς και στα δέντρα απόφασης. Το κεφάλαιο 3 περιέχει τις δύο εφαρμογές που υλοποιήθηκαν στα πλαίσια της πτυχιακής, δηλαδή το σύστημα PLANET καθώς και τη μέθοδο Binary Relevance. Στο κεφάλαιο 4 παρουσιάζουμε τα αποτελέσματα και τα συμπεράσματα που βγαίνουν. Στο κεφάλαιο 5 αναφέρουμε πιθανές μελλοντικές επεκτάσεις και στο τέλος τη βιβλιογραφία. 6

8 2 Υπόβαθρο 2.1 Μηχανική μάθηση Η μηχανική μάθηση αποτελεί κλάδο της Τεχνητής Νοημοσύνης και αντικείμενο της είναι η δημιουργία αλγορίθμων που έχουν τη δυνατότητα να παράγουν νέα γνώση ή να οργανώσουν την υπάρχουσα. Χρησιμοποιούνται συνήθως για ταξινόμηση αντικειμένων σε κλάσεις, για ομαδοποίηση αντικειμένων ανάλογα με το πόσο μοιάζουν ή διαφέρουν μεταξύ τους, για αναγνώριση προτύπων που εμφανίζονται σε δεδομένα. Χαρακτηριστικοί ορισμοί για το τι είναι μηχανική μάθηση είναι οι παρακάτω: Μηχανική μάθηση είναι το πεδίο της έρευνας που δίνει τη δυνατότητα στους υπολογιστές να μαθαίνουν χωρίς να έχουν προγραμματιστεί επακριβώς για αυτό (Samuel, 1959). Ένα πρόγραμμα υπολογιστή θεωρείται ότι μαθαίνει μέσω εμπειρίας Ε σε σχέση με μία κλάση εργασιών Τ και κάποιο μέτρο απόδοσης P, αν η απόδοση του σε εργασίες της κλάσης Τ, μετρούμενη με βάση το P, βελτιώνεται διαμέσου της εμπειρίας Ε (Mitchell, 1997). Η μηχανική μάθηση έχει ανοίξει καινούργιους ορίζοντες στον τομέα της πληροφορικής. Οι υπολογιστές πλέον δεν αποθηκεύουν απλά δεδομένα και κάνουν πράξεις, αλλά έχουν και τη δυνατότητα να μάθουν. Έτσι τώρα αντί να προγραμματίσουμε ένα υπολογιστή να κάνει μία εργασία, μπορούμε να τον προγραμματίσουμε να τη μάθει. Ένα παράδειγμα για να γίνει κατανοητή αυτή η διαφορά είναι το εξής. Είναι γνωστό ότι ενέργειες που είναι πολύ απλές για έναν άνθρωπο να τις εκτελέσει, είναι αρκετά δύσκολο να προγραμματιστούν σε έναν υπολογιστή. Κάποιες από αυτές τις ενέργειες είναι η επεξεργασία ομιλίας, η επεξεργασία εικόνων, η οδήγηση οχημάτων. Χρησιμοποιώντας αλγορίθμους μηχανικής μάθησης, οι παραπάνω ενέργειες μπορούν να προγραμματιστούν πολύ πιο εύκολα. Η μηχανική μάθηση χρησιμοποιείται κατά κόρον στη βιομηχανία και στην επιστήμη. Εταιρίες χρησιμοποιούν αλγορίθμους μάθησης για να αναλύσουν τα δεδομένα που έχουν και να κάνουν προβλέψεις για το μέλλον. Αυτό τους επιτρέπει να είναι ανταγωνιστικές και να ανταποκρίνονται στις αυξανόμενες απαιτήσεις των πελατών τους. Επιστήμονες χρησιμοποιούν αλγορίθμους μάθησης για να τους βοηθήσουν στην έρευνα. Τεράστιοι όγκοι δεδομένων περνάνε μέσα από τους αλγορίθμους και οι ερευνητές μελετούν την έξοδο και καταλήγουν σε διάφορα χρήσιμα συμπεράσματα. Πέρα από την επιστήμη και τη βιομηχανία, αλγορίθμους μάθησης χρησιμοποιούμε και στην καθημερινότητα μας. Παραδείγματα αποτελούν οι μηχανές αναζήτησης με την κατάταξη που κάνουν, το μαρκάρισμα της ηλεκτρονικής αλληλογραφίας ως ανεπιθύμητη, συστάσεις και προτάσεις που μας κάνουν πολλές ιστοσελίδες ανάλογα με το προφίλ μας και την ανάδραση που δίνουμε. 7

9 Μπορούμε να οργανώσουμε τους αλγορίθμους μηχανικής μάθησης σε κατηγορίες, ανάλογα με τον τρόπο που λειτουργούν και την έξοδο που μας δίνουν. Οι κατηγορίες που παρουσιάζουν το περισσότερο ενδιαφέρον είναι: Μάθηση με επίβλεψη (supervised learning). Υπάρχει ένα σύνολο από δεδομένα για τα οποία γνωρίζουμε την τιμή μίας μεταβλητής, την οποία θέλουμε να προβλέψουμε σε ένα άλλο σύνολο από το οποίο απουσιάζει. Η μεταβλητή αυτή ονομάζεται μεταβλητή στόχος. Αν είναι διακριτή, όπως στην περίπτωση του κακού/καλού πελάτη, τότε έχουμε την περίπτωση της ταξινόμησης (classification). Διαφορετικά αν είναι συνεχής, όπως για παράδειγμα η πρόβλεψη της τιμής ενός ακινήτου, τότε έχουμε την περίπτωση της παλινδρόμησης (regression). Μάθηση χωρίς επίβλεψη (unsupervised learning). Υπάρχει ένα σύνολο δεδομένων από τα οποία απουσιάζει η μεταβλητή στόχος και ο αλγόριθμος προσπαθεί να βρει ομάδες αντικειμένων βάσει του πόσο μοιάζουν ή διαφέρουν μεταξύ τους. Ενισχυτική μάθηση (reinforcement learning). Υπάρχει ένα σύνολο καταστάσεων, σε κάθε κατάσταση υπάρχει ένα σύνολο ενεργειών και κάθε ενέργεια έχει ως αποτέλεσμα τη μετάβαση σε μία νέα κατάσταση. Στη νέα αυτή κατάσταση υπάρχει μία ανταμοιβή, ανάλογα με το πόσο καλή είναι. Ουσιαστικά έχουμε μάθηση μέσω αλληλεπίδρασης με το περιβάλλον. Από αυτές τις κατηγορίες, αυτή που θα μας απασχολήσει σε αυτήν την πτυχιακή εργασία είναι η μάθηση με επίβλεψη. Έχουμε m δεδομένα εκπαίδευσης (training set) που έχουν τη μορφή {( ( ) ( ) ) ( ( ) ( ) ( )}, όπου ) είναι το διάνυσμα των ( χαρακτηριστικών του i-οστού αντικειμένου και ) είναι η τιμή της μεταβλητής στόχου. Ορίζουμε επίσης ως L το σύνολο των διαφορετικών τιμών για τη μεταβλητή ( ) στόχο του προβλήματος και ισχύει ότι L, όπως επίσης και ως n το πλήθος των χαρακτηριστικών κάθε παραδείγματος. Σε προβλήματα ταξινόμησης το σύνολο L είναι πεπερασμένο και παίρνει διακριτές τιμές, όπως για παράδειγμα καλός/κακός πελάτης. Αντίθετα σε προβλήματα παλινδρόμησης είναι μη πεπερασμένο και ένα παράδειγμα είναι η πρόβλεψη της τιμής μίας μετοχής. Ο αλγόριθμος μάθησης προσπαθεί να βρει μία συνάρτηση h : X Y, όπου X είναι ο χώρος των χαρακτηριστικών και Y είναι ο χώρος των κλάσεων. Η συνάρτηση h που ονομάζεται υπόθεση (hypothesis), προέρχεται από το χώρο Η όλων των πιθανών υποθέσεων. Ο αλγόριθμος προσπαθεί να βρει τη συνάρτηση η οποία ταιριάζει περισσότερο στα δεδομένα εκπαίδευσης, δηλαδή θέλουμε η μεταβλητή εξόδου της h να είναι ίδια με τη μεταβλητή στόχο σε όσα περισσότερα αντικείμενα γίνεται. Σε προηγούμενη παράγραφο αναφέραμε το παράδειγμα του κακού/καλού πελάτη. Αυτή η περίπτωση όπου έχουμε δύο διαφορετικές τιμές σε πρόβλημα ταξινόμησης, δηλαδή L =2, ονομάζεται δυαδική ταξινόμηση (binary classification). Αν L >2, έχουμε την ταξινόμηση σε πολλαπλές τάξεις (multi-class classification). 8

10 Σε πολλές όμως εφαρμογές, τα αντικείμενα σχετίζονται με ένα σύνολο από ετικέτες (μεταβλητές στόχοι) και όχι μόνο με μία, όπως έχουμε αναφέρει μέχρι τώρα. Το σύνολο L δεν αναφέρεται πλέον σε διαφορετικές τιμές μίας ετικέτας, αλλά σε σύνολο από ετικέτες. Το πρόβλημα αυτό αποτελεί επέκταση του προβλήματος της ταξινόμησης με μία ετικέτα και ονομάζεται μάθηση πολλαπλών ετικετών (multi-label learning). Σε περίπτωση που υπάρχουν και μεταβλητές στόχοι που παίρνουν συνεχείς τιμές, τότε αναφερόμαστε στη μάθηση μεικτών στόχων (mixed-target learning). 2.2 Μάθηση πολλαπλών ετικετών Όπως αναφέραμε και σε προηγούμενες παραγράφους, το πρόβλημα της μάθησης από multi-label δεδομένα ασχολείται με την ταξινόμηση καινούργιων αντικειμένων σε περισσότερες από μία ετικέτες. Ας πάρουμε για παράδειγμα μία φωτογραφία που τραβήχτηκε σε μία παραλία. Αν κληθούμε να επισημάνουμε με ετικέτες τη συγκεκριμένη φωτογραφία, θα βάζαμε πιθανότατα ουσιαστικά όπως θάλασσα, παραλία, αμμουδιά, ήλιος. Άλλο παράδειγμα είναι η κατηγοριοποίηση μουσικών κομματιών. Ένα μουσικό κομμάτι θα μπορούσε να ανήκει σε περισσότερες από μία κατηγορίες, όπως ροκ και μπαλάντα. Πρόσφατα η περιοχή του multi-label learning προσέλκυσε το ενδιαφέρον ενός μεγάλου αριθμού ερευνητών (Tsoumakas et al., 2010). Κίνητρο τους ήταν τα ενδιαφέροντα ερευνητικά προβλήματα και η πληθώρα εφαρμογών που παρουσιάζει αυτό το είδος δεδομένων Κατηγορίες εργασιών Υπάρχουν δύο μεγάλες κατηγορίες εργασιών (tasks) στη μάθηση πολλαπλών ετικετών, η ταξινόμηση (multi-label classification) και η κατάταξη (label ranking). Στην ταξινόμηση, θα πρέπει να αποδoθεί στο καινούργιο αντικείμενο ένα υποσύνολο ετικετών S L. Ασχολείται δηλαδή με τη μάθηση ενός μοντέλου, το οποίο μπορεί να διαχωρίζει ποιες είναι οι σχετικές και ποιες οι μη σχετικές ετικέτες ενός αντικειμένου από το σύνολο L. Η κατάταξη ασχολείται με τη βαθμολόγηση των ετικετών ως προς τη σχετικότητα τους με το καινούργιο αντικείμενο. Έτσι το μοντέλο έχει ως έξοδο μία κατάταξη των ετικετών, όπου η πρώτη θεωρείται η πιο σχετική, η δεύτερη λιγότερη σχετική και ούτω καθεξής. Υπάρχουν βέβαια και εφαρμογές όπου θα θέλαμε να υπάρχει και ο διαχωρισμός σε σχετικές και μη σχετικές ετικέτες αλλά και η κατάταξη τους. Ένα τέτοιο παράδειγμα είναι μία εφαρμογή φιλτραρίσματος ειδήσεων. Ο χρήστης θέλει να εμφανιστούν μόνο 9

11 οι σχετικές με το ερώτημα του ειδήσεις, αλλά επιθυμεί επίσης να υπάρχει και μία βαθμολόγηση του πόσο σχετικές είναι. Αυτή η κατηγορία εργασιών εμφανίστηκε μόλις πρόσφατα και ονομάζεται κατάταξη πολλαπλών ετικετών (multi-label ranking). Πρόκειται για μία πολύ χρήσιμη και ενδιαφέρουσα γενίκευση των δύο κατηγοριών που αναφέραμε. Πέραν των προηγούμενων κατηγοριών, υπάρχουν ακόμα δύο. Στη μία έχουμε σαν έξοδο τις περιθώριες πιθανότητες ( ), όπου L και x είναι ένα καινούργιο παράδειγμα. Τις πιθανότητες αυτές μπορούμε να τις χρησιμοποιήσουμε ως εξής: Κατάταξη ετικετών ανάλογα με τη σχετικότητα τους με κάθε αντικείμενο. Κατάταξη αντικειμένων ανάλογα με τη σχετικότητα τους με κάθε ετικέτα. Ορισμό μίας τιμής κατωφλίου ώστε να προκύψει μία ταξινόμηση. Στην άλλη κατηγορία, η έξοδος είναι οι από κοινού πιθανότητες ( ) ( ). Με αυτόν τον τρόπο μπορούμε να εξάγουμε τις περιθώριες πιθανότητες αλλά και μία ταξινόμηση χρησιμοποιώντας την πιο συχνή τιμή της κατανομής Μετασχηματισμός προβλήματος Ένας τρόπος για να αντιμετωπίσουμε ένα πρόβλημα μάθησης από δεδομένα πολλαπλών ετικετών, είναι να τροποποιήσουμε κάποιον single-label αλγόριθμο έτσι ώστε να μπορεί να διαχειρίζεται δεδομένα πολλαπλών ετικετών. Αυτή η προσέγγιση ονομάζεται προσαρμογή αλγορίθμου (algorithm adaption). Μία άλλη είναι ο μετασχηματισμός του προβλήματος (problem transformation). Η γενικότερη ιδέα της δεύτερης προσέγγισης είναι ο μετασχηματισμός ενός προβλήματος μάθησης πολλαπλών ετικετών, σε ένα ή παραπάνω προβλήματα μάθησης μίας ετικέτας όπου και υπάρχει εκτενής βιβλιογραφία για την επίλυση τους. Στη συνέχεια αναφέρουμε ορισμένες από τις μεθόδους αυτής της κατηγορίας, κάποιες από τις οποίες είναι πολύ απλές, ενώ άλλες περισσότερο σύνθετες. Ας θεωρήσουμε τον πίνακα 1, ως την είσοδο σε έναν αλγόριθμο μετασχηματισμού προβλήματος. Το σύνολο των ετικετών L αποτελείται από τις ετικέτες, και. Επίσης έχουμε παραλείψει τα χαρακτηριστικά των αντικειμένων έτσι ώστε να επικεντρωθούμε μόνο στο πρόβλημα της μετατροπής. Αντικείμενο Χαρακτηριστικά Σύνολο ετικετών 1 ( ) { } 2 ( ) { } 3 ( ) { } 4 ( ) { } Πίνακας 1: Είσοδος αλγορίθμου μετασχηματισμού προβλήματος 10

12 Οι τρεις πιο απλές μέθοδοι είναι η μέθοδος αντιγραφής (copy), η μέθοδος τυχαίας επιλογής (random) και η μέθοδος παράληψης (ignore). Στη μέθοδο αντιγραφής, αντιγράφουμε κάθε αντικείμενο ( ( ) ( ) ) που έχει πολλαπλές ετικέτες, ( ) στον αριθμό, σε ( ) αντικείμενα με μία ετικέτα ( ) το καθένα. Στη μέθοδο τυχαίας επιλογής διαλέγουμε τυχαία μία από τις ( ) ετικέτες για να αντιπροσωπεύσει το αντικείμενο. Τέλος στη μέθοδο παράληψης, απαλείφουμε κάθε αντικείμενο με πολλαπλές ετικέτες και κρατάμε μόνο τα αντικείμενα με μία ετικέτα. Στους πίνακες 2, 3, 4 βλέπουμε πως αυτές οι μέθοδοι μετατρέπουν το πρόβλημα πολλαπλών ετικετών, σε πρόβλημα μίας ετικέτας. Αντικείμενο Ετικέτα Αντικείμενο Ετικέτα Πίνακας 3: Μέθοδος τυχαίας επιλογής Αντικείμενο Ετικέτα 3 Πίνακας 4: Μέθοδος παράληψης Πίνακας 2: Μέθοδος αντιγραφής Η πιο δημοφιλής μέθοδος είναι αυτή της δυαδικής συσχέτισης (binary relevance-br). Στη συγκεκριμένη μέθοδο, από το αρχικό σύνολο δεδομένων δημιουργούμε L σύνολα δεδομένων, ένα για κάθε ετικέτα. Για κάθε μία ετικέτα τώρα μπορούμε να εκπαιδεύσουμε ένα μοντέλο. Έχουμε δηλαδή L δυαδικούς ταξινομητές, όπου κάθε ένας είναι υπεύθυνος για τη συσχέτιση με μία ετικέτα. Για την ταξινόμηση ενός καινούργιου αντικειμένου, παίρνουμε την ένωση των εξόδων των μοντέλων. Η μέθοδος BR είναι αρκετά απλή, αλλά αποτυγχάνει να λάβει υπόψη της συσχετίσεις μεταξύ ετικετών και επίσης χρειάζεται για κάθε ετικέτα και ένα μοντέλο, δηλαδή σε μία εφαρμογή με μεγάλο αριθμό ετικετών θα υπάρχει και μεγάλο κόστος για την εκπαίδευση. Στους πίνακες 5, 6, 7, 8 βλέπουμε τα τέσσερα σύνολα δεδομένων που παράγει η μέθοδος BR. Σε αυτήν την πτυχιακή εργασία θα ασχοληθούμε με τη μέθοδο BR και θα προσπαθήσουμε να την κάνουμε πιο αποδοτική σε χρόνο. Αντικείμενο Ετικέτα Πίνακας 5: Πρώτη ετικέτα Αντικείμενο Ετικέτα Πίνακας 6: Δεύτερη ετικέτα 11

13 Αντικείμενο Ετικέτα Πίνακας 7: Τρίτη ετικέτα Αντικείμενο Ετικέτα Πίνακας 8: Τέταρτη ετικέτα Η μέθοδος δυναμοσύνολο ετικετών (label powerset-lp), είναι μία πολύ απλή και αποτελεσματική μέθοδος. Θεωρεί κάθε μοναδικό υποσύνολο ετικετών που υπάρχει στο σύνολο των δεδομένων εκπαίδευσης, ως μία από τις κλάσεις ενός προβλήματος multi-class ταξινόμησης. Έτσι όταν έρθει ένα καινούργιο αντικείμενο, ο multi-class ταξινομητής αποδίδει την πιθανότερη κλάση, η οποία είναι ουσιαστικά είναι ένα σύνολο ετικετών. Μπορούμε μάλιστα αν ο ταξινομητής έχει ως έξοδο μία κατανομή πιθανοτήτων για τις κλάσεις, να τις κατατάξουμε σε φθίνουσα σειρά ως προς τη σχετικότητα τους με το αντικείμενο. Με αυτόν τον τρόπο μπορούμε να επιτύχουμε μία κατάταξη πολλαπλών ετικετών. Η συγκεκριμένη μέθοδος μπορεί, αντίθετα με τη δυαδική συσχέτιση, να λαμβάνει υπ όψιν της συσχετίσεις μεταξύ ετικετών. Το κόστος της εξαρτάται από τον αριθμό των δεδομένων m, τον αριθμό των ετικετών q και φράσσεται από πάνω με min(m, ). Καταλαβαίνουμε ότι μεγάλος αριθμός ετικετών και παραδειγμάτων μπορεί να προκαλέσει προβλήματα όχι μόνο κόστους, αλλά και στην εκπαίδευση, καθώς πολλά από τα υποσύνολα ετικετών θα εμφανίζονται σε λίγα παραδείγματα. Να σημειώσουμε εδώ ότι στην πράξη δεν εξετάζονται και τα υποσύνολα, καθώς δεν εμφανίζεται όλο το δυναμοσύνολο στα δεδομένα εισόδου. Συνήθως έχουμε 5 με 44 του αριθμού αυτού υποσύνολα, που πάλι δημιουργεί πρόβλημα όταν ο αριθμός q μεγαλώνει. Η μέθοδος LP επίσης, επειδή θεωρεί ως ετικέτα κάθε μοναδικό υποσύνολο ετικετών που εμφανίζεται στα δεδομένα εκπαίδευσης, δεν μπορεί να προβλέψει κάτι διαφορετικό από αυτά τα υποσύνολα, που πιθανό είναι να ταιριάζει καλύτερα σε καινούργια αντικείμενα. Ο πίνακας 9 δείχνει τη μετατροπή του προβλήματος σε πρόβλημα πολλαπλών τάξεων και ο πίνακας 10 πως υπολογίζεται η κατάταξη των ετικετών σε ένα καινούργιο αντικείμενο x. Αντικείμενο Ετικέτα Πίνακας 9: Δεδομένα εισόδου κλάση p ( ) ( ( ) ) Πίνακας 10: Υπολογισμός κατάταξης Μία μέθοδος που προτάθηκε πρόσφατα και μπορεί να αντεπεξέλθει στα προβλήματα που παρουσιάζουν οι προηγούμενες μέθοδοι, είναι η μέθοδος RAkEL (random k- labelsets), που αποτελεί επέκταση της LP μεθόδου (Tsoumakas et al., 2010). Η κύρια ιδέα της είναι η δημιουργία τυχαίων υποσυνόλων ετικετών, μικρού μεγέθους, από το 12

14 σύνολο L και η εκπαίδευση ενός ταξινομητή πολλαπλών τάξεων για κάθε υποσύνολο, χρησιμοποιώντας την LP μέθοδο. Το μέγεθος των υποσυνόλων καθορίζεται από την παράμετρο k. Ένα πλεονέκτημα της μεθόδου αυτής είναι το γεγονός ότι αφού δημιουργηθούν τα υποσύνολα, το υπολογιστικό κόστος της LP μεθόδου για κάθε ένα από αυτά, είναι πολύ μικρότερο από αυτό ενός LP ταξινομητή για όλο το σύνολο. Αν θεωρήσουμε ένα σύνολο L με L 100 ετικέτες, τότε ο αριθμός των κλάσεων που εξετάζει η μέθοδος LP φράσσεται με min(m, ). Αντίθετα, με τη μέθοδο RAkEL για k=3, κάθε LP ταξινομητής φράσσεται με min(m, ), αριθμός εξαιρετικά μικρότερος. Αναφέραμε επίσης σε προηγούμενη παράγραφο ότι στη LP μέθοδο μπορεί για κάποιο υποσύνολο ετικετών να μην υπάρχουν αρκετά δεδομένα για εκπαίδευση, με αποτέλεσμα ο ταξινομητής να υπομοντελοποιήσει (underfit) τα δεδομένα. Με τη μέθοδο RAkEL, έχουμε μία πιο ισορροπημένη κατανομή των κλάσεων σε κάθε ταξινομητή μίας ετικέτας που προκύπτει. Όσον αφορά τη διαδικασία της δημιουργίας των υποσυνόλων, υπάρχουν δύο προσεγγίσεις. Στη μία διαλέγουμε από το σύνολο L ετικέτες με επανατοποθέτηση και στην άλλη χωρίς και προκύπτουν έτσι οι μέθοδοι RAkEL με επικαλύψεις (RAkEL ο ) και RAkEL χωρίς επικαλύψεις (RAkEL d ) αντίστοιχα. Στις εικόνες 1 και 2 βλέπουμε τον ψευδοκώδικα της διαδικασίας εκπαίδευσης και πρόβλεψης του RAkEL ο. Στις εικόνες 3 και 4 βλέπουμε τον ψευδοκώδικα για τις αντίστοιχες διαδικασίες του RAkEL d. Εικόνα 1: RAkEL ο, εκπαίδευση Εικόνα 2: RAkEL ο, πρόβλεψη 13

15 Εικόνα 3: RAkEL d, πρόβλεψη Εικόνα 4: RAkEL d, εκπαίδευση Όσον αφορά την περίπτωση των επικαλυπτόμενων ετικετών, ο RAkEL ο μπορεί να μαζέψει πολλαπλές προβλέψεις για μία ετικέτα, από τα διαφορετικά LP μοντέλα που περιέχουν αυτή την ετικέτα στο υποσύνολο ετικετών που τους έχει ανατεθεί. Έτσι προκύπτει μία διαδικασία ψηφοφορίας η οποία συντελεί στο να έχουμε σαν έξοδο περισσότερο αντικειμενικές προβλέψεις, καθώς συνδυάζεται η έξοδος από πολλούς ταξινομητές. Τέτοιου είδους μέθοδοι ονομάζονται ensemble methods. Στην εικόνα 5 βλέπουμε ένα παράδειγμα πρόβλεψης με την μέθοδο RAkEL ο. Εικόνα 5: RAkEL ο, ensemble πρόβλεψη Για να ανακεφαλαιώσουμε, στην ενότητα αυτή αναφερθήκαμε στο μετασχηματισμό προβλήματος. Στην κατηγορία αυτή μετασχηματίζουμε ένα πρόβλημα ταξινόμησης πολλαπλών ετικετών σε ένα ή παραπάνω προβλήματα ταξινόμησης μίας ετικέτας. Αναφερθήκαμε επίσης σε διάφορες τεχνικές με τις οποίες μετασχηματίζουμε ένα πρόβλημα. Υπάρχουν απλές μέθοδοι όπως οι μέθοδοι αντιγραφής, παράληψης και τυχαίας επιλογής. Υπάρχουν επίσης και πιο σύνθετες μέθοδοι όπως η μέθοδος BR, η μέθοδος LP και η μέθοδος RAkEL. Η BR είναι αρκετά απλή αλλά δεν λαμβάνει υπόψην συσχετίσεις μεταξύ ετικετών, η μέθοδος LP επιτυγχάνει σε αυτόν τον τομέα αλλά εξαρτάται πολύ από τον αριθμό των ετικετών q και τέλος η μέθοδος RAkEL επιλύει σε μεγάλο βαθμό τα παραπάνω προβλήματα. Μάλιστα σε συγκριτικές μελέτες μεταξύ των τριών αυτών μεθόδων, η RAkEL έχει πολύ καλύτερα αποτελέσματα, ειδικά στην περίπτωση των επικαλυπτόμενων ετικετών. 14

16 2.2.3 Προσαρμογή αλγορίθμου Σε αυτήν την κατηγορία μεθόδων ουσιαστικά επεκτείνουμε κάποιον single-label αλγόριθμο, έτσι ώστε να μπορεί να διαχειρίζεται δεδομένα πολλαπλών ετικετών. Ο knn είναι ένας πολύ αποτελεσματικός αλγόριθμος, που ανήκει στην κατηγορία των αλγορίθμων αναβλητικής μάθησης. Η επέκταση του αρχικά κάνει την ίδια διαδικασία με τον single-label, δηλαδή βρίσκει τους k κοντινότερους γείτονες. Το επόμενο βήμα είναι να γίνει η πρόβλεψη, η οποία γίνεται με συνάθροιση των τιμών που έχουν οι ετικέτες των γειτονικών αντικειμένων. Ένας τρόπος συνάθροισης είναι να βρεθεί το μέσο διάνυσμα των αντικειμένων και η πρόβλεψη να γίνει σύμφωνα με αυτό το διάνυσμα. Ένας πολύ γνωστός αλγόριθμος ο οποίος παράγει δέντρα αποφάσεων, είναι ο C4.5. Στην επέκταση του, έχουμε αντί για μία ετικέτα σε κάθε φύλλο, πολλαπλές και ο τύπος υπολογισμού της εντροπίας γίνεται: ( ( ) ( ) ( ) ( )) όπου q είναι το πλήθος των ετικετών, ( ) είναι η σχετική συχνότητα της ετικέτας και ( ) = 1 - ( ). Για τη δημιουργία δέντρων απόφασης, μπορούν να χρησιμοποιηθούν πολλά μέτρα για τον υπολογισμό της ομοιογένειας των ετικετών σε έναν κόμβο. Ένα τέτοιο μέτρο αποτελεί και η διασπορά των ετικετών. Υπολογίζουμε τη διασπορά σε έναν κόμβο και στα παιδιά του και έπειτα επιλέγουμε να γίνει ο διαχωρισμός σύμφωνα με το χαρακτηριστικό, το οποίο μεγιστοποιεί την παρακάτω ποσότητα: ( ) ( ( )) όπου D είναι το σύνολο των παραδειγμάτων που έχει ο κόμβος πριν το διαχωρισμό, Var(D) είναι η διασπορά του κόμβου, P είναι ο διαχωρισμός βάσει κάποιου χαρακτηριστικού, είναι τα παραδείγματα που έχουν οι νέοι κόμβοι που προκύπτουν και Var( ) είναι οι αντίστοιχες διασπορές σε κάθε καινούργιο κόμβο. Ουσιαστικά ελέγχουμε για κάθε χαρακτηριστικό το πόσο ομοιογενείς είναι οι νέοι κόμβοι που θα δημιουργηθούν, αν επιλεγεί το χαρακτηριστικό αυτό για διαχωρισμό. Επιλέγουμε τελικά αυτό που δημιουργεί τους πιο ομοιογενείς κόμβους. Η πρόβλεψη ενός καινούργιου αντικειμένου γίνεται σύμφωνα με το μέσο διάνυσμα των ετικετών του κόμβου στον οποίο κατέληξε το αντικείμενο κατά τη διάσχιση του δέντρου. Σε αυτήν την πτυχιακή εργασία θα δούμε με περισσότερες λεπτομέρειες την παραπάνω μέθοδο, δηλαδή τη δημιουργία δέντρου απόφασης όπου κριτήριο διάσπασης είναι η διασπορά των διανυσμάτων των ετικετών σε κάθε κόμβο. 15

17 2.2.4 Στατιστικές παράμετροι Για την περιγραφή των δεδομένων εκπαίδευσης, έχουν προταθεί δύο στατιστικές παράμετροι, η πληθυκότητα ετικετών (label cardinality) και η πυκνότητα ετικετών (label density). Η πληθυκότητα ετικετών είναι ο μέσος όρος των ετικετών ενός συνόλου δεδομένων D: ( ) Η πυκνότητα ετικετών είναι ο μέσος όρος των ετικετών ενός συνόλου δεδομένων D, διαιρεμένος με q: ( ) Η πληθυκότητα εκφράζει το πλήθος των διαφορετικών ετικετών που χαρακτηρίζουν κάθε παράδειγμα από το σύνολο δεδομένων και είναι ανεξάρτητο από το q. Αντίθετα η πυκνότητα δεν είναι ανεξάρτητη του q. Δύο σύνολα δεδομένων με ίδια πληθυκότητα και διαφορετική πυκνότητα πιθανότατα, θα έχουν διαφορετικές ιδιότητες. Μία τρίτη στατιστική παράμετρος είναι το πλήθος του συνόλου L, δηλαδή ο αριθμός q Μετρικές αξιολόγησης Η αξιολόγηση των αλγορίθμων μάθησης από δεδομένα με πολλαπλές ετικέτες, διαφέρει από την αξιολόγηση των αλγορίθμων μάθησης από δεδομένα με μία ετικέτα. Ας θεωρήσουμε ένα σύνολο δεδομένων εκπαίδευσης ( ( ) ( ) ( ) ), i 1.m, όπου ( είναι το διάνυσμα των χαρακτηριστικών του i-οστού αντικειμένου και ) L, το σύνολο των ετικετών με το οποίο έχει επισημανθεί. Το σύνολο L έχει μέγεθος L q. ( ) Έστω επίσης το σύνολο των ετικετών που προβλέπει ένας αλγόριθμος ταξινόμησης για το i-οστό αντικείμενο. Τέλος ορίζουμε ως,,, τoν αριθμό των false positive, false negative, true positive, true negative προβλέψεων για μία ετικέτα λ. Μπορούμε να χωρίσουμε τις μετρικές σε δύο κατηγορίες: βασισμένες στα παραδείγματα βασισμένες στις ετικέτες Βασισμένες στα παραδείγματα είναι οι επόμενες 5 μετρικές. 16

18 Hamming loss: ( ) ( ) Ακρίβεια(precision): ( ) ( ) ( ) Aνάκληση(recall): ( ) ( ) ( ) Ορθότητα(accuracy): ( ) ( ) ( ) ( ) F 1 : ( ) ( ) ( ) ( ) Όσον αφορά τις μετρικές που είναι βασισμένες στις ετικέτες, οποιαδήποτε μετρική που χρησιμοποιείται σε single-label προβλήματα μπορεί να χρησιμοποιηθεί και για multi-label. Ορίζουμε ως B( ) μία μετρική για single-label πρόβλημα. Τότε ορίζονται οι δύο παρακάτω μετρικές. B macro : ( ) B micro : B( ) 17

19 2.3 Κλιμάκωση αλγορίθμων μηχανικής μάθησης Ευκαιρίες και προκλήσεις για τη μηχανική μάθηση Στην εποχή που ζούμε, το πλήθος των δεδομένων είναι τεράστιο και αυξάνεται συνεχώς με ραγδαίους ρυθμούς. Με την πρόοδο της τεχνολογίας και την εξέλιξη του υλικού μέρους των υπολογιστών, οι δυνατότητες αποθήκευσης δεδομένων είναι σχεδόν απεριόριστες. Η έλευση του Web 2.0, καθώς και ο ανταγωνισμός στον επιχειρηματικό τομέα, έχουν συμβάλλει τα μέγιστα για τον τεράστιο αυτό όγκο δεδομένων. Επιχειρήσεις και οργανισμοί αποθηκεύουν όλο και περισσότερα δεδομένα. Το Διαδίκτυο κατακλύζεται καθημερινά από φωτογραφίες, βίντεο, σχόλια και γνώμες χρηστών. Οι επιστήμονες επιδιώκουν να έχουν μεγαλύτερες και πιο λεπτομερείς εξόδους από την έρευνα και τα πειράματα. Αρχεία καταγραφής από εφαρμογές, από βάσεις δεδομένων, από την τηλεπικοινωνία και το Διαδίκτυο συνεχώς πληθαίνουν και γίνονται πιο λεπτομερή. Όλο αυτό το πλήθος των δεδομένων είναι διαθέσιμο για ανάλυση και επεξεργασία. Μία εταιρία αναλύοντας τα δεδομένα που έχει στη διάθεση της μπορεί να διασφαλίσει μία ομαλή και κερδοφόρα λειτουργία. Την ενδιαφέρει να έχει πρόσβαση σε όσο περισσότερα δεδομένα γίνεται, καθώς με αυτόν τον τρόπο μπορεί να βγάλει ακριβή συμπεράσματα και να ασχοληθεί με περισσότερα θέματα που την αφορούν. Γενικότερα, με την τωρινή κατάσταση του πλήθος των δεδομένων παρουσιάζονται πληθώρα ευκαιριών για επίτευξη στόχων και βελτίωση της καθημερινότητας μας. Έχει γίνει πλέον σαφές ότι αναφερόμαστε σε συλλογές δεδομένων όπου το μέγεθος τους καθιστά δύσκολη τη διαχείριση τους από συμβατικές μεθόδους και τεχνολογίες. Τίθεται έτσι το ερώτημα του αν είναι εφικτό να επεξεργαστούμε τέτοια δεδομένα σε αποδεκτούς χρόνους. Αυτό το φαινόμενο, δηλαδή το γεγονός ότι υπάρχουν δεδομένα τα οποία θέλουμε να αναλύσουμε αλλά το μέγεθος τους είναι αποτρεπτικό για οποιαδήποτε εργασία πάνω σε αυτά, ονομάζεται Big Data. Για την επίλυση προβλημάτων μηχανικής μάθησης, έχει προταθεί μία πληθώρα αλγορίθμων. Κάθε αλγόριθμος έχει χαρακτηριστικά τα οποία τον καθιστούν ικανότερο από κάποιον άλλο για να χρησιμοποιηθεί σε κάποια εργασία. Μερικά από αυτά τα χαρακτηριστικά είναι η πολυπλοκότητα χρόνου και χώρου, η δυνατότητα διαχείρισης δεδομένων που περιέχουν συνεχείς τιμές, θόρυβο, απουσία τιμών από εγγραφές όπως επίσης και το αν χρειάζεται να έχουν όλη τη συλλογή φορτωμένη στην κύρια μνήμη. Στις επόμενες παραγράφους θα αναφέρουμε κάποια πράγματα για την κλιμάκωση των αλγορίθμων μηχανικής μάθησης, για το πως χειριζόμαστε συλλογές που είναι μεγάλες αλλά χωράνε στην κύρια μνήμη και προβλήματα που προκύπτουν από το μέγεθος των δεδομένων. Θα δούμε επίσης και πως διαχειριζόμαστε περιπτώσεις πάρα πολλών δεδομένων και τι γίνεται με την κλιμάκωση σε προβλήματα μάθησης πολλαπλών ετικετών. 18

20 2.3.2 Θεωρητικό μοντέλο υπολογισμού και προβλήματα με το μεγέθος των δεδομένων Σε αυτή την παράγραφο θα ασχοληθούμε με την περίπτωση όπου θεωρούμε ότι η κύρια μνήμη έχει απεριόριστο μέγεθος και μπορεί να φορτώσει εξ ολοκλήρου τα δεδομένα εισόδου. Αυτή η παραδοχή συνίσταται όταν ασχολούμαστε με αναλύσεις αλγορίθμων σε θεωρητικό επίπεδο. Είναι γνωστό ότι οι αλγόριθμοι που παρουσιάζουν τα καλύτερα αποτελέσματα, είναι και οι πιο περίπλοκοι και για αυτό και έχουν μεγαλύτερη πολυπλοκότητα. Για παράδειγμα τα SVM θεωρούνται από τους πιο αποτελεσματικούς αλγορίθμους μάθησης. Η πολυπλοκότητα τους όμως είναι Ο( ), πράγμα που σημαίνει ότι καθώς η συλλογή δεδομένων μεγαλώνει, τα SVM γίνονται εξαιρετικά χρονοβόρα. Από την άλλη μεριά, αλγόριθμοι με αποδεκτά αποτελέσματα μπορεί να έχουν πολυπλοκότητα Ο(m). Μερικοί από αυτούς είναι οι online αλγόριθμοι, όπου ο λόγος του χρόνου εκτέλεσης ως προς το πλήθος των δεδομένων, αυξάνεται γραμμικά. Λέμε ότι ένας αλγόριθμος έχει καλή κλιμάκωση όταν οι απαιτήσεις σε χρόνο και χώρο αυξάνονται γραμμικά ή σχεδόν γραμμικά ως προς τον όγκο των δεδομένων εισόδου. Λόγοι για τους οποίους ένας αλγόριθμος έχει αυξημένη πολυπλοκότητα συνήθως είναι πολλαπλασιασμοί πινάκων και επίλυση γραμμικών συστημάτων. Ο πολλαπλασιασμός πινάκων για παράδειγμα έχει πολυπλοκότητα Ο( ), οπότε αν κάποιος αλγόριθμος λειτουργεί με πολλαπλασιασμούς πινάκων τότε δεν κλιμακώνεται γραμμικά. Στο παρελθόν σπάνια συναντούσαμε προβλήματα όπου τα δεδομένα εισόδου δεν χωρούσαν στην κύρια μνήμη. Μάλιστα το μέγεθος τους δεν ξεπερνούσε ακόμα και μερικές εκατοντάδες megabyte. Για παράδειγμα, για να φτάσει μία βάση δεδομένων με 20 χαρακτηριστικά τύπου int να έχει μέγεθος 1 gigabyte, πρέπει να έχει περίπου εγγραφές. Αν αυτές οι εγγραφές αντιπροσωπεύουν πελάτες, τότε μιλάμε για μία τεράστια επιχείρηση. Το ίδιο συμβαίνει και στις μέρες μας. Η πληθώρα των συλλογών δεδομένων συνεχίζουν να έχουν τη δυνατότητα να χωράνε στην κύρια μνήμη, πόσο μάλλον τώρα που ένα οικιακός υπολογιστής μπορεί να έχει ακόμα και 16 gigabyte μνήμη. Είδαμε σε προηγούμενη παράγραφο ότι ζούμε σε μία εποχή όπου τα δεδομένα είναι άπειρα και ότι υπάρχουν πληθώρα ευκαιριών για τη μηχανική μάθηση, οπότε τίθεται το ερώτημα για ποιο λόγο οι συλλογές με τις οποίες εργαζόμαστε συνεχίζουν και έχουν μικρό μέγεθος. Η απάντηση είναι στο γεγονός ότι ακόμα και απεριόριστη μνήμη να έχει κάποιος, μετά από κάποιο μέγεθος οι αλγόριθμοι αργούν πάρα πολύ να τερματίσουν. Είναι αρκετά δύσκολο να δουλεύουμε με συλλογές που ένας αλγόριθμος χρειάζεται αρκετό χρόνο για να τερματίσει. Η ενασχόληση με τη μηχανική μάθηση περιλαμβάνει πειραματισμούς με επιλογές αλγορίθμων και τιμών για τις παραμέτρους τους, οπότε 19

21 θα χρειαστεί αρκετές φορές να τρέξουμε έναν αλγόριθμο για να βγάλουμε κάποια συμπεράσματα. Για παράδειγμα, χρησιμοποιώντας το εργαλείο Weka και τον αλγόριθμο J48, χρειάζονται περίπου 15 λεπτά για την εκπαίδευση από ένα σύνολο δεδομένων με μέγεθος 70 megabyte, οπότε σε μεγαλύτερες συλλογές μπορεί να περιμένουμε ακόμα και ώρες. Να σημειώσουμε εδώ ότι τα δέντρα απόφασης θεωρούνται από τους γρηγορότερους αλγορίθμους μηχανικής μάθησης, όταν δεν έχουμε μεγάλο πλήθος χαρακτηριστικών. Το παραπάνω γεγονός δείχνει τις δυσκολίες που προκύπτουν από το μέγεθος των δεδομένων, ακόμα και όταν αυτό είναι μικρό. Επίσης έχουμε θεωρήσει ότι τα δεδομένα χωράνε εξ ολοκλήρου στην κύρια μνήμη, κάτι το οποίο δεν είναι πάντα αληθές Τεχνικές για ενασχόληση με πολλά δεδομένα που χωράνε στην κύρια μνήμη Είδαμε στην προηγούμενη παράγραφο, ότι είναι δύσκολο να δουλεύουμε με συλλογές δεδομένων που το μέγεθος τους είναι σχετικά μεγάλο. Αυτό όμως δεν πρέπει να σημαίνει ότι θα ασχολούμαστε μόνο με μικρές συλλογές, για αυτό και χρησιμοποιούνται διάφορες τεχνικές στην πράξη. Μία από αυτές τις τεχνικές είναι η μείωση του μεγέθους της συλλογής, έτσι ώστε να φτάσει σε σημείο να μπορεί να χρησιμοποιηθεί αποδοτικά με κάποιον αλγόριθμο. Η πιο διάσημη τεχνική είναι αυτή της υποδειγματοληψίας (subsample), όπου επιλέγουμε ένα ποσοστό των αρχικών δεδομένων για να δημιουργήσουμε μία καινούργια συλλογή. Πρέπει όμως η καινούργια συλλογή να είναι αντιπροσωπευτική της παλιάς, έτσι ώστε να ασχολούμαστε πάλι με το ίδιο πρόβλημα. Άλλη λύση είναι να χρησιμοποιήσουμε πολύ γρήγορους αλγορίθμους. Η γραμμική πολυπλοκότητα είναι από τις καλύτερες περιπτώσεις και πάντα την επιδιώκουμε. Στην περίπτωση όμως της μηχανικής μάθησης όπως είδαμε, τέτοιου είδους αλγόριθμοι δεν έχουν καλή ακρίβεια πρόβλεψης. Υπάρχει μία αντιστάθμιση όσον αφορά χρονική απόδοση και αποτελέσματα. Πολλές φορές όταν θέλουμε να επιταχύνουμε αλγοριθμικές διαδικασίες, αυτό που κάνουμε είναι να διαιρούμε το πρόβλημα σε μικρότερα και να τα εξετάζουμε παράλληλα. Για παράδειγμα μπορεί κάποιος αλγόριθμος να χρειάζεται να υπολογίσει ένα άθροισμα προσθέτοντας τιμές από εγγραφές. Άμα οι εγγραφές είναι πάρα πολλές, μπορούμε να διαιρέσουμε το πλήθος τους και να υπολογίσουμε το άθροισμα παράλληλα, σε περισσότερους από έναν επεξεργαστές. Αναφέραμε ότι ο πολλαπλασιασμός πινάκων είναι χρονοβόρα διαδικασία και έχουν προταθεί για αυτόν τον λόγο αλγόριθμοι για παραλληλοποίηση της διαδικασίας. Επίσης έχουν προταθεί και εκδόσεις αλγορίθμων που αξιοποιούν τον παραλληλισμό. Ζούμε στην εποχή του cloud computing, στην εποχή όπου οι οικιακοί υπολογιστές, ακόμα και τα κινητά 20

22 τηλέφωνα πλέον έχουν πολλούς επεξεργαστές, οπότε έχουμε τα μέσα να παραλληλοποιούμε αλγορίθμους Big Data Στην περίπτωση του Big Data, τα δεδομένα πλέον δεν μπορούν να φορτωθούν στην κύρια μνήμη. Αναφερόμαστε σε συλλογές οι οποίες έχουν μεγέθη που κυμαίνονται από λίγες δεκάδες gigabyte μέχρι ακόμα και petabytes. Λόγοι για τους οποίους υπάρχουν τέτοιες συλλογές και για ποιο λόγο χρειάζεται να τις επεξεργαστούμε, αναφέρθηκαν σε προηγούμενη παράγραφο. Μπορούμε πάντα να μειώσουμε το μέγεθος των δεδομένων ώστε να χωρέσουν στην κύρια μνήμη, αλλά στην περίπτωση του Big Data μπορεί να είναι και ανούσιο. Για παράδειγμα με το να μειώσουμε μία συλλογή του ενός terabyte σε μερικά gigabytes, χάνουμε σχεδόν όλα μας τα δεδομένα και σε καμία περίπτωση το καινούργιο πρόβλημα δεν μοιάζει με το αρχικό. Η μοναδική λύση στην περίπτωση του Big Data, είναι να διαιρέσουμε την αρχική συλλογή σε μικρότερα κομμάτια και να τα φορτώνουμε σταδιακά στην κύρια μνήμη, όπου και θα τα επεξεργάζεται ο αλγόριθμος μας. Με αυτήν τη λογική λειτουργούν οι online αλγόριθμοι, οι οποίοι δέχονται μία εγγραφή κάθε φορά και ανανεώνουν το μοντέλο. Η συλλογή βρίσκεται σε αρχεία στο δίσκο, τα οποία φορτώνονται σταδιακά στη μνήμη και όταν έχουν επεξεργαστεί όλες οι εγγραφές από ένα αρχείο, τότε έρχεται το επόμενο. Βέβαια πλέον υπάρχει και το κόστος των εγγραφών/αναγνώσεων από το δίσκο, όπου είναι γνωστό ότι αποτελούν αρκετά χρονοβόρες διαδικασίες μέσα σε ένα υπολογιστικό σύστημα. Το κόστος αυτό όμως είναι κάτι το οποίο δεν μπορούμε να αποφύγουμε, οπότε απλά κοιτάμε να γίνονται όσο λιγότερες επισκέψεις στο δίσκο είναι δυνατό. Υπάρχουν όμως και αλγόριθμοι, οι οποίοι πρέπει να έχουν όλα τα δεδομένα φορτωμένα στη μνήμη για να λειτουργήσουν. Τέτοιοι αλγόριθμοι είναι για παράδειγμα τα δέντρα απόφασης, όπως ο J48 και ο ID3. Σε αυτήν την περίπτωση θα πρέπει να βρεθούν εκδόσεις δέντρων απόφασης που να δουλεύουν με σταδιακή φόρτωση όλη της συλλογής στη μνήμη. Φυσικά ότι έχουμε αναφέρει για παραλληλισμό της διαδικασίας της μηχανικής μάθησης, συνεχίζει και ισχύει και για το Big Data και μάλιστα είναι ακόμα πιο αναγκαίος. Άμα μερικά gigabytes φορτωμένα στην κύρια μνήμη πρέπει να επεξεργαστούν παράλληλα για να μειώσουμε το χρονικό κόστος, φανταστείτε πόσο πιο ανάγκη έχουμε την παράλληλη επεξεργασία όταν έχουμε terabytes αποθηκευμένα στο σκληρό δίσκο. Να σημειώσουμε εδώ ότι όταν αναφερόμαστε σε πάρα πολλά δεδομένα και σε παράλληλα συστήματα, ο όρος κλιμάκωση δεν έχει την ίδια ακριβώς σημασία που 21

23 έχει σε ένα σύστημα μόνο. Με την παραλληλοποίηση, θέλουμε να επιτύχουμε καλούς χρόνους και όχι γραμμική κλιμάκωση. Για παράδειγμα σε έναν αλγόριθμο που έχει Ο( ) πολυπλοκότητα, με την παραλληλοποίηση δεν τον κάνουμε γραμμικό αλλά απλά μειώνουμε το χρονικό κόστος. Οπότε ο όρος κλιμάκωση σε τέτοιου είδους προβλήματα μετατρέπεται στην έκφραση διαχείριση πάρα πολλών δεδομένων σε αποδεκτούς χρόνους Κλιμάκωση μάθησης πολλαπλών ετικετών Οι πολυπλοκότητες των αλγορίθμων εμφανίζονται συναρτήσει του πλήθους των αντικειμένων, των χαρακτηριστικών και στην περίπτωση του multi-label learning και του αριθμού των ετικετών. Βλέπουμε δηλαδή ότι η μάθηση πολλαπλών ετικετών είναι περισσότερο περίπλοκη διαδικασία από τη μάθηση με μία ετικέτα. Έχουμε ήδη δει πόσο επηρεάζει ο αριθμός ετικετών τη χρονική απόδοση της μεθόδου LP και BR. Όσον αφορά τη μέθοδο μετασχηματισμού προβλήματος, είναι εύκολο να δει κανείς ότι μπορούμε εύκολα να παραλληλοποιήσουμε τη διαδικασία. Για παράδειγμα στη BR μέθοδο, μπορούμε παράλληλα να εκπαιδεύσουμε όλα τα μοντέλα που αντιστοιχούν σε κάθε ετικέτα. Το κάθε μοντέλο ουσιαστικά χτίζεται μετά, με τους τρόπους που είδαμε σε προηγούμενες παραγράφους. Το ίδιο ισχύει και για τη μέθοδο προσαρμογής αλγορίθμου, μόνο που τώρα έχουμε ένα μοντέλο μόνο. 2.4 Hadoop Ως τώρα έχουμε αναφέρει αρκετές φορές τους όρους απεριόριστα δεδομένα, παραλληλοποίηση, πολλές μονάδες επεξεργασίας, χωρίς να δώσουμε μεγάλη έμφαση σε τεχνικά θέματα. Τα πράγματα όμως δεν είναι τόσο απλά. Προφανώς τα terabyte δεδομένων που μπορεί να έχουμε, δεν χωράνε σε έναν σκληρό δίσκο μόνο. Οι σημερινοί δίσκοι φτάνουν μέχρι ελάχιστα terabyte οπότε αναγκαστικά θα πρέπει να έχουμε παραπάνω από έναν. Επίσης έχουμε μιλήσει για πολλές μονάδες επεξεργασίας. Ένας σημερινός επεξεργαστής μπορεί να έχει ακόμα και 8 πυρήνες επεξεργασίας, που είναι αρκετοί για ένα σύνολο δεδομένων μέχρι μερικές δεκάδες gigabytes. Οπότε σίγουρα θα χρειαστούμε περισσότερους αν είναι να ασχοληθούμε με πολύ μεγάλες συλλογές Αρχιτεκτονικές υπολογιστών και διαφάνεια Υπάρχουν πολλές αρχιτεκτονικές υπολογιστών που μπορούν να φιλοξενήσουν και να διαχειριστούν μεγάλους όγκους δεδομένων. Για παράδειγμα μπορούμε να έχουμε ένα 22

24 σύστημα που περιέχει μία συστοιχία δίσκων σε RAID και μία πισίνα από επεξεργαστές (processor pool) που αναλαμβάνουν να διεκπεραιώνουν εργασίες. Άλλη αρχιτεκτονική είναι το grid computing, το οποίο χρησιμοποιείται σε περιπτώσεις που έχουμε πολύ βαριές εργασίες, όπως είναι το rendering των γραφικών. Όπως είπαμε υπάρχουν πολλές αρχιτεκτονικές υπολογιστών. Οι περισσότερες όμως υπολείπονται ενός πολύ βασικού χαρακτηριστικού, που ονομάζεται διαφάνεια. Ουσιαστικά η διαφάνεια αποκρύπτει στους χρήστες λεπτομέρειες του συστήματος που είναι ευθύνη των διαχειριστών και των δημιουργών του να ασχοληθούν με αυτές. Για παράδειγμα ένα χρήστη τον ενδιαφέρει να χρησιμοποιεί ένα σύστημα ζητώντας αρχεία, εκτελώντας κώδικα και γενικά να κάνει εργασίες. Δεν θέλει να ασχολείται με το που γίνονται οι υπολογισμοί, που βρίσκεται το αρχείο που ψάχνει και γενικά όλο το παρασκήνιο. Η διαφάνεια δίνει τη δυνατότητα να ασχοληθεί κάποιος με αυτό που πραγματικά θέλει, χωρίς περιττές εργασίες. Ας δούμε πως λειτουργεί ένας χρήστης σε ένα σύστημα που υπολείπεται της διαφάνειας που αναφέραμε. Θα πρέπει να γνωρίζει επακριβώς όλους τους διαθέσιμους πόρους που έχει στη διάθεση του. Στη συγγραφή κώδικα, θα πρέπει να συμπεριλάβει αρκετά πράγματα παραπάνω από αυτά που χρειάζεται για την εργασία του, όπως για παράδειγμα το όνομα του υπολογιστή ή των υπολογιστών που θα γίνουν οι υπολογισμοί, τα ονόματα των πόρων που τον ενδιαφέρουν. Επίσης πρέπει να ασχοληθεί και με τη συνδεσμολογία των πόρων, καθώς ίσως να χρειαστεί να επεκτείνει το σύστημα. Ο κώδικας του και αυτός μετά χρειάζεται αλλαγές. Όταν όμως υπάρχει η διαφάνεια, πολλές από αυτές τις extra υποχρεώσεις, παραλείπονται. Το πιο κλασικό παράδειγμα συστήματος με διαφάνεια, είναι ο παγκόσμιος ιστός. Όταν δίνουμε ένα ερώτημα σε μία μηχανή αναζήτησης, δεν γνωρίζουμε τι ακριβώς γίνεται και απλά μας ενδιαφέρει να επιστραφούν σωστά και γρήγορα τα αποτελέσματα. Όταν αποθηκεύουμε κάτι μέσω κάποιας υπηρεσίας στο Διαδίκτυο, δεν γνωρίζουμε που βρίσκεται αλλά ξέρουμε ότι μπορούμε να το ζητήσουμε οποιαδήποτε στιγμή το θελήσουμε. Τα τελευταία χρόνια έχει εμφανιστεί ο όρος cloud computing, όπου πρόκειται για μία υπηρεσία που δίνει τη δυνατότητα σε χρήστες να χρησιμοποιήσουν απεριόριστους πόρους για τις εργασίες τους. Η αρχιτεκτονική που υιοθετεί περισσότερο από όλες την διαφάνεια, είναι τα κατανεμημένα συστήματα. Τα κατανεμημένα συστήματα είναι πόροι κατανεμημένοι σε ένα δίκτυο, οι οποίοι αξιοποιούνται από ένα λειτουργικό σύστημα. Το λειτουργικό αυτό κάνει ακριβώς την ίδια δουλειά με τα κλασικά λειτουργικά συστήματα. Οπότε, ο χρήστης βλέπει όλες τις μονάδες επεξεργασίας που υπάρχουν σαν μία και το ίδιο ακριβώς γίνεται με τα μέσα αποθήκευσης. Οι διεργασίες και οι αλγόριθμοι που τρέχουν, έχουν τη δυνατότητα να ζητήσουν περισσότερους πόρους, να μεταναστεύσουν από μία μονάδα επεξεργασίας σε άλλη. Επίσης υπάρχει και η δυνατότητα για δημιουργία παράλληλων αλγορίθμων. 23

25 Τα πάντα αποκρύπτονται από τον χρήστη, πέραν βέβαια από αυτών που τον ενδιαφέρουν άμεσα. Το να χρησιμοποιήσουμε μία αρχιτεκτονική υπολογιστών από την οποία απουσιάζει η διαφάνεια για να διαχειριστούμε προβλήματα ευρείας κλίμακας, δυσκολεύει ακόμα πιο πολύ το έργο μας. Θέλουμε οι αλγόριθμοι που φτιάχνουμε να ζητούν μόνοι τους παραπάνω πόρους, να επεκτείνουμε το σύστημα μας εύκολα και γρήγορα, θέματα αξιοπιστίας να λύνονται αυτόματα. Έτσι εμείς κάνουμε ότι θα κάναμε στον προσωπικό μας υπολογιστή για ένα πολύ μικρό σύνολο δεδομένων Hadoop Τα τελευταία χρόνια υπάρχει μία έξαρση στα κατανεμημένα συστήματα, με κορυφαίο παράδειγμα το Hadoop της Apache. Πρόκειται για μία πλατφόρμα που επιτρέπει σε απλούς χρήστες να στήσουν ένα δικό τους κατανεμημένο σύστημα, εύκολα και γρήγορα. Το Hadoop θα χρησιμοποιηθεί σε αυτήν την πτυχιακή εργασία για την ανάπτυξη δύο αλγορίθμων. Το Hadoop είναι μία ανοικτού λογισμικού έκδοση που περιγράφεται σε μία σειρά δημοσιεύσεων της Google. Το 2003 η Google δημοσίευσε ένα κατανεμημένο σύστημα αρχείων (Google distributed filesystem-gfs), ικανό να αποθηκεύσει και να διαχειριστεί με επάρκεια απεριόριστο πλήθος δεδομένων (Ghemawat et al., 2003). Την επόμενη χρονιά δημοσίευσε μία τεχνική για παράλληλη επεξεργασία τεράστιου όγκου δεδομένων, γνωστή ως Map/Reduce (Dean & Ghemawat.,2004). Δύο χρόνια αργότερα έδωσε στο κοινό ένα σύστημα για συγχρονισμό κατανεμημένων συστημάτων (Burrows., 2006). Το Hadoop ξεκίνησε ως μία μηχανή αναζήτησης, το Nutch και δημιουργός της ήταν ο Doug Cutting. Οι φιλοδοξίες για το Nutch ήταν να γίνει μία εφαρμογή του ιστού, αλλά είχε αρκετά προβλήματα κλιμάκωσης. Την περίοδο , με τις δημοσιεύσεις του GFS και του Map/Reduce ο Doug κατάφερε να αναβαθμίσει το Nutch το οποίο όμως ακόμα δεν μπορούσε να ανέβει στο Διαδίκτυο. Να αναφέρουμε εδώ ότι το συγκεκριμένο project είχε ελάχιστους προγραμματιστές. Τελικά την περίοδο , η Yahoo προσέλαβε τον Doug και δημιουργήθηκε μία ομάδα προγραμματιστών, εξ ολοκλήρου για αυτόν τον σκοπό. Το αποτέλεσμα ήταν το Hadoop, όπου έκανε το πρώτο μεγάλο χτύπημα το 2008 με την Yahoo να καταφέρνει σε ένα cluster της να ταξινομήσει 1 terabyte δεδομένων σε 209 δευτερόλεπτα. Έκτοτε το Hadoop είναι μία από τις δημοφιλέστερες πλατφόρμες για επεξεργασία τεράστιου όγκου δεδομένων και χρησιμοποιείται κατά κόρον από επιχειρηματικούς κολοσσούς, όπως Yahoo, Facebook, Twitter και πολλές άλλες. Να αναφέρουμε ότι το Hadoop αποτελείται από το HDFS (Hadoop Distributed File System), το Hadoop Map/Reduce και το Zookeeper, σύστημα αντίστοιχο του Chubby της Google. 24

26 2.4.3 Hadoop Distributed Filesystem Το HDFS είναι ένα κατανεμημένο σύστημα αρχείων εμπνευσμένο από το GFS. Αποτελείται από τρεις διακριτούς ρόλους, τον Namenode, τον Secondary Namenode και τους Datanodes και υπάρχει μία σχέση master/workers ανάμεσα σε Namenode και Datanodes. Ο Namenode είναι ο master του HDFS. Στο HDFS τα αρχεία χωρίζονται σε μικρότερα κομμάτια που ονομάζονται blocks και έχουν μέγεθος συνήθως 64 megabytes. Ο Namenode δεν αποθηκεύει αυτά τα blocks, αλλά είναι υπεύθυνος για όλο το namespace του συστήματος αρχείων. Διατηρεί όλα τα μεταδεδομένα, όπως τη μορφή του συστήματος αρχείων με τα directories και τους φακέλους, τις τοποθεσίες των block και των αντιγράφων τους. Όταν ένας χρήστης επιθυμεί ένα αρχείο, ο HDFS client του επικοινωνεί με τον Namenode, ο οποίος του δίνει τις τοποθεσίες των υπολογιστών με τα block που αποτελούν το αρχείο. Ο Namenode επικοινωνεί τακτικά με τους Datanodes για να δει την κατάσταση τους και όποιες αλλαγές έχουν συμβεί για να ανανεώσει τα μεταδεδομένα του. Επειδή είναι μία μόνο η διεργασία του Namenode, αποτελεί και σημείο αποτυχίας για όλο το HDFS. Υπάρχει όμως ο Secondary Namenode, ο οποίος είναι υπεύθυνος για τη δημιουργία της εικόνας που έχει ο Namenode κάθε στιγμή, έτσι ώστε να γίνει γρήγορη επανεκκίνηση του Namenode. Οι Datanodes είναι οι εργάτες του HDFS. Αποθηκεύουν τα blocks και τα επιστρέφουν όποτε τους ζητηθεί. Επίσης επικοινωνούν με τον Namenode για τυχών αλλαγές στα δεδομένα που έχουν αποθηκεύσει. Μία τέτοια αλλαγή μπορεί να είναι το γεγονός ότι ένα από τα block που έχουν αποθηκευμένα ξεπέρασε το όριο των 64 megabytes και πρέπει να δημιουργηθεί καινούργιο block. Εικόνα 6: Αρχιτεκτονική HDFS 25

27 Στην εικόνα 6 βλέπουμε την αρχιτεκτονική του HDFS. Έχουμε δύο ομάδες από Datanodes, όπου κάθε Datanode έχει αποθηκευμένα κάποια block. O Namenode όπως είπαμε κρατάει τα μεταδεδομένα του συστήματος αρχείων και διαχειρίζεται ως ένα σημείο την κατάσταση του. Ένα σενάριο χρήσης είναι το εξής: Ο πάνω αριστερά χρήστης ζητάει από τον Namenode την τοποθεσία κάποιων blocks και στη συνέχεια επικοινωνεί με τον Datanode που περιέχει τα συγκεκριμένα blocks και πραγματοποιεί ανάγνωση τους Hadoop Map/Reduce Το Map/Reduce είναι ένα προγραμματιστικό μοντέλο που δίνει τη δυνατότητα να επεξεργαστούμε πάρα πολλά δεδομένα. Είναι αρκετά απλό μοντέλο αλλά πολλές φορές είναι δύσκολο να εκφράσουμε ένα πρόβλημα στη Map/Reduce λογική. Το Map/Reduce αποτελείται από δύο φάσεις, τη Map και τη Reduce. Ας δούμε κάπως αφαιρετικά την όλη διαδικασία. Αρχικά τα δεδομένα που υπάρχουν στη διάθεση μας χωρίζονται σε μικρότερες ομάδες, τα splits. Κάθε μία από αυτές τις ομάδες είναι ένα map task το οποίο αποτελεί μία εργασία για μία μονάδα επεξεργασίας. Για παράδειγμα μπορεί να έχουμε 10 map tasks και 5 υπολογιστές. Τότε κάθε υπολογιστής μπορεί να αναλάβει 2 map tasks. Σε ένα map task τα δεδομένα έρχονται συνήθως σειρά σειρά και σε κάθε σειρά γίνονται κάποιες εργασίες από όπου προκύπτει και μία έξοδος για την κάθε μία. Αυτές οι εργασίες είναι ίδιες για κάθε σειρά και map task και αποτελούν το map function. To map function όπως είπαμε δέχεται σειρές δεδομένων που έχουν τη μορφή <key, value>. Συνήθως αυτό που μας ενδιαφέρει σε αυτήν τη φάση είναι μόνο το value που είναι τα δεδομένα μας. Το key περιέχει κάποιες πληροφορίες όπως θέση του value μέσα στο αρχείο. Ύστερα στο value γίνονται κάποιες διεργασίες και προκύπτει ένα νέο <key, value> ζευγάρι. Όταν τελειώσει όλη η φάση του Map, τότε είναι η σειρά του Reduce. Όλα τα ζευγάρια που έχουν δημιουργηθεί, κατανέμονται σε νέες μονάδες επεξεργασίας ανάλογα με το key. Τα κλειδιά γενικά δεν είναι κάτι αυθαίρετο, αλλά χρησιμοποιούνται για να δημιουργηθούν ομάδες ζευγαριών που έχουν το ίδιο key. Έτσι προκύπτουν ζευγάρια του τύπου <key, list (value)>. Μετά κάθε reduce task αναλαμβάνει για κάθε key που του έχει ανατεθεί, να κάνει μία εργασία πάνω στη λίστα από values. Αυτή η εργασία είναι πάλι ίδια για κάθε reduce task και αποτελεί το reduce function. Έτσι προκύπτει μία έξοδος από κάθε reduce task. Όταν τελειώσει και η Reduce φάση θα έχει προκύψει μία έξοδος. Το πιο κλασικό παράδειγμα για να καταλάβει κανείς το Map/Reduce, φαίνεται στην παρακάτω εικόνα και πρόκειται για τη δημιουργία ενός αντεστραμμένου καταλόγου. 26

28 map(string key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1"); reduce(string key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result)); Εικόνα 7: Δημιουργία αντεστραμμένου καταλόγου με Map/Reduce Αρχικά έχουμε μία συλλογή από έγγραφα. Κάθε ένα από αυτά τα έγγραφα αποτελεί είσοδο για ένα map task. Είναι δηλαδή το value που αναφέραμε παραπάνω, όπου είπαμε ότι συνήθως έχει τη μορφή μίας γραμμής. Στην περίπτωση μας όμως, για λόγους απλότητας είναι ένα ολόκληρο έγγραφο. Οπότε αν έχουμε για παράδειγμα δέκα έγγραφα, τότε έχουμε και 10 map tasks όπου στο καθένα θα εφαρμοστεί η ίδια map function. Η map function διαβάζει κάθε λέξη του εγγράφου και βγάζει στην έξοδο ζευγάρια της μορφής <λέξη, 1>. Αφού τελειώσει η Map φάση, ξεκινάει η Reduce. Η είσοδος για κάθε reduce task είναι της μορφής <λέξη, λίστα από 1>. Για κάθε λέξη λοιπόν, αρχικοποιεί μία μεταβλητή sum και διατρέχει τη λίστα προσθέτοντας τους άσσους. Στο τέλος βγάζει στην έξοδο το ζευγάρι <λέξη, αριθμός εμφανίσεων>. Όταν θα τελειώσουν όλα τα reduce task θα έχει δημιουργηθεί ένας αντεστραμμένος κατάλογος. Το Map/Reduce έχει δύο διακριτούς ρόλους, τον Jobtracker και τους Tasktrackers που έχουν όπως και στην περίπτωση του HDFS, σχέση master/workers. Ο Jobtracker είναι ο master του Map/Reduce. Αναλαμβάνει να αναθέτει map tasks και reduce tasks στους Tasktrackers. Ο χρήστης αναθέτει στον Jobtracker δουλειές, τα λεγόμενα jobs. Ουσιαστικά job είναι μία επεξεργασία που θέλουμε να κάνουμε σε δεδομένα και αποτελείται από τα δεδομένα, το map function και το reduce function. Ο Jobtracker παρακολουθεί όλη τη διαδικασία και αναθέτει σε αδρανείς Tasktrackers map και reduce tasks. Οι Tasktrackers επιτελούν εργασίες map ή reduce στα δεδομένα και ενημερώνουν τον Jobtracker για την κατάσταση τους. Στην παρακάτω εικόνα βλέπουμε την όλη διαδικασία. 27

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

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

EPL 660: Lab 4 Introduction to Hadoop

EPL 660: Lab 4 Introduction to Hadoop EPL 660: Lab 4 Introduction to Hadoop Andreas Kamilaris Department of Computer Science MapReduce Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

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

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

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

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

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων Μαζικός Παραλληλισμός λ με Map - Reduce Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων Ευχαριστίες Οι διαφάνειες στηρίζονται σε μεγάλο βαθμό στο υλικό που είναι διαθέσιμο από το εργαστήριο

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

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

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

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

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

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

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

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

Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων. Δρ. Ε. Χάρου

Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων. Δρ. Ε. Χάρου Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων Δρ. Ε. Χάρου Πρόγραμμα υπολογιστικής ευφυίας Ινστιτούτο Πληροφορικής & Τηλεπικοινωνιών ΕΚΕΦΕ ΔΗΜΟΚΡΙΤΟΣ exarou@iit.demokritos.gr Μηχανική

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

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

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

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Εισηγητής: ρ Ηλίας Ζαφειρόπουλος Εισαγωγή Ιατρικά δεδοµένα: Συλλογή Οργάνωση Αξιοποίηση Data Mining ιαχείριση εδοµένων Εκπαίδευση

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

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 6η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

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

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα Τεχνητή Νοημοσύνη (Artificial Intelligence) Ανάπτυξη μεθόδων και τεχνολογιών για την επίλυση προβλημάτων στα οποία ο άνθρωπος υπερέχει (?) του υπολογιστή Συλλογισμοί

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

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού Ενότητα 2- Οι αρχές της agile προσέγγισης Δρ. Δημήτριος Τσέλιος Καθηγητής Εφαρμογών Τμήμα Μηχανικών Πληροφορικής Τ.Ε.- ΤΕΙ Θεσσαλίας Μεταπτυχιακό Πρόγραμμα

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

Αξιοποίηση της συσχέτισης μεταξύ λέξεων για τη βελτίωση του προσεγγιστικού φιλτραρίσματος πληροφορίας

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

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

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38 Περιεχόμενα ΠΡΟΛΟΓΟΣ... 11 ΔΙΑΔΙΚΤΥΟ... 13 1. ΙΣΤΟΡΙΑ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ... 15 2. ΤΙ ΕΙΝΑΙ ΤΟ ΔΙΑΔΙΚΤΥΟ INTERNET;... 16 3. ΤΙ ΠΡΟΣΦΕΡΕΙ ΤΟ ΔΙΑΔΙΚΤΥΟ, ΤΙ ΜΠΟΡΕΙ ΝΑ ΒΡΕΙ ΚΑΝΕΙΣ... 19 4. ΤΙ ΑΠΑΙΤΕΙΤΑΙ ΓΙΑ ΝΑ

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά:

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά: Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013 Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr Εισαγωγικά: Η υλοποίηση του project έχει γίνει σε python [2.7]. Τα python modules είναι αυτόνομα

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

Τεχνητή Νοημοσύνη. 17η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 17η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 17η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Artificia Inteigence A Modern Approach των S. Russe και

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

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

Τεχνολογίες Πληροφορικής και Επικοινωνιών (ΤΠΕ) στις Μικρομεσαίες Επιχειρήσεις (ΜΜΕ)

Τεχνολογίες Πληροφορικής και Επικοινωνιών (ΤΠΕ) στις Μικρομεσαίες Επιχειρήσεις (ΜΜΕ) Τεχνολογίες Πληροφορικής και Επικοινωνιών (ΤΠΕ) στις Μικρομεσαίες Επιχειρήσεις (ΜΜΕ) Γιώργος Μανής Επίκουρος Καθηγητής Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων Τι είναι οι Τεχνολογίες

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Πώς λειτουργεί το Google?

Πώς λειτουργεί το Google? Πώς λειτουργεί το Google? Στα άδυτα του Γίγαντα της Αναζήτησης! Το να ψάξουμε κάτι στο Google είναι κάτι τόσο καθημερινό για τους περισσότερους από εμάς, που το θεωρούμε δεδομένο. Αυτό που ίσως ξεχνάμε

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

Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη

Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη 6 ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» Φλώρινα, 20-22 Απριλίου 2012 Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη Σάββας Νικολαΐδης 1 ο

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

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2010-2011 ΑΣΚΗΣΗ Συγκομιδή και δεικτοδότηση ιστοσελίδων Σκοπός της άσκησης είναι η υλοποίηση ενός ολοκληρωμένου συστήματος συγκομιδής και δεικτοδότησης ιστοσελίδων.

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

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

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

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

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

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

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

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

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

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

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

Διδάσκουσα: Χάλκου Χαρά,

Διδάσκουσα: Χάλκου Χαρά, Διδάσκουσα: Χάλκου Χαρά, Διπλωματούχος Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Η/Υ, MSc e-mail: chalkou@upatras.gr Επιβλεπόμενοι Μη Επιβλεπόμενοι Ομάδα Κατηγορία Κανονικοποίηση Δεδομένων Συμπλήρωση Ελλιπών

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

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

Μαθηματικά: Αριθμητική και Άλγεβρα. Μάθημα 3 ο, Τμήμα Α. Τρόποι απόδειξης

Μαθηματικά: Αριθμητική και Άλγεβρα. Μάθημα 3 ο, Τμήμα Α. Τρόποι απόδειξης Μαθηματικά: Αριθμητική και Άλγεβρα Μάθημα 3 ο, Τμήμα Α Ο πυρήνας των μαθηματικών είναι οι τρόποι με τους οποίους μπορούμε να συλλογιζόμαστε στα μαθηματικά. Τρόποι απόδειξης Επαγωγικός συλλογισμός (inductive)

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

Τσάπελη Φανή ΑΜ: 2004030113. Ενισχυτική Μάθηση για το παιχνίδι dots. Τελική Αναφορά

Τσάπελη Φανή ΑΜ: 2004030113. Ενισχυτική Μάθηση για το παιχνίδι dots. Τελική Αναφορά Τσάπελη Φανή ΑΜ: 243113 Ενισχυτική Μάθηση για το παιχνίδι dots Τελική Αναφορά Περιγραφή του παιχνιδιού Το παιχνίδι dots παίζεται με δύο παίχτες. Έχουμε έναν πίνακα 4x4 με τελείες, και σκοπός του κάθε παίχτη

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΗΜΕΡ.ΑΝΑΘΕΣΗΣ: Δευτέρα 21 Δεκεμβρίου 2015 ΗΜΕΡ.ΠΑΡΑΔΟΣΗΣ: Δευτέρα 25 Ιανουαρίου 2016 Διδάσκοντες:

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Καλώς ήλθες. Στο προηγούμενο μάθημα είδαμε τις λειτουργίες του μενού File του Editor της Unity. Όπως είπαμε οι δύο επιλογές που διαφέρουν

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιο λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους

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

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

Ανάπτυξη συστήματος ερωταποκρίσεων για αρχεία ελληνικών εφημερίδων Ανάπτυξη συστήματος ερωταποκρίσεων για αρχεία ελληνικών εφημερίδων Οικονομικό Πανεπιστήμιο Αθηνών Πρόγραμμα Μεταπτυχιακών Σπουδών «Επιστήμη των Υπολογιστών» Διπλωματική Εργασία Μαρία-Ελένη Κολλιάρου 2

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

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

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

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

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

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

Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση 24/6/2013. Τηλεπισκόπηση. Κ. Ποϊραζίδης ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ

Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση 24/6/2013. Τηλεπισκόπηση. Κ. Ποϊραζίδης ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ Κ. Ποϊραζίδης Η ταξινόμηση εικόνας αναφέρεται στην ερμηνεία με χρήση υπολογιστή των τηλεπισκοπικών εικόνων. Παρόλο που ορισμένες διαδικασίες έχουν τη δυνατότητα να συμπεριλάβουν πληροφορίες

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους από τους

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

Κάνοντας ακριβέστερες μετρήσεις με την βοήθεια των Μαθηματικών. Ν. Παναγιωτίδης, Υπεύθυνος ΕΚΦΕ Ν. Ιωαννίνων

Κάνοντας ακριβέστερες μετρήσεις με την βοήθεια των Μαθηματικών. Ν. Παναγιωτίδης, Υπεύθυνος ΕΚΦΕ Ν. Ιωαννίνων Κάνοντας ακριβέστερες μετρήσεις με την βοήθεια των Μαθηματικών Ν. Παναγιωτίδης, Υπεύθυνος ΕΚΦΕ Ν. Ιωαννίνων Αν κάναμε ένα τεστ νοημοσύνης στους μαθητές και θέταμε την ερώτηση: Πως μπορεί να μετρηθεί το

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 10: Δημιουργία Βάσεων Κανόνων Από Δεδομένα-Προετοιμασία συνόλου δεδομένων Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δημιουργία Βάσεων Κανόνων

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

Βάσεις Δεδομένων Ενότητα 1

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

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

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

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

ΠΑΡΟΥΣΙΑΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ο Κεφάλαιο: Στατιστική ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Πληθυσμός: Λέγεται ένα σύνολο στοιχείων που θέλουμε να εξετάσουμε με ένα ή περισσότερα χαρακτηριστικά. Μεταβλητές X: Ονομάζονται

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

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

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

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

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

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Καθηγητής : Κουμπαράκης Μανόλης Ημ/νία παράδοσης: 11/01/2011 Ονομ/μο φοιτητή : Μπεγέτης Νικόλαος Α.Μ.:

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

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

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Όνοµα: Νικολαΐδης Αντώνιος Επιβλέπων: Τ. Σελλής Περίληψη ιπλωµατικής Εργασίας Συνεπιβλέποντες: Θ. αλαµάγκας, Γ. Γιαννόπουλος

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

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Μάθηση και γνώση: μια συνεχής και καθοριστική αλληλοεπίδραση Αντώνης Λιοναράκης Στην παρουσίαση που θα ακολουθήσει θα μιλήσουμε

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

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

Τεχνικές Μηχανικής Μάθησης για Ροές Δεδομένων με Πολλαπλές Ετικέτες

Τεχνικές Μηχανικής Μάθησης για Ροές Δεδομένων με Πολλαπλές Ετικέτες ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ, ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τεχνικές Μηχανικής Μάθησης για Ροές Δεδομένων με Πολλαπλές Ετικέτες Καρπόνη Κωνσταντίνα Επιβλέπων Καθηγητής: Τσουμάκας Γρηγόριος 24/2/2016 Πίνακας

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

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning Βόλτσης Βαγγέλης Α.Μ. 2011030017 Η παρούσα εργασία πραγματοποιήθηκε στα πλαίσια του μαθήματος Αυτόνομοι Πράκτορες και σχετίζεται με λήψη αποφάσεων

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

1 Εισαγωγή στις Συνδυαστικές Δημοπρασίες - Combinatorial Auctions

1 Εισαγωγή στις Συνδυαστικές Δημοπρασίες - Combinatorial Auctions ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015 Συμπληρωματικές σημειώσεις για τον μηχανισμό VCG 1 Εισαγωγή στις Συνδυαστικές

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

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

Διαχείριση Πολιτισμικών Δεδομένων

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

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

ΦΟΙΤΗΤΡΙΑ: ΠΑΤΣΑΤΖΑΚΗ ΕΛΕΝΗ, ΑΕΜ:3196 ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ : ΥΕ258 ΕΝΑΛΛΑΚΤΙΚΕΣ ΜΟΡΦΕΣ ΑΞΙΟΛΟΓΗΣΗΣ ΤΩΝ ΓΛΩΣΣΙΚΩΝ ΔΕΞΙΟΤΗΤΩΝ

ΦΟΙΤΗΤΡΙΑ: ΠΑΤΣΑΤΖΑΚΗ ΕΛΕΝΗ, ΑΕΜ:3196 ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ : ΥΕ258 ΕΝΑΛΛΑΚΤΙΚΕΣ ΜΟΡΦΕΣ ΑΞΙΟΛΟΓΗΣΗΣ ΤΩΝ ΓΛΩΣΣΙΚΩΝ ΔΕΞΙΟΤΗΤΩΝ 2015 ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ : ΥΕ258 ΕΝΑΛΛΑΚΤΙΚΕΣ ΜΟΡΦΕΣ ΑΞΙΟΛΟΓΗΣΗΣ ΤΩΝ ΓΛΩΣΣΙΚΩΝ ΔΕΞΙΟΤΗΤΩΝ ΦΟΙΤΗΤΡΙΑ: ΠΑΤΣΑΤΖΑΚΗ ΕΛΕΝΗ, ΑΕΜ:3196 ΕΠΙΒΛΕΠΟΥΣΑ ΚΑΘΗΓΗΤΡΙΑ: ΓΡΙΒΑ ΕΛΕΝΗ 5/2/2015 ΕΙΣΑΓΩΓΗ Αυτό το portfolio φτιάχτηκε

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

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

Εργαστήριο Προγραμματισμού και τεχνολογίας Ευφυών συστημάτων (intelligence)

Εργαστήριο Προγραμματισμού και τεχνολογίας Ευφυών συστημάτων (intelligence) Εργαστήριο Προγραμματισμού και τεχνολογίας Ευφυών συστημάτων (intelligence) http://www.intelligence.tuc.gr Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Το εργαστήριο Ένα από τα 3 εργαστήρια του

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή.

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή. Λίστες Τι είναι οι λίστες; Πολλές φορές στην καθημερινή μας ζωή, χωρίς να το συνειδητοποιούμε, χρησιμοποιούμε λίστες. Τέτοια παραδείγματα είναι η λίστα του super market η οποία είναι ένας κατάλογος αντικειμένων

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

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα «Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα Σεμινάριο 8: Χρήση Μηχανικής Μάθησης στην Εξαγωγή Πληροφορίας Ευάγγελος Καρκαλέτσης, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού, Ινστιτούτο

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας Εισαγωγή MapReduce ηµήτρης Λεβεντέας 6 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Το MapReduce είναι ένα framework λογισµικού που είσηχθηκε από την Google για να υποστηρίξει κατανεµηµένο υπολογισµό σε

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

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

Κεφάλαιο 8: Υπολογιστικές Μέθοδοι για Ανάλυση Μεγάλων Δεδομένων (Hadoop και MapReduce)

Κεφάλαιο 8: Υπολογιστικές Μέθοδοι για Ανάλυση Μεγάλων Δεδομένων (Hadoop και MapReduce) Κεφάλαιο 8: Υπολογιστικές Μέθοδοι για Ανάλυση Μεγάλων Δεδομένων (Hadoop και MapReduce) Σύνοψη Η λύση του Hadoop και MapReduce και των συνεργαζόμενων εφαρμογών τους λαμβάνει μεταξύ άλλων μία απλή, αλλά

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

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

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

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

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

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

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

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

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear

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

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 - Project Σεπτεμβρίου Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος Εξέταση: Προφορική, στο τέλος της εξεταστικής. Θα βγει ανακοίνωση στο forum. Ομάδες

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

Στατιστική Ι (ΨΥΧ-122) Διάλεξη 2

Στατιστική Ι (ΨΥΧ-122) Διάλεξη 2 (ΨΥΧ-122) Λεωνίδας Α. Ζαμπετάκης Β.Sc., M.Env.Eng., M.Ind.Eng., D.Eng. Εmail: lzabetak@dpem.tuc.gr Διαλέξεις: ftp://ftp.soc.uoc.gr/psycho/zampetakis/ 28210 37323 Διάλεξη 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΨΥΧΟΛΟΓΙΑΣ

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #06 Πιθανοτικό Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Εγκατάσταση της Unity

Εγκατάσταση της Unity Εγκατάσταση της Unity Όπως έχουμε πει, θα χρησιμοποιήσουμε την Unity για να φτιάξουμε τα παιχνίδια μας. Η Unity είναι μια μηχανή παιχνιδιών (game engine). Τι σημαίνει όμως αυτό; Σημαίνει απλά ότι είναι

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

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

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

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