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

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

Download "ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ (Τ. & Τ.Π.) ΕΡΓΑΣΤΗΡΙΟ ΕΝΣΥΡΜΑΤΟΥ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΣ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ (Τ. & Τ.Π.) ΕΡΓΑΣΤΗΡΙΟ ΕΝΣΥΡΜΑΤΟΥ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΘΑΝΟΥ ΑΝΑΣΤΑΣΙΟΥ ΤΟΥ ΔΗΜΗΤΡΙΟΥ Αριθμός Μητρώου: 6511 «Συμπίεση βάσης δεδομένων σκακιστικών φινάλε με μεθόδους data mining» Επιβλέπων: Σγάρμπας Κυριάκος, Επίκουρος καθηγητής Αριθμός Διπλωματικής Εργασίας: Πάτρα Νοέμβριος 2012

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Συμπίεση βάσης δεδομένων σκακιστικών φινάλε με μεθόδους data mining» του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΘΑΝΟΥ ΑΝΑΣΤΑΣΙΟΥ ΤΟΥ ΔΗΜΗΤΡΙΟΥ Αριθμός Μητρώου: 6511 παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις /11/2012 Ο Επιβλέπων Ο Διευθυντής του τομέα Κ. Σγάρμπας Επ. καθηγητής Φακωτάκης Νικόλαος Καθηγητής 2

3 ΤΙΤΛΟΣ: ΣΥΜΠΙΕΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΣΚΑΚΙΣΤΙΚΩΝ ΦΙΝΑΛΕ ΜΕ ΧΡΗΣΗ ΜΕΘΟΔΩΝ DATA MINING ΣΥΓΓΡΑΦΕΑΣ: ΘΑΝΟΥ Δ. ΑΝΑΣΤΑΣΙΟΣ (Α.Μ. 6511) Περίληψη Η συγκεκριμένη διπλωματική εργασία διαπραγματεύεται τη συμπίεση των βάσεων του Nalimov με μεθόδους data mining. Είναι βάσεις σκακιστικών φινάλε, οι οποίες παρέχουν πληροφορίες, ανάλογα με την τοποθέτηση των κομματιών για το ποιος νικάει κάθε φορά σε ένα φινάλε τριών ή περισσοτέρων κομματιών συμπεριλαμβανομένων και των δύο βασιλιάδων. Η προσπάθεια γίνεται με το έτοιμο πρόγραμμα Weka, το οποίο διατίθεται δωρεάν στο internet και προσφέρεται για εφαρμογές του data mining. Η συμπίεση προσφέρει ευελιξία στην αποθήκευση, ίσως και κατανόηση από τον άνθρωπο, όπως πάντα γίνεται στο data mining. Αρχικά, μελετήθηκε το φινάλε με βασιλιά και ένα πιόνι εναντίον του μαύρου βασιλιά. Έγινε μελέτη από διάφορες πλευρές και με διαφορετικά χαρακτηριστικά (attributes) που ορίζονται από το χρήστη και αποσκοπούν στην καλή εκπαίδευση ενός ταξινομητή, ο οποίος λέει ποιος νικάει ή αν έχουμε ισοπαλία. Ενδιαφέρουσα ήταν και η προσπάθεια για αύξηση της απόδοσης ώστε να πλησιάσει κατά το δυνατόν το 100% στο συγκεκριμένο φινάλε, άλλοτε με ανάθεση μεγαλύτερης προσπάθειας στον υπολογιστή και άλλοτε καθαρά από τον ανθρώπινο παράγοντα, με διόρθωση λαθών και επανεπισκόπηση των χαρακτηριστικών για τη δημιουργία καταλληλοτέρων δεδομένων. Ακολούθως, μελετήθηκαν τα φινάλε με βασίλισσα ή πύργο αντί για πιόνι και γίνονταν σχόλια σε καίρια σημεία. Τέλος, η μελέτη επεκτάθηκε και σε φινάλε τεσσάρων κομματιών, όπου είχαμε την ευκαιρία να δούμε τα φινάλε KBBK και KRKN, τα οποία παρουσιάζουν ενδιαφέρον, καθώς αυξάνονται οι υπολογιστικές απαιτήσεις. Abstract This diploma dissertation deals with the compression of the Nalimov bases using methods of data mining. They are chess endgame databases, which provide information, depending on the placement of the men, about who wins in an endgame of three or more pieces, including the two kings. The work was made by means of the open-software program Weka, which is available free on the internet and is ideal for applications of data mining. This compression aims to provide flexibility in storage and perhaps understanding by the users, as is always the case in data mining. At first, the endgame with one king and a pawn vs the black king was studied. A study was done from different perspectives and with quite different characteristics (attributes), which are specified by the user and designed in order that a good classifier should be trained, a classifier that should finally say who wins or if it is a tie. Also, something interesting that was done was an attempt to increase efficiency to close as possible to 100% in this endgame, sometimes shifting the whole work to the computer and sometimes mainly by the human factor. Of course, the latter was managed by correcting errors and reconsidering the attributes for creating the most appropriate data possible. Then, we studied the endgames with a queen and then, with a rook instead of a pawn, with comments made at key points. Finally, the study was expanded to endgames with four men, where we had the opportunity to see the endgames KBBK and KRKN, which are interesting as the computational requirements increase. 3

4 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧOΜΕΝΑ... 4 ΚΕΦΑΛΑΙΟ ΕΙΣΑΓΩΓΗ... 6 ΚΕΦΑΛΑΙΟ ΓΕΝΙΚΕΣ ΓΝΩΣΕΙΣ-ΠΡΟΕΡΓΑΣΙΑ Φινάλε-Βάσεις Δεδομένων Η προεργασία και αρχή της διπλωματικής Το λογισμικό της διπλωματικής και στοιχεία χρήσης του ΚΕΦΑΛΑΙΟ Η ΕΦΑΡΜΟΓΗ Το Φινάλε KPK white to move Φινάλε KPK white to move Προσέγγιση πρώτη Το φινάλε KPK wtm με «σκακιστικά» και «πρωτογενή» χαρακτηριστικά Βελτιώσεις Αποτέλεσμα-προεκτάσεις των πρωτογενών attributes Προσθήκη πληροφορίας για τη απόλυτη θέση των κομματιών Σχόλιο για τα γεωμετρικά attributes Βελτιώσεις στο αρχικό τρέξιμο με την πρώτη προσέγγιση Προσπάθεια για το τέλειο ΚΕΦΑΛΑΙΟ ΤΑ ΦΙΝΑΛΕ KPK BTM, KQK ΚΑΙ KRK To Φιναλε KPK black to move Φινάλε KQK Φινάλε KRK ΚΕΦΑΛΑΙΟ ΦΙΝΑΛΕ ΤΕΣΣΑΡΩΝ ΚΟΜΜΑΤΙΩΝ Φινάλε KBBK Το φινάλε KBBK white to move Black to move Βελτιώσεις Άλλη προσέγγιση για το φινάλε KBBK white to move για το φινάλε KBBK black to move Φινάλε KRKN Το φινάλε KRKN white to move

5 5.2.2 Το φινάλε KRKN black to move και με τα ίδια attributes ΚΕΦΑΛΑΙΟ ΘEΜΑΤΑ AΛΛΩΝ ΑΛΓΟΡIΘΜΩΝ ΚΑΙ ΠΑΡΑΔΕΙΓΜAΤΩΝ Άλλοι αλγόριθμοι Διακριτοποίηση (ταχύτητα, ακρίβεια χειρότερη) Φίλτρα στην προεπεξεργασία των δεδομένων για τη δημιουργία μη γραμμικών χαρακτηριστικών Η επιρροή του Attribute Selection tab στην ταχύτητα και στα αποτελέσματα ΚΕΦΑΛΑΙΟ ΣΥΜΠΕΡAΣΜΑΤΑ Συμπεράσματα-Σχόλια Συνοπτική παρουσίαση αποτελεσμάτων Φινάλε τριών κομματιών Φινάλε τεσσάρων κομματιών ΚΕΦΑΛΑΙΟ ΣΥΝEΧΕΙΑ-ΜΕΛΛΟΝΤΙΚEΣ ΒΕΛΤΙΩΣΕΙΣ Βιβλιογραφία Παράρτημα Α Παραρτημα Β

6 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Η παρούσα διπλωματική εργασία ασχολείται με το θέμα των σκακιστικών φινάλε, αλλά με σκοπό τη μελέτη τους με μεθόδους data mining. Το θέμα είναι πολύ σημαντικό. Κατ αρχάς, το data mining είναι η διαδικασία εξόρυξης χρήσιμης πληροφορίας από μεγάλο όγκο δεδομένων. Αυτή τη διαδικασία εκτελεί αυτοματοποιημένα ο υπολογιστής, μέσα από ειδικό λογισμικό. Στην περίπτωσή μας, τα δεδομένα παρέχονται στις βάσεις δεδομένων του Nalimov. Οι βάσεις αυτές περιλαμβάνουν την πληροφορία του ποιος νικάει και σε πόσες κινήσεις σε κάθε περίπτωση ενός φινάλε. Σκοπός είναι να μελετηθούν αυτές όσο είναι δυνατόν και να εξαχθούν χρήσιμα συμπεράσματα. Το θέμα έχει ενδιαφέρον και έχει προσελκύσει πολλούς ερευνητές. Το ίδιο το data mining έχει μια σχετικά πρόσφατη ιστορία [13]. Εμφανίστηκε πριν 30 έως 40 χρόνια, αλλά δεν ονομαζόταν από την αρχή έτσι. Ουσιαστικά ξεκίνησε ως στατιστική ανάλυση, όταν προωθήθηκε από τις εταιρίες SAS και SPSS. Καθώς προχώρησε η δεκαετία του 80, η αύξηση της ισχύος των υπολογιστών έδωσε τη δυνατότητα για αναλύσεις πιο ισχυρές, αλλά και σε μεγαλύτερους όγκους δεδομένων. Η ρίζες αυτού του νέου κλάδου της επιστήμης βρίσκονται: Πρώτον, στην επιστήμη της στατιστικής. Δεύτερον, στην τεχνητή νοημοσύνη που χρησιμοποιεί επεξεργασία που μοιάζει με τη σκέψη του ανθρώπου (human-thought-like processing) και στον κλάδο που ονομάζεται machine learning, όπου ο υπολογιστής μαθαίνει κατά κάποιον τρόπο μέσω δεδομένων με τα οποία τον τροφοδοτούμε (νευρωνικά δίκτυα, αναγνώριση προτύπων). Σήμερα, το data mining βρίσκει εφαρμογή σε πολυπίκοιλα πεδία, όπως στον χρηματοπιστωτικό κλάδο (financial industry), στις τράπεζες, στις επιχειρήσεις, στον εμπορικό κλάδο, στις τηλεπικοινωνίες, σε θέματα ασφαλείας και ανίχνευση εισβολών [4] (intrusion detection), στα σπορ και τη διασκέδαση, στην αστρονομία. Τελικά, θα μπορούσε κανείς να ισχυριστεί ότι ο κλάδος του data mining, όπως ορίζεται σήμερα έχει μια ιστορία δέκα έως δεκαπέντε χρόνων. Από την άλλη πλευρά, η ίδια η μελέτη των σκακιστικών φινάλε ανοίγει νέους δρόμους στη σκακιστική θεωρία. Πολλή δουλειά έχει γίνει, ακόμα και βιβλία έχουν γραφτεί, ως αποτέλεσμα αυτής της δουλειάς. Η αξία του θέματος έγκειται και στη μεγάλη διευκόλυνση που συνεπάγεται η κατανόηση και απλούστευση των φινάλε. Τα ίδια τα αρχεία που αναφέρουν όλες τις περιπτώσεις, σαν τηλεφωνικοί κατάλογοι, είναι πολύ μεγάλα. Αν λοιπόν μπορέσει κάποιος να τα αντικαταστήσει με ένα σχήμα, ένα δέντρο που να περιγράφει κάπως τις δυνατές μορφές του φινάλε και να αποφαίνεται ως προς το τελικό αποτέλεσμα του παιχνιδιού, τότε θα κερδίσουμε και χώρο στον υπολογιστή, αλλά ίσως και μια καλύτερη κατανόηση του ίδιου του παιχνιδιού. Αυτό κλήθηκα να κάνω στην παρούσα διπλωματική, όπου ο κύριος σκοπός είναι μια απλή συμπίεση των αρχείων. Οι δυσκολίες του εγχειρήματος είναι αρκετές. Κατ αρχάς, να μπορέσει κανείς να χειριστεί σωστά τη βάση, ώστε να εξαγάγει τα δεδομένα της. Αυτό μου πήρε πολύ καιρό προσπάθειας, διότι στη βάση δεδομένων του Nalimov όλες οι πληροφορίες είναι κωδικοποιημένες. Στη βάση αυτή, περιέχεται ένας αριθμός αρχείων, τα οποία, δυστυχώς, δεν μπορούσα να ανοίξω για να τα διαβάσω σαν ένα κατανοητό κείμενο. Με μια βιβλιοθήκη, όμως, που υπάρχει στο διαδίκτυο, μπόρεσα να αποκτήσω πρόσβαση και να παίρνω όποιο αποτέλεσμα φινάλε ήθελα. Μετά, έπρεπε να φτιαχτεί ένα αρχείο με τα δεδομένα για την εκτέλεση του data mining. Είχα δει πολλά παραδείγματα διαβάζοντας για το data mining, όπου τα δεδομένα είναι γνωστά και «σερβίρονται» έτοιμα, π.χ. από μια έρευνα πολλών καταναλωτών. Στην παρούσα διπλωματική, έπρεπε εγώ να βρω δεδομένα, πράγμα το οποίο ήταν και το πιο ενδιαφέρον στοιχείο της. Έπρεπε να δημιουργήσω ένα αρχείο δεδομένων για το κάθε φινάλε και να προχωρήσω στην εξόρυξη δεδομένων. Για να καταστεί αυτό πιο 6

