Ανοικτό Πανεπιστήμιο Κύπρου

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

Download "Ανοικτό Πανεπιστήμιο Κύπρου"

Transcript

1 Ανοικτό Πανεπιστήμιο Κύπρου Σχολή Θετικών και Εφαρμοσμένων Επιστημών Μεταπτυχιακή Διατριβή στα Πληροφοριακά Συστήματα Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Σπύρος Γκεζερλής Επιβλέπων Καθηγητής Δημήτριος Καλλές Αύγουστος 2012 Α-1

2 Ανοικτό Πανεπιστήμιο Κύπρου Σχολή Θετικών και Εφαρμοσμένων Επιστημών Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Σπύρος Γκεζερλής Επιβλέπων Καθηγητής Δημήτριος Καλλές Η παρούσα μεταπτυχιακή διατριβή υποβλήθηκε προς μερική εκπλήρωση των απαιτήσεων για απόκτηση μεταπτυχιακού τίτλου σπουδών στα Πληροφοριακά Συστήματα από τη Σχολή Θετικών και Εφαρμοσμένων Επιστημών του Ανοικτού Πανεπιστημίου Κύπρου Αύγουστος 2012 Α-2

3 Περίληψη Το αντικείμενο είναι η αξιοποίηση υπάρχουσας τεχνογνωσίας και τεχνολογίας πάνω στην χρήση της ενισχυτικής μάθησης για την αυτόματη ανακάλυψη τακτικής σε ένα παιχνίδι, ώστε ο μηχανισμός μάθησης να χρησιμοποιηθεί σε νέα, υπό σχεδίαση παιχνίδια. Στην προτεινόμενη εργασία επιχειρούμε να σχεδιάσουμε ένα νέο παιχνίδι (ανταγωνιστικό, μεταξύ δυο παιχτών) και να επικυρώσουμε ορισμένες ιδιότητες του (πχ ισορροπία αποτελεσμάτων με βάση το τυχαίο παιχνίδι, ταχύτητα μηχανικής μάθησης με βάση την πολυπλοκότητα του παιχνιδιού, κλπ) και τη δυνατότητα του υπολογιστή να μαθαίνει από παρατήρηση παικτών (υπολογιστικών η μη). Χρησιμοποιούμε τις υπάρχουσες υλοποιήσεις και επεκτεινόμαστε αξιοποιώντας μόνο τη συνιστώσα της ενισχυτικής μάθησης. Α-3

4 Summary Machine Learning Mechanisms and their Use in Validating the Quality of Novel Games Our objective is to use existing knowhow with reinforcement learning and its implementation technology to automatically discover tactics in a game, so that the learning mechanisms can be used in novel games, currently uder developement. In this thesis we are trying to design a new zero-sum between two players and validate its properties (e.g fairness based on a random game, learning speed based on its complexity etc.) and the computers ability to learn by observing other players (humans or not). Α-4

5 Ευχαριστίες Θα ήθελα να ευχαριστήσω την γυναίκα μου Αθανασία, τις κόρες μου Μυρσίνη και Αριάδνη και φυσικά την μητέρα μου Μαρία. Τέλος, τον καθηγητή μου Δημήτρη Καλλέ, καθώς από το πρώτο έως και το τελευταίο έτος υπήρξε πάντα αρωγός στην ολοκλήρωση του Μεταπτυχιακού μου. Α-5

6 Περιεχόμενα Κεφάλαιο Εισαγωγή Xρονοδιάγραμμα Εργαλεία Αποθετήριο Subversion (SVN) Κεφάλαιο Σχεδίαση MindMap Ορισμός Εργασιών Περιγραφή Παιχνίδιου Πράκτορας Δοκιμές Παιχνίδι Ορισμός παιχνιδιού και κύκλος ζωής Περιγραφή Αντικείμενο Παίκτες Οντότητες παιχνιδιού Το πλέγμα και οι πίνακες Περιβάλλον Πλοίο Νερό Στήλη νερού Βαλβίδα Διεπαφή Αλληλεπίδραση και Χειρισμός Ορισμοί - Κανόνες - Ενέργειες Ορισμοί Α-6

7 Κανόνες Ενέργειες Αρχεία καταγραφής Πράκτορας Ενισχυτική Μάθηση Αλγόριθμος Q-Learning Πράκτορας Τυχαίος Πράκτορας Πράκτορας RLAgent του RLTankAttack Δομή Δεδομένων Πολιτικής Πράκτορα Σταθμισμένος Διγράφος Δοκιμές Δείκτες Μάθησης Τύπος κίνησης Ανταμοιβή ανά παιχνίδι Κεφάλαιο Ανάπτυξη Python και βιβλιοθήκες Python PyGame NumPy NetworkΧ PyDot GraphViz & PyGraphViz MatPlotLib Αρχιτεκτονική Σχεδίαση RLTankAttack Παιχνίδι Οντότητες παιχνιδιού Κλάσσεις Λογικής Κανόνες Κύκλος ζωής Α-7

8 Συμβάντα παιχνιδιού Πράκτορας Δημιουργός Αρχικής Πολιτικής Δημιουργός Επαναληπτικού Βρόγχου Δημιουργός Γεννήτριας Τυχαίων Κινήσεων Πράκτορας Παίκτης Κύκλος ζωής Δοκιμές Καταγραφή παιχνιδιού Επικοινωνία Πράκτορα Ενέργειες Πράκτορα Δείκτες Μάθησης Παρουσίαση αποτελεσμάτων - Control Panel...51 Κεφάλαιο Αποσφαλμάτωση Διαδικασία αποσφαλμάτωσης Εναλλακτικές υλοποιήσεις και λόγοι απόρριψης RL-Glue PyBrain Λόγοι Απόρριψης Συμπεράσματα κύκλου ανάπτυξης Προτεινόμενες Επεκτάσεις...56 Κεφάλαιο Επίλογος Παράρτημα Α Αποσπάσματα κώδικα Παράρτημα Β Δενδρική Δομή Έργου Α-8

9 Κεφάλαιο 1 Εισαγωγή Στην παρούσα μεταπτυχιακή διατριβή πραγματοποιείται κατασκευή εργαλείων, βιβλιοθηκών, γραφικού Παιχνιδιού και Πράκτορα Τεχνητής Νοημοσύνης με χρήση της γλώσσας προγραμματισμού Python, μιας ώριμης, αξιόπιστης και επεκτάσιμης αντικειμενοστραφούς γλώσσας. Οι βιβλιοθήκες που υπάρχουν διαθέσιμες τυποποιούν την ανάπτυξη ακολουθώντας συγκεκριμένα σημεία αναφοράς όπως το Pygame, Matplotlib, Scipy, Numpy κλπ. Η υλοποίηση της εργασίας θα είναι ένα παιχνίδι 2 παικτών με τα ακόλουθους τρόπους εκτέλεσης: άνθρωπος-άνθρωπος, άνθρωπος-μηχανή, μηχανή-μηχανή. Το περιβάλλον είναι μια δεξαμενή χωρισμένη από μια γέφυρα πολλαπλών βυθιζόμενων και ανυψωμένων πλατφορμών (παραλλαγή Διώρυγας Παναμά) με στόχο την καταπόντιση του αντιπάλου στο νερό. Οι στρατηγικές, τα σενάρια δοκιμών και η λογική θα είναι πλήρως παραμετροποιήσιμα από τον χρήστη, και ακολουθεί τις αρχές της Ενισχυτικής Μάθησης. 1.1 Xρονοδιάγραμμα Το έργο χωρίζεται σε 3 τμήματα - ο αρχικός προγραμματισμός εργασίας βάσει αυτών των: Κατασκευή Παιχνιδιού, Δημιουργία Πράκτορα, Εκτέλεση σεναρίων. 1. Υλοποίηση απλού και παραμετροποιήσιμου ως προς τους κανόνες παιχνιδιού άνθρωπος-άνθρωπος 3 μήνες (Νοε-Δεκ - Ιαν) 2. Επόμενο βήμα υλοποίηση Πράκτορα Ενισχυτικής Μάθησης 4 μήνες (Ιαν-Φεβ-Μάρ-Απρ) 3. Αποτύπωση δοκιμών και αποτελεσμάτων αυτόματης ανακάλυψης τακτικής και αξιολόγησης βαθμού ενδιαφέροντος του παιχνιδιού από απλούς χρήστες 4 μήνες (Μάρ-Απρ-Μάι-Ιουν) Α-9

10 1.2 Εργαλεία Για την ανάπτυξη χρησιμοποιήθηκε η γλώσσα προγραμματισμού Python. Πρόκειται για μια ώριμη, αξιόπιστη και επεκτάσιμη αντικειμενοστραφής γλώσσα. Οι βιβλιοθήκες που υπάρχουν διαθέσιμες τυποποιούν την ανάπτυξη ακολουθώντας συγκεκριμένα σημεία αναφοράς όπως το Pygame, Matplotlib, Scipy, Numpy, Pygraphviz, Networkx, PyDot. Tο ολοκληρωμένο εργαλείο ανάπτυξης που επιλέχθηκε είναι το Aptana Studio 3 με χρήση της βιβλιοθήκης PyDev. Επίσης αξίζει να σημειωθεί πως έγινε εκτενής προσπάθεια ενσωμάτωσης πρώτα της βιβλιοθήκης RL-Glue καθώς και PyBrain. Οι δύο αυτές βιβλιοθήκες θεωρούνται αξιόλογες προσπάθειες στην προγραμματιστική τυποποίηση της Ενισχυτικής Μάθησης. Οι λόγοι που δεν επελέγησαν είναι: 1. Μεγάλος χρόνος εκμάθησης 2. Δυσκολία ενσωμάτωσης στο σύστημα 1.3 Αποθετήριο Ως πυρήνας της παρούσας μεταπτυχιακής διατριβής θεωρείται το αποθετήριο έργου: Η συγκεκριμένη μέθοδος Online Project Hosting έδινε την δυνατότητα συνεχούς παρακολούθησης από τον Επιβλέποντα για την πορεία του έργου. Οι προτυποποιήσεις ανέβαιναν στον χώρο αυτό και υπήρχε τάχιστη συνεργασία και σχόλια πάνω στα επόμενα βήματα της Διατριβής. Η παρούσα υπηρεσία της Google, το Google Code, παρέχει μια πληθώρα εργαλείων αποθήκευσης, ορισμού εκδόσεων, wiki σελίδων κλπ για πιο ολοκληρωμένη οργάνωση των επιμέρους τμημάτων ενός έργου λογισμικού. Το έργο ονομάστηκε RLTankAttack (επίθεση με χρήση δεξαμενών νερού χρήσει RL). Αναφορά στο ίδιο το παιχνίδι ακολουθεί στο κεφάλαιο 2 Σχεδίαση. Α-10

11 Στον παραπάνω ιστοχώρο καταχωρούνται από την αρχή της ανάπτυξης της εργασίας τα εξής 3 βασικά στοιχεία: 1. Κώδικας εφαρμογής και εκτελέσιμα 1. Κείμενα, διαγράμματα περιγραφής και μελέτες ανάπτυξης 2. Σελίδες Wiki για γρήγορη περιήγηση και περιγραφή online Subversion (SVN) Στην καρδιά του έργου RLTankAttack βρίσκεται το SVN Version Control System, ώστε κώδικας, διαγράμματα, εικόνες και κείμενα να διαθέτουν εκδόσεις εξέλιξης. Τo SVN είναι μια ισχυρή μέθοδος ώστε να δουλεύουν πολλοί χρήστες σε κοινό έργο, να αποθηκεύουν (commit) τις αλλαγές τους και σε περίπτωση ταυτόχρονης αποθήκευσης από πολλούς χρήστες να μπορεί να γίνει ανανέωση (update), σύγκριση (diff) ή και συγχώνευση κώδικα (merge). Α-11

12 Κεφάλαιο 2 Σχεδίαση 2.1 MindMap Το όλο έργο ξεκίνησε να σχεδιάζεται με χρήση mindmaps, χάρτη σκέψης που εικονοποιεί πληροφορίες, σκέψεις, ιδέες και ροή ενεργειών, απαιτήσεων και ροή εργασιών σε αρκετά αφαιρετικό επίπεδο. Τα mindmaps είναι η πρώτη πράξη ενός μηχανικού στην ανάπτυξη ενός έργου όπως φαίνεται και στην εικόνα 2.1: η καταγραφή στο χαρτί σε μορφή βημάτων τα επιμέρους τμήματα του έργου, τις απαιτήσεις και τον σχεδιασμό τους. Οι φυσαλίδες σκέψης ορίζουν αφαιρετικά τις εργασίες. Για την διατριβή ακολουθεί μια αρχική αποτύπωση της καταγραφής αυτής: Α-12

13 Εικόνα 2.1: MindMapping του έργου RLTankAttack, με παρουσίαση των επιμέρους βημάτων. Το MindMap του έργου ξεκίνησε με τις οντότητες της εμβάθυνσης στην θεωρία της Ενισχυτικής Μάθησης, της Python και των βιβλιοθηκών της. Επίσης στην κατασκευή παιχνιδιών με υπάρχοντα εργαλεία. Με την παραπάνω ανάπτυξη είναι εφικτός ο διαχωρισμός των εργασιών που έπρεπε να γίνουν εξ αρχής: Της δημιουργίας ενός παιχνιδιού/πειράματος, της δημιουργίας πράκτορα Τεχνητής Νοημοσύνης (ΤΝ) και της εκροής αποτελεσμάτων δοκιμών από την αλληλεπίδραση του πειράματός με τον πράκτορα. 2.2 Ορισμός Εργασιών Οι τρεις διακριτοί χώροι ανάπτυξης του πειράματος μας με στόχο την εύρεση αυτόματης ανακάλυψη τακτικής σε ένα παιχνίδι, ώστε ο μηχανισμός μάθησης να χρησιμοποιηθεί σε νέα, υπό σχεδίαση παιχνίδια είναι: Παιχνίδι Πράκτορας Δοκιμές Α-13

14 Με τον διαχωρισμό των παραπάνω τμημάτων ως τομείς ανάπτυξης, είναι διακριτή η εργασία που χρειάζεται το κάθε τι. Το τελικό και αυτονόητο βήμα είναι η σύνθεση των παραπάνω σε ένα ενιαίο σύστημα Περιγραφή Παιχνίδιου Το υπο σχεδίαση παιχνίδι αφορά δεξαμενή χωρισμένη από μια γέφυρα πολλαπλών βυθιζόμενων και ανυψωμένων πλατφορμών (παραλλαγή Διώρυγας Παναμά), 2 αντίπαλα πλοία-παίκτες που ελέγχονται από άνθρωπο ή ΤΝ με στόχο την καταπόντιση του αντιπάλου στο νερό. Το επόμενο υπό επέκταση βήμα θα είναι η κατάκτηση της βάσης του αντιπάλου. Εικόνα 2.2: Γραφική απεικόνιση πρωτότυπου του παιχνιδιού RLTankAttack. Διακρίνεται το περιβάλλον, οι βαλβίδες εισροής κ εκροής νερού, τα αντίπαλα πλοία καθώς και η κάθε διακριτή στήλη νερού. Το γραφικό περιβάλλον του θα πρέπει να διαχωρίζει οπτικά τους παίκτες, το περιβάλλον (νερό, τοίχος κλπ) καθώς και τα χειριστήρια (κίνηση σκάφους, βαλβίδες κίνησης νερού) Πράκτορας O πράκτορας ΤΝ θα χρησιμοποιεί ενισχυτική μάθηση για την σταδιακή βελτίωση του έναντι στον χρήστη άνθρωπο Δοκιμές Οι δοκιμές προσπαθούν να παρουσιάσουν δεδομένα που απασχολούν την δημιουργία νέων παιγνίων όπως ταχύτητα μηχανικής μάθησης με βάση την πολυπλοκότητα του παιχνιδιού, Α-14

15 ισορροπία αποτελεσμάτων με βάση το τυχαίο παιχνίδι και τη δυνατότητα του υπολογιστή να μαθαίνει από παρατήρηση παικτών. 2.3 Παιχνίδι Ορισμός παιχνιδιού και κύκλος ζωής Το παιχνίδι με την ονομασία RLTankAttack περιγράφεται ακολούθως, καθώς γίνεται επίσης και παρουσίαση του στόχου και αντικειμένου του. Τέλος γίνεται ορισμός της φύσης των παικτών. Ο απλός κύκλος ζωής ενός παιχνιδιού έχει ως εξής: Διάγραμμα 2.1: Τυπικός βρόγχος παιχνιδιού - εκκίνηση, αναμονή εντολών, ανανέωση και τερματισμός. To παραπάνω τυπικό σενάριο ζωής ενός παιχνιδιού ορίζει όλο τον σχεδιασμό και αλληλεπίδραση παίκτη, την αποτύπωση στην οθόνη και τον τερματισμό του κύκλου του παιχνιδιού. Πάνω σε αυτό το διάγραμμα έχει γίνει η ανάπτυξη του RLTankAttack. Α-15

16 Περιγραφή Το RLTankAttack είναι ένα διαδραστικό γραφικό παιχνίδι αντίταξης δυο (2) παικτών. Το παιχνίδι πρέπει να εκτελείται μέσω της γλώσσας προγραμματισμού Python και των βοηθητικών βιβλιοθηκών της σε πληθώρα συστημάτων όπως GNU/Linux, MS Windows, Mac OS κλπ. Η φορητότητα του στο μέλλον θα μπορεί να μεταφερθεί και σε έξυπνα τηλέφωνα καθώς έγιναν δοκιμές πρωτότυπων σε Android συσκευές με επιτυχία Αντικείμενο Στόχος του κάθε παίκτη είναι η νίκη έμμεσα με καταπόντιση του αντιπάλου του ή σε κενό είτε σε στήλη νερού, ή άμεσα μέσω της κατάκτησης του αντίπαλου καρνάγιου Παίκτες Η φύση των παικτών-αντιπάλων μπορεί να είναι ένα από τα ζευγάρια: 1. Άνθρωπος-Άνθρωπος 2. Άνθρωπος-Μηχανή 3. Μηχανή-Μηχανή Οντότητες παιχνιδιού Το πλέγμα και οι πίνακες Το πλέγμα του παιχνιδιού αποτελείται από τρεις ιδίων διαστάσεων ΠxΥ (Πλάτος x Ύψος) ή MxN πίνακες: 1. Πίνακας νερού WLMxN (Water Level MxN) 2. Πίνακας πλοίου 0 B0MxN (Boat 0 MxN) 3. Πίνακας πλοίου 1 B1MxN (Boat 1 MxN) O WLMxN περιέχει την τιμή 0 για ανυπαρξία νερού και 1 για παρουσία αυτού. Οι B 0MxN και B1MxN έχουν την τιμή 0 σε όλες τις συντεταγμένες και 1 μόνο στο σημείο που βρίσκονται. Α-16

17 Εικόνα 2.3: Αποτύπωση διεπαφής του παιχνιδιού μια τυχαία στιγμή: Οι στήλες 5 και 7 έχουν στραγγίσει κατά 4 και 2 επίπεδα νερού. Το πλέγμα ταύτισης της παραπάνω κατάστασης μπορεί να οπτικοποιηθεί από την ακόλουθη εικόνα: Εικόνα 2.4: Πλέγμα ταύτισης των τριων πινάκων B0MxN, B1MxN & WLMxN Περιβάλλον Ως περιβάλλον του παιχνιδιού αναφέρονται τα στοιχεία τα οποία δεν αλληλεπιδρούν με ενέργειες του χρήστη. Διακρίνονται σε διακοσμητικά και ενημερωτικά. Τα διακοσμητικά είναι για παράδειγμα η γη που περιβάλλει το νερό, ήτοι η δεξαμενή που κρατά όλες τις Α-17

18 στήλες. Ενημερωτικά είναι τα βέλη που δείχνουν την σειρά του παίκτη και τα παράθυρα νίκης ή ήττας Πλοίο Το πλοίο είναι μια κλάση αντικειμένου που μπορεί να είναι άνθρωπος ή μηχανή. Έχει την δυνατότητα να κινείται αριστερά και δεξιά με χρήση του δεξιού ή αριστερού κουμπιού του ποντικιού. Η θέση του βρίσκεται μέσα σε ένα πίνακα πλοίων διαστάσεων ΠxY (Πλάτος x Ύψος νερού μέσα στην δεξαμενή). Με αυτό τον πίνακα γίνεται άμεσος εντοπισμός της τοποθεσίας του στο πλέγμα του παιχνιδιού. Ο πίνακας αυτός είναι B 0MxN ή B1MxN Νερό Η οντότητα νερό βρίσκεται σε ΠxΥ (Πλάτος x Ύψος) μέσα πάντα στην δεξαμενή μας. Το που βρίσκεται νερό στον WLMxN ορίζεται με 0 ή Στήλη νερού Πρόκειται για μια τεχνητή ομάδα οντοτήτων νερού που βρίσκονται στο ίδιο πλάτος m. Η δεξαμενή περιέχει Μ στήλες Βαλβίδα Κάθε βαλβίδα μπορεί να πραγματοποιεί εισροή ή εκροή και μόνο αυτό. Σε κάθε στήλη νερού αντιστοιχούν δύο (2) βαλβίδες, άρα σε δεξαμενή Μ στηλών διαθέτουμε 2xM βαλβίδες, Μ για εισροή, Μ για εκροή νερού. Με την διοχέτευση ή αποχέτευση αυτού, εφόσον βρίσκεται πάνω στην αντίστοιχη στήλη πλοίο, αυτό μετακινείται πάνω ή κάτω αντίστοιχα Διεπαφή H διεπαφή με τον χρήστη πρέπει να είναι όσο το δυνατό πιο απλή και αυτονόητη από τον παίκτη, αν είναι δυνατό και από την πρώτη εκτέλεση του παιχνιδιού. Για αυτό το λόγο, τόσο Α-18

19 το γραφικό περιβάλλον όσο και η αλληλεπίδραση πρέπει να είναι μινιμαλιστική και να επικεντρώνεται άμεσα στην διασκέδαση του παίκτη Αλληλεπίδραση και Χειρισμός Η αλληλεπίδραση του χρήστη με το παιχνίδι γίνεται αποκλειστικά με: 1. συσκευή κατάδειξης όπως το ποντίκι ή οθόνη αφής 2. μέσω των αρχείων καταγραφής ( 2.3.6) Τα ενεργά στοιχεία (Sprites) του παιχνιδιού είναι το πλοίο και οι βαλβίδες. Ο λόγος που σχεδιάστηκε το RLTankAttack να δέχεται με συσκευή κατάδειξης είναι η μελλοντική διαδραστική συμβατότητα, καθώς η τεχνολογία επαφής ανθρώπου μηχανής τείνει προς τις οθόνες αφής. Τα αρχεία καταγραφής είναι ένας απλός και εύκολος τρόπος αλληλεπίδρασης με την ρουτίνα εκτέλεσης του παιχνιδιού στο επίπεδο συμβάντα (διάγραμμα 2.1) Ορισμοί - Κανόνες - Ενέργειες Ορισμοί 1. Υπάρχουν 2 πλοία αντίπαλοι 2. Η δεξαμενή έχει διαστάσεις ΜxN (ΠxY) 3. Η στάθμη στήλης νερού διαχειρίζεται μέσω των 2 βαλβιδών που της αντιστοιχούν. 4. Ο αριθμός των βαλβίδων είναι διπλάσιος των στηλών νερού. 5. Η δεξαμενή νερού πάνω στο οποίο επιπλέουν τα πλοία αποτελείται από ΜxN στήλες επί γραμμές νερού. 6. Μια βαλβίδα ελέγχει την στάθμη σε μια στήλη Κανόνες 1. Το πλοίο 0 ξεκινά αριστερά πάνω και το πλοίο 1 δεξιά πάνω στην δεξαμενή. Α-19

20 2. Κάθε παίκτης εφόσον είναι σειρά του μπορεί να πραγματοποιήσει μέσω των χειριστηρίων μια ενέργεια την φορά. 3. Μια βάρκα μπορεί να βρίσκεται στην ίδια στήλη με μια άλλη. 4. Το πλοίο πρέπει να βρίσκεται πάντα πάνω σε νερό ώστε να είναι λειτουργικό. 5. Κάθε στήλη μπορεί να αδειάζει ή να γεμίζει σε κάθε σειρά παίκτη κατά ένα επίπεδο (0-Ν). 6. Σκάφος το οποίο μετά από ενέργεια δική του ή άλλου πλοίου δεν διαθέτει νερό στην καρίνα του καταστρέφεται ή καταποντίζεται από ύψος σε νερό. 7. Εφόσον σκάφος περιβάλλεται από νερό ήτοι κινηθεί προς στήλη η οποία περιέχει νερό το πλοίο καταποντίζεται. 8. Εφόσον το σκάφος βρεθεί στην αρχική θέση του αντίπαλου σκάφους πριν από αυτόν, τότε νικάει Ενέργειες 1. Σκάφος: 1. Πρόσω 2. Ανάποδα 2. Βαλβίδα: 1. Εισροή 2. Εκροή Ο έλεγχος σε κάθε περάτωση κίνησης ενός παίκτη αναζητά νικητή και ηττημένο εφόσον η κίνηση αυτή δεν έρχεται σε αντίθεση με τους παραπάνω ορισμούς. Εφόσον υπάρχει παράπτωμα τότε επιστρέφει στην προ κίνησης κατάσταση και αναμένει ενέργεια. Σε αντίθετη περίπτωση και εφόσον όλα έχουν καλώς με την κίνηση, τότε γίνεται σύγκριση των πινάκων B0MxN, B1MxN & WLMxN.για τους δύο παίκτες διαδοχικά: EXISTS(BXMxN && WLMxN, True) Με τον παραπάνω τρόπο έχουμε τιμή 0 σε περίπτωση που το πλοίο Χ δεν βρίσκεται πάνω σε νερό ή 1 σε περίπτωση που όλα είναι εντάξει και η βάρκα διαθέτει νερό. Α-20

21 2.3.6 Αρχεία καταγραφής Τα αρχεία καταγραφής αποτυπώνουν: 1. Κινήσεις (πίνακες B0MxN, B1MxN & WLMxN) 2. Κατάσταση (τερματισμός ή όχι παιχνιδιού) 3. Αμοιβή (-1, 0, 1 η ανταμοιβή του πράκτορα) 4. Σειρά παίκτη (0 ή 1 πλοίο) 5. Τύπος κίνησης (Πλοίο (δεξιά ή αριστερά) ή Στήλη (γέμισμα ή εκροή)) 6. Τύπος κίνησης πράκτορα (έξυπνη ή τυχαία για εμπλουτισμό γνώσεων) Οι τρείς πίνακες B0MxN, B1MxN & WLMxN αποτελούν την βασική δομή δεδομένων όλου του παιχνιδιού. Περιέχουν την θέση των πλοίων και την παρουσία νερού. Αυτοί οι πίνακες θα πρέπει να αλληλεπιδρούν τόσο με το παιχνίδι, με τον πράκτορα αλλά και να είναι εύκολα αποθηκεύσιμες με κοινά αποδεκτό και προσβάσιμο τρόπο για να επεξεργάζονται εύκολα και από τις τελικές δοκιμές των πειραμάτων. Η δημιουγία νέου καταλόγου και άρα κίνησης με αποτύπωση των τριων πινάκων έχει αποτέλεσμα την δημιουργία συμβάντος ενέργειας προς το παιχνίδι. 2.4 Πράκτορας Τα παιχνίδια Η/Υ εκτός από την ψυχαγωγική τους φύση έχουν και το προτέρημα ότι οπτικοποιούν περίπλοκα μαθηματικά προβλήματα. Πράκτορας λογισμικού είναι ένα αυτόνομο πρόγραμμα ικανό να ελέγχει τις αποφάσεις του στο να δρά βάσει των αντιλήψεων που έχει για περιβάλλον του, με απώτερο σκοπό την επίτευξη στόχου. Η ενέργειες από την μεριά ενός Πράκτορα πάνω σε αυτό το παιχνίδι, δίνουν στο υπολογιστικό σύστημα να εκμεταλευτεί την δημιουργία λογικής που έχει αποκτήσει από πολύπλοκους αλγόριθμους μάθησης1. Ο κύριος λόγος που κάθε παιχνίδι οφείλει να έχει αντίπαλο και μια μηχανή ΤΝ είναι ώστε: 1. να μην είναι απαραίτητη η παρουσία 2ου χρήστη (ακόμη και διαδικτυακά) 1 Jennings & Wooldridge, 18 Jan 1996, "Software Agents" IEE Review Α-21

22 2. προσαρμογή δυσκολίας ανάλογη με το επίπεδο του αντίπαλου Η τεχνητή νοημοσύνη αποτελεί μια επιστήμη με απέραντες δυνατότητες στον τομέα της επίλυσης προβλημάτων, τομέας που ανήκει και η επίλυση ενός απλού παιγνιδιού. Η επιλεγμένη μέθοδος κατασκευής του πράκτορα μας (Agent) είναι η Ενισχυτική Μάθηση (Reinforcement Learning) Ενισχυτική Μάθηση O μηχανισμός Ενισχυτικής Μάθησης ή Reinforcement Learning (RL) είναι ο τομέας της μηχανικής μάθησης ώπου ο πράκτορας αισθάνεται το περιβάλλον του, έχει ανάδραση αμοιβής και προσαρμόζει ανάλογα τις πράξεις του. Προσαρμόζει δηλαδή μελλοντικές του ενέργειες βάσει των πεπραγμένων και των αποτελεσμάτων που αυτές είχαν: αν μια ενέργεια στο παρελθόν του επέφερε ζημιά, δεν θα προτιμήσει να την επιλέξει. Αν όμως αυτή τον βοηθά ή και τον οδηγεί σε νίκη, τότε ανεβαίνει στις προτιμήσεις του, εκτός και αν προβλέπεται μηχανισμός exploration-exploitation Αλγόριθμος H Ενισχυτική Μάθηση (ΕΜ) όπως παρουσιάζεται στο διάγραμμα 2.2 έχει χαρακτηριστικά μιας πρωτόγονης μορφής μάθησης: Μέσω ανταμοιβής η τιμωρίας, ο πράκτορας έχει εικόνα αν αυτό που κάνει επιφέρει επιθυμητά αποτελέσματα μόνο μέσω της πληρωμής του. Πάντα προσαρμόζει τα βήματα του ώστε να έχει μέγιστη ανταμοιβή. Α-22

23 Διάγραμμα 2.2: Τυπικός βρόγχος ενισχυτικής μάθησης1 - ο πράκτορας έχει ανάδραση από το περιβάλλον για την κατάσταση και την αμοιβή και αναλόγως προσαρμόζει τις επικείμενες ενέργειες του. Τα βασικά στοιχεία της Ενισχυτικής Μάθησης είναι: 1. Πράκτορας Το ευφυές σύστημα που αφουγκράζεται το περιβάλλον του, σκέπτεται, προβλέπει, αυτοδιορθώνει παλαιότερες ενέργειες και έπειτα πράττει αντίστοιχα. Διαθέτει αισθητήρια για να μετρά κατάστασεις, λαμβάνει αμοιβή και εφαρμόζει ενέργειες προς το περιβάλλον του. 2. Περιβάλλον Ο χώρος μέσα στον οποίο εργάζεται ο Πράκτορας 3. Πολιτική Με την πολιτική ορίζουμε πως θέλουμε ο Πράκτορας να συμπεριφέρεται κάθε δεδομένη στιγμή - πρόκειται για μια αντιστοίχιση καταστάσεων του περιβάλλοντος με ενέργειες που πρέπει να κάνει. 4. Συνάρτηση αμοιβής Ορίζει τον στόχο σε ένα πρόβλημα Ενισχυτικής Μάθησης. Αντιστοιχεί ανταμοιβή ή τιμωρία σε μια ενέργεια και προσπαθεί έπειτα ο πράκτορας να μεγιστοποιήσει την συνολική θετική αμοιβή που θα δεχτεί. 5. Συνάρτηση αξίας Η αξία ή συνολική προβλεπόμενη στο μέλλον αμοιβή που θα λάβει ο πράκτορας μακροπρόθεσμα προέρχεται από την συνάρτηση αυτή. Η αμοιβή είναι άμμεση, η αξία είναι μακροπρόθεσμη. 6. Μοντέλο Το μοντέλο αναφέρεται στο περιβάλλον μέσα στο οποίο υπάρχει ο Πράκτορας. Μιμείται το περιβάλλον και χρησιμοποιείται για τον σχεδιασμό προβλέψεων μελλοντικών ενεργειών Q-Learning Πράκτορας Ο Q-Learning είναι αλγόριθμος που χρησιμοποιεί τον παρακάτω κανόνα ενημέρωσης: 1 Sutton Barto, "Reinforcement Learning: An Introduction", 1998 Α-23

24 Ακολουθεί ο αλγόριθμος Q-Learning σε ψευδοκώδικα: Initialize Q(s,a) for each episode do Observe state s repeat Select action a evaluating Q Take action a Observe r, s s s until s is terminal end for Κώδικας 2.1: ψευδοκώδικας που παρουσιάζει τον αλγόριθμο Q-Learning Τυχαίος Πράκτορας O Τυχαίος Πράκτορας1 δοκιμάζει τυχαίες κινήσεις ώστε να εκπαιδεύσει το σύστημα για τυχόν περιπτώσεις που δεν έχουν καταγραφεί στο σύστημα από μια αρχική, τυποποιημένη εκπαίδευση Πράκτορας RLAgent του RLTankAttack O Συνδυαστικός Πράκτορας του συστήματος RLTankAttack ακολουθεί αφαιρετικά την λογική της Ενισχυτικής Μάθησης. Αναζητά από μια αρχική λύση προς την νίκη βάση τυποποιημένης τυχαίας εκπαίδευσης. Εφόσον δεν βρεί προορισμό προς νίκη τότε και μόνο τότε επιλέγει τυχαία κίνηση μόνο εφόσον αυτή δοκιμαστεί και δεν επιφέρει στον Πράκτορα ήττα. Κατά τον τερματισμό του Πράκτορα, το παιχνίδι που ολοκληρώθηκε αναλύεται και ενημερώνεται ο γράφος πολιτικής με βάρη ανάλογα προς την ήττα, αντιστρόφως ανάλογα 1 OSKAR ARVIDSSON, LINUS WALLGREN, "Q-Learning for a Simple Board Game", Sweden Α-24

25 όταν καταλήγει σε νίκη. Αναλυτικότερα, ο αλγόριθμος του συστήματος κατά τον τερματισμό ενός παιχνιδιού έχει ως εξής: LearnedFromGame(G): #G-->Game reward = GetReward(G) moves = LoadMovesDir(G) graph = LoadGraph( ) weight = graph.maxweightgraph( ) for move in moves: s_n, s_n_1 = state, state-1 #State at sn and sn-1 a_n = action #Action leading from sn-1 to sn if reward == -1: weight = weight + 1 if reward == 1: weight = weight - 1 graph.addedge(s_n_1, s_n) = (a_n, weight) Κώδικας 2.2: ψευδοκώδικας Python που παρουσιάζει τον αλγόριθμο RLAgent του RLTankAttack Δομή Δεδομένων Πολιτικής Πράκτορα Η πιο ευέλικτη δομή δεδομένων για χρήση αποτύπωσης καταστάσεων, ενεργειών και βαρών/ανταμοιβών είναι ο σταθμισμένος διγράφος (weighted directed graph). Πρόκειται για την δομή δεδομένων που μπορεί να αποθηκεύει την πολιτική του Πράκτορα Σταθμισμένος Διγράφος Καταρχάς ένα παιχνίδι αποτυπώνεται με καταστάσεις, κίνηση και επόμενη κίνηση (ή αποτέλεσμα αυτής σε περίπτωση νίκης/ήττας). Μπορούμε να πούμε λοιπόν ότι η ροή κινήσεων είναι: 1. Κατάσταση παιχνιδιού κατά την κίνηση t st Α-25

26 2. Κίνηση από κατάσταση t σε t+1 at 3. Επόμενη κατάσταση st+1 4. Τελική κατάσταση νίκης ή ήττας st+n 5. Αμοιβή rt+n Θεωρούμε λοιπόν σε ένα γράφο που θα κρατά πληροφορίες για το παιχνίδι ως D = (V, A) με με κόμβους V και ακμές Α που θα περιέχουν τις πληροφορίες: V st A (at, rt) Στο παρακάτω παράδειγμα παρουσιάζεται γράφος που αναπαριστά ένα παιχνίδι με 5 πιθανές καταστάσεις, 10 κινήσεις, 2 καταστάσεις τερματισμού. Διάγραμμα 2.3: Σταθμισμένος διγράφος - Οι κόμβοι αποτυπώνουν καταστάσεις, οι ακμές περιέχουν την πληροφορία ότι η κίνηση με βάρος μας οδηγεί σε επικείμενη κατάσταση. Ο παραπάνω γράφος είναι ουσιαστικά ο αρχικός χάρτης που χρησιμοποιεί ο Πράκτορας ώστε να γνωρίζει όλες τις πιθανές καταστάσεις και με ποια κίνηση/ενέργεια θα καταλήξει εκεί. Τα βάρη/αμοιβές ενισχύονται ή μειώνονται κατά την διάρκεια της μάθησης, καθώς θα ενημερώνει τον γράφο αυτό με κάθε ήττα ή νίκη. Κάθε κύκλος παιχνιδιού εμπλουτίζει τον γράφο και κάνει τον Πράκτορα ακόμα πιο προσαρμόσιμο. Α-26

27 2.5 Δοκιμές Οι δοκιμές είναι το τρίτο και τελικό τμήμα της διατριβής καθώς έχει ως στόχο να αποτυπώσει τα αποτελέσματα των πειραμάτων και σεναρίων που θα προκύψουν από την δημιουργία του παιχνιδιού, του πράκτορα και του συνδυασμού τους. Ο πιο απλός τρόπος αποτύπωσης των δοκιμών είναι ο ορισμός δεικτών ποιότητας της συμπεριφοράς του Πράκτορα. Πρόκειται για μετρήσιμα μεγέθη που αντιστοιχούν και αποτυπώνουν εξέλιξη στην μάθηση του ευφυούς συστήματος Δείκτες Μάθησης Μια απλή καταγραφή εκμάθησης ως προς το δημιουργηθέν σύστημα είναι η αντιπαραβολή έξυπνων (καταγεγραμμένων) κινήσεων έναντι των τυχαίων σε κάθε χρονική στιγμή, καθώς και η καταγραφή των ανταμοιβών σε βάθος χρόνου ανα παιχνίδι. Πρόκειται για τους πιο απλούς δείκτες ποιότητας του Πράκτορα: Τύπος κίνησης Σε κάθε παιχνίδι, κάθε κίνηση που πραγματοποιεί ο Πράκτορας μπορεί να είναι τυχαία (εφόσον δεν υπάρχει οδός προς την νίκη) ή ελεγχόμενη εφόσον αυτή είναι καταγεγραμμένη και υπάρχει προηγούμενο στον δίγραφο. Σε βάθος χρόνου θα πρέπει η πλειοψηφία των κινήσεων να είναι ελεγχόμενη Ανταμοιβή ανά παιχνίδι Απλή αντιπαραβολή νίκης, ισοπαλίας ή ήττας σε κάθε παιχνίδι. Με το πέρας του χρόνου, θα πρέπει οι νίκες να εξισσοροπούνται. Α-27

28 Κεφάλαιο 3 Ανάπτυξη Η ανάπτυξη βάσει σχεδίου πάντα προϋποθέτει να έχουν οριστεί τα απαραίτητα εργαλεία τα οποία θα βοηθήσουν στον σκοπό αυτό. Το πρώτο και σημαντικότερο εργαλείο, η βάση όλων σε ανάπτυξη σύγχρονων συστημάτων είναι η γλώσσα προγραμματισμού που θα χρησιμοποιηθεί. Θα πρέπει να είναι φιλική προς τον χρήστη, να είναι ευρείας αποδοχής ώστε να υπάρχουν τουλάχιστον οι κοινές και βασικές βιβλιοθήκες καθώς και να είναι γρήγορα επεκτάσιμη. Μια τέτοια σύγχρονη και ευέλικτη γλώσσα είναι η Python. Είναι η επιλογή πολλών εταιρειών αλλά και ερευνητικών έργων τα τελευταία χρόνια με μεγάλη επιτυχία. Φυσικά τα παραπάνω ολοκληρώνονται με την επιλογή ενός ολοκληρωμένου περιβάλλοντος ανάπτυξης λογισμικού. Το πλεόν κατάλληλο είναι το Aptana Studio, το οποίο βασίζεται στο Eclipse της IBM. 3.1 Python και βιβλιοθήκες Python Η Python είναι μια γενικής χρήσης, υψηλού επιπέδου γλώσσα προγραμματισμού με χρήση μεταγλωττιστή. Έχει σχεδιαστεί ώστε ο κώδικας της να είναι εύκολα αναγνώσιμος και κατανοητός. Οι βιβλιοθήκες και η σύντομη περιγραφή τους αποτυπώνονται στον παρακάτω πίνακα: Πρόγραμμα Περιγραφή Python Γλώσσα προγραμματισμού - βάση συστήματος Παρατηρήσεις ανάπτυξης Α-28

29 twisted Εργαλεία δικτυακής απλότητας setuptools Βασικό εργαλείο υποβοήθησης εγκατάστασης scipy Επιστημονικά εργαλεία pywin32 Win32 pygame Βιβλιοθήκη δημιουργίας παιχνιδιών numpy Βελτιώσεις πινάκων networkx Δημιουργία γράφων pydot Δημιουργία γράφων σε dot pygraphviz Γράφοι και παρουσίαση matplotlib Παρουσίαση διαγραμμάτων pprint Εκτυπωτής κονσόλας ttk Themed Tkinter - Ενισχυμένο GUI για Python προαιρετικό προαιρετικό Πίνακας 3.1: Βιβλιοθήκες Python Η εγκατάσταση βιβλιοθηκών που δεν υπάρχουν διαθέσιμες σε *.exe ή repository πρέπει να εγκατασταθούν από τον πηγαίο κώδικα με μετάβαση στον κατάλογο της βιβλιοθήκης και εκτέλεση της εντολής: python setup.py install PyGame Η βιβλιοθήκη PyGame δεν αποτελεί τμήμα της βασικής διανομής της Python. Η PyGame χρησιμοποιεί ως κύκλο ζωής ενός παιχνιδιού το διάγραμμα 2.1. Κάθε αντικείμενο που θέλουμε να παρουσιάσουμε στην οθόνη μας μπορούμε να το ορίσουμε να είναι κλάσης Sprite, η οποία μας δίνει ιδιότητες διαστάσεων, σχήματος, χρώματος, κίνησης αλλά και ανανέωσης. Πολλά Sprites στον καμβά μας οργανώνουν μια αποτύπωση του παιχνιδιού. Α-29

30 Εικόνα 3.1: Αποτύπωση αντικειμένων κλάσης Sprite του παιχνιδιού RLTankAttack Στην παραπάνω εικόνα έχουμε την ταυτόχρονη χρήση μεταξύ των άλλων, πολλαπλών Sprites νερού, 2 πλοίου, τοίχου και βαλβίδας. Η παραπάνω οθόνη ανανεώνεται ~30 φορές το δευτερόλεπτο, και δεν ανανεώνει μέχρι να συμβεί κάποιο συμβάν όπως το πάτημα ενός κουμπιού ή κίνηση εισόδου κατάδειξης. Ακολουθεί τμήμα κώδικα που παρουσιάζει την απλότητα μιας δημιουργίας εικόνας: #! /usr/bin/env python import pygame screen = pygame.display.set_mode((480, 320)) #το παράθυρο μας running = 1 while running: event = pygame.event.poll() #αναμονή για συμβάν if event.type == pygame.quit: running = 0 Α-30

31 screen.fill((255, 255, 255)) #γέμισμα παραθύρου με λευκό pygame.draw.line(screen, (0, 255, 0), (0, 0), (479, 319)) #πράσινη γραμμή pygame.draw.aaline(screen, (255, 0, 0), (479, 0), (0, 319)) #κόκκινη γραμμή pygame.display.flip() #ανανέωση οθόνης Κώδικας 3.1: Πρόγραμμα Python & PyGame Το παραπάνω πρόγραμμα έχει ως αποτέλεσμα την δημιουργία του ακόλουθου παραθύρου: Εικόνα 3.2: Απλό πρόγραμμα PyGame Το προτέρημα που μας δίνει η πλέον διαδεδομένη και εδραιωμένη βιβλιοθήκη παιχνιδιών PyGame είναι ότι χρησιμοποιεί κοινά πρότυπα της Python για γρήγορη ανάπτυξη χωρίς να απασχολεί τον προγραμματιστή σε χρονοβόρες λεπτομέρειες όπως η ενημέρωση οθόνης, τον διακόπτη συμβάντων κλπ NumPy Η βιβλιοθήκη NumPy (Numerical Python) μας δίνει μια πληθώρα υπολογιστικών εργαλείων για την Python. Μεταξύ των άλλων περιέχει: Πίνακας-Αντικείμενο N-διαστάσεων Συναρτήσεις διαχείρισης, αναζήτησης Διεπαφή με άλλες γλώσσες προγραμματισμού Λειτουργίες γραμμικής άλγεβρας, μετατροπών Fourier και συναρτήσεων και γεννητριών τυχαίων αριθμών Ένα παράδειγμα ευκολίας της NumPy είναι η αναζήτηση τιμής μέσω της συνάρτησης where: Α-31

