ΑΝΑΠΤΥΞΗ ΑΥΤΟΝΟΜΟΥ ΠΡΑΚΤΟΡΑ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ NO-LIMIT POKER ΜΕ ΤΗ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΕΝΙΣΧΥΤΙΚΗΣ ΜΑΘΗΣΗΣ



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

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

NOVA PRODUCTIONS. by GDTronics

Extensive Games with Imperfect Information

Περισσότερες λεπτομέρειες και τρελά βίντεο σας περιμένουν στο: skull-and-roses.com

Blackjack: Στρατηγική, συμβουλές και τρόπος παιχνιδιού - ΚΑΛΑΜΠΑΚΑ CITY KALAMPAKA METEOR

Η ΠΟΚΕΡΚΑΡΤΑ ΤΟΥ BIG TONY. User s Manual / Εγχειρίδιο Χρήσης. GDTronics

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

ΕΠΙΣΗΜΟΙ ΚΑΝΟΝΕΣ ΤΟΥ ΟΙ ΚΑΡΤΕΣ


Το Jungle Speed είναι ένα παιχνίδι για 2 έως 10 παίκτες (ή και ακόμη περισσότερους!) ηλικίας 7 και άνω.

Ανάπτυξη συστήματος μοντελοποίησης αντιπάλων για το παιχνίδι Poker Texas Hold em με χρήση αλγορίθμων ομαδοποίησης

Πριν απο λιγα χρονια ημουνα ακριβως σαν εσενα.

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

νάπτυξη Αυτόνομου Πράκτορα Λογισμικού για το Texas ld'em με χρήση Νευρωνικών Δικτύων

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 11 / 12 / 2014 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Χαρτοπαίγνια. Ένα παιχνίδι, ατέλειωτη διασκέδαση

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

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

Σχεδιασμός Ψηφιακών Εκπαιδευτικών Εφαρμογών ΙI

ΕΡΓΑΣΙΑ 2 - Παίζοντας Blackjack

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

Ασκήσεις μελέτης της 6 ης διάλεξης

Αυτόνομοι Πράκτορες Μαριάνος Νίκος Αυτόνομοι Πράκτορες. Χειμερινό Εξάμηνο 2016 Κωδικός Μαθήματος ΠΛΗ513 Πρότζεκτ Μαθήματος

Ασκήσεις. Ιωάννα Καντζάβελου. Τµήµα Μηχανικών Πληροφορικής και Υπολογιστών 1

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

ΣΕΜΙΝΑΡΙΟ ΕΚΠΑΙΔΕΥΣΗΣ ΙΟΥΝΙΟΥ Εισηγητής: Κούρτης Δημήτρης 12 Ιουνίου 2015

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

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π.

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

32 κάρτες-πόλης 9 κάρτες-χαρακτήρων 5 κάρτες-αστυνομίας

Περιεχόμενα 1 Scriptorium (Ταμπλό Αξίας Κατηγορίας) 5 εξάπλευρα ζάρια 87 κάρτες

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

Οδηγίες. Θα το παίξεις... και θα πεις κι ένα τραγούδι!

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

EMOJITO! 7 Δίσκοι Ψηφοφορίας. 100 Κάρτες Συναισθημάτων. 1 Ταμπλό. 7 Πιόνια παικτών. 2-7 Παίκτες

Κεφ. 9 Ανάλυση αποφάσεων

Επίλυση Προβλημάτων 1

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Περιεχόμενα του Παιχνιδιού

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

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

3. Προσομοίωση ενός Συστήματος Αναμονής.

Και όπως και στη ζωή, έτσι κι εδώ δεν υπάρχει δεύτερος...

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

BRIDGE ÑÉÓÔÉÍÁ ÓÕÑÁÊÏÐÏÕËÏÕ

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΕΤΟΙΜΑΣΙΑ. 15 Δείκτες Δημάρχου. 30 Δείκτες Επιρροής. 15 Δείκτες Δωροδοκίας. 1 Πιόνι Εκτελεστή. 21 Κύβοι Αξίας.

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

Β. Βασιλειάδης Αν. Καθηγητής. Επιχειρησιακή Ερευνα Διάλεξη 6 η - Θεωρεία Παιγνίων

Ε ανάληψη. Προβλήµατα ικανο οίησης εριορισµών. ορισµός και χαρακτηριστικά Ε ίλυση ροβληµάτων ικανο οίησης εριορισµών

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:


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

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

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

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 9: Απείρως επαναλαμβανόμενα παίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

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

Διαδρομών Μέρμηγκα Μερμηγκιών Τζίτζικα Τζίτζικα Επιλογής Επιλογής Φθινόπωρο Φθινόπωρο Προμηθειών Χειμώνα Δύναμης Χειμώνα Φθινόπωρο Χειμώ- νας

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

ΟΔΗΓΙΕΣ. Λίγα λόγια παίκτες Διάρκεια 30 Για ηλικίες 10+

Εισαγωγή. Περιεχόμενα

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Τεχνολογίες Κοινωνικής Δικτύωσης στην Εκπαίδευση

καθ. Βασίλης Μάγκλαρης

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

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ4 ΓΟ7 (ΖΩΓΡΑΦΟΥ) ΓΟ5 ΓΟ6 (ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017

Ταυτότητα εκπαιδευτικού σεναρίου

Εργαλεία Κατασκευής Παιχνιδιών Ι (Unreal Editor, Half Life, Doom Editor)

Ταυτότητα εκπαιδευτικού σεναρίου. Γνώσεις και πρότερες ιδέες των μαθητών. Σκοπός και στόχοι

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Σηματοδοτικά Παίγνια και Τέλεια Μπεϊζιανή Ισορροπία

2). V (s) = R(s) + γ max T (s, a, s )V (s ) (3)

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

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός

Δεν υπάρχει πολύς χρόνος για να τα καταφέρουν, παρά µόνο επτά ηµέρες...

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

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

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

ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ε ανάληψη. πεπερασµένα χρονικά περιθώρια ανά κίνηση. απευθείας αξιολόγηση σε ενδιάµεσους κόµβους

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

1-4 παίκτες - 30 λεπτά

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Και τα τέσσερα κτίρια της Εποχής 1 της επέκτασης μπορούν να ανακαινιστούν. Η ιδιότητα

Αξιολόγηση Εκτελεστικών Λειτουργιών

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

Κεφάλαιο 5. Αλγόριθµοι Αναζήτησης σε Παίγνια ύο Αντιπάλων. Τεχνητή Νοηµοσύνη - Β' Έκδοση

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

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Ηλεκτρονικής & Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας & Υπολογισμών (ΕΠΥ) ΑΝΑΠΤΥΞΗ ΑΥΤΟΝΟΜΟΥ ΠΡΑΚΤΟΡΑ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ NO-LIMIT POKER ΜΕ ΤΗ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΕΝΙΣΧΥΤΙΚΗΣ ΜΑΘΗΣΗΣ Διπλωματική εργασία του Αθανάσιου Νακόπουλου ΑΕΜ: 6152 Υπό την επίβλεψη του Καθηγητή κ. Περικλή Μήτκα Θεσσαλονίκη, Δεκέμβριος 2012 1

Ευχαριστίες Πρώτα από όλα θα ήθελα να ευχαριστήσω τον καθηγητή κ. Περικλή Μήτκα για την ανάθεση αυτής της διπλωματικής εργασίας καθώς και για την επίβλεψη της εκπόνησης της. Κατά δεύτερον θα ήθελα να ευχαριστήσω τον υποψήφιο διδάκτορα κ. Κυριάκο Χατζηδημητρίου για όλη τη βοήθεια και την καθοδήγηση που μου πρόσφερε το διάστημα της ενασχόλησης μου με τη διπλωματική εργασία. Ιδιαίτερες ευχαριστίες θα ήθελα να δώσω και σε όλους τους καθηγητές μου για τις γνώσεις που μου προσέφεραν μέσα από τα μαθήματα τους. Τέλος, θα ήθελα να ευχαριστήσω όλους τους φίλους μου και την οικογένεια μου για τη συμπαράσταση τους σε όλο αυτό το διάστημα. 2

Σύνοψη Στόχος της διπλωματικής εργασίας είναι η ανάπτυξη ενός αυτόνομου πράκτορα λογισμικού για το παιχνίδι Heads-up No-Limit Texas Holdem Poker. Για την ανάπτυξη του πράκτορα χρησιμοποιήθηκαν τεχνικές Ενισχυτικής Μάθησης. Ο πράκτορας αλληλεπιδρά με το περιβάλλον, λαμβάνοντας αμοιβές από τις οποίες γίνεται η εκμάθηση. Έπειτα επιλέγει την κατάλληλη ενέργεια και τη μεταφέρει πίσω στο περιβάλλον. Για την εκπαίδευση του πράκτορα δημιουργήσαμε ειδικούς παίκτες (bots) με τους οποιούς δοκιμάσαμε την απόδοση του πράκτορα με διάφορα πειράματα. Ο βασικός αλγόριθμος που εφαρμόστηκε για την εκπαίδευση είναι ο αλγόριθμος του Monte Carlo. Τα αποτελέσματα των πειραμάτων δείχνουν ότι ο πράκτορας είναι ικανός να διαχειριστεί τις διάφορες καταστάσεις με αρκετά μεγάλη επιτυχία. 3

Diploma Thesis Title: Development of an Autonomous Poker Agent Software using Reinforcement Learning Techniques Abstract The objective of this diploma thesis is to develop an autonomous software agent which will be able to play Heads-up No-Limit Texas Holem Poker. In order to develop the agent, we used Reinforcement Learning Techniques. The agent receives rewards while interacting with the environment and handles them in order to learn playing the game. After handling the given reward, it chooses the best action to be returned back to the environment. In order to train the agent, we developed some standard poker players and used them for some experiments with our agent to check its effeciency. The basic algorithm used for the training is the Monte-Carlo algorithm. The final results show that the agent can handle different situations with success. 4

Περιεχόμενα Κατάλογος περιεχομένων 1 Εισαγωγή...10 1.1 Περιγραφή Του Προβλήματος...11 1.2 Στόχοι της διπλωματικής...12 1.3 Μεθοδολογία που ακολουθήθηκε...13 1.4 Οργάνωση Διάρθρωση της διπλωματικής...14 2 Θεωρητικό Υπόβαθρο...16 2.1 Τα βασικά του No-Limit Texas Hold'em...16 2.2 Αφαιρέσεις...18 2.2.1 Αφαίρεση καρτών...19 2.2.2 Αφαίρεση δράσεων...22 2.3 Ενισχυτική Μάθηση...22 2.3.1 Δομικά στοιχεία συστήματος ενισχυτικής μάθησης...22 2.3.2 Η αλληλεπίδρασή πράκτορα - περιβάλλοντος...24 2.3.3 Μέθοδος υπολογισμού αξιών...25 2.3.4 Μέθοδοι επιλογής δράσεων...26 2.3.5 Μέθοδος Monte Carlo...27 3 Η Διαδικτυακή κοινότητα του Poker...29 3.1 Βασικές Στρατηγικές για το No-Limit Hold'em...29 3.1.1 Poker Aggression...29 3.1.2 Playing with Position...29 3.1.3 Continuation Bet (Cbet)...30 3.1.4 Semi Bluff...30 3.1.5 The free card play...31 3.1.6 The Check Raise...31 3.1.7 The Blocking Bet...31 3.1.8 The Float Play...32 3.1.9 Double Barreling or Firing a second barrel...32 3.2 Άλλοι παίκτες και πράκτορες...33 3.2.1 Παίκτες απλών στρατηγικών...33 3.2.2 Polaris...33 3.3 Το Περιβάλλον που χρησιμοποιήθηκε...34 3.3.1 Επικοινωνία client-server...34 3.3.2 Το Interface του Server...36 4 Μεθοδολογία Ανάπτυξης του πράκτορα...38 4.1 Χαρακτηριστικά του Περιβάλλοντος...38 4.1.1 Αποκωδικοποίηση του MatchState...39 4.1.2 Χαρακτηριστικά Δύναμης του Φύλλου...40 4.1.2.1 Δύναμη του Φύλλου...40 4.1.2.2 Chen Formula...41 4.1.2.3 Δυνατότητα του φύλλου...42 4.1.2.4 Ενεργός δύναμη του φύλλου...45 5

4.1.3 Υπόλοιπα Χαρακτηριστικά...45 4.1.4 Αμοιβές...46 4.2 Αφαιρέσεις...47 4.2.1 Αφαίρεση δράσεων...47 4.2.2 Αφαίρεση καρτών...49 4.3 Αλγόριθμος Monte-Carlo...50 5 Πειράματα και αποτελέσματα...53 5.1 Εκπαίδευση κατά τη διάρκεια των πειραμάτων...54 5.1.1 Αναμέτρηση με αντίπαλο τον παίκτη Always Raise or Call...54 5.1.2 Αναμέτρηση με αντίπαλο τον παίκτη Always Call...56 5.1.3 Αναμέτρηση με αντίπαλο τον παίκτη Always Raise...58 5.2 Εκπαίδευση πριν από τα πειράματα...60 5.2.1 Αναμέτρηση με αντίπαλο τον παίκτη Always Raise or Call...61 5.2.2 Αναμέτρηση με αντίπαλο τον παίκτη Always Call...63 5.2.3 Αναμέτρηση με αντίπαλο τον παίκτη Always Raise...65 5.3 Σύγκριση αποτελεσμάτων...67 6 Συμπεράσματα και μελλοντικές επεκτάσεις...68 6

Σχήματα Κατάλογος Σχημάτων Επιλογή δράσεων με perfect και imperfect recall...21 Αλληλεπίδραση πράκτορα με το περιβάλλον...25 Αλληλεπίδραση πολιτικής - συνάρτησης αξιών...28 Ανταλλαγή μηνυμάτων Client-Server...35 Δύναμη του φύλλου[6]...40 Δυνατότητα του φύλλου[6]...44 Αλγόριθμος Monte-Carlo...51 Raise-Call 1st Position...55 Raise-Call 2nd Position...55 Raise-Call Total...56 Always Call 1st Position...57 Always Call 2nd Position...57 Always Call Total...58 Always Raise 1st Position...59 Always Raise 2nd Position...59 Always Raise Total...60 Raise-Call 1st Position(2)...61 Raise-Call 2nd Position(2)...62 Raise-Call Total(2)...62 Always Call 1st Position (2)...63 Always Call 2nd Position (2)...64 Always Call Total (2)...64 Always Raise 1st Position (2)...65 7

Always Raise 2nd Position (2)...66 Always Raise Total (2)...66 8

Πίνακες Ευρετήριο πινάκων Κατάταξη-Συνδυασμών...17 Buckets-EHS...50 Raise-Call...54 Always-Call...56 Always-Raise...58 Raise-Call(2)...61 Always-Call(2)...63 Always-Raise(2)...65 Results...67 9

1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 1 Εισαγωγή Η Τεχνητή Νοημοσύνη (Τ.Ν.) είναι ο κλάδος της επιστήμης που ασχολείται με τη μελέτη και τη δημιουργία προγραμμάτων Η/Υ που έχουν ως σκοπό να συμπεριφέρονται «έξυπνα». Για τον χώρο της τεχνητής νοημοσύνης ο όρος «έξυπνα» μπορεί να ερμηνευτεί ως η ικανότητα των προγραμμάτων να λύνουν προβλήματα, να μαθαίνουν από προηγούμενες εκτελέσεις, να καταλαβαίνουν δύσκολες καταστάσεις και δεδομένα, και να αντιλαμβάνονται διαφορές και ομοιότητες μεταξύ καταστάσεων. Τα προγράμματα αυτά ονομάζονται ευφυείς πράκτορες. Μερικές από τις εφαρμογές της ΤΝ σήμερα είναι ο αυτόνομος σχεδιασμός και χρονοπρογραμματισμός, ο αυτόνομος έλεγχος, η επίλυση δύσκολων προγραμμάτων, η χειρουργική ρομποτική και τα παιχνίδια. Τα παιχνίδια αποτέλεσαν αντικείμενο έρευνας από τις αρχές της ΤΝ. Ο αυστηρός τρόπος ορισμού καθώς και η εύκολη αναπαράσταση τους, τα κάνουν κατάλληλα για τη δοκιμή μεθόδων ΤΝ. Τα παιχνίδια αυτά χωρίζονται σε δύο μεγάλες κατηγορίες ανάλογα με το αν είναι διαθέσιμη όλη η κατάσταση του παιχνιδιού. Έτσι, έχουμε τα παιχνίδια τέλειας πληροφόρησης (perfect information), όπως το σκάκι και το τάβλι, και τα παιχνίδια ατελούς πληροφόρησης (imperfect information), όπως το Poker και το Bridge. Στην πρώτη κατηγορία, οι παίκτες έχουν πλήρη επίγνωση της κατάστασης του παιχνιδιού κάθε στιγμή κοιτώντας το ταμπλό του παιχνιδιού. Αντιθέτως, στο Poker ο κάθε παίκτης έχει κρυμμένες κάρτες που δε γνωρίζει ο αντίπαλος. Η ΤΝ έχει καταφέρει να δώσει πολύ θετικά αποτελέσματα σε κλασσικά παιχνίδια όπως το σκάκι, το Othello και το checkers. Χαρακτηριστικό όλων αυτών των παιχνιδιών είναι ότι ανήκουν στα παιχνίδια τέλειας πληροφόρησης. Η επίλυση τους γίνεται συνήθως με μεγάλα δένδρα αναζήτησης της βέλτιστης κίνησης που θα οδηγήσει μελλοντικά σε νικηφόρο αποτέλεσμα. Κύριος στόχος των ερευνητών είναι η μείωση του εύρους αναζήτησης λύσεων. Το παιχνίδι με το οποίο θα ασχοληθούμε στα πλαίσια αυτής της 10

1 Εισαγωγή διπλωματικής εργασίας είναι το Poker. Το poker έχει πολλές ιδιότητες που το κάνουν κατάλληλο για μελέτη από την ΤΝ. Καταρχάς, είναι ένα πολύ μεγάλο παιχνίδι με πολλές καταστάσεις, που σημαίνει ότι είναι αδύνατο να το αποθήκευσουμε ολόκληρο στη μνήμη. Κατά δεύτερον, υπάρχει μεγάλη στοχαστικότητα στο παιχνίδι λόγω του ανακατέματος της τράπουλας. Αυτό σημαίνει ότι ο παράγοντας τύχη παίζει σημαντικό ρόλο στην εξέλιξη μιας παρτίδας. Τρίτον, όπως αναφέρθηκε, ασχολούμαστε με ένα παιχνίδι ατελούς πληροφόρησης, εφόσον οι κάρτες κάθε παίκτη δεν είναι διαθέσιμες στον αντίπαλο. Έτσι, οι τεχνικές που χρησιμοποιήθηκαν για επίλυση του σκάκι ή του checkers δεν μπορούν να εφαρμοστούν στο Poker. 1.1 Περιγραφή Του Προβλήματος Για την ανάπτυξη του πράκτορα χρησιμοποιήθηκε η πλατφόρμα του Annual Computer Poker Competition (ACPC). Η παραλλαγή του Poker με την οποία θα ασχοληθούμε είναι το Heads-up No-Limit Texas Hold'em Poker, που είναι και η πιο δημοφιλής. Περισσότερες πληροφορίες για τους κανόνες του παιχνιδιού υπάρχουν στο κεφάλαιο 2.1. Με τον όρο Heads-up εννοούμε ότι το παιχνίδι παίζεται μεταξύ δύο αντιπάλων ή αλλιώς 1 versus 1. Ο όρος No-Limit αναφέρεται στη μη ύπαρξη περιορισμού στον αριθμό των μαρκών που ποντάρονται σε κάθε γύρο. Ωστόσο, η πλατφόρμα θέτει ως μέγιστο ποντάρισμα τις 20,000 μάρκες. Στο limit Hold'em υπάρχει περιορισμός για κάθε ποντάρισμα και ο κάθε παίκτης μπορεί να ποντάρει σε κάθε γύρο μέχρι ένα συγκεκριμένο αριθμό μαρκών. Η αναμέτρηση δύο πρακτόρων παίζεται δύο φορές σε σετ 5000 παρτίδων. Παρόλο που η στοχαστικότητα των φύλλων μπορεί να κρίνει την έκβαση της κάθε παρτίδας ξεχωριστά, ύστερα από ένα μεγάλο αριθμό παιχνιδιών μπορούμε να θεωρήσουμε ότι ο παράγοντας τύχη κατανέμεται ισοπίθανα και στους δύο αντιπάλους. Επίσης, τη δεύτερη φορά τα φύλλα μοιράζονται ανάποδα στους παίκτες ενώ τα κοινά φύλλα που ανοίγουν (board) είναι τα ίδια. Έτσι, κάθε πράκτορας θα κληθεί να αντιμετωπίσει την ίδια ακριβώς κατάσταση που αντιμετώπισε προηγουμένως ο 11

