Pract: A Guessing and Testing Game
Here’s a game that you can play for real against a human opponent. If the administrators don’t mind, you can play it right here in the comments.
Rules
Pract is played using finite sequences of integers, called “sequences.”
To start, each player chooses a well-defined infinite set of sequences, such that every sequence is either demonstrably in or demonstrably out of the set. The game ends when one player guesses the other’s set.1
Once they have picked their sets, the players take turns.
Definitions
A player specifies a sequence by writing each integer, in order, in decimal.
A sequence’s classification relative to a set is a statement of whether the sequence is in or out of the set.
A player classifies a sequence by writing the sequence’s classification relative to that player’s chosen set.
The current player is the player whose turn it currently is.
A player’s final score is the number of guesses made by that player plus the length of that player’s statement (at the end of the game) of the definition of his or her own set.
Gameplay
On each turn, the current player may either:
Try to guess the other player’s set, in which case the other player indicates whether the guess was correct or not. Or,
Specify a sequence, in which case both players classify that sequence.
If, during the previous turn, the other player made an incorrect guess of the current player’s set, the specified sequence must have an opposite classification relative to the actual set than it does relative to the guessed set.
If the other player instead specified a sequence, the two sequences (the one specified by the current player this turn and the one specified the other player on the previous turn) must have opposite classifications relative to the current player’s set.
When a correct guess is made, each player states the definition of his or her own set. The player who guessed correctly makes this statement second. Then the game ends.
Winning and Losing
If the player who guessed correctly has a lower final score than the other player, the player who guessed correctly wins and the other player loses. Otherwise, both players lose.
If a player withdraws from the game during his or her own turn, both players lose.2
Statement lengths affect final scores, so language, notation, and encoding are relevant. In most cases, common sense, context, and the medium itself should suffice. (Pract is meant to be played over the Internet in a forum, chat room, mailing list, or other similar medium.)
Pract is meant as way to practice both reasoning and being reasonable. Those who would rather argue well than play well should spectate.
Examples
Here’s an example of the beginning of a game between Alice and Bob:
alice> 2, 4, 6
alice> in
bob> out
bob> 7, 2, 4
bob> in
alice> out
The above example shows two turns: the first is Alice’s and the second is Bob’s. Both players have used their turn to specify a sequence rather than make a guess, and each player classifies each sequence as required by the rules.
Bob is being redundant when he classifies the sequence he specified. The rules prevent him from selecting a sequence that is out of his own set because the sequence specified by Alice is out of his set.
Here’s an example showing the end of a game:
cathy> 5, 7, 8
cathy> out
dave> out
dave> increasing
cathy> no
cathy> 3, 2
cathy> in
dave> out
dave> 4, 4, 2, 2
dave> in
cathy> out
cathy> even numbers
dave> yes
dave> all even
cathy> odd sum
dave> length 8 + 5 guesses = 13
cathy> length 7 + 4 guesses = 11
The first turn shown is Cathy’s, and she uses it to specify a sequence. On the next turn, Dave makes an incorrect guess. Then there are two more turns on which a sequence is specified. Finally, Cathy ends the game by making a correct guess. The players state their sets and calculate their scores. From the calculations, we can infer that there were several previous guesses by each player.
Cathy is being redundant when she classifies 3, 2
. The rules prohibit her from selecting a sequence that is both non-increasing and out of her set because Dave incorrectly guessed on the previous turn that her set was the set of all increasing sequences. (In a typical game, nearly half the classifications are redundant. The redundancy makes it much easier to verify that players are following the rules.)
The players are not using full sentences or punctuation to describe the sets, and Dave’s description of his own set is shorter than Cathy’s equivalent description when she guesses it. This is reasonable, as long as it does not introduce ambiguity or involve silly things like languages invented on the fly.
There may be situations where it is not clear how the rules apply. For example, the correctness of a guess may depend on some open question in mathematics. So long as players try to avoid such situations, rather than cause them, they should be rare and resolvable.
-
ETA: Pract is inspired in part by Zendo, as well as various ideas I’ve seen around LessWrong like the 2 4 6 experiment, and variable-sum games. ↩
-
ETA: New rule for withdrawing. My main concern from the beginning was that both players would be stumped by their own biases and unable to finish the game. The discussion on how to play in bad faith gave me an idea for how to deal with that. ↩
I don’t understand this:
Why would Dave guess the set is increasing if 5,7,8 is out of Cathy’s set?
That point was quite jarring—if it were 5, 8, 7, it would be more understandable. Unless Dave is supposed to be a fool.
Zendo) fixes some of the problems with Pract. You can just as easily play Zendo with number sequences as with icehouse pieces.
In Zendo, one player (the “master”) comes up with a rule which the rest of the players try to guess. The master is not competing with the players, so he or she can select a rule which maximizes the players’ learning experience, rather than maximizing difficulty.
Edit: anyone know how to post a link that includes parentheses? Edit: tried using a backslash.
Pract is actually inspired by Zendo. I had the idea of playing Zendo with number sequences, but then I felt that people don’t seem to have as much fun in cooperative games as competitive games. I guess I should have cited that. (There are many other influences that people here will probably recognize.)
Perhaps I’ve made it worse, but I was hoping that both players could learn a master-like emphasis on learning.
Take Zendo. Play with two players. Alternate master and student. When master, alongside your rule also write down your probability distribution over number of total examples your student will have seen when he correctly guesses the rule. The master scores the log of the probability she assigned to the actual number of guesses; the student scores the negative of the number of total examples seen. Choose the base of the logarithm to make the two numbers kinda sorta similar, like 1.2ish. After any even number of games, transfer $1 from one player to the other for each point differential and zero their points.
If the student does not guess the rule before seeing 27 positive examples or 27 negative examples, stop the game. Both players must immediately donate $1000 to me. Then restart that game without swapping roles.
Okay, maybe there’s a better way to incentivize the master to bound the difficulty, so that games actually finish. :)
Indeed. If the game goes on long enough, end the game, and the player with the simpler rule wins.
This is problematic for many of the same reasons the sequence game is problematic. “simpler rule” is really hard to define in a way that still makes the game fun.
(I take it as given that you are modifying the game to play two games simultaneously of course)
How’s this? The student may end the game at any point. In this case the master scores 10 and the student 0. Scale the other scoring mechanisms and weight them so that the student in general should gain significantly more than a −10 point differential whenever the master is not trying to make an ubercomplex rule.
The “simpler” rule is the one with the shortest description, of course...
Zendo is not a cooperative game.
You’re right. Somewhere I got the idea that the non-masters are working together.
Does not work. ‘Both players lose’ is insufficiently defined in a game of this type. Apart from that, the game is iterated. Giving a mutual destruction option opens all sorts of potential gambits that I am almost certain you would not approve of me using.
How about this as an alternative to clause 2?
During his or her own turn a player may appeal for simplicity. If the opposing player’s length is greater by X than the appealing player then the appealing player wins. Otherwise, the appeal fails and the opponent wins. I suggest 10 as a suitable X but advanced players could mutually agree on a higher number if their sequences naturally became more complex.
This would get around the distasteful ‘we all lose’ clause and ensure that both parties know and implicitly agree on what kind of difficulty to expect. It would also encourage a player to have a firmer grasp on how much he knows and how confident he can really be that he hasn’t missed the obvious.
Edit: This would also handle the ‘changing the sequence as you go’ case. If your opponent guesses well, he’ll force you to make a description sufficiently complex that he can appeal.
This sounds like a good modification to me, for sure.
That’s interesting. You could also key it to the final scores rather than just the length.
I don’t understand the part about not being sufficiently defined.
I’m not sure what gambits you’re talking about, and I wasn’t assuming the game would necessarily be iterated, but I would encourage interesting gambits. That was my goal in making the game potentially lose-lose.
My hope for Pract was that people would explore these types of issues by playing it. We have a lot of discussions about simple games, but there’s usually something that prevents us from exploring the game from the inside. (It’s so simple it’s not worth it, the game involves betting large sums, Omega isn’t real, etc.)
So far, Pract is a failure in the sense that no one is playing any variant.
Would you care to play? I go without Internet for long periods (one is starting in a few minutes) and live in an unusual time zone, but if you don’t mind delays on the order of a third of a day I’d love to play it with someone who likes games. Think of it like playing by mail.
If you’re willing to play, just make the first move and pick the rule variant in your reply.
What stops players from choosing unguessable sequences, like “each number after the first is the previous number, decrypted with my PGP key”?
For one, because that would give you a score of at least 76. If you guessed correctly but your opponent’s set was ‘even numbers’, you’d still lose. Also, to prove your set you’d have to supply the PGP key in your answer, which would further increase your score. And of course, choosing an unguessable set would make you what is commonly called a “lamer”.
So don’t guess correctly. Stall by only specifying sequences until your opponent makes 76 guesses in total (all wrong, of course). Then resume normal play, permitting yourself one guess each time the opponent makes one. This seems to be a winning strategy if your opponent makes guesses with nonzero frequency and isn’t also using crypto.
Lamer, huh?
If I was your opponent, I would assume letting me make many wrong guesses while you only defined sequences was due to your extremely long set definition. In that case, the only winning move is not to play. But more importantly, why would you bother playing at all? Maybe Gigaknight can find joy in defeating opponents who never stood a chance, but I find it more like taking candy from a baby. Also, you risk being stuck in an infinitely long game if both player choose unguessable sets.
The game is broken, not cousin_it.
From which we can infer that you already know how to win yourself. I can conclude that your decision to still play the game is an insult to your opponent.
If handicapping is necessary it should be built into the rules (or the odds). Otherwise the game becomes one in which the object is to pay lip service to ‘playing in the spirit of the game’ while actually getting as close to the ‘PGP encryption’ ideal as one can without being unduly stigmatised. If you want your attention to be dominated by that crap stop playing games of reason and go socialise.
If you have no payoff for winning, then why call it winning in the ‘rationalists win’ sense?
It seems that here the only payoff is in learning and so you should value an opponent that will set a task appropriate to your skill. To cooperate you should try to be that kind of opponent.
The point system might declare winners in a silly way, but why care about the points?
I would expect that one reason we gravitate toward competitive games, especially those with points, is that we can’t help but treat them as signals of status. I’d in fact expect that if you ran a psych experiment with subjects playing a game, and the experimenters instructed them to play in one fashion but meaningless points were awarded under a different criterion, that people would be dramatically swayed by the point system (and possibly unaware of this fact).
I thought the object of the game was to have a fun contest in which you give your opponent a challenging problem and they do the same for you. Many games are broken, and these breaks are often called “exploits”, for obvious reasons. Until it’s patched, why not agree to ignore them?
Do you know what is not fun? Playing games where the real aim is to do what it takes to look impressive without going quite far enough to get shamed for it. That is ‘work’. I expect people to pay me if I have to do that.
And I advocate exploiting them aggressively until those responsible patch them.
Absolutely! The approach I tend to take goes along the lines of:
The game is flawed. Let’s change it to X so that it works better. Agreed?
IF agreed THEN play engaging inference game FUN! ELSE generate PGP key. win EVEN MORE FUN “The game is flawed. How about...?” END
I find this particularly useful when playing 500 with folks who like unrestricted misere calls. It usually only takes a few rounds to make them change their minds.
Agreeing to ignore them is a patch. But unless you both agree to ignore them in exactly the same way, it’s not a patch, and it’s no longer a fun contest, it’s at best just fun.
Care to play?
This is not a great game for competitive humans to actually play. It’s a decent game to think about playing to win. You could have some fun with programs given an agreed upon representation language for sequences.
The first human player to use e.g. “md5(3891*seq) odd”, wins. You can quibble over how long it should take to describe how a sequence is encoded into a bitstring, but even sets where every sequence is of length 1 can be infinite.
If I’m allowed to use any number of functions with widely agreed upon names, I don’t see much hope for my opponent.
Or heck, how about just the binary representation of pi? You don’t even need any functions beyond basic arithmetic (eg. if all the famous constants are well known, just pick the decimal expansion of some suitable rational).
To further avoid ambiguity in scoring, players’s final statements of definitions could be code snippets that classify sequences. On the other hand, this could introduce artifacts because many rules with short implementations are unintuitive.
There’s another obvious rule problem.
Let’s say my chosen set is the set of all sequences. No matter what sequence you or I name, it’s in the set. What do I do when I have to name a sequence not in my set? The rules choke.
The obvious patch is to require that there be an infinite number of sequences in the set and an infinite number of sequences out of the set, so that nobody runs out of sequences.
The rules are fine. You simply can’t follow them. You lose. Shoulda thought the sequence selection through a bit harder, huh?
There are many loopholes in the rules. The ones where you make it impossible for yourself to follow the rules (“anti-loopholes”?) seem the least worrisome.
I’m surprised no one has pointed out that you can lie: when your opponent guesses your set, change it to something that’s consistent on the sequences classified so far.
I was serious about practicing being reasonable as well as reasoning. It’s kind of sad that no one seems to care about that.
Unless, of course, one implements this game as a subgame of Nomic. :)
I had considered than and assumed that unless the sequence is recorded before beginning changing the sequence as specified must necessarily be allowed.
Obviously, the more one is forced to change their sequence, the more complexity they must add. Changing the sequence in real time to be coherent with all the things you have said so far would if anything be more fun and better practice. :)
Bollocks. A ‘reasonable’ application of ‘reasonable’ is to discussions on complexity of the sequence specifications. It is not, as you said, about who can apply the most fallacies in support of their absurd description. It is not reasonable to expect people to pretend the entire scoring system is not broken when it would be rather simple to fix.
I don’t expect that. Maybe it didn’t come through in the post, but I support the idea that players can and should agree to modify the rules to suit them. To some extent, that’s what I mean by being reasonable. I think of the rules I’ve written as a suggested starting point.
I definitely expect that people who actually play Pract will discover things I didn’t anticipate, maybe things no one anticipated.
Great. Well, if you’ll agree to my (other.length + 10 > my.length) appeal clause then I’ll challenge you to a game:
Wedrifid> 1, 2
Wedrifid> in
brian> in
brian> 7, 5, 4
brian> out
I really have to run, but I’ll be back. Thanks.
wedrifid> out
wedrifid> 2, 3
wedrifid> in
brian> in
brian> 2, 4, 6
brian> out
Y’know, every comment has your name right at the top. You don’t need to mimic IRC labels.
When I wrote the examples, I had the notion that they were on IRC, but I think we’ve been using it as a way to distinguish moves from remarks.
At least I think that’s why we’re doing it. Maybe we’re each just following the other’s lead.
Wedrifid?
wedrifid> out
wedrifid> 2, 3, 5
wedrifid> in
brian> out
brian> 1, 2, 2
brian> in
I was starting to think we somehow had the same set. Very unlikely after so few turns, but I guess that’s where superstitions come from.
It sounds like a useful way to increase your intuitive grasp of MML, etc.