Αναφορά Εργαςίασ Nim Game Αυτόνομοι Πράκτορεσ (ΠΛΗ 513) Βαγενάσ Σωτιριοσ 2010030034 Ειςαγωγή Για τθν εργαςία του μακιματοσ αςχολικθκα με το board game Nim. Ρρόκειται για ζνα παιχνίδι δφο παιχτϊν (2-player combinatorial game). Το παιχνίδι αυτό ζχει πολλζσ μορφζσ και παραλλαγζσ. Μελζτθςα και υλοποίθςα διαδικαςίεσ εφρεςθσ βζλτιςτων πολιτικϊν και μάκθςθσ ςτθν πιο απλι μορφι του παιχνιδιοφ, το οποίο περιγράφεται παρακάτω. Περιγραφή Το παιχνίδι (ςτα πλαίςια τθσ εργαςίασ του μακιματοσ) αποτελείται από μία ςτοίβα με οριςμζνο αρικμό units (π.χ. 15 units). Κάκε παίκτθσ ςτο γφρο του μπορεί να τραβιξει από τθ ςτοίβα μζχρι ζναν κακοριςμζνο αρικμό από units (π.χ. 1 ζωσ 3 units). Ο παίκτθσ που κα αφιςει τθ ςτοίβα άδεια (κα τραβιξει τελευταίοσ) χάνει. Κάκε παίκτθσ λοιπόν ζχει ςκοπό να οδθγιςει τον αντίπαλο ςτο να παίξει τελευταίοσ (π.χ. να αφιςει 1 unit ςτθ ςτοίβα και να αναγκαςτεί ο αντίπαλοσ να το τραβιξει). Το παιχνίδι ςε μεγαλφτερα πλαίςια μπορεί να αποτελείται από περιςςότερεσ ςτοίβεσ με δυναμικό μζγεκοσ. Εργαςία Μαθήματοσ Για τθν εργαςία του μακιματοσ υλοποίθςα το παιχνίδι με μία ςτοίβα μεταβλθτοφ μεγζκουσ και μεταβλθτό αρικμό ενεργειϊν. Στο παιχνίδι αυτό, αρχικά, δθμιοφργθςα το περιβάλλον, ζναν αφελι αντίπαλο (εκτελεί ενζργειεσ με βάςθ μία κατανομι που του δίνεται) και ζναν αντίπαλο που παίηει το παιχνίδι βζλτιςτα. Ράνω ςε αυτοφσ τουσ αντιπάλουσ βρίςκω τισ βζλτιςτεσ πολιτικζσ με χριςθ value iteration. Στθ ςυνζχεια, με Q-Learning προςπακϊ να κάνω τον πράκτορα μου να προςαρμόηεται και να εξάγει τθν εκάςτοτε βζλτιςτθ πολιτικι ανάλογα με τον αντίπαλο. Τζλοσ, ςυγκρίνω τισ πολιτικζσ των δφο μεκόδων για ςυγκεκριμζνο αντίπαλο. Ραρακάτω περιγράφεται αναλυτικά κάκε ςτάδιο τθσ υλοποίθςθσ, κακϊσ και τα αποτελζςματά του.
Υλοποίηςη Η υλοποίθςθ ζγινε με χριςθ τθσ γλϊςςασ JAVA και είχε τρία βαςικά ςτάδια τα οποία φαίνονται και περιγράφονται παρακάτω. Σχεδιαςμόσ και υλοποίθςθ περιβάλλοντοσ Υλοποίθςθ αλγορίκμου Value Iteration Υλοποίθςθ αλγορίκμου Q-Learning Σχεδιαςμόσ και υλοποίθςθ περιβάλλοντοσ Στο ςτάδιο αυτό υλοποίθςα το περιβάλλον του παιχνιδιοφ ςτο οποίο ςυμπεριλαμβάνονται οι κανόνεσ και οι παίκτεσ που προαναφζρκθκαν (αφελισ και βζλτιςτοσ). Τα δεδομζνα του παιχνιδιοφ (πλικοσ ςτοιβϊν, πλικοσ κινιςεων, μζγεκοσ ςτοιβϊν) δίνονται από το χριςτθ. Επίςθσ, δίνεται θ δυνατότθτα ςτο χριςτθ να παίξει ενάντια ςε ζναν από τουσ παίκτεσ, αλλά κι ενάντια ςε άλλον χριςτθ. Μόλισ το περιβάλλον ιταν ζτοιμο προχϊρθςα ςτθν υλοποίθςθ των δφο αλγορίκμων. Υλοποίθςθ αλγορίκμου Value Iteration Στο ςτάδιο αυτό υλοποίθςα τον αλγόρικμο που εκτελεί value iteration με Q- values (VIQ) με ςκοπό τθν εξαγωγι βζλτιςτων πολιτικϊν ενάντια ςε αντιπάλουσ που γνωρίηουμε τθν κατανομι πικανότθτασ επιλογισ ενζργειασ. Αρχικά, μοντελοποίθςα το παιχνίδι ςαν Markov Decision Process (MDP), όπου S ςφνολο καταςτάςεων, Α ςφνολο ενεργειϊν και O ςφνολο ενεργειϊν αντιπάλου. Δθμιοφργθςα ζναν πίνακα Q (SxA) και ζναν πίνακα ανταμοιβισ R(SxA). Ο πίνακασ Q αρχικοποιικθκε ςτο 0 και ο R παρομοίωσ, εκτόσ των ηευγαριϊν (s,a) που ςε ζςτελναν ςτθν κατάςταςθ 0 (αδειάηεισ τθν ςτοίβα) τα οποία αρχικοποιικθκαν ςτο -1. Για παράδειγμα R(2,2) = -1 (2 units ςτθ ςτοίβα και τραβάω 2). Από τθ ςτιγμι που οι ενζργειεσ μασ είναι ντετερμινιςτικζσ, θ ςτοχαςτικότθτα προςτίκεται από τισ κινιςεισ του αντιπάλου. Δθλαδι το ποια κα είναι θ επόμενθ κατάςταςθ αφοφ παίξουμε κρίνεται από τθν ενζργεια του αντιπάλου. Το γ ςε όλθ τθν υλοποίθςθ είναι 1 διότι ζχουμε πεπεραςμζνο αρικμό βθμάτων προσ τον τερματιςμό. Για παράδειγμα s=13, a=2 -> εάν o=1 τότε s =13-2-1=11.
Συνεπϊσ, ο τφποσ τθσ εξίςωςθσ βελτιςτότθτασ Bellman για Q ςτθν περίπτωςθ του παιχνιδιοφ αυτοφ είναι: ( ) ( ( ) (( ) )) Ζτςι λοιπόν γίνεται ο υπολογιςμόσ του πίνακα Q, ο οποίοσ επαναλθπτικά αλλάηει τιμζσ. Πταν, τελικά, ςυγκλίνει ζχουμε τον τελικό πίνακα ο οποίοσ μασ δίνει τθ βζλτιςτθ πολιτικι ενάντια ςτον εκάςτοτε αντίπαλο. Τθ βζλτιςτθ πολιτικι τθν εξάγουμε ωσ εξισ: ( ) ( ) Υλοποίθςθ αλγορίκμου Q-Learning Στο ςτάδιο αυτό υλοποίθςα τον αλγόρικμο που εκτελεί Q-Learning με ςκοπό τθν μάκθςθ ενάντια ςε αντιπάλουσ χωρίσ να γνωρίηουμε το πϊσ επιλζγουν ενζργειεσ. Ουςιαςτικά δεν μασ χρειάηεται κακόλου θ ςυνάρτθςθ μετάβαςθσ αλλά μόνο το δείγμα (s, a, r, s ). Ξεκινϊντασ, αρχικοποιοφμε ξανά τουσ πίνακεσ Q και R όπωσ και προθγουμζνωσ κι αυτι τθ φορά ακολουκοφμε τθ διαδικαςία μάκθςθσ. Πποτε είμαςτε ςε μία κατάςταςθ s και εκτελοφμε μία ενζργεια a μεταβαίνουμε ςε μία άλλθ κατάςταςθ s και παίρνουμε μία ανταμοιβι r. Στθ ςυνζχεια, ενθμερϊνουμε τθν τιμι Q(s,a) ςφμφωνα με το δείγμα που πιραμε και ςυνεχίηουμε να παίηουμε το παιχνίδι. Η εκτζλεςθ του παιχνιδιοφ γίνεται επαναλθπτικά για οριςμζνο (από το χριςτθ) αρικμό επαναλιψεων και όςο περνάνε οι επαναλιψεισ ο ρυκμόσ μάκθςθσ alpha μειϊνεται εκκετικά που ςθμαίνει ότι δίνεται μεγαλφτερθ βάςθ μάκθςθσ ςτισ πρϊτεσ επαναλιψεισ. Η ενθμζρωςθ τθσ εκάςτοτε τιμισ Q γίνεται με τον παρακάτω τφπο: Ο τφποσ που μασ δίνει το ρυκμό μάκθςθσ alpha είναι (0,9 θ αρχικι τιμι του alpha):, C=0.01*ςυνολικζσ επαναλιψεισ και t=τρζχουςα επανάλθψθ
Ζτςι, υπολογίηουμε τον πίνακα Q και με όμοιο τρόπο με το δεφτερο ςτάδιο εξάγουμε τθ βζλτιςτθ πολιτικι ενάντια ςτον εκάςτοτε αντίπαλο. Αποτελζςματα Συμπεράςματα Στθν ενότθτα αυτι παρουςιάηονται κάποια ενδιαφζροντα αποτελζςματα και επιςθμαίνονται ςυμπεράςματα και παρατθριςεισ. Κάκε state αντικατοπτρίηει πόςα units υπάρχουν ςτθ ςτοίβα. Σε κάκε κατάςταςθ επιλζγεται θ ενζργεια με τθν υψθλότερθ τιμι. Βζλτιςτθ πολιτικι ενάντια ςε αφελι αντίπαλο με ιςοπίκανθ κατανομι ενεργειϊν (ςτοίβα = 15 units, κινιςεισ=1,2,3) Σφγκριςθ VIQ-QL Εικόνα 1. VIQ vs uniform distribution Εικόνα 2. QL vs uniform distribution
Ραρατθροφμε ίδια αποτελζςματα ανάμεςα ςτισ δφο μεκόδουσ με τθ διαφορά ότι ςτισ κρίςιμεσ καταςτάςεισ όπου ςτο VIQ δεν ζχει ςθμαςία τι κα επιλεχτεί, ςτο QL επιλζγεται κάτι διότι το Q ενθμερϊνεται και υπολογίηεται με βάςθ τα δείγματα. Βζλτιςτθ πολιτικι ενάντια ςε αφελι αντίπαλο κατανομι ενεργειϊν 0.3, 0.6, 0.1 με VIQ (ςτοίβα = 15 units, κινιςεισ=1,2,3) Εικόνα 3. VIQ vs fixed 0.3-0.6-0.1 Εδϊ παρατθροφμε ότι αφοφ δεν υπάρχει ιςοπίκανθ επιλογι ενζργειασ από τον αντίπαλο τότε ςτισ κρίςιμεσ καταςτάςεισ ζχουμε ενζργεια που μασ ςυμφζρει περιςςότερο ςε αντίκεςθ με τθν παραπάνω περίπτωςθ. Βζλτιςτθ πολιτικι ενάντια ςε αφελι αντίπαλο με ιςοπίκανθ κατανομι ενεργειϊν με VIQ (ςτοίβα = 35 units, κινιςεισ=1,2,3,4) Εικόνα 4. VIQ vs uniform random
Εδϊ παρατθροφμε ότι θ υλοποίθςθ είναι αποτελεςματικι και για μεγαλφτερθ ςτοίβα και μεγαλφτερο αρικμό ενεργειϊν. Βζλτιςτθ πολιτικι ςε διάφορουσ αρικμοφσ επαναλιψεων ενάντια ςε αφελι αντίπαλο με ιςοπίκανθ κατανομι ενεργειϊν με QL (ςτοίβα = 15 units, κινιςεισ=1,2,3) Εικόνα 5. QL vs uniform random 0 iter Εικόνα 6. QL vs uniform random 50 iter
Εικόνα 7. QL vs uniform random 100 iter Εικόνα 8. QL vs uniform random 200 iter Εικόνα 9. QL vs uniform random 1000 iter - final
Εδϊ παρατθροφμε ότι ςτθ διαδικαςία μάκθςθσ όςο περνάνε οι επαναλιψεισ τόςο καλφτερα μακαίνουμε τον αντίπαλο και μποροφμε να αντιμετωπίςουμε ακόμα και καταςτάςεισ πολφ μακριά από τθν τερματικι (0). Ραρατθροφμε, επίςθσ, ότι όςο περνάνε οι επαναλιψεισ υπάρχει και μία ςχετικι ςφγκλιςθ οπότε και μποροφμε με ςιγουριά να εμπιςτευτοφμε τθν πολιτικι που εξάγεται. Βζλτιςτθ πολιτικι ενάντια ςτο βζλτιςτο αντίπαλο με QL (ςτοίβα = 15 units, κινιςεισ=1,2,3) Εικόνα 10. QL vs optimal Εδϊ παρατθροφμε ότι ςε κάκε κατάςταςθ υπάρχει, ζςτω και με ελάχιςτθ διαφορά ςε κάποιεσ περιπτϊςεισ, θ βζλτιςτθ ενζργεια. Αξιοςθμείωτο είναι ότι ςτθν κατάςταςθ 14 δεν υπάρχει επιλογι. Αυτό δεν ςυνζβθ τυχαία, απλϊσ ςε αυτιν τθν κατάςταςθ δεν βρεκικαμε ποτζ αφοφ εάν παίηουμε πρϊτοι θ ελάχιςτθ μετάβαςθ είναι να τραβιξουμε εμείσ 1 κι ο αντίπαλοσ 1 (ςυνεπϊσ 15-1-1=13), ενϊ αν παίηει ο αντίπαλοσ πρϊτοσ επειδι παίηει βζλτιςτα προςπακεί να μασ ςτείλει ςτισ κρίςιμεσ καταςτάςεισ. Κρίςιμεσ καταςτάςεισ ςε αυτιν τθν μορφι (15 units, 3 κινιςεισ) είναι οι 5,9,13. Σε αυτζσ τισ καταςτάςεισ δεν ζχει ςθμαςία τι κα κάνεισ γιατί αν βρεκείσ εκεί ο αντίπαλοσ μπορεί να κερδίςει το παιχνίδι αν παίηει βζλτιςτα. Συνεπϊσ, αν παίξει πρϊτοσ απευκείασ κα ςε ςτείλει ςτθ 13. Οπότε δεν βρίςκεςαι ποτζ ςτθ 14. Για το λόγο αυτό παρακζτουμε παρακάτω τθν περίπτωςθ όπου θ ςτοίβα αυξάνεται ςτα 17 units (θ κατάςταςθ 17 είναι θ επόμενθ κρίςιμθ) ϊςτε να ξεκινάει το παιχνίδι από κρίςιμθ κατάςταςθ.
Βζλτιςτθ πολιτικι ενάντια ςτο βζλτιςτο αντίπαλο με QL (ςτοίβα = 17 units, κινιςεισ=1,2,3) Εικόνα 11. QL vs optimal Βλζπουμε εδϊ ότι διαμορφϊνεται (όπωσ κα ιταν λογικό) θ βζλτιςτθ ενζργεια και για τθν κατάςταςθ 14 που είναι να τραβθχτεί 1 για να πάμε τον αντίπαλο ςτθ 13 που είναι κρίςιμθ και τον ελζγχουμε από εκεί και πζρα. Αυτό ζγινε γιατί ξεκινϊντασ από κρίςιμθ κατάςταςθ (17) μποροφμε να ζχουμε το καλφτερο δυνατό exploration ενάντια ςε βζλτιςτο αντίπαλο. Ραρατθριςεισ Κάκε μία πολιτικι παραπάνω (είτε από VIQ είτε από QL) αντιμετϊπιςε τον εκάςτοτε παίχτθ από τον οποίο διαμορφϊκθκε και ζχουμε τα παρακάτω αποτελζςματα. Εάν ο αντίπαλοσ διάλεγε ενζργεια μζςα από κατανομι, τότε θ βζλτιςτθ πολιτικι που εξαγόταν και από τουσ δφο αλγορίκμουσ κζρδιηε τον αντίπαλο αυτό ςτο 95% των παιχνιδιϊν (ςυνικωσ ζπαιηαν 1000 παιχνίδια). Εάν ο αντίπαλοσ ιταν ο βζλτιςτοσ (άρα μόνο QL) θ βζλτιςτθ πολιτικι που εξαγόταν τον κζρδιηε ςτο 50% των παιχνιδιϊν, γεγονόσ που ιταν αναμενόμενο. Ουςιαςτικά, ςτο παιχνίδι αυτό ζνασ βζλτιςτοσ παίχτθσ κερδίηει πάντα αν παίηει πρϊτοσ. Συνεπϊσ, εφόςον δφο βζλτιςτοι παίχτεσ (αντίπαλοσ και εμείσ) ζρχονταν αντιμζτωποι κζρδιηε αυτόσ που ζπαιηε πρϊτοσ. Η επιλογι του παίκτθ που κα ζπαιηε πρϊτοσ ιταν τυχαία γι αυτό και το ποςοςτό νικϊν ιταν ςτο 50%. Δοκιμάηοντασ να παίηουμε πάντα πρϊτοι και πάντα δεφτεροι επαλθκεφςαμε τουσ παραπάνω ιςχυριςμοφσ αφοφ είχαμε ποςοςτά 100% και 0% αντίςτοιχα.
Μελλοντική δουλειά Σαν μελλοντικι δουλειά προβλζπεται θ επζκταςθ των αλγορίκμων για παιχνίδι με περιςςότερεσ ςτοίβεσ που ανεβάηει τον αρικμό των καταςτάςεων εκκετικά. Ίςωσ καλι λφςθ κα ιταν και κάποιεσ αρχιτεκτονικζσ προςζγγιςθσ. Ακόμα, κάποιεσ παραλλαγζσ του παιχνιδιοφ κα ιταν ενδιαφζρουςεσ όπου κερδίηει αυτόσ που τραβάει τελευταίοσ ι χάνει κάποιοσ όταν αδειάςουν όλεσ οι ςτοίβεσ. Πηγζσ https://en.wikipedia.org/wiki/nim https://www.youtube.com/watch?v=hof7p P68I (βίντεο με τθν απλι μορφι που υλοποιικθκε ςτα πλαίςια του μακιματοσ) http://www.cdf.toronto.edu/~ajr/270/probsess/03/strategy.html https://www.archimedes-lab.org/game_nim/play_nim_game.html (το παιχνίδι online με 4 ςτοίβεσ και με χαμζνο αυτόν που αδειάηει το board) http://archaeo.engineer/2015/07/10/pyqnim1/