1 Εισαγωγή αντίπαλός του. Τα blinds είναι τα υποχρεωτικά πονταρίσματα πριν την έναρξη κάθε παρτίδας και ορίζονται ως 5 το small blind (SB) και 10 το big blind (BB). Η πλατφόρμα δίνει άπειρο αριθμό μαρκών σε κάθε παίκτη σε ένα σετ παιχνιδιών και έτσι δεν μπορεί κάποιος από τους παίκτες να ξεμείνει από μάρκες πριν τελειώσει η αναμέτρηση. Ο μόνος περιορισμός της πλατφόρμας είναι το μέγιστο ποντάρισμα των 20.000 μαρκών. Όταν κάποιος παίκτης ποντάρει το μέγιστο ποντάρισμα σε κάποιο γύρο (All-in) και ο αντίπαλος δει το ποντάρισμα (call) η παρτίδα οδηγείται στο τέλος της (Showdown) χωρίς να υπάρχει δυνατότητα για επόμενα πονταρίσματα. Στο τέλος κάθε σετ, ο ένας αντίπαλος θα έχει περισσότερες μάρκες από τις αρχικές του, ενώ ο άλλος λιγότερες. Τέλος, όταν μια παρτίδα φτάσει στο Showdown αποκαλύπτονται τα φύλλα του αντιπάλου αυτόματα, απαγορεύοντας το κρύψιμό τους (muck). Ως κύριος σκοπός του πράκτορα δεν είναι η προσπάθεια νίκης σε κάθε παρτίδα ξεχωριστά, αλλά σε ολόκληρο το σετ παιχνιδιών. Επομένως, ο πράκτορας θα πρέπει να χάνει όσο το δυνατόν λιγότερα σε μια παρτίδα που δεν μπορεί να κερδίσει, και να κερδίζει όσο το δυνατόν περισσότερα στις παρτίδες που μπορεί να κερδίσει. Δηλαδή, θα πρέπει να υπάρχει μεγιστοποίηση των κερδών του και ελαχιστοποίηση των απωλειών του. 1.2 Στόχοι της διπλωματικής Σκοπός της διπλωματικής είναι η μελέτη του Poker ως προβλήματος της Τεχνητής Νοημοσύνης και η ανάπτυξη ενός ευφυούς πράκτορα για το Heads-up No-Limit Texas Hold'em Poker. Καταρχάς, ο πράκτορας θα πρέπει να έχει τη δυνατότητα να αξιολογεί την κάθε παρτίδα. Αυτό σημαίνει ότι πρέπει σε κάθε γύρο να αξιολογεί την αξία του φύλλου του. Η αξία του φύλλου του μπορεί να διαφέρει ανάλογα με το γύρο στον οποίο βρίσκεται. Διαφορετική δύναμη έχει ένα φύλλο πριν ανοίξουν τα κοινά φύλλα (Preflop) και διαφορετική μετά που θα ανοίξουν (Flop). Επίσης, ο πράκτορας θα πρέπει να είναι ικανός να προβλέπει την πιθανότητα βελτίωσης της δύναμης του φύλλου του με το άνοιγμα των επόμενων καρτών. 12

1 Εισαγωγή Ένα άλλο σημαντικό χαρακτηριστικό που πρέπει να έχει ο πράκτορας είναι η μη-προβλεψιμότητα. Αν ο πράκτορας λειτουργούσε πάντα με βάση μια συγκεκριμένη πολιτική, θα ήταν εύκολο να αναγνωριστεί από τον αντίπαλο και να αντιμετωπιστεί πιο εύκολα. Έτσι, ο πράκτορας θα πρέπει να είναι ικανός να παίρνει διαφορετικές αποφάσεις ακόμα και όταν βρίσκεται σε μία ίδια κατάσταση. Αυτό, θα δυσκόλευε πολύ στη μοντελοποίηση του από τον αντίπαλο. Ο πράκτορας θα πρέπει να προσπαθεί να μεγιστοποιεί το κέρδος του σε κάθε σετ παιχνιδιών. Αυτός είναι ίσως και ο σημαντικότερος παράγοντας αξιολόγησης των παικτών Poker στον πραγματικό κόσμο. Καλύτερος παίκτης θεωρείται αυτός που μπορεί να πάρει το maximum από τον αντίπαλο του όταν έχει το καλύτερο φύλλο και να χάσει τις λιγότερες δυνατές μάρκες όταν ηττάται. Την ίδια δυνατότητα θα πρέπει να έχει και ο πράκτορας μας. Τέλος, οι αλγόριθμοι που χρησιμοποιεί ο πράκτορας θα πρέπει να είναι όσο το δυνατόν μικρότερης πολυπλοκότητας και οι καταστάσεις του όσο το δυνατόν λιγότερες. Σε αντίθετη περίπτωση, θα χρειάζονταν αρκετές ημέρες για να τελειώσει μία αναμέτρηση με αποτέλεσμα να μην μπορούν να γίνουν πολλά πειράματα. 1.3 Μεθοδολογία που ακολουθήθηκε Αρχικά μελετήθηκαν άρθρα και δημοσιεύσεις από προηγούμενες μελέτες και εργασίες πάνω στο συγκεκριμένο θέμα. Η πλειοψηφία αυτών είχαν ως κύριο αντικείμενο το Limit Texas Hold'em καθώς, όπως αναφέρθηκε, είναι πιο εύκολο στη λύση του λόγω των πολύ μικρότερων καταστάσεων. Ύστερα από τη μελέτη των δημοσιεύσεων αποφασίστηκε να χρησιμοποιηθεί η Java ως γλώσσα προγραμματισμού για την υλοποίηση του πράκτορα. Έτσι, χρειάστηκε να μελετηθούν διάφορα βοηθήματα πάνω στη Java (tutorials) και πάνω σε συναρτήσεις που θα ήταν χρήσιμες για την υλοποίηση του προγράμματος. Ο πράκτορας σχεδιάστηκε για να χρησιμοποιεί την πλατφόρμα του ACPC server. Ο server αυτός ήταν υλοποιημένος σε όλες τις διαφορετικές εκδόσεις του σε Java, εκτός από την τελευταία έκδοση που ήταν γραμμένη σε C++. Η έκδοση που χρησιμοποιήθηκε στα πειράματά του παίκτη μας, 13

1 Εισαγωγή ήταν η τελευταία. Έτσι, δόθηκε ιδιαίτερη έμφαση στην κατανόηση του Interface του server, στον τρόπο που υλοποιούνται οι κανόνες και στον τρόπο λειτουργίας του. Όσον αφορά την ανάπτυξη του πράκτορα, αρχικά μελετήθηκαν και ορίσθηκαν τα χαρακτηριστικά του περιβάλλοντος. Ορίζοντας σωστά όλα τα χαρακτηριστικά, ο παίκτης μπορούσε να συνδεθεί στο server και να παίξει παιχνίδι με έναν αντίπαλο, χωρίς όμως να υπάρχει κάποια βασική στρατηγική που να ακολουθεί. Μπορούσε παρόλα αυτά να αναλύσει και να αποθηκεύσει όλες τις πληροφορίες του παιχνιδιού που αργότερα θα τις αξιοποιούσε στους αλγόριθμους ενισχυτικής μάθησης που χρησιμοποιήθηκαν. Έπειτα από τον ορισμό των χαρακτηριστικών του περιβάλλοντος μελετήθηκαν δημοσιεύσεις που αφορούσαν διάφορες μεθόδους για την ελαχιστοποίηση των καταστάσεων του παιχνιδιού. Αποφασίστηκε να εφαρμοστεί η τεχνική της αφαίρεσης (abstraction) σε δύο διαφορετικές περιπτώσεις. Αρχικά, επιτυγχάνουμε μείωση των καταστάσεων του παιχνιδιού ελαττώνοντας το πεδίο δράσεων του πράκτορα (Betting Abstraction). Σε δεύτερη φάση, η μέθοδος της αφαίρεσης χρησιμοποιείται για να ομαδοποιήσουμε τη δύναμη του χεριού σε κάθε γύρο (Card Abstraction). Τέλος, προκειμένου να ολοκληρωθεί το σύστημα της βασικής πολιτικής του πράκτορα έπρεπε να επιλεχθεί ένας αλγόριθμος ενισχυτικής μάθησης (ΕΜ). Στον πράκτορα μας χρησιμοποίηθηκε ο αλγόριθμος Monte Carlo. Η εκπαίδευση της βασικής πολιτικής με τον αλγόριθμο αυτό γίνεται ύστερα από συνεχείς προσομοιώσεις (Monte Carlo Simulations). Ύστερα από την εκπαίδευση της, η βασική πολιτική θα πρέπει να είναι σε θέση να προτείνει μία δράση σε κάθε γύρο της παρτίδας. Οι δράσεις αυτές επιλέγονται με βάση την τεχνική λήψη αποφάσεων e-greedy (άπληστη επιλογή). 1.4 Οργάνωση Διάρθρωση της διπλωματικής Στο κεφάλαιο 2 δίνεται το θεωρητικό υπόβαθρο και η φιλοσοφία των αλγορίθμων που εφαρμόστηκαν στον πράκτορα. Αρχικά, γίνεται ανάλυση 14

1 Εισαγωγή του παιχνιδιού που ασχολούμαστε και των βασικών κανόνων του. Έπειτα, αναλύεται η τεχνική των αφαιρέσεων που χρησιμοποιήθηκαν. Το κεφάλαιο κλείνει παραθέτοντας θεωρητικά στοιχεία για τις τεχνικές ενισχυτικής μάθησης καθώς και για τον αλγόριθμο του Monte-Carlo. Το κεφάλαιο 3 ασχολείται με τη διαδικτυακή κοινότητα των παικτών Poker που έχουν υλοποιηθεί. Αρχικά, αναλύονται κάποιες βασικές στρατηγικές που μπορούν να εφαρμοστούν στην υλοποίηση του πράκτορα, προσδίδοντας του ευελιξία και μη προβλεψιμότητα. Στη συνέχεια, δίνονται αναφορές και στοιχεία για διάφορους πράκτορες που έχουν σχεδιαστεί, καθώς και τις βασικές στρατηγικές τους. Επίσης, σε αυτό το κεφάλαιο παρουσιάζεται η πλατφόρμα και ο server που χρησιμοποιήθηκαν για την ανάπτυξη και την αξιολόγηση του πράκτορα. Στο 4ο κεφάλαιο δίνεται αναλυτικά η μεθοδολογία ανάπτυξης του πράκτορα. Αρχικά, δίνονται τα βασικά χαρακτηριστικά του περιβάλλοντος καθώς και συναρτήσεις που βοήθησαν στον ορισμό των χαρακτηριστικών αυτών. Έπειτα αναλύεται ο τρόπος ανάπτυξης της τεχνικής των αφαιρέσεων και η ομαδοποίηση διαφόρων χαρακτηριστικών σε πακέτα (buckets). Τέλος, δίνεται η υλοποίηση του βασικού αλγορίθμου. Το 5ο κεφάλαιο αναφέρει όλα τα πειράματα που έγιναν με διάφορους παίκτες. Δίνονται αναλυτικά τα αποτελέσματα και η αξιολόγηση τους. Τέλος, στο 6ο και τελευταίο κεφάλαιο δίνονται διάφορα συμπεράσματα ύστερα από την υλοποίηση του πράκτορα καθώς και μελλοντικές επεκτάσεις που θα μπορούσαν να βελτιώσουν την απόδοση του πράκτορα. 15

