Beispiel #1
0
 def test_nash_value_sequence_form_lp(self):
     """Checks Nash value using a Python sequence form LP solver."""
     game = pyspiel.load_game("python_kuhn_poker")
     val1, val2, _, _ = sequence_form_lp.solve_zero_sum_game(game)
     # value from Kuhn 1950 or https://en.wikipedia.org/wiki/Kuhn_poker
     self.assertAlmostEqual(val1, -1 / 18)
     self.assertAlmostEqual(val2, +1 / 18)
 def test_leduc_poker(self):
     game = pyspiel.load_game("leduc_poker")
     val1, val2, _, _ = sequence_form_lp.solve_zero_sum_game(game)
     # values obtained from Appendix E.2 of Lanctot et al. 2017, A Unified
     # Game-Theoretic Approach to Multiagent Reinforcement Learning.
     # https://arxiv.org/abs/1711.00832
     self.assertAlmostEqual(val1, -0.085606424078, places=6)
     self.assertAlmostEqual(val2, 0.085606424078, places=6)
Beispiel #3
0
 def test_iigoofspiel4(self):
   game = pyspiel.load_game_as_turn_based("goofspiel", {
       "imp_info": True,
       "num_cards": 4,
       "points_order": "descending",
   })
   val1, val2, _, _ = sequence_form_lp.solve_zero_sum_game(game)
   # symmetric game, should be 0
   self.assertAlmostEqual(val1, 0)
   self.assertAlmostEqual(val2, 0)
 def test_kuhn_poker(self):
     game = pyspiel.load_game("kuhn_poker")
     val1, val2, _, _ = sequence_form_lp.solve_zero_sum_game(game)
     # value from Kuhn 1950 or https://en.wikipedia.org/wiki/Kuhn_poker
     self.assertAlmostEqual(val1, -1 / 18)
     self.assertAlmostEqual(val2, +1 / 18)
 def test_rock_paper_scissors(self):
     game = pyspiel.load_game_as_turn_based("matrix_rps")
     val1, val2, _, _ = sequence_form_lp.solve_zero_sum_game(game)
     self.assertAlmostEqual(val1, 0)
     self.assertAlmostEqual(val2, 0)