Αυτόνομοι Πράκτορες Χειμερινό Εξάμηνο 2016 Κωδικός Μαθήματος ΠΛΗ513 Πρότζεκτ Μαθήματος Thit O C Gm with ifocmt ig (Ενισχυτική Μάθηση στο παιχνίδι τριάντα μια) Μία εργασία του Νίκου Μαριάνου Α.Μ. 2011030091
Περιγραφή παιχνιδιού Το παιχνίδι στα πλαίσια της συγκεκριμένης εργασίας αποτελείται από έναν παίχτη και ένα D. Υπό κανονικές συνθήκες,συνθήκες καζίνο, μπορούν να συμμετέχουν παραπάνω από ένας παίχτης. Πρόκειται για ένα παιχνίδι πόντων. Ο παίχτης όπως και ο D προσπαθούν να μαζέψουν όσο το δυνατόν περισσότερους πόντους δίχως να ξεπεράσουν το 31. Το 31 είναι το ανὼτερο δυνατό άθροισμα πόντων που μπορεί να οδηγήσει στην νίκη τον κάτοχό του. Αν κάποιος απο τους συμμετέχοντες ξεπεράσει το 31 τότε χάνει τον συγκεκριμένο γύρο. Το κάθε φύλλο της τράπουλας έχει κάποια συγκεκριμένη αξία σε πόντους. Τα φύλλα από 2 εώς 10 έχουν αξία ίση με τον αριθμό τους. Οι φιγούρες (Jck, Qu, Kig) έχουν αξία 10 πόντων, ενώ ο άσος (Ac) έχει αξία 11 πόντων και μόνο. Σε αντίθεση με το BckJck όπου τα φύλλα διαχωρίζονται σε oft & h, ανάλογα με τον αριθμό των άσων. Το παιχνίδι απαρτίζεται από δύο φάσεις. Η πρώτη είναι το μοίρασμα των αρχικών καρτών. Μία κάρτα μοιράζεται στον παίχτη, μία στον D. Μία δεύτερη μοιράζεται στον παίχτη και ακόμα μια στον D. Ο D εμφανίζει την πρώτη του κάρτα για να μπορεί να την λάβει υπόψη του ο παίχτης. Στην δεύτερη φάση ο παίχτης καλείται να αποφασίσει ανάμεσα σε δύο επιλογές. Πρώτον να κάνει it, πράγμα που σημαίνει οτι το άθροισμα των αξιών των καρτών του δεν το θεωρεί ικανό να κερδίσει απέναντι στον D και ζητάει επιπρόσθετη κάρτα, ή δεύτερον να τερματίσει εκεί τον γύρο του και να δώσει την σειρά του στον D για να τραβήξει κάρτα. Στο τέλος και της δεύτερης φάσης αυτός ο οποίος έχει το μεγαλύτερο νόμιμο άθροισμα είναι νικητής του γύρου. Προβλήματα Τα προβλήματα τα οποία παρουσιάστηκαν στην πραγματοποίηση της εργασίας ήταν τα εξής : Το πρότζεκτ είναι αρκετά απαιτητικό και σε περίοδο εξεταστικής. Αυτό δημιουργεί την ανάγκη καλού προγραμματισμού. Κατά τα άλλα αν και αφιέρωσα πολλές ώρες,λόγω του οτι το πρότζεκτ το είχα επιλέξει μόνος μου, ήταν πολύ ενδιαφέρον και μάλιστα ήθελα να ασχοληθώ και με άλλους αλγορίθμους πέρα από αυτό που απαιτούσε η άσκηση αλλά δεν πρόλαβα. Υλοποίηση Το πρώτο στάδιο της υλοποίησης αποτελεί η δημιουργία του παιχνιδιού της 31 αυτού κάθ`αυτού για να μπορέσω να είμαι σίγουρος ότι όλα λειτουργούν σωστά πριν προχωρήσω. Ο κώδικας αυτός είναι και στούς απεσταλμένους κώδικες για επιπλέον έλεγχο. Η υλοποίηση του D έγινε ως εξής: Διάβασα οτι στα περισσότερα καζίνο ο D τραβάει επιπρόσθετα φύλλα όσο το άθροισμα τους είναι κάτω από 27. Οπότε και εγώ τον έφτιαξα να κάνει το ίδιο πράγμα γιατί θα ήταν άδικο να τον κάνω να τραβάει φύλλο όσο βλέπει οτι το άθροισμά του είναι μικρότερο απο το άθροισμα του παίχτη. Για την ακρίβεια το υλοποίησα και έτσι και ο παίχτης πετύχαι ποσοστό νικών 5,0 % με 5,8%. Επίσης σε πολλά μεγάλα καζίνο στο παιχνίδι συμμετέχουν παραπάνω απο μία τράπουλες. Πολλές φορές ο αριθμός τους ξεπερνάει τις 6. Στην υλοποίηση μου μπορούμε να έχουμε όσες τράπουλες θέλουμε και να διαλέξουμε αν θα είναι ανακατεμένες ή οχι. Σε σχόλια έχω και κώδικα όπου παρουσιάζει στο τέλος κάθε γύρου τις κάρτες που έχει ο παίχτης και ο D στο χέρι τους για να μπορείτε να δείτε οτι όντως δουλεύει σωστά. Έπειτα σειρά έχει η αξιολόγηση της διαδικασίας της μάθησης στο παιχνίδι της 31 ως MD. Το σύστημα ανταμοιβών που ακολούθησα είναι το εξής. Ανταμοιβή δέχεται ο παίχτης στο τέλος κάθε ανεξάρτητου γύρου ανάλογα με το αποτέλεσμα. Επειδή σε περίπτωση ισοπαλίας δεν κερδίζει ο
D αλλά ούτε και ο παίχτης κάθε φορά μπορεί να υπάρξει μόνο ενδεχόμενο νίκης ή ήττας ή ισοπαλίας για τον παίχτη. Σε περίπτωση ήττας λάμβανε ανταμοιβή -1 ενώ σε περίπτωση νίκης λάμβανε ανταμοιβή +1 και τέλος στην ισοπαλία λαμβάνει +0. Ο παράγοντας έκπτωσης γ εὶναι σταθερά 1. Οι ενέργειες όπως προ-είπα είναι δύο είτε IT(=1) είτε OLD(=0). Οι διαφορετικές καταστάσεις στις οποίες μπορεί να βρεθεί ο παίχτης είναι 100. Καθώς ο παίχτης θα σκεφτεί έαν θα τραβήξει φύλλο μόνο απο την στιγμή όπου κινδυνεύει στο επόμενο φύλλο να καεί. Δηλαδή η μάθηση θα εφαρμόζεται σε άθροισμα φύλλων μεγαλύτερο του 20. Οπότε έχουμε 21 εώς 31. Αλλά το 31 είναι το μεγαλύτερο δυνατό νόμιμο άθροισμα άρα δεν έχει κάτι να σκεφτεί στην περίπτωση του 31 η επιλογή του πρέπει να είναι πάντα OLD. Επομένως έχουμε 21 εως 30 άρα 10 καταστάσεις. Επίσης λαμβάνουμε υπόψη μας το φύλλο του D. Άλλες 10 καταστάσεις. Αξία φύλλου 2 εως 11. 10*10 = 100 διαφορετικές καταστάσεις. Επομένως η λογική που ακολουθεί ο παίχτης (Πράκτορας) είναι ότι όταν έχει άθροισμα αξίας φύλλων κάτω απο 21 τότε τραβάει επιπρόσθετο φύλλο διότι δεν υπάρχει περίπτωση ακόμα και με +11 δηλαδή με άσο να ξεπεράσει το όριο του 31, εάν έχει 31 τότε σταματάει, και εάν είναι ανάμεσα στο 21 και το 30 τότε αποφασίζει ανάλογα με το τι έχει `μάθει` από τους προηγούμενους γύρους. Για την υλοποίηση της μάθησης χρησιμοποίησα τον αλγόριθμο Q-Lig με αναπαράσταση πίνακα. Ο πίνακας Q(,) έχει 100 γραμμές λόγω τον 100 διαφορετικών καταστάσεων που μπορεί να βρεθεί ο πράκτορας και έχει δύο στήλες οι οποίες αντιπροσωπεύουν τις δυνατές ενέργειες σε κάθε κατάσταση όπου είναι είτε o,=0, είτε it,=1. Ο πράκτορας αποφασίζει την επόμενη ενέργεια του σύμφωνα με τις τιμές που έχει η Q στο σημειο που είναι. Το σημείο που βρήσκεται ο πράκτορας εξαρτάται από το φύλλο που έχει και από το φύλλο του D. Εκτελεί την ενέργεια με την μεγαλύτερη τιμή =(kowdc-2)*10+q.gtsum()-21; Παρακάτω παρουσιάζονται τα αποτελέσματα μετά από 10 000, 100 000, 200 000, 300 000, 500 000, 1 000 000 γύρους. Χρήση αλγορίθμου Q-Lig με ρυθμό μάθησης 0.5 σταθερ ὸ και συντελεστή έκπτωσης γάμμα = 1. Στους παρακάτω πίνακες με πράσινο χρώμα είναι οι περιπτώσεις που με ποσοστό μεγαλύτερο απο 50% ο παίχτης κερδίζεις και με κόκκινο οταν χάνει για κάθε ξεχωριστή περίπτωση επαναλήψεων.
10Κ D 28 1 1 1 1 1 1 0 1 0 0 Ποσοστό νικών για τις 10 000 επαναλήψεις 38.13% Ποσοστό νικών D για τις 10 000 επαναλήψεις 55.38% Ποσοστό ισοπαλίας 6.49% 100Κ D 28 1 1 1 1 1 1 1 1 1 0 Ποσοστό νικών για τις 100 000 επαναλήψεις 38.15% Ποσοστό νικών D για τις 100 000 επαναλήψεις 55.33% Ποσοστό ισοπαλίας 6.52%
200Κ D 28 1 1 1 1 1 1 1 1 0 0 Ποσοστό νικών για τις 200 000 επαναλήψεις 38.33% Ποσοστό νικών D για τις 200 000 επαναλήψεις 55.17% Ποσοστό ισοπαλίας 6.5% 300Κ D 28 1 1 1 1 1 1 1 1 1 0 Ποσοστό νικών για τις 300 000 επαναλήψεις 38.21% Ποσοστό νικών D για τις 300 000 επαναλήψεις 55.3% Ποσοστό ισοπαλίας 6.49%
500Κ D 28 1 1 1 1 1 1 1 1 0 0 Ποσοστό νικών για τις 500 000 επαναλήψεις 38.64% Ποσοστό νικών D για τις 500 000 επαναλήψεις 54.94% Ποσοστό ισοπαλίας 6.42% 1M D 28 1 1 1 1 1 1 1 1 1 0 Ποσοστό νικών για τις 1 000 000 επαναλήψεις 38.72% Ποσοστό νικών D για τις 1 000 000 επαναλήψεις 54.84% Ποσοστό ισοπαλίας 6.44%
Ακολουθεί ο πίνακας που δείχνει το συνολικό ποσοστό νικών για τον πράκτορα σε ὸλες τις περιπτώσεις εκπαίδευσης. Πίνακας που δείχνει το συνολικό ποσοστό ηττών για τον πράκτορα σε λες τις περιπτώσεις ὸ εκπαίδευσης.
Πίνακας που δείχνει το συνολικό ποσοστό ισοπαλιών για τον πράκτορα σε ὸλες τις περιπτώσεις εκπαίδευσης. Η έκφραση Th ou Aw wi αποδείχτηκαι και στην εργασία αυτή. Η έκφραση αυτή σημαίνει πολύ απλά ότι μέσα σε βάθος χρόνου πάντα θα κερδίζει ο D. Στη συγκεκριμένη εργασία φτάσαμε μετά απ ὸ 1 000 000 επαναλήψεις να έχουμε πιθανότητα νίκης ίση με 38.72% για τον παίχτη και αντίστοιχα 54.84% για τον D. Έπειτα από την υλοποίηση αυτού του πρώτου μέρους το οποίο έχει σταθερό ρυθμό μάθησης, ακολουθεί η υλοποίηση με μεταβαλώμενο ρυθμό μάθησης. Ο παρακάτω πίνακας μας παρουσιάζει τα αποτελέσμα για μείωσει του ρυθμού μάθησης κάθε 200 000 επαναλήψεις για συνολική εκπαίδευση 1 000 000 επαναλήψεων. 1M D 28 1 1 1 1 1 1 1 1 1 0
ΟΧΙ ΣΤΑΘΕΡΟΣ ΡΥΘΜΌΣ ΜΆΘΗΣΗΣ. Ποσοστό νικών για τις 1 000 000 επαναλήψεις 38.75% Ποσοστό νικών D για τις 1 000 000 επαναλήψεις 54.87% Ποσοστό ισοπαλίας 6.38% Σύγκριση των αποτελεσμάτων για σταθερό ρυθμό μάθησης και για μη-σταθερό ρυθμό μάθησης Ποσοστ ὰ (%) Αλφα==0.5 (Σταθερό) Άλφα!= Σταθερού Νίκες 38.72 38.75 Ήττες 54.84 54.87 Ισοπαλίες 6.44 6.38 Βελτίωση στο ποσοστό νικών για τις 1 000 000 επαναλήψεις 0.03% Βελτίωση στο ποσοστό νικών D για τις 1 000 000 επαναλήψεις 0.03% Βελτίωση στο ποσοστό ισοπαλίας 0.06%