1 Εισαγωγή ΚΕΦΑΛΑΙΟ 2 2 Θεωρητικό Υπόβαθρο 2.1 Τα βασικά του No-Limit Texas Hold'em Το Texas Hold'em Poker παίζεται με την κλασσική τράπουλα των 52 φύλλων που αποτελείται από τέσσερα διαφορετικά χρώματα (suits) και 13 διαφορετικά φύλλα ανά χρώμα (ranks). Στο παιχνίδι μπορούν να συμμετάσχουν από δύο έως 10 παίκτες. Στα πλαίσια της διπλωματικής θα ασχοληθούμε με το παιχνίδι δύο παικτών (Heads-up). Σε κάθε παρτίδα μοιράζονται από δύο κρυφές κάρτες σε κάθε παίκτη και ανοίγουν πέντε κοινές κάρτες (board) για όλους τους παίκτες. Σκοπός του κάθε παίκτη είναι να κερδίσει το συνολικό αριθμό μαρκών (pot) στο τέλος κάθε παρτίδας. Αυτό μπορεί να επιτευχθεί είτε έχοντας τον καλύτερο συνδυασμό στον τελευταίο γύρο είτε αναγκάζοντας τον αντίπαλο να εγκαταλείψει την παρτίδα. Οι δύο πρώτοι παίκτες αριστερά του dealer τοποθετούν τα αναγκαστικά πονταρίσματα με την έναρξη κάθε παρτίδας, το Small Blind (SB) και το Big Blind (BB). Στο Heads-Up παιχνίδι ο dealer τοποθετεί το SB και είναι αυτός που δρα πρώτος στην παρτίδα. Το SB είναι συνήθως το μισό του πονταρίσματος του BB. Το παιχνίδι αποτελείται από τέσσερις γύρους πονταρίσματος: Preflop: Κάθε παίκτης γνωρίζει μόνο τις δύο κρυφές του κάρτες και ανάλογα με την αξία αυτών αποφασίζει την καλύτερη ενέργεια. Flop: Ύστερα από την ολοκλήρωση του preflop γύρου ανοίγουν τρεις κοινές κάρτες για όλους τους παίκτες. Έπειτα ακολουθεί ακόμα ένας γύρος πονταρίσματος. Turn: Μετά το γύρο του flop ακολουθεί το turn, όπου προστίθεται άλλη μία κοινή κάρτα στις προηγούμενες τρεις. Ο κάθε παίκτης έχει πλέον έξι κάρτες στη διάθεση του για να φτιάξει τον καλύτερο δυνατό συνδυασμό. River: Μετά το τέλος των πονταρισμάτων στο turn ανοίγει και το τελευταίο κοινό φύλλο, το river. Ακολουθεί γύρος πονταρίσματος. Αν 16

2 Θεωρητικό Υπόβαθρο κανείς παίκτης δεν έχει εγκαταλείψει στο τέλος αυτού του γύρου, τότε η παρτίδα οδηγείται σε Showdown. Όλοι οι εναπομείναντες παίκτες ανοίγουν τις κρυφές κάρτες τους και αυτός που έχει τον καλύτερο συνδυασμό κερδίζει όλο το ποσό που έχει πονταριστεί στους γύρους του παιχνιδιού. Σε κάθε γύρο πονταρίσματος ο κάθε παίκτης μιλάει όταν έρθει η σειρά του, ξεκινώντας από τον πρώτο παίκτη αριστερά του dealer και πηγαίνοντας σύμφωνα με τη φορά του ρολογιού. Όταν έρθει η σειρά του, μπορεί να επιλέξει μία από τις επιτρεπόμενες ενέργειες. Η πρώτη ενέργεια είναι να αποφασίσει να μη δει ένα ποντάρισμα ενός άλλου παίκτη και επομένως να παρατήσει την παρτίδα (Fold). Διαφορετικά, μπορεί να διαλέξει την ενέργεια check/call, όπου τοποθετεί το μεγαλύτερο ποντάρισμα που έχει γίνει στο συγκεκριμένο γύρο για να συνεχίσει στην παρτίδα. Τέλος, έχει το δικαίωμα να ανεβάσει το ποντάρισμα, δηλαδή να προσθέσει μάρκες στο pot. Τότε εκτελεί την ενέργεια bet/raise. Η διαφορά του No-Limit με το Limit Hold'em βρίσκεται στο γεγονός ότι στο No- Limit ο παίκτης μπορεί να ποντάρει οποιοδήποτε ποσό θέλει σε κάθε γύρο, αντιθέτως με το Limit όπου το μέγιστο ποσό πονταρίσματος είναι προκαθορισμένο. Στον πίνακα 2.1 παρατίθενται παραδείγματα που δείχνουν την κατάταξη των συνδυασμών από το υψηλότερο στο χαμηλότερο. Πίνακας 2.1: Κατάταξη συνδυασμών [12] Παράδειγμα A K Q J T Φλος Ρουαγιάλ, Υψηλό Ασσο Κούπα A 2 3 4 5 Κέντα Φλος, Πέντε υψηλό K Κ Κ Κ 8 4 Ρηγάδες Κατάταξη Συνδυασμών απο το Υψηλότερο στο Χαμηλότερο Φλος Ρουαγιάλ "Royal" Τα πέντε υψηλότερα φύλλα σε χρώμα. Το Φλος Ρουαγιάλ βασικά είναι Κέντα Φλος υψηλού Ασσου. Κέντα Φλος Οποιαδήποτε πέντε συνεχόμενα φύλλα του ίδιου χρώματος. Το παράδειγμα είναι πέντε υψηλό Κέντα Φλος. (Μόνο ο Ασσος μπορεί να είναι υψηλός ή χαμηλός για Κέντα.) Καρέ "Quads" Τέσσερα όμοια φύλλα, αριθμού ή φιγούρας (πχ 4 Ρηγάδες) με ένα 17

2 Θεωρητικό Υπόβαθρο Q Q Q Κ Κ Φουλ, Ντάμες πάνω απο Ρηγάδες διαφορετικό φύλλο. Φουλ "Full House" Τριπλό μιας κατάταξης καθώς και ζευγάρι απο άλλο. Το παράδειγμα είναι Ντάμα over Ρηγάδες, το οποίο κερδίζει Βαλέ over Ασσους λόγω του τριπλού. Κ 2 3 7 10 Φλος, Υψηλός Ρήγας Α Κ Q J 10 Κέντα, Υψηλός Άσσος 5 5 5 Κ 3 Τρια Πέντε 7 7 4 4 3 Δυο Ζεύγη, Επτά και Τέσσερα 10 10 5 Κ 3 Ενα Ζευγάρι Δεκάρια J 5 9 Κ 3 Υψηλός Ρήγας Φλος Οποιαδήποτε πέντε φύλλα του ίδιου χρώματος. (αν είναι συνεχόμενα έχετε Κέντα Φλος.) Κέντα "Wheel" Πέντε συνεχόμενα φύλλα του ανεξαρτήτου χρώματος. Ο Ασσος μπορεί να είναι ψηλά (δίπλα σε Ρήγα) η χαμηλά (δίπλα σε 2) αλλά όχι και στα δυο ταυτόχρονα. Τρία Όμοια Φύλλα "Trips", "Triplets", "Set" Τρια όμοια φύλλα αριθμού ή φιγούρας. (αν τα άλλα δυο έκαναν ζευγάρι θα είχατε Φουλ.) Δυο Ζεύγη Οποιοδήποτε Ζευγάρι μιας κατάταξης καθώς και ένα ζευγάρι άλλης κατάταξης. Αν δυο χέρια έχουν το ίδιο υψηλό ζευγάρι, το δεύτερο ζεύγαρι αποφασίζει το νικητή. Αν υπάρξει ισοπαλία τα απομείναντα υψηλά φύλλα αποφασίζουν. Ζευγάρι Οποιαδήποτε δυο φύλλα ίδιας κατάταξης. Οταν δυο χέρια έχουν το ίδιο ζευγάρι, το υψηλό φύλλο που έχει απομείνει αποφασίζει. Υψηλό Φύλλο Αν δεν επιτευχθεί καμμία κατάταξη χαρτιών το υψηλότερο φύλλο κερδίζει. Αν δυο χέρια έχουν το ίδιο υψηλό χαρτί τότε τα υψηλά φύλλα που παραμένουν αποφασίζουν 2.2 Αφαιρέσεις Όπως έχει αναφερθεί το No-Limit Hold'em είναι ένα παιχνίδι πολύ 18

