Predictions about Isaac's iterated PD competition
14
195
1.3k
resolved Nov 28
Resolved
YES
There are at least 50 submissions.
Resolved
YES
The winner uses the opponent's code.
Resolved
YES
The winner uses the game history.
Resolved
YES
The winner uses the opponent's ID.
Resolved
N/A
The winner has odd number of rounds where it defects
Resolved
NO
The worst performing non-disqualified bot defects in more than 25% of the rounds.
Resolved
NO
The winner uses the "always defect"-strategy against the majority of its opponents
Resolved
NO
The winner uses the "tit-for-tat"-strategy against the majority of its opponents
Resolved
NO
The winner uses the "grim trigger"-strategy against the majority of its opponents
Resolved
NO
The winner cooperates at least once against a bot that doesn’t use the history, code, or ID of its opponent.
Resolved
NO
There are at least 100 submissions.

https://manifold.markets/IsaacKing/which-240-character-program-wins-th

Notes:

  • For predictions about the characteristics of the winner: if there is a tie, resolves to the % of the tied winners that the prediction is true of.

  • "The winner uses X" means that there is some situation where, if the parameter X had a different value, the winning program would return a different result.

Feel free to add your own!

Get Ṁ600 play money

🏅 Top traders

#NameTotal profit
1Ṁ91
2Ṁ24
3Ṁ24
4Ṁ16
5Ṁ4
Sort by:

Further updates:

Of the bots that don't depend on history/id/code (0, 1, 3, 8, 10, 30), RandomBot was the only one where there was a possibility of my bot cooperating. Since Isaac says I didn't cooperate with it in the rollout that counted, the question about that resolves NO.

I looked at my bot's matchups on my spreadsheet. Out of 42, it looks like there are 11 where I always cooperate (all of which are in the top 12 of overall score). It clearly did not play tit for tat against a majority of the field.

There are 24, a slim majority, where the opponent's average score was <= 1 (i.e. consistent with me having always defected). However, three of these (3, 13, 58) are bots with randomized behavior. If the random rolls landed just right, my bot potentially cooperates with these bots. I'm also not sure about 57. Since @Agh said this was about intent, I think those bots don't count towards the "always defect" count for my bot, and thus my bot did not play "always defect" against the majority of the field.

I resolved the ones which were clear.

  • The winner was my bot, which uses the opponent's code, ID, and the game history, and doesn't use grim trigger.

  • The worst performing bot was CooperateBot, which doesn't defect in 25+% of rounds.

  • There were less than 100 submissions

Remaining ones:

  • @DanPowell "The winner cooperates at least once against a bot that doesn’t use the history, code, or ID of its opponent.": I think this is YES because I think my bot has a ~1/16 chance of cooperating against RandomBot. Have to confirm first. Though if this was supposed to be based on the specific rollout of the tournament that Isaac did, I don't have that information.

  • @Agh "The winner uses the ["tit-for-tat"/"always defect"]-strategy against the majority of its opponents": I interpret my bot as playing tit-for-tat against some opponents, always-defect against some opponents, and neither strategy against some opponents. I'll have to look at all the bots to determine which if any is the majority, though.

  • @AnT "The winner has odd number of rounds where it defects": This seems ill-posed. The number of rounds is randomized, so the answer could be different on every rollout of the tournament. I'm going to N/A this unless you have an objection.

Though if this was supposed to be based on the specific rollout of the tournament that Isaac did, I don't have that information.

Your bot's match against random-bot was 17 games, and you defected every time.

However there are also other bots that don't use the opponent's history, code, or ID, and I didn't check those. (If you give me a list of ones I need to check, I will.)

"The winner has odd number of rounds where it defects": This seems ill-posed.

Yeah this doesn't make sense to me. It could be interpreted as "the number of games in which it defects", or "the number of rounds in which it defected more than half the time", but neither is actually what the option said.

sold Ṁ7 of The winner uses the ... YES

@Multicore I did intend my option to be resolved by the specific behavior in the tournament. I was using “history, code, or ID” to try to describe all the cases where it is strictly better to defect.

The number of rounds is randomized, so the answer could be different on every rollout of the tournament.

If there was no seed of tournament pre-set, I'm OK with N/A!

The number of rounds is not randomized; each bot plays each bot, so each bot played 42 rounds.

You're probably thinking of games. Each round consists of a random number of games.

@IsaacKing (N)(N-1)/2

@DanPowell You're failing to account for the fact that they play themselves. With 2 bots there would be a total of 3 rounds. It's ((N*(N-1)) / 2) + N

@IsaacKing Ah (N)(N+1)/2. Not technically a sign error, closer to an off-by-one.

Does the “uses the X strategy” mean “behaves identically to what that strategy does given the same history”, such that cooperate bot versus cooperate bot used tit for tat and grim trigger, because those other strategies play identically?

@DanPowell I would think no, its code has to actually implement the strategy. But @Agh can overrule me on that if they want.

I agree with multicore. It's more about the bot's intent than about the observed behaviour.

@Agh What would it mean for a bot that cares about another bot’s source code to conditionally implement an intent to behave a certain way?

bought Ṁ2 of The winner uses the ... YES

@DanPowell i will have to think about it some more, but I would propose the following test: if the opponent of the winning bot was forced to randomize its every tenth move regardless of its source code, then how would the winning bot's behaviour look like?

@Agh I propose presenting the winner with a false history if there is a dispute.

There are at least 50 submissions.

I currently count 50 submissions if you include private submissions, duplicates, disqualified submissions, and Isaac's starting submissions. Anyone object to resolving this YES?

@Multicore I let 3 people "edit" their submissions by submitting new ones with the typos corrected. Up to you if you want to count that.

bought Ṁ10 of The winner uses the ... YES

In case people don't know what grim trigger means:

Initially, a player using grim trigger will cooperate, but as soon as the opponent defects (thus satisfying the trigger condition), the player using grim trigger will defect for the remainder of the iterated game.

Where's our merciful trigger? Start out defecting, but if they ever cooperate, cooperate for the rest of the game.

There are at least 50 submissions.

Does this include the handful of bots set up initially, or only the ones “submitted” by other than the organizer?

@DanPowell Includes the initial ones.

bought Ṁ10 of There are at least 5... NO
  • "The winner uses X" means that there is some situation where, if the parameter X had a different value, the winning program would return a different result.

So if the winner doesn't directly refer to X, but it ever simulates a bot that uses X and uses the result of the simulation to determine what to output, that counts as "the winner using X"? That seems pretty unintuitive to me.

sold Ṁ19 of The winner uses the ... NO

@IsaacKing In particular, if "situation" includes a whole playout, then "The winner uses the opponent's code" almost has to be true.

@DanielFilan I meant the behavior of the winning bot as a function, ignoring the way that the opponent's code indirectly affects the game history.

To attempt to phrase it more formally: "Let X and Y be sets of inputs to the bot function (d,m,c,s,f,h,i). If there exist X and Y that are identical except for the value of c, where WinningBot(X)!=WinningBot(Y), then WinningBot uses c."

To Isaac's point, this does imply that simulators use all the variables.

bought Ṁ5 of There are at least 5... YES

@Multicore It’s possible to call f() and always specify part of the context independently of the current context, but I don’t see anyone doing it. Something like “would this bot cooperate with me in the second round iff I cooperated this round”, but it would be as easy to just ask “would this bot cooperate next round iff I cooperate this round”