Erik Mesoy
Core Tester / Intern
I thought of a game, based on the Prisoner's Dilemma, that I could put to CFC for discussion and at the same time practice my java programming skills with.
Here's the setup: In any given round, you can choose to play nice (N) or play dirty (D).
If both parties play nice, they both win 3 points.
If one party plays dirty, that party wins 4 points and the nice party none.
If both parties play dirty, both parties win 1 point.
Symbolically:
(N, N) -> (3, 3)
(N, D) -> (0, 4)
(D, N) -> (4, 0)
(D, D) -> (1, 1)
Slap whatever political or ideological labels you like on the above. I suspect a favorite will be (N, D) as "America is losing the war on terror because it's giving too good treatment to terrorists who don't deserve it because of their actions".
Anyway. The challenge to any number of people at CFC is this - tell me, algorithmically, how you would behave over time in such a situation. Please base it on your RL moral judgement (or someone's) so that I can check performance levels of different codes of morality. I will be running this on my computer in Java, so you can't analyze the situation between each round and discuss tactics. However, you are free to discuss tactics with your fellow posters, and you're also free to submit different tactics to me than you actually say in public. (Send to me by PM. Algorithms posted here will not be run.)
Each submitted algorithm will be run against each other algorithm, plus a few of my own, for an unknown, varying number of rounds, to avoid the problem that crops up at the last round, and the round before that, and the round before that again...
Example of a strategy you can submit:
"If the last two things done by the other guy were D, punish him by playing D twice. Otherwise, play N and forgive a single D." (Call this A)
Another one:
"If my opponent plays N, I get 3 points for N and 4 points for D. If my opponent plays D, I get 0 points for N and 1 point for D. Therefore I should always play D." (Call this B)
Note that if A and B play against one another, the result is:
0,4
0,4
1,1
... (repeat 1,1 until end of game)
Your play instructions can have any amount of conditionals. (Assuming that they're sane, of course! Don't make your plays dependent on the phase of the moon, please.) You can include random plays with percentage probabilities. You can refer to the number of rounds played, but not to the (unknown) number of total or remaining rounds. Your instructions can include dependencies on previous plays. If you want to submit multiple algorithms, that's allowed, but please give them names as I will otherwise be naming each algorithm after its submitter.
Finally, this is not meant to be an accurate model! Merely a curiosity.
Fire away! Special request for El_Machinae to submit an algorithm based on his personal way of life. I'm very curious as to how he'll model that.
Here's the setup: In any given round, you can choose to play nice (N) or play dirty (D).
If both parties play nice, they both win 3 points.
If one party plays dirty, that party wins 4 points and the nice party none.
If both parties play dirty, both parties win 1 point.
Symbolically:
(N, N) -> (3, 3)
(N, D) -> (0, 4)
(D, N) -> (4, 0)
(D, D) -> (1, 1)
Slap whatever political or ideological labels you like on the above. I suspect a favorite will be (N, D) as "America is losing the war on terror because it's giving too good treatment to terrorists who don't deserve it because of their actions".

Anyway. The challenge to any number of people at CFC is this - tell me, algorithmically, how you would behave over time in such a situation. Please base it on your RL moral judgement (or someone's) so that I can check performance levels of different codes of morality. I will be running this on my computer in Java, so you can't analyze the situation between each round and discuss tactics. However, you are free to discuss tactics with your fellow posters, and you're also free to submit different tactics to me than you actually say in public. (Send to me by PM. Algorithms posted here will not be run.)
Each submitted algorithm will be run against each other algorithm, plus a few of my own, for an unknown, varying number of rounds, to avoid the problem that crops up at the last round, and the round before that, and the round before that again...
Example of a strategy you can submit:
"If the last two things done by the other guy were D, punish him by playing D twice. Otherwise, play N and forgive a single D." (Call this A)
Another one:
"If my opponent plays N, I get 3 points for N and 4 points for D. If my opponent plays D, I get 0 points for N and 1 point for D. Therefore I should always play D." (Call this B)
Note that if A and B play against one another, the result is:
0,4
0,4
1,1
... (repeat 1,1 until end of game)
Your play instructions can have any amount of conditionals. (Assuming that they're sane, of course! Don't make your plays dependent on the phase of the moon, please.) You can include random plays with percentage probabilities. You can refer to the number of rounds played, but not to the (unknown) number of total or remaining rounds. Your instructions can include dependencies on previous plays. If you want to submit multiple algorithms, that's allowed, but please give them names as I will otherwise be naming each algorithm after its submitter.
Finally, this is not meant to be an accurate model! Merely a curiosity.
Fire away! Special request for El_Machinae to submit an algorithm based on his personal way of life. I'm very curious as to how he'll model that.