2 Θεωρητικό Υπόβαθρο μεγάλου μεγέθους, που σημαίνει ότι αποτελείται από πολύ μεγάλο αριθμό καταστάσεων. Έχοντας ως στόχο να επιτύχουμε μία πλήρη στρατηγική για το παιχνίδι, πρέπει αρχικά να μειώσουμε αισθητά τον αριθμό των καταστάσεων φτιάχνοντας μία αφηρημένη έκδοση του παιχνιδιού. Έπειτα, λύνοντας την καινούρια έκδοση που δημιουργήσαμε και μεταφράζοντας τα αποτελέσματα στην πλήρη εκδοχή του, καταφέρνουμε να καθιερώσουμε μία πλήρη στρατηγική για το παιχνίδι. Για να πετύχουμε τον παραπάνω στόχο χρησιμοποίηθηκαν δύο είδη αφαιρέσεων. Η πρώτη αφαίρεση έγκειται στην ομαδοποίηση των δυνατών συνδυασμών των φύλλων έχοντας ως βάση ένα μέτρο της δύναμης του φύλλου (αφαίρεση καρτών). Η δεύτερη αφαίρεση που χρησιμοποίηθηκε έχει να κάνει με τη μείωση των δυνατών δράσεων σε κάθε γύρο, μειώνοντας έτσι σε μεγάλο βαθμό το game tree (αφαίρεση δράσεων). 2.2.1 Αφαίρεση καρτών Υπάρχουν πολλές μεθόδοι που έχουν ως στόχο να δημιουργήσουν μια αφαίρεση στις κάρτες στο παιχνίδι, αλλά όλες καταλήγουν στην τεχνική της ομαδοποίησης (bucketing). Αν έχουμε διαθέσιμες n διαφορετικές ομάδες (buckets) πρέπει να αποφασίσουμε πως θα κατανέμουμε όλο το εύρος των δυνατών χεριών στις ομάδες αυτές. Το κάθε bucket περιέχει συνδυασμούς φύλλων που έχουν κοινές ιδιότητες στο συγκεκριμένο γύρο του παιχνιδιού. Για παράδειγμα, μια συνηθισμένη επιλογή ομάδων είναι με βάση τη δύναμη του φύλλου. Ανάλογα με την ικανότητα του πράκτορα να έχει μνήμη των προηγούμενων buckets που βρισκόταν στο παιχνίδι, έχουμε δύο διαφορετικές κατηγορίες. Αν ο παίκτης έχει πλήρη γνώση όλων των καταστάσεων του τότε λέμε ότι έχει πλήρη ανάκληση (perfect recall). Αντιθέτως, αν ο παίκτης ξεχνάει πληροφορίες που ήξερε στο παρελθόν τότε έχει ατελής ανάκληση (imperfect recall). Όσον αφορά το παιχνίδι που μελετάμε, αναφερόμαστε σε perfect recall όταν ο παίκτης έχει γνώση σε ποιο bucket βρισκόταν σε κάθε γύρο πονταρίσματος. Το πλεονέκτημα της μεθόδου αυτής είναι ότι μπορεί να αποδώσει καλύτερα αποτελέσματα στη λύση του παιχνιδιού, καθώς έχει 19

2 Θεωρητικό Υπόβαθρο πλήρη γνώση κάθε παρτίδας. Ωστόσο, ο αριθμός των buckets σε κάθε γύρο αυξάνεται συνεχώς και υπολογίζεται ως το γινόμενο των buckets όλων των προηγούμενων γύρων. Έστω, ότι χωρίζουμε κάθε γύρο του παιχνιδιού σε 8 buckets. Αυτό σημαίνει ότι πραγματικά θα έχουμε 8 buckets στον preflop γύρο, 64 buckets στο flop, 512 buckets στο turn και 4096 buckets στον τελευταίο γύρο, στο river. Αν αποφασίσουμε να αυξήσουμε τον αριθμό των buckets στον preflop γύρο, τότε αυτό αυτόματα οδηγεί σε ανάλογη αύξηση του αριθμού των buckets όλων των επόμενων γύρων. Ο όρος imperfect recall αναφέρεται στο να έχουμε μία αφαίρεση όπου ο παίκτης θα ξεχνάει σε ποιο bucket βρισκόταν σε κάθε προηγούμενο γύρο. Το βασικό πλεονέκτημα αυτής της τεχνικής είναι ότι μας επιτρέπει να αυξήσουμε των αριθμό των buckets στους αρχικούς γύρους, χωρίς αυτό να οδηγεί σε δραματική αύξηση στον αριθμό των buckets στους τελευταίους γύρους. Για παράδειγμα, χρησιμοποιώντας imperfect recall θα μπορούσαμε να έχουμε 169 buckets στον preflop γύρο (όσος και ο διαφορετικός συνδυασμός αρχικών χεριών, αν εξαιρέσουμε τη διαφορετικότητα των χρωμάτων). Αυτό θα μπορούσε να αυξήσει τα flop buckets σε 64, καθώς τα 8 buckets του preflop γύρου μπορούν να χρησιμοποιηθούν πλέον εδώ. Κρατώντας 8 buckets και για τους επόμενους γύρους στο τέλος θα έχουμε 4096 διαφορετικά buckets στο river. Παρατηρούμε ότι έχουμε ακριβώς τον ίδιο αριθμό buckets στο river όπως και με perfect recall. Όμως, πλέον έχουμε πλήρη γνώση των φύλλων μας στον preflop γύρο. Η δυνατότητα να αυξάνουμε τον αριθμό των buckets μας επιτρέπει τη χρήση διαφορετικού είδους bucketing. Χρησιμοποιώντας perfect recall το bucket του flop για παράδειγμα θα περιέχει και το bucket του προηγούμενο γύρου, δηλαδή θα είναι της μορφής [preflop bucket, flop bucket]. Αντιθέτως, με imperfect recall θα είναι της μορφής [flop bucket] μόνο. Έστω για παράδειγμα οτι οι κρυφές κάρτες του πράκτορα αποτελούνται από ένα μέτριο φύλλο. Στον preflop γύρο με imperfect recall ομαδοποιείται στο bucket [80], ενώ με perfect recall στο bucket [4]. Αν υποθέσουμε ότι η δύναμη του χεριού βελτιώνεται στο flop και ο πράκτορας έχει 80% πιθανότητες να κερδίσει την παρτίδα, τότε το flop bucket είναι [7]. Στο perfect recall ο πράκτορας πιθανώς vα επέλεγε διαφορετική δράση αναλόγως με την κατάσταση του στον προηγούμενο 20

2 Θεωρητικό Υπόβαθρο γύρο. Άλλη δράση θα επέλεγε στο flop αν το preflop bucket ήταν [2] και άλλη δράση τώρα που είναι [4], παρόλο που το flop bucket είναι το ίδιο. Στο παράδειγμα μας, ο πράκτορας αναγνωρίζει ότι βρίσκεται στην κατάσταση [4,7], ενώ στη δεύτερη περίπτωση η κατάσταση του θα ήταν [2,7]. Αντιθέτως, με imperfect recall ο πράκτορας γνωρίζει ότι το flop bucket του είναι [7] και θα επιλέξει ανάλογη ενέργεια, ανεξαρτήτως του preflop bucket του. Στο παρακάτω σχήμα φαίνεται η διαδικασία που περιγράφτηκε. Σχήμα 1: Επιλογή δράσεων με perfect και imperfect recall 21

2 Θεωρητικό Υπόβαθρο 2.2.2 Αφαίρεση δράσεων Εκτός από αφαίρεση καρτών χρησιμοποιούμε και ένα άλλο είδος αφαίρεσης που μειώνει αισθητά το game tree. Με την αφαίρεση δράσεων περιορίζουμε τον αριθμό των δράσεων που είναι διαθέσιμες στον πράκτορα μας. Θεωρητικά ο πράκτορας έχει ένα τεράστιο εύρος διαθέσιμων ενεργειών. Αν το μέγιστο ποντάρισμα είναι 20.000 τότε οι πιθανές δράσεις του πράκτορα είναι 20.002 (fold, check/call και μία δράση για κάθε ποντάρισμα). Αν δε χρησιμοποιούσαμε τη συγκεκριμένη αφαίρεση τότε θα ήταν αδύνατο να μπορέσουμε να διεξάγουμε πειράματα λόγω του τεράστιου game-tree. Σύμφωνα με την τεχνική αυτή περιορίζουμε το πεδίο δράσης του παίκτη στις εξής τέσσερις επιλογές: fold (f), check/call (c), raise pot (p) και go all-in (a). Έτσι ο παίκτης σε οποιαδήποτε κατάσταση και να βρίσκεται μπορεί να δράσει με μία από τις 4 παραπάνω δράσεις. Η δράση raise pot (p) αναφέρεται στην επιλογή του παίκτη να ποντάρει ένα ποσό ίσο με το pot τη συγκεκριμένη εκείνη στιγμή, ενώ η δράση all-in (a) επιλέγει να ποντάρει όλες τις διαθέσιμες μάρκες που έχει ο παίκτης. Η παραπάνω αφαίρεση ονομάζεται fcpa λόγω των συγκεκριμένων αυτών δράσεων. Θα μπορούσαμε να προσθέσουμε παραπάνω δράσεις και να οδηγήσουμε σε μεγαλύτερη αφαίρεση. Για παράδειγμα, η αφαίρεση fcpda περιέχει ακόμα μία διαθέσιμη ενέργεια, την d. Σε αυτή τη δράση, ο πράκτορας ποντάρει ένα ποσό ίσο με το διπλάσσιο του pot (double pot). Στα πλαίσια της συγκεκριμένης διπλωματικής χρησιμοποιήθηκε αφαίρεση fcpa. 2.3 Ενισχυτική Μάθηση 2.3.1 Δομικά στοιχεία συστήματος ενισχυτικής μάθησης Η Ενισχυτική Μάθηση (ΕΜ) έχει ως στόχο την εκπαίδευση του πράκτορα μέσα από την αλληλεπίδρασή του με το περιβάλλον, ώστε να πετύχει τον επιθυμητό στόχο του. Το πρόγραμμα που μαθαίνει και καλείται να πάρει τις αποφάσεις ονομάζεται πράκτορας (agent), ενώ το 22

2 Θεωρητικό Υπόβαθρο κομμάτι με το οποίο αλληλεπιδρά, ονομάζεται περιβάλλον (environment). Μεταξύ του πράκτορα και του περιβάλλοντος μπορεί κανείς να διακρίνει τρία βασικά στοιχεία που έχει ένα σύστημα ενισχυτικής μάθησης (ΣΕΜ): την πολιτική (policy), τη συνάρτηση αμοιβών (reward function) και τη συνάρτηση αξιών (value function) Η πολιτική επιδεικνύει στον πράκτορα τον τρόπο με τον οποίο θα συμπεριφέρεται κάθε δεδομένη στιγμή, δηλαδή είναι μια αντιστοίχηση των καταστάσεων που υπολογίζονται από το περιβάλλον σε ενέργειες που πρέπει να παρθούν, όταν ο πράκτορας βρίσκεται στη δεδομένη κατάσταση. Η πολιτική μπορεί να είναι μία απλή συνάρτηση ή ένας lookup πίνακας, ενώ σε άλλες περιπτώσεις μπορεί να είναι πολύπλοκη με προχωρημένους υπολογισμούς όπως μια διαδικασία αναζήτησης. Η πολιτική αποτελεί τον πυρήνα ενός πράκτορα ενισχυτικής μάθησης. Η συνάρτηση αμοιβών (reward function) είναι αυτή που επιδεικνύει το στόχο σε ένα πρόβλημα ενισχυτικής μάθησης. Η κύρια λειτουργία της είναι να αντιστοιχίζει κάθε κατάσταση (ή ζεύγος κατάστασης-δράσης) σε έναν αριθμό, την αμοιβή (reward). Η αμοιβή είναι αυτή που καθορίζει το πόσο επιθυμητή είναι η συγκεκριμένη κατάσταση. Επομένως, ως κύριος στόχος ενός ΣΕΜ είναι η μεγιστοποίηση των αμοιβών. Η συνάρτηση αμοιβών καθορίζει ποια είναι τα θετικά και ποια τα αρνητικά στοιχεία για τον πράκτορα. Φυσικά, ο πράκτορας δε θα πρέπει να έχει τη δυνατότητα να αλλοιώνει τη συνάρτηση αμοιβών. Αντιθέτως, οι αμοιβές είναι η κύρια βάση ώστε να αλλάζει η πολιτική του πράκτορα. Για παράδειγμα, αν μια δράση που επιλέχθηκε από τη συγκεκριμένη πολιτική έχει πολύ χαμηλή αμοιβή, τότε η πολιτική θα μπορούσε να αλλάξει ώστε να επιλέξει μια άλλη δράση στη συγκεκριμένη κατάσταση σε επόμενη εκτέλεση. Ενώ η συνάρτηση αμοιβών ορίζει τις αμοιβές σε κάθε αλληλεπίδραση του προγράμματος, η συνάρτηση αξιών (value function) δείχνει τη σωστή πολιτική μακροπρόθεσμα. Με λίγα λόγια, η αξία (value) μιας κατάστασης είναι ο συνολικός αριθμός των αμοιβών που λαμβάνονται σε όλη τη διαδικασία, ξεκινώντας από μια κατάσταση μέχρι να φτάσει σε μία άλλη κατάσταση. Έτσι, οι αξίες είναι αυτές που καταδεικνύουν και αξιολογούν μία κατάσταση και καθορίζουν το πόσο επιθυμητή είναι για τον πράκτορα. Για παράδειγμα, μία κατάσταση μπορεί να έχει πάντα μικρή αμοιβή, αλλά να έχει μεγάλη αξία. Αυτό συμβαίνει επειδή μπορεί να ακολουθείται από άλλες καταστάσεις που έχουν μεγάλες 23

2 Θεωρητικό Υπόβαθρο αμοιβές. Μπορεί, όμως, να συμβαίνει και το αντίθετο. Πρωταρχικός στόχος ενός ΣΕΜ είναι ο υπολογισμός των αμοιβών, ενώ στη συνέχεια η πρόβλεψη των αξιών. Χωρίς αμοιβές δε θα υπήρχαν αξίες και ο μόνος τρόπος για να υπολογισθούν οι αξίες είναι να παρθούν όσο περισσότερες αμοιβές είναι δυνατόν. Επομένως, οι αξίες είναι αυτές οι οποίες κρίνουν τη δράση που θα λάβει ο πράκτορας, δηλαδή επιλέγονται καταστάσεις που αποφέρουν μεγάλες αξίες και όχι μεγάλες αμοιβές, επειδή αυτές οι δράσεις θα αποφέρουν μεγαλύτερο σύνολο αμοιβών στο μέλλον. Στην πραγματικότητα το πιο σημαντικό στοιχείο σχεδόν όλων των ΣΕΜ είναι να βρεθεί η κατάλληλη συνάρτηση αξιών. 2.3.2 Η αλληλεπίδρασή πράκτορα - περιβάλλοντος Ο πράκτορας αλληλεπιδρά συνεχώς με το περιβάλλον. Ο πράκτορας επιλέγει μία δράση, ενώ το περιβάλλον ανταποκρίνεται σε αυτές τις δράσεις παρουσιάζοντας νέες καταστάσεις στον πράκτορα. Επίσης, το περιβάλλον δίνει αμοιβές στον πράκτορα, τιμές που προσπαθεί να μεγιστοποιήσει ο πράκτορας. Πιο συγκεκριμένα, ο πράκτορας και το περιβάλλον αλληλεπιδρούν σε διαδοχικές διακριτές χρονικές τιμές, t= 0,1,2,3... Σε κάθε βήμα t, ο πράκτορας δέχεται μία κατάσταση από το περιβάλλον st Є S, όπου S είναι το σύνολο των πιθανών καταστάσεων, και επιλέγει μία δράση at Є A(st), όπου A(st) είναι το σύνολο των δυνατών δράσεων στη συγκεκριμένη κατάσταση. Στο επόμενο βήμα, σαν συνέπεια της προηγούμενης δράσης, ο πράκτορας λαμβάνει την αμοιβή από το περιβάλλον, rt+1, και βρίσκεται στην επόμενη κατάσταση st+1 του περιβάλλοντος. Το επόμενο σχήμα δείχνει τη διαδικασία που περιγράφηκε. 24

2 Θεωρητικό Υπόβαθρο Σχήμα 2: Αλληλεπίδραση πράκτορα με το περιβάλλον Σε κάθε χρονική στιγμή, ο πράκτορας υλοποιεί μια αντιστοίχηση μεταξύ καταστάσεων και πιθανοτήτων επιλογής των διαθέσιμων δράσεων. Αυτή η αντιστοίχηση είναι η πολιτική του πράκτορα πt, όπου πt(s,a) είναι η πιθανότητα να επιλεχθεί η δράση a=at στην κατάσταση s=st. Οι μέθοδοι ενισχυτικής μάθησης καθορίζουν το πως ο πράκτορας αλλάζει την πολιτική του ως αποτέλεσμα της εμπειρίας του. Ο κύριος στόχος του πράκτορα, δηλαδή, είναι η μεγιστοποίηση του συνολικού ποσού των αμοιβών που δέχεται καθ' όλη τη διαδικασία. 2.3.3 Μέθοδος υπολογισμού αξιών Ας θεωρήσουμε Q*(a) την πραγματική αξία μιας δράσης και Qt(a) την αναμενόμενη αξία στο βήμα t. Η πραγματική αξία μιας δράσης είναι η μέση αμοιβή που ήρθε στον πράκτορα όταν επιλέχθηκε η συγκεκριμένη δράση. Έτσι, ένας απλός τρόπος για να την υπολογίσουμε είναι να βρούμε το μέσο όρο όλων των αμοιβών. Με άλλα λόγια, αν στο βήμα t η δράση a 25

2 Θεωρητικό Υπόβαθρο επιλέχθηκε ka φορές μέχρι το t, με αμοιβές r1, r2, r3... rka τότε η εκτίμηση της αξίας υπολογίζεται ως εξής: Q t (a)= r 1+r 2 +...+r ka k a (2.1) Αν ka=0 τότε καθορίζουμε την τιμή Q0(a) =0. Καθώς ka τόσο και η Qt(a) προσεγγίζει την Q*(a). Αυτή είναι μια απλή μέθοδος υπολογισμού των αξιών. Φυσικά, υπάρχουν και άλλες πιο πολύπλοκες διαδικασίες. 2.3.4 Μέθοδοι επιλογής δράσεων Ο πιο απλός κανόνας για να επιλεχθεί μία δράση είναι να επιλέξουμε τη δράση με την υψηλότερη εκτιμώμενη αξία. Αυτή η μέθοδος χρησιμοποιεί τη μέχρι τώρα γνώση για να μεγιστοποιήσει την εισερχόμενη αμοιβή (εκμετάλλευση), ωστόσο δεν αφήνει περιθώρια στο να εξερευνηθούν άλλες δράσεις που ίσως και να αποδειχθούν καλύτερες (εξερεύνηση). Είναι σημαντικό να εφαρμοστεί μία τεχνική στον πράκτορα που να ισορροπεί μεταξύ εκμετάλλευσης και εξερεύνησης. Οι δύο πιο δημοφιλείς τεχνικές λήψης αποφάσεων είναι οι e-greedy και η softmax. Με την τεχνική λήψης αποφάσεως e-greedy ο πράκτορας συμπεριφέρεται τις περισσότερες φορές άπληστα επιλέγοντας τη δράση με τη μεγαλύτερη αξία. Ωστόσο, με μια μικρή πιθανότητα e, επιλέγει τυχαία μεταξύ των υπόλοιπων δυνατών δράσεων. Το βασικό πλεονέκτημα αυτής της τακτικής είναι ότι καθώς το πλήθος των δοκιμών τείνει στο άπειρο θα εξασφαλίζεται ότι και το πλήθος της επιλογής μιας δράσης θα τείνει στο άπειρο και, επομένως, η τιμή της εκτιμώμενης αξίας Qt(a) θα προσεγγίζει συνεχώς την πραγματική Q*(a). Η μέθοδος softmax είναι παρόμοια με την e-greedy έχοντας όμως μία σημαντική διαφορά. Το βασικό μειονέκτημα της e-greedy είναι ότι όταν γίνεται εξερεύνηση επιλέγει τυχαία και ισοπίθανα την επόμενη δράση. Έτσι, μια επιλογή που έχει χαρακτηριστεί πολύ κακή έχει την ίδια 26

2 Θεωρητικό Υπόβαθρο πιθανότητα με τις υπόλοιπες δράσεις. Έτσι, η διαφορά της softmax είναι ότι αναθέτει πιθανότητες στην επιλογή των δράσεων όταν υπάρχει εξερεύνηση ανάλογα με την εκτιμώμενη αξία τους Qt(s,a). Κάθε δράση επιλέγεται με την εξής πιθανότητα: e Q t (a)/ τ n b=1 e Q t (b)/ τ (2.2) όπου τ θετική παράμετρος που ονομάζεται θερμοκρασία (temperature). Υψηλή τιμή της θερμοκρασίας έχει σαν αποτέλεσμα οι δράσεις να είναι ισοπίθανες. Χαμηλή τιμή της παραμέτρου οδηγεί σε μεγαλύτερη διαφορά στις πιθανότητες επιλογής κάθε δράσης. 2.3.5 Μέθοδος Monte Carlo Η μέθοδος Monte Carlo, σε αντίθεση με πολλές μεθόδους ενισχυτικής μάθησης, δε χρειάζεται πλήρη γνώση του περιβάλλοντος. Η μέθοδος Monte Carlo χρειάζεται μόνο εμπειρία, δηλαδή στιγμιότυπα καταστάσεων, δράσεων και αμοιβών από on-line ή προσομοιωμένη αλληλεπίδραση με το περιβάλλον. Ουσιαστικά η μέθοδος αυτή αποτελεί έναν τρόπο επίλυσης ενός προβλήματος ενισχυτικής μάθησης βασισμένη στο μέσο όρο των επιστρεφόμενων στον πράκτορα τιμών. Έστω ότι έχουμε μια δεδομένη πολιτική και θέλουμε να υπολογίσουμε την συνάρτηση καταστάσεων-αξιών. Η αξία μιας κατάστασης είναι η εκτιμώμενη επιστροφή (expected return) ξεκινώντας από τη συγκεκριμένη κατάσταση. Ένας λογικός τρόπος υπολογισμού από την εμπειρία λοιπόν είναι να υπολογίσουμε το μέσο όρο των επιστροφών που παρατηρήθηκαν σε όλες τις επισκέψεις στην κατάσταση αυτή. Όσο πιο πολλές επιστροφές παρατηρούνται, τόσο ο μέσος όρος θα προσεγγίζει την επιθυμητή εκτιμώμενη τιμή. Αυτή είναι η βασική ιδέα όλων των μεθόδων Monte Carlo. 27

2 Θεωρητικό Υπόβαθρο Η συνάρτηση αξιών αλλάζει συνεχώς ώστε να προσεγγίσει όσο το δυνατόν περισσότερο την συνάρτηση αξιών για τη συγκεκριμένη πολιτική, ενώ ταυτόχρονα και η πολιτική συνεχώς βελτιώνεται ανάλογα με τις νέες τιμές των συναρτήσεων αξιών. Αυτά τα δύο είδη αλλαγών συνεργάζονται αμοιβαία, καθώς το ένα δημιουργεί έναν στόχο για το άλλο, και ταυτόχρονα τόσο η πολιτική όσο και η συνάρτηση αξιών προσεγγίζουν το επιθυμητό αποτέλεσμα. Το επόμενο σχήμα δείχνει τη διαδικασία αυτή. Σχήμα 3: Αλληλεπίδραση πολιτικής - συνάρτησης αξιών 28

2 Θεωρητικό Υπόβαθρο ΚΕΦΑΛΑΙΟ 3 3 Η Διαδικτυακή κοινότητα του Poker 3.1 Βασικές Στρατηγικές για το No-Limit Hold'em Στην ενότητα αυτή δίνονται διάφορες στρατηγικές που εφαρμόζονται στο παιχνίδι No-Limit Hold'em και μπορούν να προσαρτηθούν στον πράκτορα ώστε να μπορεί να έχει διαφορετικότητα στο παιχνίδι του και να γίνεται απρόβλεπτος. Έτσι, είναι δύσκολο να μοντελοποιηθεί από κάποιον αντίπαλο, ακόμα και από πράκτορες που χρησιμοποιούν προχωρημένες τεχνικές μοντελοποίησης αντιπάλων. 3.1.1 Poker Aggression Όταν ένας παίκτης παίζει επιθετικά, κάνει περισσότερα bets και raises απ' ότι check και call σε διάφορες καταστάσεις. Το αντίθετο παιχνίδι ονομάζεται παθητικό (passive). Το επιθετικό παιχνίδι δε σημαίνει ότι σε κάθε περίπτωση ο παίκτης πρέπει να ενεργεί με bet ή raise. Αντιθέτως, εφαρμόζεται κυρίως όταν υπάρχει πλεονέκτημα εναντίον του αντιπάλου. Αυτό μπορεί να είναι είτε καλύτερες κάρτες, είτε καλύτερη θέση (position), είτε καλύτερη ικανότητα. Με το επιθετικό παιχνίδι ο παίκτης μπορεί να κερδίσει περισσότερα pot οδηγώντας τον αντίπαλο σε λανθασμένες αποφάσεις. 3.1.2 Playing with Position Με τον όρο Playing with position εννοούμε ότι ο παίκτης επιλέγει 29

3 Η Διαδικτυακή κοινότητα του Poker ενέργεια μετά τον αντίπαλό του. Αυτό σημαίνει ότι μπορεί να χρησιμοποιήσει όλες τις πληροφορίες που έχει για να επιλέξει την κατάλληλη ενέργεια. Για παράδειγμα, αν ο αντίπαλος κάνει check, συνήθως δηλώνει αδυναμία και επομένως είναι μια καλή ευκαιρία να επιλεχθεί η δράση raise για να κερδηθεί το pot. Αντιθέτως, το παιχνίδι out of position οδηγεί πολλές φορές σε λανθασμένες αποφάσεις καθώς δεν υπάρχουν πληροφορίες για τον αντίπαλο. Οι επαγγελματίες παίκτες του Poker θεωρούν το πλεονέκτημα της θέσης ως έναν από τους σημαντικότερους παράγοντες πρωτού εμπλακούν σε μία παρτίδα. 3.1.3 Continuation Bet (Cbet) To Cbet είναι απλά ένα bet στο flop από τον παίκτη που έχει κάνει το ποντάρισμα στο preflop γύρο, ακόμα και αν δεν έχει βελτιωθεί το χέρι του στο flop. Το Cbet είναι συνήθως επιτυχημένο καθώς 2 στις 3 φορές ο αντίπαλος δε θα σχετίζεται με το flop. Ένα καλό Cbet θεωρείται ένα ποντάρισμα περίπου 2/3 ή 3/4 του μεγέθους του Pot. Είναι καλό να αποφεύγεται το Cbet σε παίκτες που κάνουν συχνά call (calling stations). Η επιτυχία ενός Cbet εξαρτάται και από την επικινδυνότητα του flop. Για παράδειγμα είναι πιο δύσκολο να επιτύχει ένα Cbet όταν στο flop υπάρχουν πιθανότητες για κέντα ή χρώμα. 3.1.4 Semi Bluff Ο όρος Semi Bluff αναφέρεται στην περίπτωση που ένας παίκτης προσπαθεί να κάνει μπλόφα στον αντίπαλο, αλλά ταυτόχρονα έχει σηματικές πιθανότητες να βελτιώσει το χέρι του σε επόμενο γύρο. Συνήθως εφαρμόζεται σε περιπτώσεις όπου ο παίκτης αναζητάει κάποιο φύλλο για κέντα ή για χρώμα. Η διαφορά της Semi Bluff από την Total Bluff είναι ότι η Semi Bluff έχει πιθανότητες να κερδίσει το Pot ενώ η Total Bluff έχει σχεδόν μηδενική. 30

3 Η Διαδικτυακή κοινότητα του Poker 3.1.5 The free card play Το free Card Play είναι μια τεχνική αποτροπής του αντιπάλου να κάνει ποντάρισμα στο turn. Με την τεχνική αυτή ο παίκτης ρισκάρει λιγότερες μάρκες στο Pot από ότι θα γινόταν αν έκανε call στο flop και μετά call στο turn. Η τεχνική αυτή εφαρμόζεται όταν ο παίκτης βρίσκεται out of position και κρατάει ένα δυνατό Drawing Hand (χέρι που έχει πολλές προοπτικές βελτίωσης σε επόμενο γύρο). Έστω για παράδειγμα ότι ο παίκτης είναι out of position και επιλέγει να κάνει check. Αν ο αντίπαλος δράσει επίσης με check τότε ο παίκτης κατάφερε να δει δωρεάν το turn. Αν όμως ο αντίπαλος κάνει Bet, τότε ο παίκτης πρέπει να δράσει με raise και όχι με call. Έτσι στην περίπτωση που ο αντίπαλος κάνει call και το χέρι του παίκτη δεν βελτιωθεί στο turn, μπορεί να ενεργήσει με check στο turn και τότε το πιο πιθανό είναι να κάνει και ο αντίπαλος check behind στο turn λόγω της επιθετικότητας στο flop. Με αυτό τον τρόπο δίνεται δωρεάν και το river. Σε περίπτωση που ο παίκτης δεχθεί re-raise στο flop θα πρέπει να υπολογίσει τα Odds και αναλόγως να δράσει με call ή fold καθώς ο αντίπαλος έχει δείξει δύναμη. 3.1.6 The Check Raise Το check-raise εφαρμόζεται από έναν παίκτη όταν κάνει check out of position και περιμένει ένα bet του αντιπάλου, με την προοπτική να του κάνει raise. Η τεχνική αυτή είναι χρήσιμη και όταν κάνει μπλόφα (με σκοπό να δείξει δύναμη και να κλέψει το Pot) αλλά και όταν έχει ένα πολύ δυνατό χέρι και θέλει να αυξήσει το μέγεθος του Pot. Επίσης, με το checkraise γίνεται περισσότερο απρόβλεπτος, ένα στοιχείο που είναι πολύ σημαντικό στο Texas Holdem καθώς καταφέρνει να παραπλανήσει τον αντίπαλο. 3.1.7 The Blocking Bet 31

3 Η Διαδικτυακή κοινότητα του Poker Το Blocking Bet εφαρμόζεται από έναν παίκτη όταν παίζει out of position και θέλει να δει ένα showdown ή την επόμενη κάρτα φθηνά. Έτσι, κάνοντας ένα μικρό bet σχετικά με το μέγεθος του Pot μπορεί να εμποδίσει τον αντίπαλο απ' το να κάνει ένα μεγάλο bet, στο οποίο δε θα ήταν κερδοφόρο να κάνει call. Ωστόσο, αν δε χρησιμοποιηθεί σωστά ή σε λάθος καταστάσεις μπορεί απλά να είναι μια σπατάλη μαρκών. Συνήθως αυτό το Bet εφαρμόζεται σε περιπτώσεις που ο παίκτης έχει ένα drawing hand και θέλει να δει τις επόμενες κάρτες σχετικά φθηνά ή αν βρίσκεται στο river κρατώντας ένα μέτριο χέρι και απλά θέλει να οδηγήσει την παρτίδα σε showdown πιο φθηνά από ότι αν έκανε call σε bet του αντιπάλου. 3.1.8 The Float Play Το Float Play είναι μια προχωρημένη τεχνική μπλόφας και εφαρμόζεται σε 2 γύρους, στο flop και στο turn. Το Float Play γίνεται αποκλειστικά όταν ο παίκτης έχει θέση έναντι του αντιπάλου του. Στο flop κάνει call σε bet του αντιπάλου (floating the flop) και μετά ενεργεί με bet στο turn ύστερα από check του αντιπάλου, ώστε να κερδίσει εκεί το Pot, πριν το river. Το Float Play μπορεί να εφαρμοστεί με οποιεσδήποτε κάρτες και χωρίς απαραίτητα να σχετίζονται με το flop ή το turn. Συνήθως είναι αποδοτική αυτή η τεχνική καθώς ο αντίπαλος τις περισσότερες φορές θα κάνει Cbet στο flop χωρίς να σχετίζεται με αυτό. Έτσι επιλέγοντας το call στο bet του και μετά bet στο turn, ο αντίπαλος συμπεραίνει ότι το χέρι του δεν είναι δυνατό και επιλέγει το fold. Μεγαλύτερες πιθανότητες επιτυχίας του Float Play υπάρχουν όταν στο turn εμφανιστεί Scare Card (κάρτες που όταν εμφανιστούν φοβίζουν τον αντίπαλο που ποντάρει, π.χ. κάρτες που ολοκληρώνουν ένα Drawing Hand για κέντα ή χρώμα). 3.1.9 Double Barreling or Firing a second barrel Ο όρος Double Barreling αναφέρεται σε ένα δεύτερο Cbet στο turn. 32

3 Η Διαδικτυακή κοινότητα του Poker Εφαρμόζεται στην περίπτωση που ο αντίπαλος έκανε call στο flop. Η τεχνική αυτή δεν πρέπει να εφαρμόζεται εναντίον παικτών που κάνουν συχνά call ή σε αντιπάλους που αρέσκονται στο float play. 3.2 Άλλοι παίκτες και πράκτορες 3.2.1 Παίκτες απλών στρατηγικών Ύστερα από την υλοποίηση του πράκτορα έπρεπε να γίνει η εκπαίδευση του, καθώς και να ξεκινήσουν πειράματα ώστε να μπορεί να αξιολογηθεί η απόδοσή του. Ως βάση στην εκπαίδευση και στα πειράματα χρησιμοποιήθηκαν απλοί παίκτες που υλοποιούν βασικές στρατηγικές. Οι παίκτες αυτοί λειτουργούν συνεχώς με την ίδια δράση ανάλογα με το πως έχουν προγραμματιστεί. Επομένως, για τις ανάγκες της διπλωματικής δημιουργήσαμε τους εξής τρεις απλούς παίκτες: Always Call, Always Raise και Always Call or Raise. Always Call: Ο παίκτης Always Call αποκρίνεται πάντα με τη δράση call. Αυτό σημαίνει ότι ποτέ δεν πραγματοποιεί κάποιο ποντάρισμα, αλλά επίσης ποτέ δεν παρατάει την παρτίδα. Always Raise: O παίκτης Always Raise ενεργεί πάντα με τη δράση raise. Το ποσό που ποντάρει ορίζεται από μια Random συνάρτηση και κυμαίνεται από 20 έως 20.000 μάρκες (minimum and maximum bet). Always Call or Raise: O παίκτης Always Call Or Raise πραγματοποιεί με ισάξιες πιθανότητες την ενέργεια του call και του raise. Χαρακτηριστικό όλων των παικτών αυτών είναι ότι ποτέ δεν επιλέγουν την ενέργεια fold. 3.2.2 Polaris Οι πράκτορες Polaris αποτελούν μια σειρά από πράκτορες που σχεδιάστηκαν και υλοποιήθηκαν από το πανεπιστήμιο της Alberta. Έχουν 33

3 Η Διαδικτυακή κοινότητα του Poker παρουσιαστεί διάφορες εκδόσεις που υλοποιούν διαφορές στρατηγικές αλλά όλοι έχουν παρόμοια στοιχεία στην υλοποίηση τους. Οι δημιουργοί τους έχουν βασιστεί πάνω στη Θεωρία Παιγνίων (Game Theory) για να λύσουν το πρόβλημα του Poker, εφαρμόζοντας αλγορίθμους τεχνητής νοημοσύνης. Όλη η σειρά πρακτόρων έχουν σχεδιαστεί για No-Limit Poker. Για τη μείωση του δένδρου αναζήτησης χρησιμοποιήθηκαν οι τεχνικές αφαιρέσεων. Δοκιμάστηκαν διαφορετικές εκδοχές και για τις δυο μεθόδους αφαιρέσεων. Η συνηθέστερη αφαίρεση πονταρίσματος που χρησιμοποιείται στα προγράμματα αυτά είναι η fchpda, όπου h=falf pot και d = double pot. Όσον αφορά την αφαίρεση καρτών, προτιμάται η μέθοδος του imperfect recall δίνοντας έτσι βάση στην τελειότητα του preflop παιχνιδιού. Η πιο συνηθισμένη μορφή bucketing είναι με 169 buckets στο preflop, 64 στο flop, 8 στο turn και 8 στο river. Οι τελευταίες εκδόσεις των Polaris θεωρούνται από τους πιο δυνατούς αντιπάλους στην κοινότητα των πρακτόρων Poker. Με συνεχείς βελτιώσεις στους αλγόριθμους εκπαίδευσης οι δημιουργοί τους προσπαθούν να τους κάνουν ανίκητους. 3.3 Το Περιβάλλον που χρησιμοποιήθηκε Για την ανάπτυξη του πράκτορα χρησιμοποιήθηκε ο server του Annual Computer Poker Competition (ACPC). O server αναλαμβάνει όλες τις διαδικασίες που απαιτούνται για τη διεξαγωγή παιχνιδιών μεταξύ των πρακτόρων. Η επικοινωνία client-server γίνεται μέσω TPC όπου οι clients συνδέονται με το server σε συγκεκριμένες ports. Ο server στέλνει μηνύματα μέσω sockets και στους δύο αντιπάλους, οι οποίοι αποκρίνονται με μηνύματα που συμφωνούν με το πρωτόκολλο του server. 3.3.1 Επικοινωνία client-server Το πρώτο μήνυμα του παίκτη προς τον server ορίζει την έκδοση που 34

3 Η Διαδικτυακή κοινότητα του Poker χρησιμοποιεί. <version> := 'VERSION:2:0:0\r\n'. Όλα τα μηνύματα πρέπει να τελειώνουν με ειδικό χαρακτήρα στο τέλος '\r\n'. Αφού γίνει ο έλεγχος των εκδόσεων των παικτών ο server στέλνει συνεχώς την κατάσταση παιχνιδιού (MatchState) στους παίκτες και περιμένει την δράση του κάθε παίκτη ανάλογα με τη σειρά του. Η απόκριση του παίκτη πρέπει να περιέχει το τελευταίο μήνυμα του server ακολουθούμενο από την ενέργεια του. Μία κλασσική επικοινωνία φαίνεται στο παρακάτω σχήμα. Σχήμα 4: Ανταλλαγή μηνυμάτων Client-Server Κάθε μήνυμα πρέπει να ξεκινάει με τη λέξη MatchState και να ακολουθεί το σύμβολο :. Αμέσως μετά δίνεται η θέση που έχει ο παίκτης στη συγκεκριμένη παρτίδα. Η τιμή 0 σημαίνει ότι ο παίκτης είναι ο πρώτος που ενεργεί, δηλαδή ο πρώτος μετά τον dealer. Στη δική μας περίπτωση (reverse-blind heads-up games ) η τιμή 0 δείχνει το BB, ενώ η τιμή 1 το SB. Μετά την επόμενη : ακολουθεί ο αύξων αριθμός της παρτίδας. Ανάμεσα στις επόμενες δύο : δίνεται η αλληλουχία των πονταρισμάτων σε όλη τη διάρκεια της εκάστοτε παρτίδας. Κάθε γύρος ξεχωρίζει από τον επόμενο με το σύμβολο /. Οι επιτρεπόμενες ενέργειες 35

3 Η Διαδικτυακή κοινότητα του Poker που δέχεται ο server είναι c για το check/call, f' για το fold και r +amount για το raise, όπου amount είναι το επιθυμητό ποσό πονταρίσματος. Μετά την επόμενη : παρουσιάζονται στον πράκτορα τα δύο κρυφά φύλλα του για την παρτίδα. Η κάθε κάρτα αποτελείται από 2 σύμβολα, έναν αριθμό για το rank της κάρτας και ένα γράμμα για το suit, όπου rank = (A,2,3,4,5,6,7,8,9,T,J,Q,K) και suit = (s, h, c, d). Τέλος, ακολουθεί το σύμβολο και δίνονται οι κοινές κάρτες για τους δύο αντιπάλους. Ο server χρησιμοποιεί την τιμή 5 για το SB και την τιμή 10 για το BB. Για να είναι δεκτό ένα bet/raise πρέπει να είναι μεγαλύτερο από το BB. Επίσης, θεωρείται ότι κάθε παίκτης έχει άπειρο αριθμό μαρκών και επομένως δε θα ξεμείνει από μάρκες προτού ολοκληρωθεί ένα σετ παιχνιδιών. Ως μέγιστο ποντάρισμα (all-in) θεωρείται το ποντάρισμα των 20.000 μαρκών σε ένα γύρο. Αν πραγματοποιηθεί τέτοιο ποντάρισμα και ο αντίπαλος κάνει call τότε η παρτίδα οδηγείται στο ShowDown χωρίς επιπλέον πονταρίσματα. Έπειτα από την ολοκλήρωση ενός σετ παιχνιδιού ο server εκτυπώνει τα αποτελέσματα. Δίνονται αναλυτικά στοιχεία για κάθε παίκτη και για τον συνολικό αριθμό μαρκών που κέρδισε ή έχασε. Τέλος, ο server αποθηκεύει τα αποτελέσματα σε ειδικό αρχείο για μελλοντική χρήση τους. 3.3.2 Το Interface του Server Όσον αφορά το Interface του Server είναι υλοποιημένο τόσο σε Java όσο και σε C++. Το Interface παρέχει αρκετές κλάσεις και μεθόδους που διευκολύνουν την ανάπτυξη του πράκτορα. Μερικές από τις βασικές κλάσεις είναι οι παρακάτω: Κλάση Card: Περιέχει συναρτήσεις μετατροπής των καρτών που χρησιμοποιούνται σε μία παρτίδα σε διάφορους τύπους μεταβλητών. Έτσι, παρέχει εναλλακτικές μεθόδους αναπαράστασης των καρτών. Μία κάρτα μπορεί να απεικονιστεί είτε με μεταβλητές τύπου String είτε με μεταβλητές τύπου integer. Επομένως παρέχει μεγαλύτερη ευελιξία στην ανάπτυξη του πράκτορα. 36