-
Notifications
You must be signed in to change notification settings - Fork 11
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
general hat-based strategy discussion #6
Comments
Funnily, I was just browsing this repository and saw this issue. I have a description of my strategy here: I changed the strategy quite a bit over the last few days on a separate branch: |
RE 1: the section explaining it is "Modified action", right? If I understand correctly, this works only if later players can infer the hint given via earlier player's actions. This seems like a nice trick, although it seems complicated once the "modified actions" start overlapping and stuff, and also with information-style hints, rather than action-style hints. This makes me more excited about 2, personally, as it seems like a clear win! |
Oh no, now all my confused claims and empty promises will be out in the open forever! 😱 @fpvandoorn those improvements look super impressive, congrats! Regarding idea 3: For a stylized example, suppose A is giving a hint to B and C, B wants to know if card X is playable, and C wants to know if card Y is playable and/or dead after B plays/doesn't play X. Also suppose A has 6 possible hints. Then A could transmit information in two stages: First, A encodes whether B can play X and some unrelated ("binary") information for C, in a "hat" way, by choosing between "even" hints and "odd" hints. Then A encodes to C whether Y is playable, dead, or neither, by choosing between the three "even" hints (or the three "odd" hints, respectively). I don't think this idea will be a "low hanging fruit" very soon unless we stumble upon some way of expressing such a strategy very naturally (and even then, situations like this might turn out not to matter). Regarding idea 2: With 5 players, we'd need to keep track 6 "common knowledge groups" (one that includes everybody and five that are everybody except one player). Once we refactor our way towards a state where this is doable without too much bloat, we should totally try it! (OTOH, I can totally imagine a world in which it doesn't help too much because once all players except one establish some knowledge, the player left out will spend hints to redundantly establish the same knowledge!) Other thinks I'm also thinking of:
I know my language about "asking" questions is probably unclear, but I need sleep. I can clarify anything tomorrow. |
RE confusion: no worries, I always get confused thinking about this stuff! RE 3: one difficulty is that B has to know that C's question is split, and so the decision to split C's questions cannot be based on non-public knowledge of B's hand. I think that intuitively makes it much less valuable, like I wouldn't want to pay the cost of a bit of information to learn "what should I do if B plays something", given that B probably has no idea what they're playing. I think a much more obvious low hanging fruit is for the questions to take into account stuff that's public knowledge! like if B already knows he has a playable red 3, all players should understand that A's hint stops considering red 3 playable to players before B (aka nobody) RE 2: are you sure? it seems useful even with just public info. with 5 players, if 1 gives a hint to another with 1 bit of ambiguity, then 3 players all learn something about their own hand which becomes public info. RE other things (renumbered with +3): Another low hanging fruit... endgame optimization! But I don't wanna think about that :) |
If I understand correctly, Felix wants to incorporate a hat-based strategy in your framework? I would love to learn more about your framework, and how it exactly works with asking and answering questions between the players. It seems that your strategy nicely uses common knowledge to communicate a lot of information. RE 1: There are multiple reasons why players cannot fully decode a hint until their turn. One of them is the "modified actions", where the cluer can use all information available to him to decide what the first player reacting to his clue should do. There is another important reason why players cannot immediately decode hints, and that is to avoid double plays. |
I just proposed some refactoring that might hopefully get us closer to a "general hat-based information strategy"! Regarding idea 5, I'm sorry I didn't elaborate earlier, but this seems like it was much easier to code up than to explain. The idea assumed that the answer to the first question (if it has Regarding idea 6, yeah I meant cards that are privately known to be dead. I implemented that in commit 774a8dd. My intuition was that transferring 0.5 bits of information should be very useful since players can decide what they want to ask questions about (and also, the "new type of info to track" might be hard to track), but unfortunately win-rates have barely changed. |
RE 5: ah! I was just being silly. in general, having question dependence seems good, and somehow I didn't notice it was possible before :) Some other ideas for improving play, while I'm here:
|
In the last round of the game, you can deduce from what you see the identity of your own cards, but not necessarily the order. If you know that you have a playable card in your hand, but you don't know where, you should blind-play a card in your hand, to see if you get lucky. For my strategy this was quite a big improvement of about 0.8pp: |
yep, that's exactly what i was imagining! good to know that it's a big improvement for you. I think I would a priori expect a similar improvement, as measured by "percentage progress towards perfect score" edit: looks like it wasn't too big an improvement by that measure, for you. I think I expect a larger improvement, in that case :) |
It was a 10+% decrease in the amount non-perfect games, which was higher than I expected (it was |
Regarding endgame YOLOing, I tried it in commit a541481. (By the way, is there a good place to put this commit given that it depends on the open PR #7?) I'm guessing the next thing to do regarding endgame is to improve the way we calculate probabilities of cards being a specific value: Our Regarding the "re-define 'playable' to be (recursively) 'playable assuming all publicly playable cards are played'", I think this is also nontrivial (or maybe I'm just getting nerd-sniped), but once we did all this work to keep track of our deductions about cards, this will hopefully be a bit easier to implement! |
@felixbauckholt
Moving discussion from discord to here, as it's a bit easier to follow this way
Your original comment (modifying format a bit):
I haven't thought much along these lines, but initial thoughts:
Could you explain florrat2's approach? It sounds very tricky, and I don't think I understand how it would work
Very cool idea! Could be a big boost, esp in 4 and 5 player
This sounds similar to 1, also not sure how it would work. What were you thinking exactly?
BTW, I think I imagine not so much "general hat-based strategy" as "general hat-based information strategy"! which the code might already be mostly set up for.
The text was updated successfully, but these errors were encountered: