Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing options for tie_breaking in QuantEcon/GameTheory #699

Open
intuser opened this issue Mar 17, 2023 · 1 comment
Open

Missing options for tie_breaking in QuantEcon/GameTheory #699

intuser opened this issue Mar 17, 2023 · 1 comment
Labels

Comments

@intuser
Copy link

intuser commented Mar 17, 2023

There are three options for tie_breaking in QuantEcon/GameTheory: "smallest", "random", and "False". False isn't really an option for tie_breaking as it returns all alternatives which are tied. (It doesn't "break" the tie.) "Random" is a tie breaker somewhat compatible with classical game theory. "Smallest" isn't: It relies on information not meant to be available to players: The arbitrary way, game theorists list strategies in the normal form of a game.

There should be additional options, compatible with the information reasonably assumed to be available to players in a "learning" game. One of them I would call "conservative": If no other strategy leads to higher "utility" don't change your strategy. (This would be an easy one to implement, I guess.)

So please, add this option.

@oyamad
Copy link
Member

oyamad commented Apr 9, 2023

@intuser Thank you for your comments!

  • 'random' is a natural tie breaker in terms of game theory, but implementation wise it is expensive (calling a randomness function from numpy.random). 'smallest' should be considered a fallback, which is to be chosen when one is not concerned with tie breaking (e.g., when you know it is a non-generic event that you have indifference).
  • In a dynamic situation, 'conservative' will make sense. Still, when the set of best responses is not a singleton and does not contain the current action, you need a tie breaker, and if you want to avoid repeated calls to the function from numpy.random, then 'smallest' will be the choice (picking the action with the smallest index is just an implementation detail).
  • Adding option 'conservative' in evolutionary/learning dynamics routines should be straightforward. PR welcome!
  • What kind of models do you have in mind where you care about indifferences? Normal form of any extensive form game?

@oyamad oyamad added the wishlist label Apr 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants