lessdazed comments on Prisoner's Dilemma Tournament Results - Less Wrong

101 Post author: prase 06 September 2011 12:46AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (170)

You are viewing a single comment's thread. Show more comments above.

Comment author: DavidLS 06 September 2011 12:35:45PM *  1 point [-]

"Simulate my opponent, and if it tries to simulate me, see what it will do if it simulates me outputting Cooperate."

This has the problem that, since most strategies will eval twice (to check both the C and D cases) you can be reasonably sure that if both calls return the same result you are being simulated.

Edit: Although it doesn't fully fix the problem, this is better: eval takes a function that takes the function the other agent will call eval with as its argument and returns C or D.

eval(function(fn) {

if(fn(function(ignore) { return C; }) == C) return C;

if(fn(function(ignore) { return D; }) == D) return D;

// etc

});

There are still detection problems here (you could add checks to see if the function you passed to the function eval passed to you was invoked), but the fact that some strategies wouldn't do overly ambitious recursion at least downgrades the above approach from obvious information leak to ambiguous information leak

Comment author: lessdazed 06 September 2011 12:55:31PM 0 points [-]

What about the hypothesis that the opponent isn't optimized for the game?

Comment author: DavidLS 06 September 2011 01:03:36PM 0 points [-]

The standard method of examining play history will disambiguate, perhaps requiring a probing move