32 numpy.where(condition[, x, y]) #returns ndarray or tuple of ndarrays Η ευκολία που προσφέρει είναι προφανής, καθώς η αναζήτηση όρου είναι τάχιστη και αποτελείται μόνο από μια γραμμή κώδικα NetworkΧ H βιβλιοθήκη NetworkX, είναι μια ολοκληρωμένη προσπάθεια του Εθνικού Εργαστηρίου LANL για Python που βοηθά στην δημιουργία, χειρισμό και μελέτη δομών, δυναμικής και λειτουργιών πολύπλοκων δικτύων και γράφων. H απλότητα της και η χρήση της αποτυπώνεται στο τμήμα Κώδικα 3.2: #! /usr/bin/env python import networkx as nx G=nx.Graph() G.add_edge(1,2) Κώδικας 3.2: Πρόγραμμα Python & Networkx PyDot H γλώσσα Dot είναι μια περιγραφική γλώσσα κειμένου για την περιγραφή γράφων. Πρόκειται δηλαδή για τον χάρτη ενός γράφου, των κόμβων, ακμών και ιδιοτήτων του για χρήση από άλλα προγράμματα. Είναι δηλαδή ένα πρότυπο ορισμού γράφων. digraph G { 1->2; 2->3; 3->1; } Κώδικας 3.3: Κώδικας Dot Η βιβλιοθήκη PyDot μεταφέρει την επικοινωνία από και προς DOT σύνταξη σε Python GraphViz & PyGraphViz Α-32

33 Ένα ώριμο λογισμικό οπτικοποίησης γράφων είναι το GraphViz. Το απόσπασμα κώδικα 3.3 οπτικοποιείται: Εικόνα 3.3: Οπτικοποίηση Κώδικα 3.3 μέσω GVEdit για GraphViz To Εθνικό Εργαστήριο LANL διαθέτει διεπαφή ονόματι PyGraphViz που ενσωματώνει τις δυνατότητες του εργαλείου αυτού στο σύστημα μας. Σημείωση: Η εγκατάσταση του PyGraphViz σε Λειτουργικό Σύστημα Windows Xp/7 είναι αρκετά πολύπλοκη, για αυτό το σύστημα διαθέτει Plotter γράφων με χρήση τόσο του PyGraphViz όσο και του MatPlotLib. Περισσότερα στο MatPlotLib Άλλο ένα λογισμικό οπτικοποίησης της Python. Έχει την δυνατότητα εκτός από γράφους να δημιουργεί διαγράμματα, γραφικές παραστάσεις και απεικονίσεις όπως η εικόνα 2.3. Είναι η πιο διαδεδομένη και ευρύας γκάμας βιβλιοθήκη αναπαράστασης γραφημάτων, δικτύων κλπ. Περισσότερα για την βιβλιοθήκη: Αρχιτεκτονική Σχεδίαση RLTankAttack Όλα τα παραπάνω έρχονται και δένουν στην ακόλουθη στοίβα ενοποίησης: Α-33

34 Εικόνα 3.4: Αφαιρετική στοίβα Python, Βιβλιοθηκών ως προς το RLTankAttack Με κόκκινο γέμισμα είναι ορατό το παιχνίδι και ο πράκτορας. Η επικοινωνία τους γίνεται μέσω Python και των αρχείων καταγραφής ( 2.3.6). Η ροή επικοινωνίας αποτυπώνεται στο ακόλουθο διάγραμμα: Διάγραμμα 3.1: Αφαιρετική στοίβα επικοινωνίας Παιχνιδιού και Πράκτορα Όπως φαίνεται στο διάγραμμα 3.1, το παιχνίδι με τον έλεγχο των αρχείων καταγραφής βρίσκονται στις 2 αριστερές στήλες GUI και DATA STRUCTURE. Οι δύο δεξιές στήλες Α-34

35 περιέχουν τις λειτουργίες του πράκτορα με την δημιουργία και διαχείριση του γράφου του παιχνιδιού και την αλληλεπίδραση με τα αρχεία καταγραφής. 3.2 Παιχνίδι Το παιχνίδι είναι η διεπαφή όπου είναι τόσο οπτικά όσο και αλγοριθμικά η αλληλεπίδραση παικτών με βάση κάποιο στόχο. Ο παίκτης μπορεί να είναι άνθρωπος ή πράκτορας Οντότητες παιχνιδιού Οι βασικές λογικές οντότητες έχουν κωδικοποιούνται στο διάγραμμα 3.1 που ακολουθεί ως εξής: ΜΠΛΕ ΦΟΝΤΟ: To παιχνίδι και μερικές από τις υλοποιημένες ΚΙΤΡΙΝΟ ΦΟΝΤΟ: Πράκτορας και υλοποιήσεις δημιουργίας Περιβάλλοντος. ΠΡΑΣΙΝΟ ΦΟΝΤΟ: Οι δοκιμές που γίνονται από τα αρχεία καταγραφής και τον γράφο ΡΟΖ ΦΟΝΤΟ: H Python και οι τυποποιημένες βιβλιοθήκες Α-35

36 Διάγραμμα 3.2: Υλοποιημένες Οντότητες - Παιχνίδι, Πράκτορας & Δοκιμές Το παιχνίδι παρουσιάζεται στο μπλέ φόντο και μεταξύ των άλλων περιέχει επιγραμματικά τις παρακάτω κύριες κλάσεις αντικειμένων: Κλάση Βάρκα Υπερκλάση pygame.sprite.sprite Boat.py Νερό UI Εικονίδιο ή pygame.sprite.sprite Water.py Στήλη Νερού WaterLevel.py Βαλβίδα Valve.py - - pygame.sprite.sprite ή Μέθοδοι Κίνηση Δεξιά Αριστερά Πάνω Κάτω Σχεδίαση Θέση Σχεδίαση Θέση Κίνηση Ώθηση νερού Απώθηση νερού Σχεδίαση Θέση Α-36

37 1. Κατάσταση Παιχνιδιού - - Στήλη Αμοιβή για κίνηση Κατάσταση Εναλλαγή σειράς σχεδίαση GameState.py Σειρά παίκτη WhosTurn.py pygame.sprite.sprite Παιχνίδι - RunGame.py ή - 1. Εκκίνηση κύκλου παιχνιδιού PyGame όπως στο διάγραμμα 2.1 Πίνακας 3.2: Κύριες κλάσεις αντικειμένων RLTankAttack Κλάσσεις Λογικής Κανόνες Οι κανόνες περιέχονται στο GameState.py όπου γίνεται έλεγχος του αποτελέσματος της κίνησης (η κίνηση ελέγχεται για νομιμότητα επιλογής αντικειμένου, πλήκτρων κλπ από το ίδιο το παιχνίδι). Διάγραμμα 3.3: Κύκλος ελέγχου κατάστασης μετά από κίνηση Μέσα από τους κανόνες του πιος και πότε είναι νικητής, η κλάση αυτή ελέγχει και επιστρέφει κατάσταση παιχνιδιού και πλασματική αμοιβή ή αποτέλεσμα με τον ακόλουθο κανόνα: Τιμή Περιγραφή Α-37

38 -1 Ήττα Πράκτορα 0 Δεν υπάρχει ακόμη νικητής - το παιχνίδι δεν έχει τερματίσει και συνεχίζεται 1 Νίκη Πράκτορα Κύκλος ζωής Ο κύκλος ζωής του παιχνιδιού αναφέρεται επιγραμματικά στο Από τα πιο σημαντικά είναι τα συμβάντα και η νομιμότητα αυτού Συμβάντα παιχνιδιού Κληρονομημένο από από την PyGame, το Παιχνίδι (RunGame.py) αναμένει συμβάν από το σύστημα. Αποδεκτά συμβάντα 1. Κλικ από ποντίκι 1. Πάνω σε Πλοίο 2. Πάνω σε Νερό 3. Πάνω στο κουμπί τερματισμού του παραθύρου Όλα τα άλλα συμβάντα εξαιρούνται και δεν γίνεται επεξεργασία τους και απορρίπτονται στον περαιτέρω έλεγχο για το παιχνίδι μας. 3.3 Πράκτορας Ο οντότητα ΠΡΑΚΤΟΡΑΣ όπως φαίνεται στο διάγραμμα 3.1 με κίτρινο φόντο αποτελείται από δύο τμήματα: Τον Δημιουργό και τον Παίκτη. ο Δημιουργός οικοδομεί την αρχική αποτύπωση του περιβάλλοντος σε μορφή σταθμισμένου διγράφου. O Πράκτορας είναι ο παίκτης που παίζει ως αντίπαλος με με το πλοίο #1 (#0 είναι πάντα άνθρωπος). Ο Πράκτορας προαπαιτεί να έχει γίνει εργασία από τον Δημιουργό ώστε να γνωρίζει το περιβάλλον στο οποίο έχει να παίξει. Α-38

39 3.3.1 Δημιουργός Αρχικής Πολιτικής Ο Δημιουργός αρχικής Πολιτικής κατασκευάζει ένα σταθμισμένο διγράφο που περιέχει κινήσεις-ενέργειες-αμοιβές. Υλοποιείται από το και στην πράξη υλοποιεί ότι αναφέρεται στην Σχεδίαση Ακολουθούνται δυο μέθοδοι δημιουργίας τέτοιου γράφου: Επαναληπτικού Βρόγχου και Γεννήτρια Τυχαίων Κινήσεων Δημιουργός Επαναληπτικού Βρόγχου Ακολουθούν οπτικοποιημένοι γράφοι που έχουν κατασκευαστεί για παιχνίδι 2x2 και 4x4: Διάγραμμα 3.4: Γράφος παιχνιδιού 2x2 - απεικονίζει καταστάσεις B02x2, B12x2 & WL2x2 - δεν απεικονίζονται οι ακμές με τις ενέργειες και τα βάρη. Δημιουργείται από το πρόγραμμα RLGraphBuilder.py. Α-39

40 Αντίστοιχη αλλά ποιο πολύπλοκη είναι η εικόνα του περιβάλλοντος μας για παιχνίδι 4x4: Διάγραμμα 3.5: Γράφος παιχνιδιού 4x4 - απεικονίζει καταστάσεις B04x4, B14x4 & WL4x4 - δεν απεικονίζονται οι ακμές με τις ενέργειες και τα βάρη. Η πολυπλοκότητα και εξέλιξη των κόμβων θα αναλυθεί στην παράγραφο 3.4. Ο συνολικός αριθμός των κινήσεων είναι:, Μ στήλες, Ν γραμμές Α-40

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

42 Διάγραμμα 3.6: Λογικό διάγραμμα ενημέρωσης γράφου με τυχαίες κινήσεις καθώς και με βάρη κατά τον τερματισμό. Για το παραπάνω βήμα 4. Εκτέλεση τυχαίας κίνησης ακολουθείται ο παρακάτω αλγόριθμος επιλογής τυχαίας κίνησης: ΕκτέλεσηΤυχαίαςΚίνησης(Παιχνίδι, Κίνηση): Επιλογή Τυχαία_Κίνηση Αμοιβή = Κατάσταση(Τυχαία_Κίνηση) Αμοιβή ==-1: ΕκτέλεσηΤυχαίαςΚίνησης(Παιχνίδι, Κίνηση) Αμοιβή >=0: ΕπιστροφήΚίνησης(Τυχαία_Κίνηση) Κώδικας 3.4: Ψευδοκώδικας Επιλογής Τυχαίας Κίνησης Α-42

43 3.4 Δοκιμές Οι δοκιμές αποτυπώνουν πειράματα, δεδομένα αλλά και συμπεράσματα για την ανάπτυξη και συμπεριφορά του Παιχνιδιού αλλά και του Πράκτορα Καταγραφή παιχνιδιού Επικοινωνία Πράκτορα Τόσο η νίκη του πράκτορα όσο και η ήττα καταγράφονται και ενημερώνεται στα αρχεία καταγραφής. Η όλη επικοινωνία γίνεται αποκλειστικά από αυτά τα αρχεία.\ Ενέργειες Πράκτορα Οι διαθέσιμες ενέργειες που μπορεί να κάνει ο Πράκτορας μας αναφέρεται στις ακμές του γράφου περιβάλλοντος. Μετά από καταγραφή των στοιχείων ΚΟΜΒΟΙ & ΑΚΜΕΣ του γράφου που κατασκευάζει ο Δημιουργός, τα αποτελέσματα είναι: Μέγεθος Κόμβοι Ακμές 2x x x x x x x x x Πίνακας 3.3: Αριθμός κόμβων και ακμών γράφου ανάλογα με τις διαστάσεις ΜxN των στοιχείων νερού του παιχνιδιού. Τα παραπάνω οπτικοποιούνται στο παρακάτω γράφημα: Α-43

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

45 9x x Πίνακας 3.4: Αριθμός κόμβων και ακμών γράφου ανάλογα με τις διαστάσεις ΜxN των στοιχείων νερού του παιχνιδιού. Τα παραπάνω οπτικοποιούνται στο παρακάτω γράφημα: Γράφημα 3.2: Αριθμός κόμβων και ακμών γράφου περιβάλλοντος ανάλογα με τις διαστάσεις του παιχνιδιού βάσει τυχαίων κινήσεων. Η πολυπλοκότητα αυξάνεται αλλά απαιτεί περισσότερα τυχαία περάσματα όσο μεγαλώνουν οι διαστάσεις του παιχνιδιού Δείκτες Μάθησης Ο ρυθμός μάθησης παρακολουθείται με επιτυχία με τα ακόλουθα βήματα: 1. Καταγραφή κινήσεων 2. Κατηγοριοποίηση κίνησης 3. Καταγραφή αποτελέσματος κίνησης Σε βάθος παιχνιδιών είναι εφικτό να προκύψουν ικανοποιητικά συμπεράσματα για το αν το σύστημα επίλυσης προβλημάτων έχει υλοποιηθεί σωστά. Αρχικοί δείκτες που πρέπει να καταγράφονται αναφέρονται στην παράγραφο Δείκτες Ποιότητας. Μια απείκόνηση αντιπαραβολής αμοιβών ακολουθεί: Α-45

46 Εικόνα 3.5: Εξέλιξη δείκτη αμοιβών Πράκτορα Επίσης ακολουθεί στην εικόνα 3.6 ο δείκτης τύπου επιλογών του Πράκτορα: Εικόνα 3.6: Εξέλιξη δείκτη τύπου ενεργειών Πράκτορα Παρουσίαση αποτελεσμάτων - Control Panel Για την καλύτερη παρουσίαση του συστήματος RLTankAttack, αναπτύχθηκε βασικό GUI το οποίο συγκεντρώνει τα βήματα παρουσίασης ενός παιχνιδιού με αντίπαλο και παρουσίασης εξέλιξης συλλογής γνώσης: Α-46

47 Εικόνα 3.7: Control Panel για το σύστημα RLTankAttack Τα βήματα εκτέλεσης του συστήματος είναι: 0. Water Level Size Διαστάσεις μεγέθους πίνακα δεξαμενής νερού 1a. PolicyBuilder Εκτέλεση Δημιουργού Πολιτικής - κατασκευή αρχικού γράφου καταστάσεωνενεργειών 1b. RandPolicyBuilder Εκτέλεση Δημιουργού Πολιτικής - κατασκευή αρχικού γράφου καταστάσεωνενεργειών με γεννήτρια τυχαίων κινήσεων 2. Start Game Εκτέλεση παιχνιδιού με διαστάσεις οριζόμενες από το 0 3. Start Agent-vs-Human Εκκίνηση Πράκτορα - προϋποθέτει το βήμα 2 να είναι σε εκτέλεση 4. Show Graph Παρουσίαση ανα πάσα στιγμή του γράφου πολιτικής - προϋποθέτει την εκτέλεση τουλάχιστον μιας φοράς του βήματος 1. Τα στοιχεία του μενού επιλογής Open μας οδηγούν στο άνοιγμα των καταλόγων: 1. Γράφου 2. Αρχείων dot 3. Αποτυπώσεως png των αντίστοιχων dots αρχείων 4. Κινήσεων παιχνιδιών σε σειριακά αρχεία Α-47

48 Κεφάλαιο 4 Αποσφαλμάτωση 4.1 Διαδικασία αποσφαλμάτωσης Η διαδικασία αποσφαλμάτωσης του όλου συστήματος απαιτεί συνεχή καταγραφή των ενεργειών που γίνονται σε κάθε φάση και σε κάθε τομέα ξεχωριστά. Οι δυο διακριτές φάσεις είναι η Σχεδίαση και Ανάπτυξη. Οι τομείς είναι το Παιχνίδι και ο Πράκτορας. Σε κάθε κομμάτι λοιπόν απαιτείται ενδελεχής αποτύπωση των εργασιών για την ανίχνευση, διάγνωση και επίλυση επιμέρους προβλημάτων. Εδώ ανακύπτει και το βασικό πρόβλημα της Python: Κώδικας ο οποίος δεν εκτελείται δεν δοκιμάζεται! Τι σημαίνει αυτό; Σε περίπτωση που μια εντολή μας βρίσκεται σε μια επιλογή που για τον Α ή Β λόγο δεν μας κατέληξε το παιχνίδι ή ο πράκτορας σε εκείνη την πιθανότητα (if statement) τότε η Python αγνοεί την ύπαρξη των εντολών. Υπάρχουν 2 μέθοδοι για την αντιμετώπιση αυτής της ατέλειας (ευλογίας κατά πολλούς): Ενδελεχής έλεγχος κώδικα και διεξοδική εκτέλεση πιθανών εντολών ή χρήση πακέτου Δοκιμών Μονάδων (Unit Testing). Ένα τέτοιο απλό άρθρωμα είναι το unittest (PyUnit). Αρκετές συναρτήσεις του συστήματος RLTankAttack δοκιμάστηκαν, παρόλα αυτά αποτελούν χρονοβόρο και επίπονο κομμάτι της ανάπτυξης λογισμικού. Για αυτό τον λόγο, η πλειοψηφία του συστήματος διαθέτει ιδιόχειρα συστήματα αποσφαλμάτωσης. 4.2 Εναλλακτικές υλοποιήσεις και λόγοι απόρριψης Οι κύριες πλατφόρμες που υπάρχουν αυτή την στιγμή και υλοποιούν συστηματικά Ενισχυτική Μάθηση (μεταξύ άλλων μεθόδων) είναι το RL-Glue (αποκλειστικό συνδετική λογισμική στοίβα Ε.Μ) και το PyBrain. Α-48

49 4.2.1 RL-Glue Το RL-Glue1 αποτελεί ένα ανεξάρτητο, στάνταρ διεπαφής σύνδεσης Ενισχυτικής Μάθησης στα τρεις χαρακτηριστικές οντότητες Πράκτορας-Περιβάλλον-Πείραμα. Στα πλεονεκτήματα του συστήματος είναι ότι ασχολείται αποκλειστικά με Ενισχυτική Μάθηση, διαθέτει διεπαφές σε αρκετές γλώσσες προγραμματισμού και αποτελείται από μεγάλη επιστημονική και φοιτητική κοινότητα. Εικόνα 4.1: Διεπαφή Πειράματος, Πράκτορα και Περιβάλλοντος PyBrain Το PyBrain2 είναι μια ευρύτερη βιβλιοθήκη που εμπεριέχει διάφορες μεθόδους Μηχανικής Μάθησης όπως είναι Η Ενισχυτική, Νευρωνικών Δικτύων κ.α Λόγοι Απόρριψης Κύριος λόγος απόρριψης ήταν η αρκετά μεγάλος χρόνος που απαιτούσαν στην μάθηση τους (learning curve) αλλά και ενσωμάτωση τους στο υπάρχων σύστημα. Σε ανάπτυξη 1 Brian Tanner and Adam White. RL-Glue: Language-Independent Software for Reinforcement-Learning Experiments. Journal of Machine Learning Research, 10(Sep): , (BibTex) 2 Schaul, Tom & Bayer, Justin & Wierstra, Daan & Sun, Yi & Felder, Martin & Sehnke, Frank & Ruckstiess, Thomas & Schmidhuber, Jurgen, "Journal of Machine Learning Research ( ),"PyBrain",Volume 11, 2010 Α-49

50 συστημάτων όπου ακόμη και η επιλογή της γλώσσας προγραμματισμού έχει να συμβάλει σε ταχύα ανάπτυξη ο χρόνος είναι μια σημαντική παράμετρος που επηρρέασε την επιλογή κατασκευής Απλού Πράκτορα. Σε αντιπαραβολή αξίζει να αναφερθεί ότι η ανάπτυξη αρχικής διεπαφής μέσω PyGame διαρκεί μερικά μόλις λεπτά, η κατασκευή διαχείριση και αναζήτηση ενός γράφου μέσω NetWorkX χρειάζεται το πολύ 1 ώρα για ένα προγραμματιστή ικανοποιητικά εξοικειωμένο με την Python. Η ανάπτυξη ενός 2-player παιχνιδιού, βέβαια, απαιτεί αρκετά μεγαλύτερο χρόνο στην κατασκευή του. 4.3 Συμπεράσματα κύκλου ανάπτυξης Κατά την διάρκεια ανάπτυξης του Συστήματος της Μεταπτυχιακής Διατριβής, υπήρξαν αρκετοί επανέλεγχοι και συνεχείς αναδράσεις από τα προβλήματα που προέκυπταν. Κύριοι σταθμοί ήταν: 1. Ορισμός χρήσης σειριακών αρχείων καταγραφής καταστάσεων, κινήσεων και συμβάντων του παιχνιδιού - Δεκ Απόρριψη έτοιμων συστημάτων Ε.Μ όπως PyBrain και RL-Glue - Μαρ Επιλογή σταθμισμένου δίγραφου ώς δομή - Μάιος Προτεινόμενες Επεκτάσεις Το σύστημα μπορεί να επεκταθεί στους 3 τομείς του Παιχνίδι/Πράκτορας/Δοκιμές ώς εξής: Πρωτόκολλο Ενισχυτικής Μάθησης Πολυπρακτορικών Συστημάτων Υπάρχουσες υλοποιήσεις λογισμικού Ενισχυτικής Μάθησης είναι δύσκολο να ενσωματωθούν εύκολα σε οποιοδήποτε πρόβλημα. Με τον ορισμό ενός ανοικτού πρωτοκόλλου που θα έχει σχεδιαστεί με την προοπτική χρήσης ενός ή περισσοτέρων πρακτόρων, περιβάλλοντων ή πειραμάτων θα είναι ευκολότερη η προσαρμογή σε ήδη υπάρχοντα συστήματα. Τροποποίηση γεννήτριας τυχαίων κινήσεων σε παίκτη τυχαίων κινήσεων Δημιουργείται έτσι ένας μηχανικός αντίπαλος εκπαίδευσης τόσο ανθρώπου όσο και του Πράκτορα. Θα πρέπει να λαμβάνει τον Ρόλο του Παίκτη 1 ή Παίκτη 2. Τροποποίηση Πράκτορα ώστε να μπορεί να πάρει και το ρόλο του Παίκτη 1 Προς το παρόν ο Παίκτης 1 είναι Άνθρωπος και ο Πράκτορας είναι πάντα Παίκτης 2. Με αυτό τον τρόπο μπορούμε να έχουμε αντιπάλους Τυχαίο Πράκτορα με Πράκτορα ή Πράκτορα με Πράκτορα. Διασύνδεση του πράκτορα με βιβλιοθήκη RL-Glue Α-50

51 Υλοποιόντας τον Πράκτορα μέσα από το οικοσύστημα RL-Glue, το Παιχνίδι συνεχίζει και είναι υλοποιημένο σε Python, αλλά ο Πράκτορας μπορεί να κατασκευαστεί με μια πληθώρα εργαλείων1. 1 RL-Glue Codecs: C/C++, Java, Lisp, Matlab, Python Α-51

52 Α-52

53 Κεφάλαιο 5 Επίλογος Η Python και οι βιβλιοθήκες που διαθέτει αποτελούν ένα ισχυρό εργαλείο στην ανάπτυξη συστημάτων παιγνίων και τεχνητής νοημοσύνης. Εικόνα: Διασύνδεση Τεχνολογιών για κατασκευή παιγνίων και πρακτόρων ενισχυτικής μάθησης Μέσα από αυτή την Μεταπτυχιακή Διατριβή έγινε προσπάθεια αναζήτησης και τυποποίησης μεθόδων συνδυασμού των δύο με κοινό τόπο την συνιστώσα της γλώσσας προγραμματισμού Python, καθώς και η καταγραφή υπαρχουσών τεχνολογιών και πρόταση μιας αρχικής μεθόδου ανάπτυξης συνδυαστικού συστήματος παιγνιδιού με τεχνητή νοημοσύνη. Α-53

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

55 Παράρτημα Α Αποσπάσματα κώδικα def getrandaction(columns): a = random.randint(0, 3) if(a==0 or a==1): c = random.randint(0, columns-1) else: c=-1 return a,c Κώδικας Α.1: Συνάρτηση τυχαίων κινήσεων def setrandaction(self, Game, Move): p1, p2, wl = self.arrays_load_from_txt_p1p2wl_int(game, Move) f = Functions() a = random.randint(0, 3) if(a==0 or a==1): c = random.randint(0, self.get_columns_number()-1) else: c= cmd = self.setaction(a,c) exec(cmd[0]) reward = GameState().reward(wl, p1, p2) if(reward >=0): return cmd else: Α-55

56 print "\t\t\ttrying another random action..." return self.setrandaction(game, Move) Κώδικας Α.2: Συνάρτηση τυχαίων κινήσεων χωρίς κίνδυνο στον Πράκτορα WATER_LEVEL = np.ones((wl_height,wl_width), dtype=np.bool) BOATS_ARRAY = np.array([np.invert(water_level), np.invert(water_level)], dtype=bool) Κώδικας Α.3: Ορισμός διαστάσεων νερού και αρχικών θέσεων σκαφών μέσω NumPy def boat_over_water(self, water_level, boat): try: and_arrays = water_level & boat num = len(np.where(and_arrays==true)[0]) if(num>0): return True else: return False except Exception as e: print "GameState.boat_over_water error" Κώδικας Α.4: Δοκιμή ύπαρξης νερού κάτω από σκάφος - προσοχή στην γραμμή def reward(self, wl, p1, p2): try: wl = np.array(wl) p1 = np.array(p1) p2 = np.array(p2) retval = 2 boats = (p1, p2) xy0 = self.get_coords(boats[0]) xy1 = self.get_coords(boats[1]) for i in range(0,2): if self.boat_over_water(wl, boats[i])==false: retval = i break else: try: Α-56

57 Y,X = self.get_coords(boats[i]) Y=Y-1 if(y>=0): if wl[y][x]==true: retval = i break except: pass if (retval == 0): retval = 1 elif (retval == 1): retval = -1 else: retval = 0 if(np.array_equal(p1, df.boat_array_target[0])): retval = -1 if(np.array_equal(p2, df.boat_array_target[1])): retval = 1 return retval except Exception as e: print e return 0 Κώδικας Α.5: Συνάρτηση GameState κλάσσης για αμοιβή σε συγκεκριμένη κατάσταση swl, sp1, sp2. Στην γραμμή 30 και 32 γίνεται σύγκριση για το εαν το σκάφος είναι στην αρχική θέση του αντίπαλου καρνάγιου. Α-57

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

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

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

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

Ανοικτό Πανεπιστήμιο Κύπρου

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

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

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

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

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

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

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

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

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

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

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

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

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire Αυτόνομοι Πράκτορες Εργασία εξαμήνου Value Iteration και Q- Learning για Peg Solitaire Μαρίνα Μαυρίκου 2007030102 1.Εισαγωγικά για το παιχνίδι Το Peg Solitaire είναι ένα παιχνίδι το οποίο παίζεται με ένα

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

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

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

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

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

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

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

Ανακύκλωσε το Computer Game σε Scratch

Ανακύκλωσε το Computer Game σε Scratch Ανακύκλωσε το Computer Game σε Scratch Καλλιόπη Σατραζέμη¹, Μαρία Χαραλαμπίδου², Κλεοπάτρα Χαριστέ³, Λαμπρινή Χρυσή 4 1 kalliopaki_s@yahoo.gr 2 maraki98_xar@hotmail.gr 3 kleo.xar@hotmail.gr 4 lamprini1998@gmail.com

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

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

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

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

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

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

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

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

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Εκτιμώμενη διάρκεια: Τέσσερις διδακτικές ώρες Ένταξη στο πρόγραμμα σπουδών Στο νέο Πρόγραμμα Σπουδών του Γυμνασίου

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

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

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

ΠΛΗ 513-Αυτόνομοι Πράκτορες Χειμερινό εξάμηνο 2012 Εφαρμογή αλγορίθμων ενισχυτικής μάθησης στο παιχνίδι Βlackjack. Χλης Νικόλαος-Κοσμάς

ΠΛΗ 513-Αυτόνομοι Πράκτορες Χειμερινό εξάμηνο 2012 Εφαρμογή αλγορίθμων ενισχυτικής μάθησης στο παιχνίδι Βlackjack. Χλης Νικόλαος-Κοσμάς ΠΛΗ 513-Αυτόνομοι Πράκτορες Χειμερινό εξάμηνο 2012 Εφαρμογή αλγορίθμων ενισχυτικής μάθησης στο παιχνίδι Βlackjack Χλης Νικόλαος-Κοσμάς Περιγραφή παιχνιδιού Βlackjack: Σκοπός του παιχνιδιού είναι ο παίκτης

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

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

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου

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

Εγχειρίδιο του Accerciser, έκδοση 0.2.0

Εγχειρίδιο του Accerciser, έκδοση 0.2.0 i Εγχειρίδιο του Accerciser, ii Copyright 2006, 2007, 2008 IBM Corporation Ανάδραση Για να αναφέρετε ένα σφάλμα ή να κάνετε μια εισήγηση σχετικά με την εφαρμογή Accerciser ή με αυτό τον εγχειρίδιο, ακολουθήστε

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

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

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Επιμέλεια: Γκέκα Ασπασία Ιωάννου Ελένη Κούνουπα Άννα Τμήμα Εφαρμογών Πληροφορικής Α 1 Εξάμηνο Δ.ΙΕΚ Αιγάλεω 1 ΠΕΡΙΕΧΟΜΕΝΑ

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

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

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

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

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

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

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

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

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

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

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

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

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

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

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014 Σωτήρης Γυφτόπουλος Κανόνες του Facility Game (1/4) Στο Facility Game υπάρχει ένα σύνολο κόμβων που συνδέονται «σειριακά» και κάθε κόμβος

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

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4 Διαδικασίες παραγωγής λογισμικού Στόχοι Παρουσίαση μοντέλων παραγωγής λογισμικού Περιγραφή τριών γενικών μοντέλων παραγωγής λογισμικού και πότε μπορούν να χρησιμοποιούνται Γενική περιγραφή των μοντέλων

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

Σχετική κίνηση αντικειμένων

Σχετική κίνηση αντικειμένων Σχετική κίνηση αντικειμένων Πως θα μπορούσε να κινηθεί ένας χαρακτήρας προς την έξοδο ενός λαβύρινθου; Πως θα μπορούσε το αυτοκινητάκι μας να κινείται μέσα στην πίστα; Πως θα μπορούσαμε να αναπαραστήσουμε

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος Αυτόνομοι Πράκτορες Εργασία εξαμήνου Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος 2010030090 Περιγραφή του παιχνιδιού Το British square είναι ένα επιτραπέζιο

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

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο: Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER Ονοματεπώνυμο: Τμήμα: Σκοπός σας είναι να φτιάξετε ένα ηλεκτρονικό παιχνίδι για περιπλάνηση σε Λαβύρινθο (MAZE) χρησιμοποιώντας

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

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

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

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

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

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

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417 ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Δημητρίου Σωτήρης 6417 Παιχνίδια διάχυτου υπολογισμού Τεχνολογίες Σχεδιασμός Υλοποίηση Αξιολόγηση Προοπτικές Ένα παιχνίδι διάχυτου υπολογισμού είναι ένα παιχνίδι που έχει ένα ή περισσότερα

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

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Δρ. Βασίλειος Σάλτας 1, Αλέξης Ηλιάδης 2, Ιωάννης Μουστακέας 3 1 Διδάκτωρ Διδακτικής Μαθηματικών, Επιστημονικός Συνεργάτης ΑΣΠΑΙΤΕ Σαπών coin_kav@otenet.gr

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Microsoft PowerPoint 2007

Microsoft PowerPoint 2007 Information Technology Services and Solutions Σύμβουλοι Μηχανογράφησης και Εκπαίδευσης Στεφ. Σκουλούδη 27, Καλλίπολη, Πειραιάς 210 45 38 177 http://www.itss.gr/ Microsoft PowerPoint 2007 Κωνσταντίνος Κωβαίος

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

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

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

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

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα 3 Φύλλο Εργασίας 3 Στο φύλλο εργασιών 3 θα ασχοληθούμε με τις λίστες μια δομή της γλώσσας python που έχει την δομή ενός πίνακα. Θα χρησιμοποιήσουμε τις βασικές εντολές από τις λίστες και θα κατασκευάσουμε

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

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

Η ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ COACH 5 ΣΤΗΝ ΔΙΔΑΣΚΑΛΙΑ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΟΜΕΑ ΤΩΝ Τ.Ε.Ε. 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 485 Η ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ COACH 5 ΣΤΗΝ ΔΙΔΑΣΚΑΛΙΑ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΟΜΕΑ ΤΩΝ Τ.Ε.Ε. Μπουλταδάκης Στέλιος Εκπαιδευτικός

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

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

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

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή

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

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

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

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

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες Άνοιξε το προγραμματιστικό περιβάλλον του Scratch 2.0. Επίλεξε το Σκηνικό. Επίλεξε την καρτέλα Υπόβαθρα. Επίλεξε το πινέλο, αύξησε το πλάτος της γραμμής του πινέλου

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

