As an AI contest your bot would operate in three modes:
1. You are passed a plaintext and a base string. You encode your message into the base string (which is relatively much longer than your plaintext).
2. You are passed a string. You try to "reinforce" your message in the string while obscuring any other messages.
3. You are passed a string. You try to extract your original plaintext.
A round with N players would consist of finding all N! permutations of the players. For each permutation all bots would do phase (1) (starting with a random string and each with its own plaintext) followed by some number of rounds of (2) and finally each bot would see the resulting string (simultaneously) to do step (3).
There needs to be some additional condition I can't quite put my finger on: There needs to be a disincentive in (1) and (2) to completely trash anyone else's information. Some requirement that leads to subtlety in those steps. Perhaps a limit on the number of bits that can be altered each time would be sufficient. Maybe that number of bits varies with each round.
Another challenge is that each step is a pure function and should not retain knowledge of the previous step. This means restarting the programs. This could be mitigated by mixing the runs of the N! permutations (or even across broader selections of games) so that in each step the program gets many unrelated inputs each time.
Statistics: Posted by BenJackson — Tue Jan 03, 2012 7:13 pm