Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος
Παρουσίαση Εισαγωγή Ανάπτυξη Παιχνιδιoύ Μηχανική Μάθηση Σχεδίαση & Ανάπτυξη Παιχνίδι Πράκτορας Δοκιμές Συμπεράσματα & Μελλοντική Ανάπτυξη 2
Εισαγωγή: Αντικείμενο Αντικείμενο Αξιοποίηση υπάρχουσας τεχνογνωσίας και τεχνολογίας πάνω στην χρήση της ενισχυτικής μάθησης για την αυτόματη ανακάλυψη τακτικής 3
Εισαγωγή: Στόχος Στόχος Σχεδίαση και επικύρωση ιδιοτήτων ένος νέου παιχνιδιού με κύρια συνιστώσα την Ενισχυτική Μάθηση Πλατφόρμα Ανάπτυξης Παιχνιδιών Μηχανισμός Μάθησης Τεχνολογίες & Πρακτικές Μέθοδοι & Αλγόριθμοι 4
Εισαγωγή: Μηχανική Λογισμικού MindMapping (Καταγραφή Σκέψης σε Ροή Εργασιών) Online Version Control System (Πλήρες ιστορικό εκδόσεων αρχείων, προγραμμάτων στο σύννεφο) Online Document Collaboration (Επεξεργασία κειμένων στο σύννεφο) 5
Εισαγωγή: Python Πρόγραμμα Περιγραφή Python Γλώσσα Προγραμματισμού - Σύστημα PyGame Βιβλιοθήκη Ανάπτυξης Γραφικών Παιχνιδιών NumPy Numerical Python - Βιβλιοθήκη αριθμητικών και επιστημονικών εργαλείων NetWorkX Βιβλιοθήκη Python δημιουργίας και διαχείρισης δικτύων γράφων PyGraphViz Βιβλιοθήκη διαχείρισης και απεικόνισης γράφων και δικτύων PyBrain Βιβλιοθήκη Μηχανικής Μάθησης - Περιέχει και RL RL-Glue Διεπαφή προτυποποίησης RL - Περιέχει Python Codec 6
Ανάπτυξη Παιχνιδιού: Κύκλος Ζωής Βρόγχος διαδραστικού παιχνιδιού 2 παικτών: 1. εκκίνηση 2. αναμονή εντολών 3. ανανέωση 4. και τερματισμός 7
Ανάπτυξη Παιχνιδιού: Ορισμοί, Κανόνες, Ενέργειες Ορισμοί: Κανόνες: Ενέργειες: 1. 2. 3. 4. 1. Τι επιτρέπεται 2. Τι δεν επιτρέπεται 1. Ενέργειες χρήστη στον αντίπαλο και στο περιβάλλον Περιβάλλον Οντότητες Αντίπαλοι Στόχοι 8
Μηχανική Μάθηση: RL Ενισχυτική Μάθηση: Ο πράκτορας αισθάνεται το περιβάλλον του, έχει ανάδραση αμοιβής και προσαρμόζει ανάλογα τις πράξεις του. Κατάσταση Ενέργεια Αμοιβή "Αφουγκράζομαι, Σκέπτομαι, Πράττω" 9
Μηχανική Μάθηση: RL Ενισχυτική Μάθηση: Στοιχεία Πράκτορας Περιβάλλον Πολιτική (τρόπος συμπεριφοράς) Συνάρτηση αμοιβής (στόχος προβλήματος) Συνάρτηση αξίας (μακροπρόθεσμός στόχος) Μοντέλο (μιμητής συμπεριφοράς περιβάλλοντος) 10
Παιχνίδι: Σχεδίαση RLTankAttack - Αντικείμενο Κατάκτηση της καρνάγιου του αντιπάλου Καταπόντιση του αντιπάλου του είτε σε κενό είτε σε στήλη νερού 11
Παιχνίδι: Σχεδίαση RLTankAttack code.google.com/p/rltankattack/ (bitmark: bit.ly/rltankattack) Διαδραστικό γραφικό παιχνίδι αντίταξης δυο (2) παικτών. Εκτέλεση σε Python με χρήση περιορισμένων βοηθητικών βιβλιοθηκών Μελλοντική φορητότητα σε έξυπνα τηλέφωνα σημείωση: έγιναν δοκιμές πρωτότυπων του RLTankAttack σε Android συσκευές με επιτυχία - απλός χειρισμός παίκτη χωρίς λογική) 13
Παιχνίδι: Σχεδίαση RLTankAttack - Ορισμοί 1. 2. 3. 4. 5. Υπάρχουν 2 πλοία αντίπαλοι Διαστάσεις ΜxN (ΠxY) Η στάθμη κάθε στήλης νερού διαχειρίζεται μέσω των 2 βαλβιδών. Ο αριθμός των βαλβίδων είναι διπλάσιος των στηλών νερού. Μια βαλβίδα ελέγχει την στάθμη σε μια στήλη. 12
Παιχνίδι: Σχεδίαση RLTankAttack - Ενέργειες 1. Σκάφος a. Πρόσω b. Ανάποδα 2. Βαλβίδα a. Εισροή b. Εκροή 14
Πράκτορας: Σχεδίαση Παίκτης Δημιουργός 1. Ανάδραση 2. Ενέργεια 3. Αμοιβή 1. Περιβάλλον 2. Πολιτική 15
Πράκτορας: Σχεδίαση Δημιουργός Πολιτικής Προαιρετική η χρήση του Επαναληπτικός Γεννήτρια τυχαίων κινήσεων 16
Πράκτορας: Σχεδίαση Πράκτορας Παίκτης Συμπεριφέρεται ως παίκτης (αναμονή σειράς, έλεγχος κίνησης) Ελέγχει γράφο για προϋπαρξη κίνησης (προαιρετικό) Κατά τον τερματισμό του ενημερώνει βάσει του αποτελέσματος τον γράφο 17
Δοκιμές: Σχεδίαση Δείκτες Ποιότητας Πρόοδος τύπου κίνησης ανά παιχνίδι (Smart vs Random) Αμοιβές ανά παιχνίδι (+1, -1) 18
Ανάπτυξη: Λογική Στοίβα Αρχιτεκτονική RLTankAttack Πράκτορας Παιχνίδι Python 19
Ανάπτυξη: Ροή Επικοινωνίας 20
Ανάπτυξη: Οντότητες Κλάσσεις Συστήματος Πράκτορας Δοκιμές Παιχνίδι 21
Δοκιμές: Διαστάσεις Πολιτικής Επαναληπτικός Αλγόριθμος Γεννήτρια Τυχαίων κινήσεων 22
Δοκιμές: Δείκτες Μάθησης Smart vs Random Αμοιβές ανά παιχνίδι 23
Συμπεράσματα Βαρύτητα και μεθοδικότητα: Σχεδίαση Τυποποίηση Αρχιτεκτονική 24
Μελλοντικές Eπεκτάσεις RLTankAttack + RL-Glue Agent -vsagent Agent -vsrandom Agent 25