#16954: Game Theory: Build class for normal form games as well as ability to 
obtain
Nash equilibria
-------------------------------------+-------------------------------------
       Reporter:  vinceknight        |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.4
      Component:  game theory        |   Resolution:
       Keywords:  Game Theory,       |    Merged in:
  Normal Form Games                  |    Reviewers:  Karl-Dieter Crisman
        Authors:  Vince Knight,      |  Work issues:
  James Campbell                     |       Commit:
Report Upstream:  N/A                |  c7e42b7618ee46f81443b626b4fc3b5aa8fb095a
         Branch:                     |     Stopgaps:
  u/vinceknight/fixing_bug           |
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by kcrisman):

 Wow, this is all great work.  Good catch on the ''correct'' place to put
 `None`!  A couple now super-minor things.

 * With this wording
 {{{
 Here is a test that failed during development::
 }}}
   Maybe that's a bit too pessimistic, just "another test" is fine, or in
 the updated version something like
 {{{
 Testing against an error in `check_NE`::
 }}}
   and similarly in other situations.
 * I have a feeling this one is also optional?  But I didn't get an error.
 {{{
 +            sage: print lrs_output[5:-4]
 }}}
 * A typo that means this won't ever be tested...
 {{{
 +            sage: N.obtain_nash(algorithm='lrs')  # optional t- lrs
 }}}
 * This one just tests that it exists, not the solutions (though presumably
 this example has now gotten lots of traction!)
 {{{
 +            sage: A = matrix(3, [-7, -5,  5, 5,  5,  3,  1, -6,  1])
 +            sage: B = matrix(3, [-9, 7, 9, 6, -2, -3, -4, 6, -10])
 +            sage: N = NormalFormGame([A, B])
 }}}
 * Can you confirm that what went wrong with the parser is the following:
 lrs returns equilibria in the form of several possible player 2 strategies
 for each player 1 strategy, but you just assumed that each player 2
 strategy corresponded to a different player 1 strategy?  That's what the
 change in code looks like.
 * You need this test fixed (easy):
 {{{
 sage -t src/sage/game_theory/normal_form_game.py
 **********************************************************************
 File "src/sage/game_theory/normal_form_game.py", line 150, in
 sage.game_theory.normal_form_game
 Failed example:
     p += plot((A * vector([y, 1 - y]))[1], y, 0, 1, color='red',
 legend_label='$u_1(r_2, (y, 1-y))$'); p
 Expected nothing
 Got:
     Graphics object consisting of 2 graphics primitives
 **********************************************************************
 }}}
 * In built doc, apparently {{{`i`th}}} disagrees with Sage's
 Sphinxification and gives it indigestion.  Changing it to {{{`i` th}}}
 fixes things, but I get that this might not be desirable.  Unfortunately,
 {{{:math:`i`th}}} doesn't give what we want either.
 * Also, apparently lazy importing `PIPE` was indeed what caused it to be
 built for me in the documentation.

 But I think that's it!  Commendable work.  Now we just have to get the
 ''rest'' of this game theory stuff working, including getting gambit to
 build right...

--
Ticket URL: <http://trac.sagemath.org/ticket/16954#comment:45>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to