7 σαφές, εγώ ήξερα εκ προοιμίου, χάρη στη βάση του Nalimov, μόνο και μόνο το ποιος νικάει και με ποια τοποθέτηση κομματιών. Στη συνέχεια, έπρεπε να δημιουργήσω δεδομένα, απλώς παρατηρώντας τη σκακιέρα. Τα δεδομένα αυτά, είναι απολύτως απαραίτητα για να εκφράσουν με κάποιον συστηματικό, μαθηματικοποιημένο τρόπο την ταυτότητα, την ιδιαιτερότητα, τα χαρακτηριστικά γνωρίσματα της εκάστοτε θέσης στη σκακιέρα. Έπρεπε, τέλος, και τα ίδια αυτά τα αρχεία να τα μετατρέψω σε μορφή κατάλληλη για να τα εισαγάγω στο ειδικό λογισμικό που εκτελεί το data mining. Αργότερα, κλήθηκα να βελτιώσω ξανά και ξανά το αποτέλεσμα του προγράμματος, ώστε τα συμπεράσματα να είναι όσο το δυνατόν πιο ακριβή ή ισοδυνάμως, να αποτυπώνουν μια λογική που να μπορεί να ταξινομήσει ικανοποιητικά και νέα παραδείγματα (εκπαίδευση ενός καλού ταξινομητή). Αυτή η διαδικασία, πραγματικά, μου πήρε πολύ καιρό, καθώς απαιτούσε επανειλημμένες παρατηρήσεις διαφόρων θέσεων στη σκακιέρα, επισκόπηση των χαρακτηριστικών που έπαιρνα από κάθε σκακιστική εικόνα, ίσως και αναθεώρηση κάποιων από αυτών και πολλαπλές βελτιώσεις αυτών των χαρακτηριστικών. Είχα, δηλαδή, να εκτελέσω ένα έργο στο data mining, στο οποίο έπρεπε να εφαρμόζω τους αλγορίθμους εξόρυξης δεδομένων δημιουργώντας εγώ τα δεδομένα που κατά τη γνώμη μου θα μπορούσαν καλύτερα να περιγράψουν τα φινάλε. Όσο καλύτερα ήταν αυτά τα δεδομένα, τόσο ακριβέστερη περιγραφή θα έπρεπε να περιμένω και καλύτερα αποτελέσματα από τους αλγορίθμους του λογισμικού εξόρυξης δεδομένων. 7

8 ΚΕΦΑΛΑΙΟ 2 ΓΕΝΙΚΕΣ ΓΝΩΣΕΙΣ-ΠΡΟΕΡΓΑΣΙΑ 2.1 ΦΙΝΑΛΕ-ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Στα φινάλε τριών κομματιών, διακρίνουμε τα φινάλε όπου έχουμε δύο βασιλιάδες και ένα πιόνι για τον λευκό, στο φινάλε που ο λευκός έχει μια βασίλισσα ή έναν πύργο (KPK, KQK, KRK). Όλα αυτά, για πρώτη κίνηση του λευκού (white to move) ή πρώτη κίνηση του μαύρου (black to move). Τα φινάλε με έναν αξιωματικό και ένα άλογο δεν υπάρχουν, διότι αυτοδικαίως ο αγώνας κρίνεται ισόπαλος, καθώς δε γίνεται ποτέ mat. Υπάρχουν, από εκεί και πέρα, τα φινάλε τεσσάρων κομματιών, πέντε και έξι. Τα φινάλε στο σκάκι παρουσιάζουν μέγιστη σημασία, καθώς αποτελούν το τέλος του παιχνιδιού. Μπορεί κανείς να μην παίξει καλά και να χάσει, ενώ θα μπορούσε να νικήσει. Επιπλέον δε, είναι ένα θέμα ομολογουμένως δύσκολο και παρουσιάζει έντονο σκακιστικό ενδιαφέρον. Για όλα αυτά τα φινάλε, υπάρχουν βάσεις δεδομένων οι οποίες μας πληροφορούν σχετικά με το ποιος νικάει κάθε φορά. Οι βάσεις δεδομένων είναι μεγάλα αρχεία κωδικοποιημένα, που έχουν δημιουργηθεί με ανάλυση από το τέλος προς την αρχή (retrograde analysis [3] ). Από μια θέση ματ έχουν γίνει κινήσεις προς τα πίσω, οπότε φαίνεται πώς ένα ολόκληρο φινάλε καταλήγει στη συγκεκριμένη θέση ματ. Τι ακριβώς σημαίνει, όμως, το ποιος νικάει; Θα δοθεί ένα παράδειγμα για να καταστεί σαφές. Έστω ότι αναφερόμαστε στο γνωστό φινάλε με ένα πιόνι για τον λευκό KPK. Σε αυτό, όμως, μπορεί το πιόνι και οι δύο βασιλιάδες να βρίσκονται πάνω στη σκακιέρα σε πολλές διαφορετικές τοποθετήσεις. Είναι θέμα, λοιπόν, αρχικής θέσης των κομματιών. Υπάρχουν θέσεις που ωφελούν τον λευκό και άλλες που τον δυσκολεύουν, παρόλο που έχει υπεροχή ενός πιονιού. Για παράδειγμα, στην παρακάτω θέση, αν παίζει ο μαύρος, τότε θα βγει ισοπαλία, διότι θα φάει αμέσως το πιόνι. Εικόνα 2.1. Η σημασία της αρχικής τοποθέτησης των κομματιών. Παίζει ο μαύρος και μπορεί να φάει το πιόνι. 8

9 Επομένως, η αρχική τοποθέτηση των κομματιών είναι υψίστης σημασίας. Για αυτό το λόγο, στη βάση δεδομένων του Nalimov, υπάρχει ένα αρχείο μόνο για το φινάλε KPK white to move. Αυτό, αν μπορούσε κανείς να το κοιτάξει να δει τι περιέχει, δεν είναι παρά τα αποτελέσματα όλων των δυνατών τοποθετήσεων των τριών κομματιών για το φινάλε KPK white to move. Αυτό περιέχει δηλαδή κάθε αρχείο του Nalimov. Εδώ πρέπει να γίνει ένα καίριο σχόλιο: Για να πούμε ποιος νικάει ή όχι, εννοείται ότι τόσο ο λευκός όσο και ο μαύρος παίζουν τέλεια (perfect play), δηλαδή παίζουν την καλύτερη κίνηση που υπάρχει. Αν τυχόν ο μαύρος έχει μια κίνηση που οδηγεί σε ισοπαλία, τότε σε καμία περίπτωση δεν θα αφήσει τον λευκό να νικήσει. Άρα, μιλάμε για τη δυνατότητα του λευκού να νικήσει, ανεξαρτήτων των κινήσεων του μαύρου ή του μαύρου να φέρει σε ισοπαλία το παιχνίδι, ανεξαρτήτων των προσπαθειών του λευκού βασιλιά. Ευτυχώς, αυτές οι πληροφορίες είναι δεδομένες από μελέτες που έχουν γίνει και περιέχονται στη βάση δεδομένων του Eugene Nalimov. Δηλαδή, είναι γνωστό, μέσω αυτών των βάσεων, για κάποια οποιαδήποτε τοποθέτηση των κομματιών στη σκακιέρα ποιος νικάει (αν ο λευκός μπορεί να νικήσει ή είναι υποχρεωμένος ό,τι και να κάνει να δεχτεί το αποτέλεσμα της ισοπαλίας λόγω των ενεργειών του μαύρου). Τα συγκεκριμένα αρχεία είναι κωδικοποιημένα και αν τα ανοίξει κανείς με επεξεργαστή κειμένου, δε θα μπορέσει να δει παρά ακατανόητο κείμενο και σύμβολα. Η προέκτασή τους ήταν nbw.emd για τα white to move (π.χ. KPK.nbw.emd) και nbb.emd για το black to move. Στη συνέχεια φαίνεται ένα δείγμα αυτού του κειμένου: Εικόνα 2.2 Το κωδικοποιημένο περιεχόμενο των αρχείων.nbw.emd δε χρησιμεύει σε αυτή τη μορφή. 2.2 Η ΠΡΟΕΡΓΑΣΙΑ ΚΑΙ ΑΡΧΗ ΤΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ Στη αρχή, αντιμετώπισα μεγάλη δυσκολία, γιατί δεν ήξερα πώς θα μπορέσω να διαβάσω τις βάσεις του Nalimov. Αυτή η διαδικασία, με χαμηλό ρυθμό δουλειάς, μου πήρε τέσσερις μήνες. Επικοινώνησα με τον αναπληρωτή καθηγητή Robert Hyatt του πανεπιστημίου University of Alabama στο Birmingham της Αγγλίας, στον οποίον έστειλα και τρία s. Τον ρώτησα πώς μπορούμε να δούμε αυτές τις βάσεις δεδομένων και αν είναι αλήθεια ότι ο κώδικας για την αποκωδικοποίησή τους βρίσκεται στα αρχεία egtb.cpp και tbdecode.h, αρχεία του προγράμματος Crafty, όπως είχα διαβάσει στο διαδίκτυο. Επίσης, τον ρώτησα αν είναι καλή ιδέα να χρησιμοποιήσω τα λεγόμενα SOAP messages, με το πρωτόκολλο SOAP, σχετικές πληροφορίες για το οποίο θέμα είχα συναντήσει στο διαδίκτυο. Αυτό μου απάντησε ότι πράγματι αυτά τα αρχεία περιέχουν τον κώδικα για την αποκωδικοποίηση των βάσεων και είναι αρχεία του Crafty. Με παρότρυνε να τα χρησιμοποιήσω και να βρίσκω μια θέση στα αρχεία του Nalimov δίνοντας εγώ πρώτα το index της εκάστοτε θέσης. Διάβασα αρκετά το αρχείο E.V. Nalimov, G.McC. Haworth, E.A. Heinz, Space-efficient indexing of chess endgame tables, ICGA J. 23 (3) (2000) Είναι αρκετά πολύπλοκο να βρει κανείς το index για μια δεδομένη θέση και δεν υπάρχει και κάποιο πολύ κατανοητό παράδειγμα. Στη συνέχεια, τον ξαναρώτησα πώς, έχοντας τον αριθμό αυτό, θα κάνω την αναζήτηση στη βάση του Nalimov. Αυτός μου 9

10 είπε ότι δεν υπάρχει θέμα να γράψω κώδικα, αφού όλος ο κώδικας διατίθεται στο αρχείο egtb.cpp. Προσέθεσε ότι υπάρχει και ένα άλλο αρχείο, με το όνομα probe.c, το οποίο περιέχει πληροφορίες για το πώς ακριβώς θα μπορέσει κανείς να περάσει στον υπολογιστή τις θέσεις των κομματιών, ώστε να λάβει το αποτέλεσμα του ποιος νικάει. Στη συνέχεια, δυστυχώς, μπερδεύτηκα, γιατί τα αρχεία αυτά δεν μπορούσα να τα καταλάβω σε ικανοποιητικό βαθμό. Ένας λόγος είναι ο μεγάλος αριθμός μεταβλητών που περιέχουν. Ήθελα να μπορέσω να τρέξω μόνο του το αρχείο egtb.cpp, διότι αυτό περιέχει τον κώδικα που δίνει το αποτέλεσμα από το αρχείο του Nalimov. Όμως, εστάθη αδύνατον να τρέξει αυτό μόνο του και κοιτούσα να δω με ποια αρχεία από το σκακιστικό πρόγραμμα Crafty και με ποιες από τις βιβλιοθήκες του είναι δυνατόν να τρέξει. Αυτό γιατί περιείχε μεταβλητές και συναρτήσεις που ορίζονταν σε άλλα σημεία του προγράμματος. Μετά, έστειλα και τρίτο στον κ.hyatt, με το οποίο τον ρωτούσα πώς είναι δυνατόν να κάνω compile και να τρέξω το αρχείο αυτό που με ενδιέφερε. Να σημειώσω, εδώ, ότι ούτε καν το πρόγραμμα Crafty δεν μπορούσα να τρέξω, καθώς ήταν μια ομάδα από αρχεία γραμμένα σε γλώσσα C. Ο κ.hyatt μου είπε ότι πρέπει απλώς να τρέξω το πρόγραμμα Crafty, οπότε υπέθεσα ότι δε γίνεται και δεν υπάρχει νόημα να τρέξω το μισό ή μόνο το αρχείο που με ενδιαφέρει, αφού είναι μέρος αναπόσπαστο ενός ολόκληρου προγράμματος. Από τότε, άρχισα να τρέχω το πρόγραμμα Crafty, αφού βρήκα στο internet κάποιες συμβουλές για το compilation που έπρεπε να γίνει [11]. Το Crafty έπαιζε σε περιβάλλον κονσόλας και άρχισα να δοκιμάζω πώς παίζουν αγώνες. Στη συνέχεια, βρήκα την εντολή setboard, για να μπορώ να βάζω μια συγκεκριμένη θέση. Στην εντολή, τοποθετεί κανείς τη θέση με κωδικό FEN. Σκοπός μου ήταν να θέτω ένα φινάλε και να παίζω με τον υπολογιστή, αφού του φόρτωνα με την εντολή egtb τις βάσεις του Nalimov. Μάλιστα, ήταν φανερό ότι όταν οι βάσεις είχαν συνδεθεί στο πρόγραμμα με αυτή την εντολή, ότι ο υπολογιστής ως αντίπαλος σκεφτόταν σε μηδενικό χρόνο, πράγμα που σημαίνει ότι την επόμενη κίνηση την έπαιρνε αυτομάτως από τη βάση του Nalimov. Επειδή ήταν δυσχερής η κατανόηση του κώδικα στο αρχείο egtb.cpp, καθώς και στο αρχείο probe.c, προσπάθησα στη συνέχεια να παίζω σκάκι με τον υπολογιστή και εκτός των μηνυμάτων του Crafty να βάλω και δικά μου μηνύματα να εμφανίζονται στην οθόνη, οιονεί debugging, για να καταφέρω να καταλάβω πώς λειτουργούν όλα. Και πάλι, η κατανόηση των αρχείων ήταν δυσχερής, αλλά σε εκείνο περίπου το σημείο βρέθηκε η άλλη λύση. Σε αυτό το σημείο, άλλαξα τακτική και άρχισα να χρησιμοποιώ τη βιβλιοθήκη gafslib.h. Αυτή η βιβλιοθήκη, μπορεί να κάνει αυτήν ακριβώς τη δουλειά που ήθελα, δηλαδή να διαβάζει τις βάσεις δεδομένων του Nalimov και να μου δίνει το αποτέλεσμα μια συγκεκριμένης θέσης. Μπορεί να τη βρει κανείς στη διεύθυνση FAQ/Winboard/egtb.html#[A.19], όπου αναφέρονται πληροφορίες και λύσεις για το θέμα του Nalimov bases viewing. Εκεί, πατάει κανείς την επιλογή GAFS. Η συγκεκριμένη βιβλιοθήκη μας λύνει τα χέρια, με τις δύο συναρτήσεις που διαθέτει. Η πρώτη είναι για την αρχικοποίηση των βάσεων δεδομένων στον υπολογιστή. Η δεύτερη συνάρτηση είναι αυτή που μας δίνει το αποτέλεσμα μιας συγκεκριμένης θέσης για το φινάλε KPK ή για οποιοδήποτε άλλο θέλουμε, αρκεί η βάση να είναι φορτωμένη στον υπολογιστή, σε κάποιο path που ορίζει ο χρήστης. Με αυτήν τη συνάρτηση, όπως φαίνεται στο παράρτημα, έγινε η δουλειά, αφού με κώδικα έπαιρνα αποτελέσματα και δημιουργούσα τα αρχεία με τα data που χρειαζόμουν, για να εφαρμοστεί το data mining. Κάποιες άλλες πληροφορίες, σχετικά με τη βιβλιοθήκη, έχουν τεθεί στο Παράρτημα Α. 2.3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΚΑΙ ΣΤΟΙΧΕΙΑ ΧΡΗΣΗΣ ΤΟΥ Το πρόγραμμα που χρησιμοποίησα για να εφαρμόζω τους αλγορίθμους του data mining είναι το γνωστό λογισμικό Weka 3.7, το οποίο διατίθεται ελεύθερα στο διαδίκτυο. Αρκεί κανείς να πληκτρολογήσει τη διεύθυνση σε έναν φυλλομετρητή (browser). Το πρόγραμμα Weka [4] δημιουργήθηκε με σπόνσορα την εταιρία ελεύθερου λογισμικού Pentaho και αποτελεί μια συλλογή των πιο γνωστών αλγορίθμων για data mining, ενώ περιλαμβάνει εργαλεία για pre-processing, classification, clustering και association rule mining. Είναι εύκολο στη χρήση και με πολλές δυνατότητες. Στο λογισμικό Weka διατίθεται ένα πλήθος αλγορίθμων, κατάλληλων για πολλές εφαρμογές. Στην παρούσα διπλωματική εργασία χρησιμοποιήθηκε ως επί το πλείστον ο αλγόριθμος δέντρου απόφασης J48. Εκτός αυτού, αναφέρονται και οι αλγόριθμοι Naϊve Bayes, Random Forest, OneR και Bagging. 10

11 Το δέντρο απόφασης J48 χρησιμοποιήθηκε περισσότερο από τους άλλους αλγορίθμους για διάφορους λόγους. Κατ αρχάς, ήταν ένας αλγόριθμος που ξέρω περίπου πώς λειτουργεί [2]. Ο υπολογιστής εκτελεί μια αναζήτηση σε όλα τα διαθέσιμα χαρακτηριστικά και αναζητεί αυτό για το οποίο υπάρχει το μεγαλύτερο κέρδος πληροφορίας, δηλαδή λαμβάνεται με τη διακλάδιση με βάση αυτό το χαρακτηριστικό το μεγαλύτερο ποσό πληροφορίας. Η λέξη «πληροφορία», που εκφράζεται με μια απλή μαθηματική συνάρτηση, αναφέρεται στο κατά πόσο το αποτέλεσμα έγινε πιο προβλέψιμο, δηλαδή, στο κατά πόσο μπορούμε πλέον να αποφανθούμε σε σχέση με το ποιος θα νικήσει στο παιχνίδι ή αν θα βγει ισοπαλία. Εκτός αυτού, ο συγκεκριμένος αλγόριθμος J48 χρησιμοποιήθηκε σαν ο βασικός αλγόριθμος της διπλωματικής εργασίας για λόγους ομοιομορφίας. Δεν θα ήταν ωραίο να χρησιμοποιώ διαφορετικούς αλγορίθμους ίδιας περίπου ισχύος και να πραγματοποιούνται ακολούθως συγκρίσεις των αποτελεσμάτων. Ενώ, αν η εργασία εκτελείται μόνο με τον ίδιον (καλό) αλγόριθμο και με τον ίδιο τρόπο εκτίμησης του σφάλματος του ταξινομητή (10-fold cross-validation), είναι φανερό ότι μπορούν να γίνουν συγκρίσεις υπό πολύ ευνοϊκούς όρους και να συναχθούν αρκετά ασφαλή συμπεράσματα. Τέλος, υπήρχαν κάποιοι λόγοι για τους οποίους κάποιοι αλγόριθμοι αποκλείστηκαν. Για παράδειγμα, ο αλγόριθμος Naϊve Bayes εκπαιδεύει έναν ταξινομητή με πολύ χαμηλό επίπεδο ακρίβειας, πράγμα που εμποδίζει συχνά να τον χρησιμοποιήσουμε, αλλά και δεν υπήρχε η κατάλληλη γνώση και υποδομή για να τον χρησιμοποιήσω αποτελεσματικά. Σχετικά με τους αλγορίθμους της κατηγορίας lazy, έγινε δοκιμή με τον γνωστό KStar, αλλά, δυστυχώς, μου φάνηκε απαράδεκτα αργός στο evaluation. Εν ολίγοις, ο αλγόριθμος J48 απεδείχθη ικανοποιητικός και όσον αφορά την ακρίβεια και την παρουσίαση και κατανόηση των αποτελεσμάτων του, ακόμα και από άποψη ταχύτητας. Εκτός αυτών, χρησιμοποιήθηκε εκτεταμένα το φίλτρο unsupervised.attribute.addexpression, για τη δημιουργία νέων χαρακτηριστικών είτε μη γραμμικών, γενικά, είτε για απλούς συνδυασμούς των υπαρχόντων, όπως για παράδειγμα για να εκτελεστεί η πράξη wkfile-filediffkk = bkfile, για να ληφθεί το χαρακτηριστικό bkfile. Επίσης, χρησιμοποιήθηκε και το φίλτρο της διακριτοποίησης των χαρακτηριστικών, discretization filter. 11

12 ΚΕΦΑΛΑΙΟ 3 Η ΕΦΑΡΜΟΓΗ ΤΟ ΦΙΝΑΛΕ KPK WHITE TO MOVE 3.1 ΦΙΝΑΛΕ KPK WHITE TO MOVE Προσέγγιση πρώτη Στην αρχή προσπάθησα να σκεφτώ κάποια χαρακτηριστικά σκακιστικά, τέτοια ώστε να δίνουν χρήσιμη πληροφορία για το φινάλε. Αυτό απαιτούσε, συνολικά, μεγάλη προσπάθεια από μέρους του χρήστη. Ο λόγος είναι απλός: Έπρεπε να έχω αρκετά καλή γνώση για το φινάλε και σκακιού γενικότερα και, στη συνέχεια, να μεταφραστούν όλα αυτά σε πρακτικό επίπεδο με κώδικα. Αποτέλεσμα: η δημιουργία attributes που αντανακλούν κάποια σκακιστική κατανόηση. Πρόκειται για τα εξής χαρακτηριστικά: distancetothefrontsquare wpahaidintherace wpcanbecaptured wponfileaorh racetimeenough opposition Ακολουθεί σύντομη ανάλυση αυτών των χαρακτηριστικών: 1) distancetothefrontsquare (Numeric attribute) Είναι η απόσταση των δύο βασιλιάδων σε σχέση με την μπροστινή περιοχή του πιονιού. Αυτές οι δύο αποστάσεις αφαιρούνται. Εξετάζεται η απόσταση του λευκού βασιλιά από το μπροστινό πλαϊνό τετράγωνο και του μαύρου από το δεύτερο μπροστινό τετράγωνο σε σχέση με το πιόνι. Αυτά τα τετράγωνα 12

13 ορίστηκαν, γιατί νομίζω πως σημασία έχουν αυτά τα τετράγωνα αντίστοιχα για τους δύο βασιλιάδες. Φυσικά, και όλα τα μπροστινά τετράγωνα είναι σημαντικά. Όποιος φτάσει πρώτος σε αυτά έχει κάποιο πλεονέκτημα. Σχηματικά, εξετάζουμε τη διαφορά των αποστάσεων που απεικονίζονται: Εικόνα 3.1 Το χαρακτηριστικό distancetothefrontsquare. Ο κώδικας για το συγκεκριμένο χαρακτηριστικό distancetothefrontsquare είναι ο ακόλουθος: // Attribute 1: DistanceCmpToTheFrontRegion \\ attribute1= min(dist(pk,pp+7) - dist(pk,pp+16), dist(pk,pp+9) - dist(pk,pp+16)); // Two things and min (,), because the white king // comes from left or from right. if (attribute1 <= 0) fprintf(fp,"near"); else fprintf(fp,"far"); fprintf(fp,","); Για να φτιαχτεί αυτό το attribute έπρεπε πρώτα να βρεθεί μια συνάρτηση που να δίνει την απόσταση μεταξύ δύο τετραγώνων (περιλάμβανε και διαγωνίους κινήσεις, αφού κινούνταν βασιλιάδες). Ένας ικανοποιητικός τύπος είναι ο εξής: int dist(int f1, int i1) { return (max(abs(f(f1)-f(i1)),abs(r(f1)- r(i1)))); } Ο παραπάνω τύπος ελέγχει ποια είναι η μεγαλύτερη απόσταση, αυτή των files ή αυτή των ranks και παίρνει υπ όψιν μόνο αυτήν τη μεγαλύτερη απόσταση. Αυτό το κάνει γιατί, καθώς επιτρέπονται οι διαγώνιες κινήσεις, για κάθε file που πλησιάζει ένα κομμάτι προς το στόχο μπορεί, ταυτόχρονα, να πλησιάζει και κατά ένα rank, άρα μπορεί κανείς να αδιαφορήσει για την ύπαρξη των δύο διαστάσεων (files στη θέση της τετμημένης και ranks στη θέση της τεταγμένης). 2) wpahaidintherace (Nominal attribute) Το συγκεκριμένο χαρακτηριστικό εξετάζει αν το πιόνι είναι ήδη πιο μπροστά από το μαύρο βασιλιά, οπότε προλαβαίνει ο λευκός να βγάλει βασίλισσα απλώς προωθώντας το πιόνι του. Ένα χαρακτηριστικό σχήμα φαίνεται στη συνέχεια: 13

14 Εικόνα 3.2. Το χαρακτηριστικό wpahaidintherace. Συγχρόνως, περιλαμβάνεται και η περίπτωση κατά την οποία το πιόνι βρίσκεται στη δεύτερη γραμμή και εκτελεί διπλή κίνηση, οπότε ο μαύρος βασιλιάς και πάλι δεν μπορεί να το προλάβει και ας ξεκινά σε αυτήν την περίπτωση από την ίδια γραμμή σε σχέση με το πιόνι. Αυτό φαίνεται στο σχήμα παρακάτω: Εικόνα 3.3 Το χαρακτηριστικό wpahaidintherace, όταν το πιόνι μπορεί να εκτελέσει διπλή κίνηση. Ο κώδικας για αυτό το attribute είναι ο εξής: // Attribute 3: wpahaidintherace. \\ vasilia... diplhkinhsh... if (r(pp)>r(pk) && pk!= pp+8) { // An to pioni einai ena rank pio mprosta kai den empodizetai apo to fprintf(fp,"y"); } else if (r(pp) == r(pk) && r(pp) == 2 && pk!= pp+8 && pk!= pp+16) fprintf(fp,"y"); } else fprintf(fp, "N"); fprintf (fp,","); { // An einai sto idio rank // alla to pioni exei 14

15 Το συγκεκριμένο χαρακτηριστικό (attribute) ήταν σε μεγάλο βαθμό κατάλληλο, πράγμα που φαίνεται από το γεγονός ότι όταν είχε την τιμή YES, τότε πάντα νικούσε ο λευκός. Επίσης, και οι αλγόριθμοι επιλογής χαρακτηριστικών (Attribute Selection) το συμπεριλάμβαναν στα καλύτερα, όπου ήταν σταθερά δεύτερο (π.χ. στο gain ratio feature evaluator). 3) wpcanbecaptured (Numeric attribute) Το χαρακτηριστικό wpcanbecaptured μοιάζει με το πρώτο (distancetothefrontsquare). Η διαφορά είναι ότι στο συγκεκριμένο συγκρίνονται οι αποστάσεις των δύο βασιλιάδων σε σχέση με το ίδιο το πιόνι, γιατί μας ενδιαφέρει αν μπορεί να φαγωθεί, οπότε και το αποτέλεσμα του αγώνα θα είναι ισοπαλία. Πρέπει να τονιστεί, σε αυτό το σημείο, ότι το χαρακτηριστικό wpcanbecaptured δεν μπορεί να αποφανθεί εγγυημένα αν θα «φαγωθεί» το πιόνι ή όχι. Για αυτό το λόγο και το όρισα ως αριθμητικό χαρακτηριστικό. Ο υπολογιστής θα πάρει το νούμερο και θα μπορέσει να το αξιοποιήσει με τον καλύτερο τρόπο. Αν είχε τεθεί ένα κατώφλι, π.χ. το πιόνι «τρώγεται» αν η διαφορά είναι μεγαλύτερη του αριθμού ένα, τότε ο υπολογιστής θα έπαιρνε λιγότερη πληροφορία. Τώρα, αν κοιτάξει κανείς το δέντρο, που δημιουργείται από το data mining, υπάρχουν και ενδιάμεσες περιπτώσεις, συνολικά το 0, -2 και -1, άρα ο υπολογιστής μπορεί να εξάγει περισσότερη πληροφορία από ένα nominal attribute που θα είχε μόνο YES και NO. Ο λόγος για τον οποίον το εν λόγω χαρακτηριστικό δεν μπορεί να καθορίσει το αν «τρώγεται» το πιόνι ή όχι είναι ότι φτιάχτηκε από άνθρωπο με περιορισμένη γνώση. Απλώς συγκρίνονται δύο αποστάσεις. Στην πραγματικότητα, δυστυχώς, είναι μακράν πιο πολύπλοκο και αφορά διάφορα σκακιστικές λεπτομέρεις που δεν μοντελοποιούνται σε αυτό το επίπεδο. Εικόνα 3.4. Το χαρακτηριστικό wpcanbecaptured. Εκτός αυτών, περιλαμβάνεται και μια λεπτομέρεια σχετικά με τη μέτρηση της απόστασης, η οποία φαίνεται στον κώδικα. Πιο συγκεκριμένα, υπάρχουν δύο συναρτήσεις απόστασης, η dist(pos1,pos2) και η dist2(pos1,pos2). Ο λόγος είναι ότι ο μαύρος βασιλιάς, επειδή δεν μπορεί να πάει στο τετράγωνο το πάνω διαγώνιο του πιονιού, κάποιες φορές αναγκάζεται να διανύσει κατά ένα τετραγωνάκι μεγαλύτερη απόσταση από αυτή που δίνει η κανονική συνάρτηση distance. Για αυτό, κρίθηκε απαραίτητη η περιγραφή της τελευταίας περίπτωσης με τη συνάρτηση dist2(pos1,pos2). Ο κώδικας που χρησιμοποιήθηκε είναι ο εξής: 15

16 // Attribute 4: wpcanbecaptured \\ attribute3 = dist(pk,pp)-dist2(pk,pp); attribute3 = min (attribute3, dist(pk,pp + 8) - dist2(pk, pp + 8)) ; attribute3 = min (attribute3, dist(pk,pp + 16) - dist2(pk, pp + 16)); fprintf (fp,"%d", attribute3); fprintf (fp,","); Στο παράρτημα Β μπορεί κανείς να δει αυτές τις δύο συναρτήσεις απόστασης. 4) wponfileaorh (Nominal attribute) Στο συγκεκριμένο φινάλε, το αν το πιόνι βρίσκεται στις ακριανές στήλες της σκακιέρας (file A ή file H) παίζει ρόλο, δυσκολεύοντας αρκετά την κατάσταση για τον λευκό. Ο κώδικας για το υπό μελέτη χαρακτηριστικό είναι ο ακόλουθος: // Attribute 6: wponfileaorh \\ if (iswponfileaorh((int)pp)) fprintf (fp, "Y"); else fprintf (fp,"n"); fprintf(fp,","); // Eksetazw th 8esh tou pioniou, pos[1], afou to kanw prwta int. και η συνάρτηση για να δουλέψει αυτό είναι: int iswponfileaorh (int position){ if (f(position) == 1 f(position) == 8) return (1); // 1 for TRUE, as if it was boolean. else return (0); } 5) racetimeenough (Nominal attribute) Το χαρακτηριστικό racetimeenough δείχνει αν το πιόνι μπορεί να γίνει βασίλισσα πριν το προλάβει ο αντίπαλος βασιλιάς, ο οποίος κινείται εναντίον του. Αναφερόμαστε στην περίπτωση κατά την οποία το λευκό πιόνι δε βρίσκεται αναγκαστικά μπροστά από το μαύρο βασιλιά, όπως στην περίπτωση του wpahaidintherace, αλλά συμβαίνει να μπορεί να γίνει βασίλισσα πριν ο τελευταίος το προλάβει, γιατί τα χωρίζει ικανή απόσταση. Με το παρακάτω σχήμα η έννοια του χαρακτηριστικού racetimeenough θα καταστεί σαφέστερη: 16

17 Εικόνα 3.5. Το χαρακτηριστικό racetimeenough. Ο κώδικας που χρησιμοποιήθηκε είναι ο εξής: // Attribute 7: racetimeenough \\ vasilia. leukos elegxous. // Einai attribute pou deixnei an to leuko pioni mporei na ftasei to rank 8 prin fagw8ei apo ton mauro // Skeftomaste omws kai to ekshs: einai dikaio na sumperilaboume kai thn paromoia periptwsh kata thn opoia o // vasilias empodizei kata 1 mono kinhsh to pioni. Ara to skeftomaste kai auto me tous katallhlous int flag_thereiskingahaid = 0, squareahaid = pp +8 /* initialization */, lastranksquare; while (squareahaid <= 63) { if (squareahaid == pk) flag_thereiskingahaid = 1; squareahaid += 8; // dnladn an einai mprosta o vasilias. } lastranksquare = squareahaid - 8; // Now, squareahaid will have the last value, which is not valid for the test of the while loop... if (flag_thereiskingahaid == 0) if (dist(pp,lastranksquare)-dist(pk,lastranksquare)< -1) fprintf(fp, "Y"); else fprintf(fp, "N"); else take the king off the if (dist(pp,lastranksquare)-dist(pk,lastranksquare)< -2) else fprintf(fp,","); fprintf(fp, "Y"); fprintf(fp, "N"); // Because it takes another movement to // white pawn's way. 6) opposition Στη συνέχεια, προσετέθη και ένα χαρακτηριστικό, το οποίο εξετάζει αν ο λευκός βασιλιάς έχει την opposition. Πρόκειται για ένα θέμα λίγο εξειδικευμένο, αλλά ιδιαίτερα σημαντικό για το συγκεκριμένο φινάλε. Εκφράζει, όπως είναι γνωστό από τη σκακιστική θεωρία, την τοποθέτηση των δύο βασιλιάδων μεταξύ τους, η οποία δίνει το πλεονέκτημα σε έναν από τους δύο να μπορεί να εισχωρεί στην περιοχή του αντιπάλου, παρά τη θέληση του αμυνομένου. Ο κώδικας για αυτό το χαρακτηριστικό (αναφερόμαστε εδώ στην direct opposition) είναι ο εξής: // Attribute 2: Has got the OPPOSITION or can get hold of it \\ if (f(pk) == f(pk) && (r(pk) - r(pk) -1 == 1)) /*squares in between the kings for the direct opposition*/ if (sparemove(pk, pp) == 0) /* to take next move the opposition*/ opp = 0; // this is the rule. The code should be correct. else opp = 1; if (!opp) else fprintf(fp,"n"); fprintf(fp,"y"); fprintf(fp,","); τώρα: και η συνάρτηση για να είναι ολοκληρωμένο το παραπάνω τμήμα κώδικα, παρατίθεται αμέσως int sparemove (int p1, int p2) { if (r(p1)-r(p2) >= 2) return (1); else return (0); } Είναι φανερό ότι εξετάζεται μόνο η περίπτωση της direct opposition για τον μαύρο. Αν ο λευκός έχει κάποια κίνηση να κάνει, ούτως ώστε να σπαταλήσει μία κίνηση και να μπορέσει αργότερα να πάρει την opposition (sparemove(pk, pp) == 0), τότε θεωρείται ότι την opposition την έχει ο λευκός. 17

18 Αποτελέσματα Τα αποτελέσματα της εφαρμογής data mining, όταν χρησιμοποιούνται μόνο χαρακτηριστικά (attributes) που προκύπτουν από την ανθρώπινη εμπειρία, φαίνονται στη συνέχεια: === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordataminingkpk_ws55_proseg1-weka.filters.unsupervised.attribute.remove-r3-6 Instances: Attributes: 7 gettingthefrontofpawn opposition wahaidintherace wpcanbecaptured wponfileaorh racetimeenough Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree wahaidintherace = Y: w ( ) wahaidintherace = N gettingthefrontofpawn = NEAR wpcanbecaptured <= 0 racetimeenough = N wponfileaorh = Y wpcanbecaptured <= -2: w (5003.0/1570.0) wpcanbecaptured > -2: d (2489.0/1033.0) wponfileaorh = N: w ( /3762.0) racetimeenough = Y: w (9662.0) wpcanbecaptured > 0 racetimeenough = N: d (6097.0/1643.0) racetimeenough = Y: w (738.0) gettingthefrontofpawn = FAR racetimeenough = N wpcanbecaptured <= 0 wpcanbecaptured <= -1 opposition = N: d (1878.0/72.0) opposition = Y: w (24.0) wpcanbecaptured > -1: d (7274.0/2166.0) wpcanbecaptured > 0: d ( /2067.0) racetimeenough = Y: w (1860.0) Number of Leaves : 12 Size of the tree : 23 Time taken to build model: 1.98 seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Coverage of cases (0.95 level) % Mean rel. region size (0.95 level) % Total Number of Instances === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class w d Weighted Avg === Confusion Matrix === a b <-- classified as a = w b = d 18

19 Εδώ θα γίνει ένα σχόλιο, το οποίο θα καταστεί πιο κατανοητό στη συνέχεια: Το δέντρο είναι πολύ μικρό και ευσύνοπτο. Διαβάζεται πολύ εύκολα από τον άνθρωπο και ανταποκρίνεται πραγματικά στην εμπειρία του. Αυτό οφείλεται στο ότι τα χαρακτηριστικά (attributes) που χρησιμοποιεί είναι κατανοητά από ένα γνώστη των σκακιστικών πραγμάτων. Πιο βαθιά, όμως, πρέπει να ειπωθεί ότι τα attributes φέρουν μεγάλη περιγραφική δύναμη της (σκακιστικής) καταστάσεως, ως φτιαγμένα από άνθρωπο και για αυτό και μεγάλη ακρίβεια επιτυγχάνουν και πολύ γρήγορα και άνετα, χωρίς μεγάλο δέντρο και «κόπο» από πλευράς υπολογιστή. Στη συνέχεια, θα συναντήσουμε πολύ μεγαλύτερα δέντρα, τα οποία θα είναι πρακτικά τεράστια και σίγουρα ακατανόητα από άνθρωπο σε «μακροσκοπική» κλίμακα (ας το πούμε έτσι. Δηλαδή κατανοητά θα είναι μόνο τοπικά ίσως.) Για να δοθεί ένα μέτρο σύγκρισης, θα μπορούσαμε να πούμε ότι τα δέντρα που θα ακολουθήσουν μετά θα είναι από δεκάδες μέχρι εκατοντάδες ή και χιλιάδες (σε πιο απαιτητικά φινάλε) φορές μεγαλύτερα Το φινάλε KPK wtm με «σκακιστικά» και «πρωτογενή» χαρακτηριστικά Σε αυτό το σημείο θα εισαχθούν και κάποια χαρακτηριστικά («πρωτογενή») που στηρίζονται σε απλή γεωμετρική επισκόπηση του παιχνιδιού. Για παράδειγμα, εξετάζεται η απόσταση κατά στήλες μεταξύ των δύο βασιλιάδων (filediffkk). Είναι φανερό ότι δεν υπάρχει κάποια ιδιαίτερη σκακιστική πληροφορία πίσω από μια τέτοια μεταβλητή, καθώς το σκάκι είναι πολύ πιο περίπλοκο παιχνίδι. Όμως, αυτή η ενέργεια στηρίζεται σε μια γενικότερη προσπάθεια αφενός για να επεκταθεί η μελέτη σε όλα τα φινάλε και αφετέρου για να εισαχθούμε καλύτερα στη λογική του data mining σε δεδομένα άγνωστα. Θα απαιτηθεί, δηλαδή, τώρα, σύμφωνα με την τελευταία παρατήρηση, να γίνει το κύριο έργο από τον υπολογιστή, χωρίς να σκέφτεται ο χρήστης πολύπλοκες σκακιστικές περιπτώσεις. Θα δούμε τα αποτελέσματα αυτής της προσέγγισης ευθύς αμέσως. OneR rules === Run information === Scheme: weka.classifiers.rules.oner -B 6 Relation: ffordatamining-weka.filters.allfilter Instances: Attributes: 11 gettingthefrontofpawn opposition filediffkk filediffkp rankdiffkk rankdiffkp wahaidintherace wpcanbecaptured wponfileaorh racetimeenough Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === gettingthefrontofpawn: NEAR -> w FAR -> d (133538/ instances correct) Time taken to build model: 2.01 seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances === Detailed Accuracy By Class === 19

20 TP Rate FP Rate Precision Recall F-Measure ROC Area Class w d Weighted Avg === Confusion Matrix === a b <-- classified as a = w b = d Σχόλιο: Ο αλγόριθμος αυτός είναι πολύ απλός, καθώς λαμβάνει υπόψη ένα μόνο χαρακτηριστικό (attribute), αυτό μόνο του μπορεί να διαχωρίσει καλύτερα κάθε παιχνίδι ως προς την κλάση (ποιος νικάει). Φυσικά, το συγκεκριμένο attribute προκύπτει, εδώ, να είναι ένα από τα «σκακιστικά» που διαθέτει πιο μεγάλη διεισδυτικότητα από ένα «πρωτογενές» χαρακτηριστικό. Το attribute αυτό είναι, δηλαδή, μια μη γραμμική σύνθεση πιο απλών εννοιών, κατάλληλη για το θέμα μας, των σκακιστικών φινάλε. Τελικά, η ακρίβεια 81.8% περίπου είναι αρκετά ικανοποιητική, δεδομένου του χρησιμοποιηθέντος αλγορίθμου, ωστόσο θα παρατεθούν περιπτώσεις όπου χρησιμοποιήθηκαν και πιο ισχυροί αλγόριθμοι ευθύς αμέσως. J48 tree === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordataminingkpk_ws55_proseg1 Instances: Attributes: 11 gettingthefrontofpawn opposition filediffkk filediffkp rankdiffkk rankdiffkp wahaidintherace wpcanbecaptured wponfileaorh racetimeenough Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree wahaidintherace = Y: w ( ) wahaidintherace = N gettingthefrontofpawn = NEAR wpcanbecaptured <= 0 racetimeenough = N wponfileaorh = Y rankdiffkk <= -2 filediffkp <= -6 filediffkk <= -1: d (36.0) filediffkk > -1: w (84.0) filediffkp > -6 filediffkp <= 5 rankdiffkp <= -3 wpcanbecaptured <= -2: w (40.0) wpcanbecaptured > -2 rankdiffkp <= -4: w (8.0) rankdiffkp > -4 rankdiffkk <= -7: d (15.0/4.0) rankdiffkk > -7: w (96.0/40.0) rankdiffkp > -3 filediffkk <= -3 filediffkp <= 1 filediffkp <= -2: d (111.0) filediffkp > -2 rankdiffkp <= 2 filediffkk <= -4 opposition = N filediffkk <= -5 filediffkk <= -6: w (54.0) filediffkk > -6 filediffkp <= 0: d (36.0/15.0) filediffkp > 0: w (33.0) filediffkk > -5: d (90.0/27.0) opposition = Y: w (37.0/3.0) filediffkk > -4: d (117.0/22.0) rankdiffkp > 2: w (35.0/2.0) filediffkp > 1 20

21 filediffkp <= 2 filediffkk <= -4: w (63.0) filediffkk > -4 opposition = N: d (47.0/17.0) opposition = Y: w (10.0) rankdiffkk > 2 opposition = N: d (12.0) opposition = Y: w (3.0) wpcanbecaptured > 1: d (1338.0/12.0) rankdiffkp > 4: d (3106.0/8.0) racetimeenough = Y: w (1860.0) Number of Leaves : 462 Size of the tree : 923 Time taken to build model: seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Coverage of cases (0.95 level) % Mean rel. region size (0.95 level) % Total Number of Instances === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class w d Weighted Avg === Confusion Matrix === a b <-- classified as a = w b = d Βελτιώσεις Προσέγγιση δεύτερη και πιο γενική: Σε αυτήν την προσέγγιση, χρησιμοποιούνται αποκλειστικά attributes «πρωτογενή», που δίνουν γεωμετρικές πληροφορίες της θέσης των κομματιών στη σκακιέρα. Συγχρόνως, θα αφαιρεθούν όλα τα «σκακιστικά» χαρακτηριστικά. Το αποτέλεσμα θα φανεί και θα αξιολογηθεί στη συνέχεια. === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordatamining00 Instances: Attributes: 7 filediffkk filediffkm filediffkm rankdiffkk rankdiffkm rankdiffkm Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree rankdiffkp <= -1: w ( ) rankdiffkp > -1 filediffkp <= -4 filediffkk <= 0 filediffkp <= -6: w (564.0) 21

22 filediffkp > -6 rankdiffkp <= -3 rankdiffkp <= -4: w (256.0) rankdiffkp > -4 filediffkp <= -5: w (84.0) filediffkp > -5 filediffkk > 1 rankdiffkp <= 3: w (80.0/36.0) rankdiffkp > 3: d (32.0/6.0) rankdiffkp > 4: d (380.0) filediffkp > 5: w (564.0) Number of Leaves : 259 Size of the tree : 517 Time taken to build model: seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Coverage of cases (0.95 level) % Mean rel. region size (0.95 level) % Total Number of Instances Το αποτέλεσμα είναι μεν καλό (ή πολύ καλό), αλλά λίγο κατώτερο από ό,τι στην προηγούμενη περίπτωση. Κι όμως, θα δούμε στη συνέχεια ότι και αυτό θα αλλάξει, ώσπου θα φτάσουμε ακρίβειες μέχρι 99.9%! Αποτέλεσμα-προεκτάσεις των πρωτογενών attributes Ένα μεγάλο πλεονέκτημα που προκύπτει από την αποκλειστική χρήση «πρωτογενών» χαρακτηριστικών είναι ότι μπορούν να διαπραγματευτούν συγχρόνως όλα τα φινάλε των τριών κομματιών. Ο λόγος είναι ότι, τώρα πια, δεν υπάρχει κώδικας εξειδικευμένος για την περίπτωση αποκλειστικά του φινάλε KPK (όπως π.χ. το χαρακτηριστικό racetimeenough, το οποίο μάλλον δεν έχει κανένα νόημα σε άλλα φινάλε). Ο κώδικας για όλα τα φινάλε τριών κομματιών φαίνεται στο Παράρτημα Β. Πλεονεκτήματα των πρωτογενών attributes: Γενικότητα στο χειρισμό των φινάλε 3ών κομματιών, το βάρος πέφτει στον υπολογιστή και δεν απαιτείται τόση προσπάθεια, πείρα και γνώση του φινάλε, πράγμα το οποίο δεν είναι καθόλου δεδομένο ότι υπάρχει. Και πραγματικά, η φιλοσοφία του data mining δεν είναι αναγκαστικά να προϋπάρχει γνώση, αλλά, ιδανικά, να την ανακαλύπτουμε μόνοι μας. Μειονεκτήματα των πρωτογενών attributes: Αυτά τα attributes τα οποία είναι πρωτογενή και δε φέρουν σκακιστική πληροφορία, δεν έχουν μεγάλη περιγραφική δύναμη για το σκοπό που τα θέλουμε. Μεγαλύτερα δέντρα, ώσπου να εξαχθεί και χρησιμοποιηθεί όλη η πληροφορία που αυτά φέρουν. Ειδικότερες πληροφορίες: Για να το αποδείξουμε αυτό θα συγκρίνουμε δύο περιπτώσεις μεταξύ τους: την περίπτωση κατά την οποία έχουμε αποκλειστικά πρωτογενή δεδομένα και αποκλειστικά σκακιστικά δεδομένα: Από τα παραπάνω παραδείγματα, λοιπόν, προκύπτουν τα εξής: Πρωτογενή δεδομένα: Size of tree: 517 Σκακιστικά δεδομένα: Size of tree: 23 (Περίπου το 4% του 517.) 22

23 Η διαφορά είναι τεράστια. Και αυτό γιατί για να εξαχθεί όλη η διαθέσιμη πληροφορία από τα απλά δεδομένα, χρειάζονται μεγάλο πλήθος ελέγχων, ενώ τα «σκακιστικά» χαρακτηριστικά δίνουν έτοιμη πληροφορία, έτοιμη για χρήση, δηλαδή για σκακιστικά συμπεράσματα. Τέλος, θα πούμε και κάτι ακόμα: Τα πρωτογενή attributes οδηγούν σε δημιουργία μεγάλων δέντρων και για έναν δεύτερο λόγο, ο οποίος είναι ο εξής απλός: ότι, δηλαδή, είναι εν πάσει περιπτώσει και ικανά να φέρουν μεγάλη πληροφορία για το ποιος νικάει. Αν δεν είχαν τόση πληροφορία, (γιατί πάντα κρύβονται κάποιες απτές πραγματικότητες πίσω από τις αλγεβρικές παραστάσεις), τότε και το δέντρο θα ήταν μικρότερο (όσο και να προσπαθούσε ο υπολογιστής δε θα μπορούσε να εξαγάγει το ίδιο ποσό πληροφορίας, γιατί δεν υπάρχει). Προς επίρρωσιν των ανωτέρων, παρατίθεται το παρακάτω παράδειγμα: === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordataminingkpk_ws55_proseg2-weka.filters.unsupervised.attribute.remove-r3,6- weka.filters.unsupervised.attribute.remove-r2 Instances: Attributes: 4 filediffkk rankdiffkk rankdiffkp Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree rankdiffkk <= -2 rankdiffkp <= -4 rankdiffkk <= -4 rankdiffkp <= -5 rankdiffkp <= -6: w (1872.0/176.0) rankdiffkp > -6 rankdiffkk <= -7: d (512.0/240.0) rankdiffkk > -7: w (2720.0/544.0) rankdiffkp > -5 rankdiffkk <= -6: d (1536.0/560.0) rankdiffkk > -6: w (2544.0/1072.0) rankdiffkk > -4: w (6144.0) rankdiffkp > -4 rankdiffkk <= -4 rankdiffkp <= -1 filediffkk <= -4 rankdiffkp <= -2 rankdiffkk <= -5 rankdiffkp > 4 filediffkk <= -4 rankdiffkp <= 5 filediffkk <= -6: w (136.0/58.0) filediffkk > -6: d (312.0/142.0) rankdiffkp > 5: d (240.0/90.0) filediffkk > -4 filediffkk <= 3: d (3008.0/726.0) filediffkk > 3 rankdiffkp <= 5 filediffkk <= 5: d (312.0/142.0) filediffkk > 5: w (136.0/58.0) rankdiffkp > 5: d (240.0/90.0) rankdiffkk > 4 rankdiffkp <= 4: w (6144.0) rankdiffkp > 4 rankdiffkk <= 5 rankdiffkp <= 5: w (896.0/320.0) rankdiffkp > 5: d (400.0/128.0) rankdiffkk > 5: w (2496.0) Number of Leaves : 68 Size of the tree : 135 Time taken to build model: 5.88 seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % 23

24 Coverage of cases (0.95 level) % Mean rel. region size (0.95 level) % Total Number of Instances Το δέντρο από 517 size έγινε 135 (74% μείωση!) και η ακρίβεια από 95.5% έγινε 80.8% (15% μείωση). Επίσης, στα μειονεκτήματα των πρωτογενών attributes πρέπει να συμπεριλάβουμε και το: Υπολογιστικό κόστος, το οποίο συνεπάγεται και παραπάνω χρόνο εκτέλεσης και μνήμη. Βελτιώσεις στα φινάλε τριών κομματιών: Προσθήκη πληροφορίας για τη απόλυτη θέση των κομματιών Εδώ, κυρίως θα συμπεριλάβουμε πληροφορία για την απόλυτη θέση του λευκού βασιλιά, αλλά συγχρόνως εννοείται ότι περιλαμβάνεται εμμέσως και για τα άλλα κομμάτια, αφού τα κομμάτια συνδέονται μέσω της πληροφορίας για τη σχετική τους θέση (π.χ. filediffkk, κτλ). Αυτή είναι πραγματικά μια βελτίωση που θα κάνει τη διαφορά. Είναι απαραίτητη για το φινάλε KPK (και για τα άλλα φινάλε) για τον εξής λόγο: ως τώρα, με τα πρωτογενή attributes παρείχα στον υπολογιστή πληροφορία για τη σχετική θέση των κομματιών. (Θυμηθείται παρακαλώ τα filediffkk, όπου το Diff δηλώνει Difference, δηλαδή ΔΙΑΦΟΡΑ). Αφού μιλούμε για διαφορά μεταξύ των files (ή στον άξονα x θα μπορούσαμε να πούμε) και των ranks, είναι σίγουρο ότι δίνουμε τη σχετική θέση των κομματιών. Αν ξέρω το ένα, ξέρω, δηλαδή, και όλα τα άλλα. Αυτό είναι απαραίτητο. Είναι όμως απολύτως απαραίτητο αν θέλουμε να πετύχουμε το τέλειο, να μιλήσουμε και για τη σχετική θέση πάνω στη σκακιέρα. Γιατί; Είναι αυτονόητο. Άλλο είναι να είναι το πιόνι στην πάνω γωνία και άλλο στη μέση της σκακιέρας. Αλλά και το ίδιο το ματ, γίνεται (όταν έχουμε 3 κομμάτια) αναγκαστικά σε κάποια άκρη ή πλευρά της σκακιέρας. Άρα, για να μιλήσουμε με ακρίβεια για μια θέση πρέπει να λάβουμε υπ όψη μας τη σχετική θέση στη σκακιέρα. Αλλιώς αναφερόμαστε στην περίπτωση άπειρης σκακιέρας. Παράδειγμα: === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordataminingkpk_ws55_proseg2_skakiera Instances: Attributes: 9 filediffkk filediffkp filediffkp rankdiffkk rankdiffkp rankdiffkp wkfile wkrank Winning side Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree rankdiffkp <= -1: w ( ) rankdiffkp > -1 filediffkp <= -4 filediffkk <= 0 filediffkp <= -6: w (564.0) filediffkp > -6 rankdiffkp <= -3 rankdiffkp <= -4: w (256.0) rankdiffkp > -4 wkrank <= 1 filediffkp <= -5: w (30.0) 24

25 filediffkp > -5: d (50.0) wkrank > 1: w (144.0) rankdiffkp > -3 wkrank <= 2 rankdiffkp <= 5 wkrank <= 1 rankdiffkp <= 0 rankdiffkk <= -2: d (16.0) rankdiffkk > -2: w (4.0) rankdiffkp > 0: d (160.0) wkrank > 1 filediffkp <= -5 rankdiffkp <= -2: w (30.0) rankdiffkp > -2: d (57.0/7.0) filediffkp > -5 rankdiffkp <= -1: d (103.0) rankdiffkp > -1 wkrank <= 7: d (104.0/4.0) wkrank > 7 rankdiffkp <= 3: w (12.0) rankdiffkp > 3 filediffkp <= 4: d (12.0) filediffkp > 4: w (4.0) rankdiffkp > 4: d (380.0) filediffkp > 5: w (564.0) Number of Leaves : 1116 Size of the tree : 2231 Time taken to build model: seconds Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Coverage of cases (0.95 level) % Mean rel. region size (0.95 level) % Total Number of Instances Η διαφορά είναι αρκετή. Πλησιάζουμε το 100%. Ακολουθεί ένα ακόμα τρέξιμο, που φτάνει σε παρόμοια και μεγαλύτερη ακρίβεια. === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: ffordataminingkpk_ws55_proseg2_skakiera-weka.filters.unsupervised.attribute.addexpression-eabs(a1)- Nexpression-weka.filters.unsupervised.attribute.AddExpression-Eabs(a2)-Nexpression- weka.filters.unsupervised.attribute.addexpression-eabs(a3)-nexpression-weka.filters.unsupervised.attribute.addexpression- Eabs(a4)-Nexpression-weka.filters.unsupervised.attribute.AddExpression-Eabs(a5)-Nexpression- weka.filters.unsupervised.attribute.addexpression-eabs(a6)-nexpression-weka.filters.unsupervised.attribute.addexpression- Ea7-a1-NbKFile-weka.filters.unsupervised.attribute.AddExpression-Ea8-a4-NbKRank- weka.filters.unsupervised.attribute.addexpression-ea7-a2-npfile-weka.filters.unsupervised.attribute.addexpression-ea8-a5- NPRank Instances: Attributes: 19 filediffkk filediffkp filediffkp rankdiffkk rankdiffkp rankdiffkp wkfile wkrank Winning side abs(a1) abs(a2) abs(a3) abs(a4) abs(a5) abs(a6) bkfile bkrank PFile PRank Test mode: 10-fold cross-validation 25

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Δ.Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΧΟΥΧΟΥΜΗΣ ΙΩΑΝΝΗΣ Το σύνολο των

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ Δ.Π.Μ.Σ: «Εφαρμοσμένες Μαθηματικές Επιστήμες» 2008

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

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Data Mining) Πανδή Αθηνά

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Data Mining) Πανδή Αθηνά ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Data Mining) Πανδή Αθηνά Μάιος 2008 Τα δεδομένα που έχουμε προς επεξεργασία χωρίζονται σε τρία μέρη: 1. Τα δεδομένα εκπαίδευσης (training set) που αποτελούνται από 2528

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

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ: ΣΤΑΤΙΣΤΙΚΗ-ΠΙΘΑΝΟΤΗΤΕΣ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΑ ΤΑΤΣΙΟΥ

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ: ΣΤΑΤΙΣΤΙΚΗ-ΠΙΘΑΝΟΤΗΤΕΣ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΑ ΤΑΤΣΙΟΥ ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ: ΣΤΑΤΙΣΤΙΚΗ-ΠΙΘΑΝΟΤΗΤΕΣ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΑ ΤΑΤΣΙΟΥ ΠΡΟΕΠΙΣΚΟΠΗΣΗ ΚΑΙ ΕΞΕΡΕΥΝΗΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ Τα προς επεξεργασία

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

