-
Notifications
You must be signed in to change notification settings - Fork 165
Update tutorial 03 to replicate "Stripped down poker" example #621
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
Conversation
|
Those terminal nodes don't have node labels, they have outcome labels. Outcome labels make a lot of sense. Information set labels sometimes make sense, because they are formally equivalence classes of objects (nodes). Sometimes it's handy to stick a tag on those. For nodes, a node is exactly equivalent to its history of actions (in a tree at least). So the value of labelling nodes is minimal in the usual case. It is better to think in terms of nodes as histories. |
Thanks @tturocy based on your comment then, I think the two EFGs in my comment above are close enough, marked this PR as ready for review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. A few minor comments:
-
Let's maybe call the file: 03_stripped_down_poker.ipynb (we will have other more complicated poker variants in the userguide/tutorials soon)
-
We cite as "[Mye91]" in the very first sentence. Let's cite Reiley et al (2008), which we already do just after the "enumeration" of subsections. That sentence could just move up to become the new first sentence. The, we can either drop all reference to Myerson, or have a footnote-like comment that the game is similar to but different from the version from Myserson'91.
-
Shall we not just unify the outcome labels of this tutorial and the game in the tests now? There are good reasons for either setup: in the tests everything is in terms of Alice, which is common in zero-sum games; in the tutorials, we use player names explicitly. I suggest to pick one, either, and just use it in both places.
-
Many cells have a colon in the sentence immediately preceding it, but many do not. I like having the colon where it makes sense, so perhaps try and be more consistent and add in more of these colons wherever possible.
-
The final section "Representation of numerical data of a game" is really not about this poker example anymore, though it is clearly related. Fine to keep it but it could also be separate (and possibly then expanded into a full notebook). Might as well keep it as is for now though.
|
@rahulsavani will handle reviewing this, so I'm dropping myself off the reviewers list. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few minor comments (some I missed the first time) all for the notebook itself, two inline, the rest here:
This is crucial in games where players must make decisions without complete knowledge of their opponents' private information.
- It could be that chance moves and no player gets to know. Perhaps better to say where "without full knowledge of the state of the game"?
Since our one-card poker game is extensive form and has two players, we can use the
lcp_solvealgorithm in Gambit to compute the Nash equilibria
- lcp_solve works for strategic form too, so best to only mention "has two players" here.
- lcp_solve does not find all equilibria in general, so best so say "compute a Nash equilibrium" here
one action over the other, given Alice's expected strategy.
->
- one action over the other, in expectation, given Alice's strategy.
Every Nash Equilibrium is equivalent to an
->
- Every Nash Equilibrium is an
|
I clicked approve rather than changes requested, and can't see how to edit it now. I presume you'll make these changes or comment further. |
rahulsavani
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before we finally merge let's also squash the commits down to one or a smallish number.
I think it does squash commit by default |
There are 15 commits in this currently, and unless you do an explicit squashing of (some of) them there will still be 15 afterwards. Ted is normally doing the final merge. Previously we would often squash remotely and then force push, but we have decided to no longer do force pushes, and only do squashing on github itself. When we do merge, which I presume in this case will be done by you, I could suggest only having a handful of commits, if not one. |
|
Yes, what @edwardchalstrey1 said :) |
|
Oh I see, the default, "squash and merge", is to squash everything to a single commit. And if one wants to do some squashing but still have multiple commits one can do an "interactive rebase". Sorry for noise, I only ever did this remotely with rebase. |
rahulsavani
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me
Includes:
de-duplicate_simple_poker_game_in_test_suitebranch (see discussion in remove use of poker.efg in test suite #608 (comment))Currently, the EFGs almost match, but with a couple of differences:
stripped_down_poker.efg:Tutorial EFG when saved: