Hacker News
The Secret Garden of Rock-Paper-Scissors
srean
|next
[-]
Once when I was in grad school I noticed an announcement for a lighthearted programming competition for rock-paper-scissors playing agent. The deadline was barely hours away and I was behind on a report for funding or course work, I can't recall now.
As it always happens with me, a non-serious non-essential task suddenly looks attractive over some work I had been procrastinating on.
With no time available to code up a submission from scratch i I just rigged up the zlib compression library to decide the next play. It considered appending the 3 potential completions of the play so far and compressed the sequence. Whichever appended symbol gave the maximum compression was my agent's next move.
It was just a few lines of code and it did surprisingly well. A universal compression library/algorithm that works better for short strings would have performed better. Zlib is an universal compressor but does not converge to the entropy of a sequence very fast.
drivebyhooting
|next
|previous
[-]
scottshambaugh
|root
|parent
[-]
Really though, the way to do this is to represent each game as a payout matrix A, which for this category of game will be skew antisymmetric with -1/0/+1 entries. Then you find the null space of that matrix, impose the constraint that probabilities must sum to 1 and individually be >= 0, and that gives you the endpoints of the Nash Equilibria.
14
|previous
[-]
We we noticed this so we began to say let's play a round and throw paper and lose. 5 minutes later repeat and lose again. THEN, once our drink was almost finished we would say come on one more game and if I win you have to go get me a can from the fridge. He would agree and we would this time throw rock beating him and winning. It works every single time. Lol