comment by Multicore (KaynanK) ·
2020-10-27T17:01:07.716Z · LW(p) · GW(p)
I just remembered something I forgot to post in an earlier thread:
CloneBot's cooperateWithClone method uses parity checking on its and the opponent's payloads to determine the first move, but after that it always plays whatever move the opponent played last. I.e. pure naive tit-for-tat.
This suggests a possible strategy for a MimicBot: against a clone, play 0, 5, 0, 5, 0, 5... Assuming the opposing clone started with 3, this results in plays (0, 3), (5, 0), (0, 5), (5, 0)...
If the number of turns per game is even, you end up with one 5 per two turns, for the same 2.5 points per turn as if you had cooperated. Because the clone played a 2 or 3 on the first turn instead of a 5, it loses 2 or 3 points compared to perfect cooperation. This could be a big advantage over the 90 rounds before the CloneBot showdown.
Unfortunately, if the number of turns is odd, the clone gets just as many 5s as you plus its initial 2 or 3, so you're the one who gets outscored. I haven't been able to think of any strategy that would get you 2.5 points per turn, get the clone fewer points, and work whether the number of turns was odd or even.
Using a defecting strategy would be a coinflip between a big advantage and a crippling disadvantage, so my actual submission played it safe and just cooperates with clones. The actual number of turns wound up being even, but I had no reasonable way of expecting that was more likely than not (IIRC, in Zvi's original game the number of turns was odd).
If you're willing to score fewer than 2.5 points per turn if the clone does much worse than you, there are a series of dastardly strategies that I'm thinking of as "Lucy pulling away the football", where you ruin the opponent's big play while setting up your next big play.
0, 5, 1, 4, 2, 3 repeated gives (0, 3), (5, 0), (1, 5), (4, 1), (2, 4), (3, 2) repeated. You get (5 + 4 + 3) / 6 = 2 per turn, while the opponent gets (3 + 1 + 2) /6 = 1 per turn.
0, 5, 1, 4, 2 repeated gives (0, 2), (5, 0), (1, 5), (4, 1), (2, 4) repeated. You get (5 + 4) / 5 = 1.8 per turn, opponent gets (2 + 1) / 5 = 0.6 per turn.
0, 5, 1 repeated gives (0, 1) (5, 0) (1, 5) repeated. You get 5/3 per turn, opponent gets 1/3 per turn.
Sacrificing some points to outscore the clones by a full five times might be worth it if there were four or fewer clones, but with one MimicBot against eight clones I don't think the penalty to my score is worth the damage I can inflict on them. (Also, I only thought of the dastardly strategies today; before submission I only considered the "minor edge" strategy described earlier.)
This analysis also applies generally to any bot known to be a naive tit-for-tat bot.
comment by Bucky ·
2020-10-28T10:30:24.643Z · LW(p) · GW(p)
I love your "Lucy pulling away the football" ideas and its super impressive that this can outscore tit-for-tat.
I'm fairly sure the first idea is better than the last two if you want to play it even with a large number of clique bots as what matters is not how many times more you're getting than them but how many times more they are losing than you (from the normal 2.5 per round). Idea one forces them to lose 3x more than you and this means its worth it if there are fewer than 3x more clique bots than mimic bots (ignoring all other bots). If DefinitelyNotCollusionBot and PasswordBot played the same tactic against the clique bots it may have been worth it even with 8 clique bots.