Εξισώσεις α βαθμού. Γνωστικό αντικείμενο: Μαθηματικά (ΔΕ) Δημιουργός: ΣΟΦΙΑ ΣΜΠΡΙΝΗ

Εξισώσεις α βαθμού. Γνωστικό αντικείμενο: Μαθηματικά (ΔΕ) Δημιουργός: ΣΟΦΙΑ ΣΜΠΡΙΝΗ Εξισώσεις α βαθμού. Επαρκές Σενάριο Γνωστικό αντικείμενο: Μαθηματικά (ΔΕ) Δημιουργός: ΣΟΦΙΑ ΣΜΠΡΙΝΗ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ Σημείωση Το παρόν έγγραφο

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

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

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

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

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

Tank Rescue Computer Game σε Scratch

Tank Rescue Computer Game σε Scratch Tank Rescue Computer Game σε Scratch Μπέλτσος Νικόλαος 1, Παναγιωτόπουλος Ευάγγελος 2, Παπαδόπουλος Βασίλης 3, Παπουδάρης Κωνσταντίνος 4 1 sokin2@yahoo.gr 2 vaggelispan@yahoo.gr 3 papadopoulos_vasilis@yahoo.gr

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

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

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

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

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

Breakdance Computer Game σε Scratch.

Breakdance Computer Game σε Scratch. Breakdance Computer Game σε Scratch. Ταστίογλου Μαριάννα 1, Τραντοπούλου Μαργαρίτα 2 1 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου atas94@otenet.gr 2 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου daizy@in.gr Δασκαλάκης

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

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

Πλάνο Παρουσίασης. Στο δεύτερο μέρος θα μελετήσουμε τον σχεδιασμό και κώδικα πίσω από την εφαρμογή. Pong Game Project Επιβλέπων:Δασυγένης Μηνάς Φοιτητής:Τερζή Αναστασία Ιούνιος 2018,Κοζάνη Τμήμα Μηχανικών πληροφορικής και τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

Ο Οδηγός γρήγορης εκκίνησης

Ο Οδηγός γρήγορης εκκίνησης Ο Οδηγός γρήγορης εκκίνησης του Microsoft PowerPoint 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης.

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

3 ο εργαστήριο Scratch for NinjaCoders

3 ο εργαστήριο Scratch for NinjaCoders 3 ο εργαστήριο Scratch for NinjaCoders Τίτλος εφαρμογής: Space Invaders (Διαστημικοί εισβολείς) Περιγραφή στόχων, σενάριο εφαρμογής, παρουσίαση scratch, μεταβλητές, συμβάντα, προγραμματιστικές δομές 0

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

Μελέτη και έλεγχος της διατήρησης της μηχανικής ενέργειας στην ελεύθερη πτώση σώματος. (Ανάλυση video μέσω του Σ.Σ.Λ.Α, LoggerPro της Vernier)

Μελέτη και έλεγχος της διατήρησης της μηχανικής ενέργειας στην ελεύθερη πτώση σώματος. (Ανάλυση video μέσω του Σ.Σ.Λ.Α, LoggerPro της Vernier) Μελέτη και έλεγχος της διατήρησης της μηχανικής ενέργειας στην ελεύθερη πτώση σώματος. (Ανάλυση video μέσω του Σ.Σ.Λ.Α, LoggerPro της Vernier) Στόχοι Να μελετήσουμε τις μεταβολές της κινητικής και της

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

Παραδείγματα μεταβλητών

Παραδείγματα μεταβλητών Παραδείγματα μεταβλητών Παράδειγμα Bouncing Balls: Στη σκηνή υπάρχουν τρείς μπάλες και κάθε μία έχει διαφορετικό μέγεθος από τις άλλες. Όλες οι μπάλες χοροπηδούν ταυτόχρονα προς όλες τις κατευθύν-σεις.

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

Γεωργάκης Αριστείδης ΠΕ20

Γεωργάκης Αριστείδης ΠΕ20 1 Εκκίνηση για πρώτη φορά Όπως συμβαίνει και με τις υπόλοιπες εφαρμογές του OpenOffice, έτσι και το Impress μπορούμε να το εκκινήσουμε μέσω της συντόμευσης που εγκαθίσταται αυτόματα στην επιφάνεια εργασίας

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

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

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

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

COSMOS CLOUD CMS. Η σύγχρονη επικοινωνία με τον COSMOS σας

COSMOS CLOUD CMS. Η σύγχρονη επικοινωνία με τον COSMOS σας COSMOS CLOUD CMS Η σύγχρονη επικοινωνία με τον COSMOS σας Το Σύστημα Διαχείρισης Επαφών COSMOS CLOUD CMS ( Contacts Management System ) είναι μια καινοτόμα και εύκολη στη χρήση της εφαρμογή που ανταποκρίνεται

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

COSMOS CLOUD CMS ΤΟ COSMOS CLOUD CMS ΔΕΝ ΕΙΝΑΙ ΜΙΑ ΑΠΛΗ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΚΟΥ ΓΡΑΦΕΙΟΥ.

COSMOS CLOUD CMS ΤΟ COSMOS CLOUD CMS ΔΕΝ ΕΙΝΑΙ ΜΙΑ ΑΠΛΗ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΚΟΥ ΓΡΑΦΕΙΟΥ. COSMOS CLOUD CMS Η σύγχρονη επικοινωνία με τον COSMOS σας Το Σύστημα Διαχείρισης Επαφών COSMOS CLOUD CMS ( Contacts Management System ) είναι μια καινοτόμα και εύκολη στη χρήση της εφαρμογή που ανταποκρίνεται

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

Αντικείμενα, συμπεριφορές, γεγονότα

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

Δημιουργία παιχνιδιού με το ΜΙΤ AppInvnentor (Πινγκ - Πονγκ).

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

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

Διαχείριση Επιλογών Διαμόρφωσης

Διαχείριση Επιλογών Διαμόρφωσης 1 Περίληψη Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας διαχείρισης επιλογών διαμόρφωσης εγγραφών Εσόδων Εξόδων & Άρθρων Γενικής Λογιστικής στην εφαρμογή της σειράς

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

1. ΓΕΝΙΚΟΙ ΚΑΝΟΝΕΣ ΚΑΙ ΠΡΟΥΠΟΘΕΣΕΙΣ ΛΗΨΗΣ ΠΤΥΧΙΟΥ

1. ΓΕΝΙΚΟΙ ΚΑΝΟΝΕΣ ΚΑΙ ΠΡΟΥΠΟΘΕΣΕΙΣ ΛΗΨΗΣ ΠΤΥΧΙΟΥ 1. ΓΕΝΙΚΟΙ ΚΑΝΟΝΕΣ ΚΑΙ ΠΡΟΥΠΟΘΕΣΕΙΣ ΛΗΨΗΣ ΠΤΥΧΙΟΥ Ισχύει ένα πρόγραμμα σπουδών από τον Οκτώβριο του 2013. Για να πάρει κάποιος πτυχίο από το 2014 κι έπειτα απαιτείται να πληροί όλους τους παρακάτω όρους:

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

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

http://www.advanced-ip-scanner.com/gr/ Σο Advanced IP Scanner είναι μια γρήγορη και αξιόπιστη λύση σάρωσης δικτύου. ας επιτρέπει εύκολα και γρήγορα να ανακτήσετε όλες τις απαιτούμενες πληροφορίες για τους

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

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

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

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων

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

Εγκατάσταση του Lazarus

Εγκατάσταση του Lazarus Εισαγωγή στο Προγραμματισμό με τη PASCAL ΠΕΡΙΕΧΟΜΕΝΑ: Πώς να κατεβάσετε και να εγκαταστήσετε το περιβάλλον προγραμματισμού Lazarus. Εισαγωγή στη PASCAL. Εγκατάσταση του Lazarus Γιατί η PASCAL? Έτσι, η

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #3 2 Γενικά Στο Τετράδιο #3 του Εργαστηρίου θα εξοικειωθούμε με τη χρήση της εντολής πολλαπλής

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

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: 1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: Εικόνα 1 Για να φτιάξουμε το τείχος επιλέγουμε καταρχήν την καρτέλα Γραφικά (κάτω δεξιά) και έπειτα το γεμάτο τετράγωνο από την

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

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό 1 Εισαγωγή Σκεφτείτε έναν αριθμό από το 1 έως το 1000 και απαντήστε στην ερώτηση: Ο αριθμός που σκεφτήκατε είναι μεγαλύτερος

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

Το πρόγραμμα συγχρηματοδοτείται 75% από το Ευρωπαϊκό κοινωνικό ταμείο και 25% από εθνικούς πόρους.

Το πρόγραμμα συγχρηματοδοτείται 75% από το Ευρωπαϊκό κοινωνικό ταμείο και 25% από εθνικούς πόρους. Το πρόγραμμα συγχρηματοδοτείται 75% από το Ευρωπαϊκό κοινωνικό ταμείο και 25% από εθνικούς πόρους. ΓΕΝΙΚΟ ΤΜΗΜΑ ΦΥΣΙΚΗΣ, ΧΗΜΕΙΑΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΛΙΚΩΝ ΕΡΓΑΣΤΗΡΙΑ ΦΥΣΙΚΗΣ ORIGIN ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

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

App Inventor 3ο Μάθημα (Ζάρια - επέκταση)

App Inventor 3ο Μάθημα (Ζάρια - επέκταση) App Inventor 3ο Μάθημα (Ζάρια - επέκταση) Μεταβλητές Δομή επιλογής If then Λογικές συνθήκες Στο μάθημα αυτό θα επεκτείνουμε την εφαρμογή ζάρια που αναπτύξαμε στο πρώτο μάθημα ώστε να εμφανίζει μήνυμα επιτυχίας

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

Σενάριο 16: Ο κόσμος του Robby

Σενάριο 16: Ο κόσμος του Robby Σενάριο 16: Ο κόσμος του Robby Φύλλο Εργασίας Τίτλος: Ο κόσμος του Robby Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές εργασίες.

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 Σελίδα 1 ΓΕΝΙΚΑ - ΕΙΣΑΓΩΓΗ Το GRS-1 της TOPCON διαθέτει λειτουργικό σύστημα Windows CE NET 6.1 παρέχοντας την δυνατότητα εγκατάστασης οποιασδήποτε εφαρμογής και λογισμικού έκδοσης

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

Εικονικό Εργαστήριο Χωρικής Ανάλυσης. Εγχειρίδιο Χρήστη ΤΕΙ ΑΘΗΝΑΣ

Εικονικό Εργαστήριο Χωρικής Ανάλυσης. Εγχειρίδιο Χρήστη ΤΕΙ ΑΘΗΝΑΣ Εικονικό Εργαστήριο Χωρικής Ανάλυσης Εγχειρίδιο Χρήστη ΤΕΙ ΑΘΗΝΑΣ Περιεχόμενα Εισαγωγή... 3 Είσοδος στο Σύστημα... 3 Εγγραφή Χρήστη... 4 Σύνδεση Χρήστη... 6 Επαναφορά Κωδικού Πρόσβασης... 7 Βασικά Χαρακτηριστικά...

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

Προσομοίωση Συστημάτων

Προσομοίωση Συστημάτων Προσομοίωση Συστημάτων Προσομοίωση και μοντέλα συστημάτων Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Γενικός ορισμός συστήματος Ένα σύνολο στοιχείων/οντοτήτων που αλληλεπιδρούν μεταξύ

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