ΗΜΕΡΟΜΗΝΙΑ: 25/05/2009 TΕΛΙΚΗ ΕΡΓΑΣΙΑ ΝΙΚΗ ΜΟΣΧΟΥ

ΗΜΕΡΟΜΗΝΙΑ: 25/05/2009 TΕΛΙΚΗ ΕΡΓΑΣΙΑ ΝΙΚΗ ΜΟΣΧΟΥ DATA MINING ΗΜΕΡΟΜΗΝΙΑ: 25/05/2009 TΕΛΙΚΗ ΕΡΓΑΣΙΑ ΝΙΚΗ ΜΟΣΧΟΥ 1 ΠΡΟΕΠΕΞΕΡΓΑΣΙΑ ΔΕΔΟΜΕΝΩΝ Αφού δεν γνωρίζουμε κάποιο τρόπο για να επιλέξουμε εκ των προτέρων την πιο κατάλληλη και αποδοτική μέθοδο μάθησης

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

Ι. Preprocessing (Επεξεργασία train.arff):

Ι. Preprocessing (Επεξεργασία train.arff): Ονοματεπώνυμο: Κατερίνα Αργύρη Δ.Π.Μ.Σ: Εφαρμοσμένες Μαθηματικές Επιστήμες Ακαδ. Έτος: 2008-2009 1 Για την παρούσα εργασία διατίθενται τρία σύνολα δεδομένων: Δεδομένα Εκπαίδευσης (train set αρχείο train.arff):

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

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

ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΔΠΜΣ : ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ ΠΙΘΑΝΟΝΤΗΤΕΣ ΚΑΙ ΣΤΑΤΙΣΤΙΚΗΣ ΕΡΓΑΣΙΑ 08: ΕΙΡΗΝΗ ΛΥΓΚΩΝΗ 1 Ο ΣΤΑΔΙΟ: Πριν εφαρμόσουμε οποιοδήποτε αλγόριθμο

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

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης Οι κινήσεις των κομματιών Σκοπός της παρτίδας, το Ματ Πατ Επιμέλεια: Γιάννης Κατσίρης Παρατήρηση: Μόνο σε αυτό το μάθημα όταν λέμε κομμάτι εννοούμε κομμάτι ή πιόνι και όταν λέμε κομμάτια εννοούμε κομμάτια

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

Γιώργος Γκούμας. Τα πρώτα σκακιστικά βήματα του παιδιού

Γιώργος Γκούμας. Τα πρώτα σκακιστικά βήματα του παιδιού Γιώργος Γκούμας Τα πρώτα σκακιστικά βήματα του παιδιού Περιεχόμενα Παρουσίαση της Σκακιέρας... 7 Κινήσεις Κομματιών... 10 Πύργος, Αξιωματικός & Βασίλισσα...10 Άλογο και Βασιλιάς...14 Πιόνι...18 Αξία των

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

ΑΝΔΡΟΥΛΑΚΗΣ ΜΑΝΟΣ A.M AΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΑΝΔΡΟΥΛΑΚΗΣ ΜΑΝΟΣ A.M AΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΑΝΔΡΟΥΛΑΚΗΣ ΜΑΝΟΣ A.M. 09470015 AΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Διδάσκων: Γιώργος Τζιραλής ΔΠΜΣ ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ Στάδιο 1 ο. Προεπισκόπηση-προεπεξεργασία δεδομένων: Δίδονται τα παρακάτω

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

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

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

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

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

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ Ε Θ Ν Ι Κ Ο Μ Ε Τ Σ Ο Β Ι Ο Π Ο Λ Υ Τ Ε Χ Ν Ε Ι Ο ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ & ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

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

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

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

Εξόρυξη Γνώσης από Βιολογικά εδομένα

Εξόρυξη Γνώσης από Βιολογικά εδομένα Παρουσίαση Διπλωματικής Εργασίας Εξόρυξη Γνώσης από Βιολογικά εδομένα Καρυπίδης Γεώργιος (Μ27/03) Επιβλέπων Καθηγητής: Ιωάννης Βλαχάβας MIS Πανεπιστήμιο Μακεδονίας Φεβρουάριος 2005 Εξόρυξη Γνώσης από Βιολογικά

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

Μαθαίνοντας σκάκι. Εγχειρίδιο για προπονητές. εύτερο βήμα

Μαθαίνοντας σκάκι. Εγχειρίδιο για προπονητές. εύτερο βήμα Μαθαίνοντας σκάκι Εγχειρίδιο για προπονητές εύτερο βήμα Περιεχόμενα Πρόλογος... 4 Το δεύτερο βήμα... 5 Πώς τα παιδιά μαθαίνουν να παίζουν σκάκι... 6 Χαρακτηριστικά του παιχνιδιού των παιδιών... 9 Υλικό

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

Αναγνώριση Προτύπων Εργασία 1η Classification

Αναγνώριση Προτύπων Εργασία 1η Classification ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Αναγνώριση Προτύπων Εργασία 1η Classification Κιντσάκης Αθανάσιος 6667 Μόσχογλου Στυλιανός 6978 30 Νοεμβρίου,

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

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

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

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

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

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

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

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα Βάζοντας την εντολή αυτή σε οποιοδήποτε αντικείμενο μπορούμε να αλλάζουμε

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? ) 3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? ) 3.1 Η εντολή switch case Στην περίπτωση που θέλουμε να εξετάσουμε πολλές διαφορετικές τιμές, θα αναγκαζόμασταν να φτιάξουμε ένα κώδικα που θα περιέχει πολλά

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

Math 6 SL Probability Distributions Practice Test Mark Scheme

Math 6 SL Probability Distributions Practice Test Mark Scheme Math 6 SL Probability Distributions Practice Test Mark Scheme. (a) Note: Award A for vertical line to right of mean, A for shading to right of their vertical line. AA N (b) evidence of recognizing symmetry

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Παίγνια Δύο Αντιπάλων Τα προβλήματα όπου η εξέλιξη των καταστάσεων εξαρτάται

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

ιατµηµατικό Μεταπτυχιακό Πρόγραµµα Σπουδών ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ

ιατµηµατικό Μεταπτυχιακό Πρόγραµµα Σπουδών ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ιατµηµατικό Μεταπτυχιακό Πρόγραµµα Σπουδών ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ Τελική Εργασία στο µάθηµα Αλγόριθµοι Εξόρυξης

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

Θεωρία παιγνίων Δημήτρης Χριστοφίδης Εκδοση 1η: Παρασκευή 3 Απριλίου 2015. Παραδείγματα Παράδειγμα 1. Δυο άτομα παίζουν μια παραλλαγή του σκακιού όπου σε κάθε βήμα ο κάθε παίκτης κάνει δύο κανονικές κινήσεις.

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

1. Εισαγωγή. 2. Τεχνικές και «κρατούμενα»

1. Εισαγωγή. 2. Τεχνικές και «κρατούμενα» 1. Εισαγωγή Η προσέγγιση των Μαθηματικών της Β Δημοτικού από το παιδί προϋποθέτει την κατανόηση των μαθηματικών εννοιών που παρουσιάστηκαν στην Α Δημοτικού και την εξοικείωση του παιδιού με τις πράξεις

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

Επεξήγηση Συμβόλων... 7 Βιβλιογραφικές Αναφορές... 9 Εισαγωγή Από τη Σκοπιά του Αναγνώστη... 13

Επεξήγηση Συμβόλων... 7 Βιβλιογραφικές Αναφορές... 9 Εισαγωγή Από τη Σκοπιά του Αναγνώστη... 13 Περιεχόμενα Επεξήγηση Συμβόλων... Βιβλιογραφικές Αναφορές... 9 Εισαγωγή... Από τη Σκοπιά του Αναγνώστη... Θεωρία Μέσου & Φινάλε... Οι Χρυσοί Κανόνες των Φινάλε... 9 Πύργος εναντίον Αξιωματικού... Πύργος

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

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

Ανάκτηση Πληροφορίας Το Πιθανοκρατικό Μοντέλο Κλασικά Μοντέλα Ανάκτησης Τρία είναι τα, λεγόμενα, κλασικά μοντέλα ανάκτησης: Λογικό (Boolean) που βασίζεται στη Θεωρία Συνόλων Διανυσματικό (Vector) που βασίζεται στη Γραμμική

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - 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 Πολλοί άνθρωποι

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

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

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

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

Τετράδια Κιθάρας. Χρήση του PowerTab

Τετράδια Κιθάρας. Χρήση του PowerTab Τετράδια Κιθάρας Extra ενότητα Χρήση του PowerTab Ευγένιος Αστέρις 1 Περιεχόμενα Πρόλογος... 3 Εγκατάσταση του Power Tab... 4 Εισαγωγή ενός αρχείου midi στο Power Tab... 5 Μελέτη με το Power Tab... 9 Εξήγηση

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

Λύσεις για τις ασκήσεις του lab5

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

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

Approximation of distance between locations on earth given by latitude and longitude

Approximation of distance between locations on earth given by latitude and longitude Approximation of distance between locations on earth given by latitude and longitude Jan Behrens 2012-12-31 In this paper we shall provide a method to approximate distances between two points on earth

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΕΝΑ ΦΛΟΚΑ Επίκουρος Καθηγήτρια Τµήµα Φυσικής, Τοµέας Φυσικής Περιβάλλοντος- Μετεωρολογίας ΓΕΝΙΚΟΙ ΟΡΙΣΜΟΙ Πληθυσµός Σύνολο ατόµων ή αντικειµένων στα οποία αναφέρονται

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

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

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

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

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

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

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

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

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

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

Μια από τις σημαντικότερες δυσκολίες που συναντά ο φυσικός στη διάρκεια ενός πειράματος, είναι τα σφάλματα.

Μια από τις σημαντικότερες δυσκολίες που συναντά ο φυσικός στη διάρκεια ενός πειράματος, είναι τα σφάλματα. Εισαγωγή Μετρήσεις-Σφάλματα Πολλές φορές θα έχει τύχει να ακούσουμε τη λέξη πείραμα, είτε στο μάθημα είτε σε κάποια είδηση που αφορά τη Φυσική, τη Χημεία ή τη Βιολογία. Είναι όμως γενικώς παραδεκτό ότι

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ Ευθύγραμμη Ομαλή Κίνηση Επιμέλεια: ΑΓΚΑΝΑΚΗΣ.ΠΑΝΑΓΙΩΤΗΣ, Φυσικός https://physicscorses.wordpress.com/ Βασικές Έννοιες Ένα σώμα καθώς κινείται περνάει από διάφορα σημεία.

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

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Ματ με δύο βαριά κομμάτια Ματ με Βασίλισσα Επιμέλεια: Γιάννης Κατσίρης

Chess Academy Free Lessons Ακαδημία Σκάκι Δωρεάν Μαθήματα. Ματ με δύο βαριά κομμάτια Ματ με Βασίλισσα Επιμέλεια: Γιάννης Κατσίρης Ματ με δύο βαριά κομμάτια Ματ με Βασίλισσα Επιμέλεια: Γιάννης Κατσίρης Σημείωση: Βαριά κομμάτια = Πύργοι και Βασίλισσα Ελαφρά κομμάτια = Ίπποι και Αξιωματικοί Κομμάτια = Βασιλιάς, Βασίλισσα, Πύργοι, Ίπποι

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

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. Όπως είπαμε οι δύο επιλογές που διαφέρουν

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

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch: HOMEWORK 4 Problem a For the fast loading case, we want to derive the relationship between P zz and λ z. We know that the nominal stress is expressed as: P zz = ψ λ z where λ z = λ λ z. Therefore, applying

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

A READER LIVES A THOUSAND LIVES BEFORE HE DIES.

A READER LIVES A THOUSAND LIVES BEFORE HE DIES. A READER LIVES A THOUSAND LIVES BEFORE HE DIES. 1. Η συγγραφέας του βιβλίου μοιράζεται μαζί μας πτυχές της ζωής κάποιων παιδιών, άλλοτε ευχάριστες και άλλοτε δυσάρεστες. α) Ποια πιστεύεις ότι είναι τα

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

Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων

Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων Τεχνητή Νοημοσύνη 06 Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων Εισαγωγικά (1/3) Τα προβλήματα όπου η εξέλιξη των καταστάσεων εξαρτάται από δύο διαφορετικά σύνολα τελεστών μετάβασης που εφαρμόζονται

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

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα

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

Το βιβλίο της Μ. Autism Resource CD v Resource Code RC115

Το βιβλίο της Μ. Autism Resource CD v Resource Code RC115 Το βιβλίο της Μ Γεια σας με λένε Μ. Είμαι 9 χρονών και μένω στο με τους γονείς μου και τα 2 αδέρφια μου, τον Γιάννη που είναι 10 και τον Βασίλη που είναι 3. Έχω κι ένα σκυλάκι που το λένε Κάντι και είναι

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

ΔΗΜΟΤΙΚΟ ΣΧΟΛΕΙΟ ΣΕΡΡΩΝ ΣΧΟΛ. ΕΤΟΣ 2013-14 «ΚΩΝ. ΚΑΡΑΜΑΝΛΗΣ» ΠΟΙΗΜΑΤΑ ΒΑΣΙΛΙΑΣ

ΔΗΜΟΤΙΚΟ ΣΧΟΛΕΙΟ ΣΕΡΡΩΝ ΣΧΟΛ. ΕΤΟΣ 2013-14 «ΚΩΝ. ΚΑΡΑΜΑΝΛΗΣ» ΠΟΙΗΜΑΤΑ ΒΑΣΙΛΙΑΣ ΠΟΙΗΜΑΤΑ ΒΑΣΙΛΙΑΣ Ο βασιλιάς του σκάκι είμαι εγώ με ανεκτίμητη αξία θεωρώ μόνο με ΜΑΤ μπορείς να με εγκλωβίσεις κι έτσι την παρτίδα να κερδίσεις. Βήματα πολλά δεν κάνω είμαι από όλους υπεράνω. Τη μάχη

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

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

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

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

Τιμή Τιμή. σκορ. ζωές

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

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

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

Ανάκτηση Πληροφορίας Ανάκτηση Πληροφορίας Αποτίμηση Αποτελεσματικότητας Μέτρα Απόδοσης Precision = # σχετικών κειμένων που επιστρέφονται # κειμένων που επιστρέφονται Recall = # σχετικών κειμένων που επιστρέφονται # συνολικών

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

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

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

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

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

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

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

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

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

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

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

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

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

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ»

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ» ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ» Νικόλαος Μπαλκίζας 1. ΕΙΣΑΓΩΓΗ Σκοπός του σχεδίου μαθήματος είναι να μάθουν όλοι οι μαθητές της τάξης τις έννοιες της ισοδυναμίας των κλασμάτων,

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

Β Γραφικές παραστάσεις - Πρώτο γράφημα Σχεδιάζοντας το μήκος της σανίδας συναρτήσει των φάσεων της σελήνης μπορείτε να δείτε αν υπάρχει κάποιος συσχετισμός μεταξύ των μεγεθών. Ο συνήθης τρόπος γραφικής

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

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

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

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

Διπλωματική Εργασία. Διαχείριση Γνώσης και Ασφάλεια Πληροφοριών

Διπλωματική Εργασία. Διαχείριση Γνώσης και Ασφάλεια Πληροφοριών Πανεπιστήμιο Πειραιώς Τμήμα Οργάνωσης και Διοίκησης Επιχειρήσεων Ευρωπαικό Μεταπτυχιακό Πρόγραμμα στη Διοίκηση Επιχειρήσεων Διοίκηση Ολικής Ποιότητας Διπλωματική Εργασία Διαχείριση Γνώσης και Ασφάλεια

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

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string. Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 - Πολύ καλή δουλειά κατά τα άλλα, µπράβο. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.h

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Ταξινόμηση Πίνακα Αναζήτηση σε Ταξινομημένο Πίνακα Πρόβλημα Δίνεται πίνακας t από Ν ακεραίους. Ζητούμενο: να ταξινομηθούν τα περιεχόμενα του πίνακα σε αύξουσα αριθμητική

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

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ Μάριος Σταυρίδης Λεμεσός, Ιούνιος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 Στόχοι Μαθήματος 1. Πώς να επαναλάβετε μια δράση 2. Μάθετε πώς να χρησιμοποιείτε το Loop Blocks Προγραμματισμός EV3 Ακαδημία Ρομποτικής

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Γ ι ά ν ν η ς Ε. Τ ζ ή μ α ς Μάθημα: ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Το πρώτο πράγμα

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

ΑΝΑΛΥΣΗ 1 ΔΕΚΑΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

ΑΝΑΛΥΣΗ 1 ΔΕΚΑΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης. ΑΝΑΛΥΣΗ 1 ΔΕΚΑΤΟ ΜΑΘΗΜΑ, 9-10-13 Μ. Παπαδημητράκης. 1 ΠΡΟΤΑΣΗ. Αν ισχύει y n για άπειρους n και x R και y n y R, τότε x y. Απόδειξη. Υποθέτουμε (για άτοπο) ότι y < x. Γνωρίζουμε ότι υπάρχει κάποιος αρκετά

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

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου GREEKLISH: ΜΙΑ ΝΕΑ ΔΙΑΛΕΚΤΟΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ; Α.Καράκος, Λ.Κωτούλας ΠΕΡΙΛΗΨΗ Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου {INTERNEη από την μια άκρη του κόσμου

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

Other Test Constructions: Likelihood Ratio & Bayes Tests Other Test Constructions: Likelihood Ratio & Bayes Tests Side-Note: So far we have seen a few approaches for creating tests such as Neyman-Pearson Lemma ( most powerful tests of H 0 : θ = θ 0 vs H 1 :

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

Περιεχόμενα. Πρόλογος... 9 Δύο λόγια για το νέο ερευνητή Δύο λόγια για το Διδάσκοντα Ένα κβαντικό παιχνίδι... 15

Περιεχόμενα. Πρόλογος... 9 Δύο λόγια για το νέο ερευνητή Δύο λόγια για το Διδάσκοντα Ένα κβαντικό παιχνίδι... 15 Περιεχόμενα Πρόλογος... 9 Δύο λόγια για το νέο ερευνητή... 11 Δύο λόγια για το Διδάσκοντα... 1 Ένα κβαντικό παιχνίδι... 15 Κεφάλαιο 1: Κβαντικά συστήματα δύο καταστάσεων...17 1.1 Το κβαντικό κέρμα... 17

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

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 12: Συστήματα RAID Οι Καθυστερήσεις των Δίσκων Χρόνος αναζήτησης Μάζα της κεφαλής / βραχίονα Καθυστέρηση για την σταθεροποίηση / τοποθέτηση με ακρίβεια Δύσκολο να

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

ΔΙΑΝΥΣΜΑΤΑ. Ακολουθίες. Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα.

ΔΙΑΝΥΣΜΑΤΑ. Ακολουθίες. Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα. Ακολουθίες ΔΙΑΝΥΣΜΑΤΑ Στην ενότητα αυτή θα μάθουμε: Να ορίζουμε το διάνυσμα. Να ορίζουμε τις σχέσεις μεταξύ διανυσμάτων (παράλληλα, ομόρροπα, αντίρροπα, ίσα και αντίθετα διανύσματα). Να προσθέτουμε και

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

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα; Τελεστές, συνθήκες και άλλα! Όπως έχει διαφανεί από όλα τα προηγούμενα παραδείγματα, η κατασκευή κατάλληλων συνθηκών στις εντολές εάν, εάν αλλιώς, για πάντα εάν, περίμενε ώσπου, επανέλαβε ώσπου, είναι

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

Μεταβλητές τύπου χαρακτήρα

Μεταβλητές τύπου χαρακτήρα Μεταβλητές τύπου χαρακτήρα 31 Μαρτίου 014 1 Μεταβλητές τύπου char Για χειρισμό χαρακτήρων η C διαθέτει τον τύπο char. Ο τύπος είναι βαθμωτός δηλαδή ακέραιης αναπαράστασης. Τυπικά έχει μέγεθος ενός byte

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

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια - University Θα ήθελα να εγγραφώ σε πανεπιστήμιο. Stating that you want to enroll Θα ήθελα να γραφτώ για. Stating that you want to apply for a course ένα προπτυχιακό ένα μεταπτυχιακό ένα διδακτορικό πλήρους

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

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να

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

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ C Προγραμματιστικές Ασκήσεις, Φυλλάδιο Εκφώνηση: 9/3/0 Παράδοση: 5/4/0,.59 Άσκηση 0 η : Το πρόβλημα της βελόνας του Buffon Θέμα της εργασίας

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Μεταπτυχιακή διατριβή. Ανδρέας Παπαευσταθίου

Μεταπτυχιακή διατριβή. Ανδρέας Παπαευσταθίου Σχολή Γεωτεχνικών Επιστημών και Διαχείρισης Περιβάλλοντος Μεταπτυχιακή διατριβή Κτίρια σχεδόν μηδενικής ενεργειακής κατανάλωσης :Αξιολόγηση συστημάτων θέρμανσης -ψύξης και ΑΠΕ σε οικιστικά κτίρια στην

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

Slalom Race Computer Game on Scratch

Slalom Race Computer Game on Scratch Slalom Race Computer Game on Scratch Μπογιατζή Ελισάβετ ¹, Μεταξά Παυλίνα², Νεστοροπούλου Ευσεβεία³, Μαρόγλου Ευαγγελία 4 1 boelisabet@gmail.com 2 pavlinamet2@gmail.com 3 makis.nestoro@hotmail.com 4 euaggeliam2000@gmail.com

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

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα.

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα. Α. Μ. Βαθμός Σχόλιο 1183 lab2 - Πολύ καλή δουλειά κατά τα άλλα 1194 1238 1239 FAIL 1240 1241 1242 1243 1244 1245 1246 - πολύ καλό (*υπάρχουν οι τελεστές = ). Ο κώδικας είναι καλά σχολιασµένος -

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

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

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

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

Κεφάλαιο 9. Έλεγχοι υποθέσεων

Κεφάλαιο 9. Έλεγχοι υποθέσεων Κεφάλαιο 9 Έλεγχοι υποθέσεων 9.1 Εισαγωγή Όταν παίρνουμε ένα ή περισσότερα τυχαία δείγμα από κανονικούς πληθυσμούς έχουμε τη δυνατότητα να υπολογίζουμε στατιστικά, όπως μέσους όρους, δειγματικές διασπορές

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

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

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

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

squared error, Mean absolute error, Root mean squared error) µεγάλωσαν,

squared error, Mean absolute error, Root mean squared error) µεγάλωσαν, ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΜΣ ΣΤΙΣ ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΈΤΟΣ 2009 ΌΝΟΜΑ : ΚΑΤΣΑΒΡΙΑΣ ΕΥΑΓΓΕΛΟΣ Α.Μ. : 09480014 ΕΞΑΜΗΝΟ

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

derivation of the Laplacian from rectangular to spherical coordinates

derivation of the Laplacian from rectangular to spherical coordinates derivation of the Laplacian from rectangular to spherical coordinates swapnizzle 03-03- :5:43 We begin by recognizing the familiar conversion from rectangular to spherical coordinates (note that φ is used

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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