ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax! Πολλές φορές παίζουμε ένα παιχνίδι χρησιμοποιώντας απλούς κανόνες. Π.χ. στην τρίλιζα: «αν σε μία ευθεία έχω δύο πιόνια και η τρίτη θέση είναι άδεια, παίζω στην άδεια θέση.» Υπάρχουν άλλοι κανόνες για την τρίλιζα? Μια βάση κανόνων (rulebase) που να δίνει το τέλειο παιχνίδι? Υπάρχουν βάσεις κανόνων που να δίνουν τέλειο / πολύ καλό παιχνίδι στον PacMan, στο σκάκι, στη ντάμα?
Μια Βάση Κανόνων Για την Τρίλιζα Κανόνας 1: Κάνω τριάδα. Κανόνας 2: Μπλοκάρω τριάδα. Κανόνας 3: Κάνω διχάλα. Κανόνας 4: Παίζω κέντρο. Κανόνας 5: Παίζω αντίθετη γωνία. Κανόνας 6: Παίζω γωνία. Κανόνας 7: Παίζω τυχαία. Αυτοί οι 7 κανόνες αρκούν για να παίξουμε την τέλεια τρίλιζα! Και μπορούν να προγραμματιστούν στον υπολογιστή.
Τρίλιζα με Βάση Κανόνων (computer demo)
Μερικές Σημαντικές Λεπτομέρειες για την Βάση Κανόνων της Τρίλιζας Τι γίνεται αν παίζω με ελλιπή Βάση Κανόνων? Πως εφαρμόζω τους κανόνες (πότε εφαρμόζω τον Κανόνα n)? Έχει σημασία η σειρά των κανόνων. Υπάρχουν ισχυρότεροι κανόνες? Βάρος των κανόνων Πιθανοτικοί κανόνες
PacMan με Βάση Κανόνων (Gallagher+Ryan, 2003)
Απλοποιημένο PacMan (ένα φάντασμα, όχι power pills) Δύο βασικές καταστάσεις: explore και retreat
O PacMan σε κατάσταση explore: Αλλά τι είναι turntype?
Turntypes: Corridor, L-turn, T-turn, Intersection
Oι πιθανοτικοί κανόνες για κατάσταση explore
O PacMan σε κατάσταση retreat:
Oι πιθανοτικοί κανόνες για κατάσταση retreat
Oι παράμετροι του συστήματος (της βάσης κανόνων):
Η απόδοση (fitness) της βάσης κανόνων:
P h1 : Ίσες πιθανότητες για κάθε δράση. P h2 : Μικρή πιθανότητα αλλαγής κατεύθυνσης στην κατάσταση explore, μηδενική πιθανότητα προσέγγισης του φαντάσματος στην κατάσταση retreat. P h3 : Μηδενική πιθανότητα αλλαγής κατεύθυνσης στην κατάσταση explore, μηδενική πιθανότητα προσέγγισης του φαντάσματος στην κατάσταση retreat.
Εκμάθηση με την μέθοδο PBIL Όπου X t : η μέση τιμή μιας Gaussιανής κατανομής (η οποία παράγει το διάνυσμα παραμέτρων σε χρόνο t) X best1 : το 1 ο καλύτερο (ως προς την f) διάνυσμα παραμέτρων X best2 : το 2 ο καλύτερο (ως προς την f) διάνυσμα παραμέτρων X worst : το χειρότερο (ως προς την f) διάνυσμα παραμέτρων Στην γενεά υπ’ αριθμό t (t = 1,2, … ) παράγονται M αντίγραφα του διανύσματος παραμέτρων, σύμφωνα με Gaussιανή κατανομή με μέση τιμή X t. Η X t εξελίσσεται σύμφωνα με τη σχέση
Age of Empires
Wargus: A Real-Time Strategy Game
Dynamic Scripting in Wargus Different rulebases for different game states State transition on constructing a building that allows new units or new research
Domain Knowledge in Wargus Abstraction of the state space States in Wargus are manually predefined and represent game phases that inform the AI on the possible tactics during a game The possible tactics during a game mainly depend on available units and technology The availability of units and technology depends on the buildings the player possesses Therefore, the utility of tactics depends on the available buildings
A library of tactics for each state Tactics are action sequences consisting of 1 or more game actions (e.g., building, combat, research etc.) Domain Knowledge in Wargus Abstraction of the decision space Construct City Center Train 4 workers Defend with 1 Soldier Construct Blacksmith Research better Weapons Attack with 2 Soldiers Construct Keep Train 30 workers Defend with 1 Knight - Attack with 10 Knights Research magic spell Defend with 2 Mages State 1 Knowledge base State n Knowledge base State 20 Knowledge base … … Construct Castle Train 30 workers Attack with 10 Knights Research magic spell Defend with 2 Mages Construct Guard tower
State abstraction Domain Knowledge in Wargus Decision abstraction complex
Rules in Rulebases 12 Build rules 9 Research rules 4 Economy rules 25 Combat rules AiNeed(AiBarracks) AiResearch(AiUpgradeArmor1) AiNeed(AiWorker) AiForce(1, {AiSoldier, 9}) AiWaitForce(1) AiAttackWithForce(1)
Tactics Two `balanced’ tactics –Small Balanced Land Attack (SBLA) –Large Balanced Land Attack (LBLA) Two `rush’ tactics –Soldier Rush (SR) –Knight Rush (KR)
RL application: Dynamic Scripting Dynamic Scripting (DS) is an online learning technique inspired by RL Original implementation of DS (Spronck 2004) in the Computer RolePlaying Game NeverWinter Nights ©
Dynamic Scripting Rulebase A Rulebase B Script A Script B Combat generate script scripted control human control human control weight updates team controlled by human player team controlled by computer A B
Dynamic Scripting and Requirements Computationally Cheap - Script generation and weight updates once per encounter Effective - Rules are manually designed Robust - Reward/penalty system Fast Learning – Experiments showed that DS is able to adapt fast to an unchanging tactic
Dynamic Scripting Test Dynamic player (using dynamic scripting) plays 100 consecutive games against static player Randomisation Turning Point (RTP): First game that dynamic player outperforms static player with 90% probability according to a randomisation test (Cohen, 1995)
Dynamic Scripting RTP Results TacticTestsLowHighAvg.Med.>100Won SBLA LBL A SR KR Dynamic Scripting WORKS! It adapts efficiently against SBLA and LBLA Dynamic Scripting is unable to adapt to the optimized tactics SR and KR
Wargus Demo
Conclusions Dynamic scripting can be successfully implemented in (commercial) CRPG & RTS games