You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gambit overloads terminology on methods that compute using behaviors with two different conventions:
For some equilibrium methods - enumpure and liap, passing use_extensive=True actually operates with what Myerson (1991) calls the "multiagent" representation of the game - where each information set is treated as a separate player. This means these methods can return profiles which are "multiagent Nash", but not Nash. See Myerson's game 4.2 for such an example (also used as an example in BUG: liap_value incorrect for mixed strategy profile on an extensive game #616).
However, sequence-form based methods - lp, lcp, and enumpoly - (should) return only profiles with are "truly" Nash as standardly defined when solving with use_extensive=True. In addition logit - despite its implementation as "agent QRE" - returns an (approximate) sequential equilibrium (as proven in McKelvey-Palfrey 1998). (To understand why logit does not have this "problem" despite the use of "agent" in its name, consider the Myerson example - the spurious multiagent representation equilibrium requires player 1 to play z1, but because player 2 plays w2, along the AQRE path the belief on that information set must be concentrated at the node following w2, and y1 is the best response to such beliefs.)
In addition, the regret-related quantities as well as liap_value on behavior strategy profiles actually compute using the multiagent representation.
Proposed solution
pygambit
In pygambit, the ambiguity could be resolved as follows:
enumpure_solve and liap_solve should have the argument name changed to use_multiagent (or use_agent, depending on the terminology we prefer). This is in one sense a breaking change, but as the old name was misleading it seems good to do it immediately for clarity.
liap_value and the regret implementations as currently available should be re-named to versions with agent or multiagent in their names. They are still relevant and correct, they are just not what a user might expect with the current names.
The above should be replaced with new implementations which internally use the mixed strategy representation. Regret needs to be clarified and defined/documented (and tested!) carefully.
Command-line tools
In the command-line tools, a similar change to the command-line switches should be made as a one-off to avoid ambiguity.
Graphical user interface
Because the graphical interface is intended primarily for simple use cases and beginning users, the most straightforward approach is to remove the "using the extensive game" option for enumpure and liap and use the strategic game for these. Otherwise we would need to create an extra layer of concepts around agent representations - which would be an entire feature set in itself.
Overview
Gambit overloads terminology on methods that compute using behaviors with two different conventions:
For some equilibrium methods -
enumpureandliap, passinguse_extensive=Trueactually operates with what Myerson (1991) calls the "multiagent" representation of the game - where each information set is treated as a separate player. This means these methods can return profiles which are "multiagent Nash", but not Nash. See Myerson's game 4.2 for such an example (also used as an example in BUG:liap_valueincorrect for mixed strategy profile on an extensive game #616).However, sequence-form based methods -
lp,lcp, andenumpoly- (should) return only profiles with are "truly" Nash as standardly defined when solving withuse_extensive=True. In additionlogit- despite its implementation as "agent QRE" - returns an (approximate) sequential equilibrium (as proven in McKelvey-Palfrey 1998). (To understand whylogitdoes not have this "problem" despite the use of "agent" in its name, consider the Myerson example - the spurious multiagent representation equilibrium requires player 1 to play z1, but because player 2 plays w2, along the AQRE path the belief on that information set must be concentrated at the node following w2, and y1 is the best response to such beliefs.)In addition, the regret-related quantities as well as
liap_valueon behavior strategy profiles actually compute using the multiagent representation.Proposed solution
pygambitIn
pygambit, the ambiguity could be resolved as follows:enumpure_solveandliap_solveshould have the argument name changed touse_multiagent(oruse_agent, depending on the terminology we prefer). This is in one sense a breaking change, but as the old name was misleading it seems good to do it immediately for clarity.liap_valueand theregretimplementations as currently available should be re-named to versions withagentormultiagentin their names. They are still relevant and correct, they are just not what a user might expect with the current names.The above should be replaced with new implementations which internally use the mixed strategy representation. Regret needs to be clarified and defined/documented (and tested!) carefully.
Command-line tools
In the command-line tools, a similar change to the command-line switches should be made as a one-off to avoid ambiguity.
Graphical user interface
Because the graphical interface is intended primarily for simple use cases and beginning users, the most straightforward approach is to remove the "using the extensive game" option for
enumpureandliapand use the strategic game for these. Otherwise we would need to create an extra layer of concepts around agent representations - which would be an entire feature set in itself.