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
Make list of built-in normal form games #17392
Comments
comment:1
Oh!!! love this idea, I'd actually forgotten so thanks for opening the ticket! I'll take a careful look through the way this has been done for |
comment:2
Or |
Last 10 new commits:
|
Commit: |
Branch: u/vinceknight/catalog_of_games |
comment:5
James and I have just finished working on this assuming we're on the right path. (We decided to follow how things were done for |
comment:6
I've been very busy lately but I do plan to put this on my docket, looking forward to it! |
comment:7
Okay, I looked at this for all of two minutes and have the following non-mathematical comments.
|
comment:8
Cool, will add references throughout (see later comments).
Very help to change it, perhaps once I go through and grab references for each I'll just go with on of the many possible ones (if you are particularly against this one I'll make sure I pick a different one).
So would your idea for the PD for example, be to have a default standard (as mentioned above) but that one could pass a set of arguments? So for example one could pass the RSTP values (see 'Canonical PD payoff matrix' here: http://en.wikipedia.org/wiki/Prisoner%27s_dilemma). I suppose the thing with the PD is that RSTP notation is pretty common and conventional, in all honesty I am not sure they are for some of the others but will investigate. Each game could have an initialisation test that checks if the values obey the defining inequalities. Let me know if that was what you're thinking and I'll go ahead and get working on it :)
Yeah, not at all against this idea (RSTP is certainly very common and used).
I'd suggest this be a further ticket as it could actually be something that is added to the normal form game class so that we could for example (a much simpler 'type') just be able to check if any game is symmetric. |
comment:9
Yes, exactly. And if there is no conventional standard, just don't do it and then others could propose a standard as an enhancement.
Yes. |
Author: vinceknight, jcampbell |
Changed author from vinceknight, jcampbell to Vincent Knight, James Campbell |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:13
Hi Karl. I'm pushing the latest set of work I've done on this. I still need to get more references. I am currently at Sage Days 64 so that will have to wait till I get back to my text books in Cardiff but thought I'd push this as it is as I've parametrised a variety of games. One important change is the ability to create a generic Let me know what you think (but aware that I need to throw more references in). |
Changed keywords from none to days64 |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
comment:17
I think this is now ready. A lot of references and almost everything is dependent on parameters (or a type of game that is dependent on parameters). There will always be more games that could be added but let us know if you think there's any that really should be in this ticket :) |
comment:18
A quick read-through says great and thorough work. There are a few typos and I will want to check my sources as well to make sure we are agreeing on the standard definitions for some of the games (and I may not be able to do that for some time given my current duties) but in general this will be a great resource and I wish I were teaching game theory so I could! Also, I would parametrize Chicken if it were me, but maybe this isn't typically a parametrized game form? Oh, and I am agnostic on where the tab-completion happens, but since |
comment:19
That's great: thanks. Apologies for the typos and no rush: I understand how busy we all are :)
We have coded this as a particular type of anti-coordination game so it is in some aspects already parametrized. Let me know what you think...
James and I wondered about this one for a while and are also agnostic about it. I think it could be nice to have it as just |
comment:68
I think this solution is fine, though
starts looking a little longish. Was there a reason for doing that uniformly? You may also want to (briefly) mention somewhere convenient why you're doing this, or perhaps just where the utility dictionary is |
comment:69
Replying to @kcrisman:
Do you mean the multilines? That's mainly to stick with the 79 character limit, I noticed this for the larger games and then thought I should do it throughout. I agree that it looks pretty bad. I'm happy to leave as is (so that it fits with the 79 characters strictly) but perhaps the rule could be broken for some of the smaller dicts?
So perhaps mention something a long the lines of:
Let me know if that's what you mean? Thanks again for your time with this Karl. |
comment:70
I think only do it if you really go well beyond the limit. Or just continue the multiline in such a way that there are TWO lines and not EIGHT lines :)
Oh, not even that much - maybe just before the very first instance of this, preferably not within a specific function but at the module level, something like
And then the others are tacit. |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:73
Ok Karl, I think this is ready now :) I've made the adjustments I believe you are suggesting :) |
comment:74
Presumably irrelevant remarks:
Of course, in that example there is only an equilibrium, though in general presumably not.
Dang Brits. PEP8 looks fine. If this passes tests please set to positive review, unfortunately I have something else I need to do now. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:76
Replying to @kcrisman:
Hehe :) My last commit addresses those two minor points.
Cool: tests pass and docs build so am setting to positive review. |
comment:77
Sorry for not responding sooner, I've been busy moving out of my house and having to choose my time (and the past 17 hours, been traveling from SF to Korea). Here are my thoughts, not that they really count for much. I try and keep to the 80 char/line limit, and what Vince did initially is the "best" practice according to PEP8. However, I side with Karl-Dieter on this in that it just looks ugly and it's worth it to consolidate the data and go past 80 char/line limit when it is easier to read. However I do have an issue with this sentence: +When we test whether the game is actually the one in question, sometimes we will
+build a dictionary to test it, since this can be platform-dependent, like so:: What is "this"? In particular, when I first read this, to me it seemed like the actual output could be different on different machines, whereas it is only the print representation of the dictionary used to model the game. Your change doesn't have to be as verbose as that (IMO), just change "this" to "the printed representation" or something like that. Once you make that change, you can set this back to positive review on my behalf. |
comment:78
Replying to @tscrim:
Excellent point. Will change that asap. Thanks! I hope your move went well! |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Changed branch from u/vinceknight/catalog_of_games to |
Changed author from Vincent Knight, James Campbell to Vince Knight, James Campbell |
Changed commit from |
In #16333 comment:13, the idea arises of having built-in normal form games for pedagogical (or other) purposes, similarly to in our discrete math areas.
There are quite a few such games out there in the literature that would be assumed as 'standard'.
CC: @drvinceknight @nathanncohen
Component: game theory
Keywords: days64
Author: Vince Knight, James Campbell
Branch:
6ec7195
Reviewer: Karl-Dieter Crisman, Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/17392
The text was updated successfully, but these errors were encountered: