I sometimes forget that not everyone realizes how poorly understood open-source game theory is, until I end up sharing this example and remember how weird it is for folks to see for the first time. Since that’s been happening a lot this week, I wrote this post to automate the process.
Consider a game where agents can view each other’s source codes and return either “C” (cooperate) or “D” (defect). The payoffs don’t really matter for the following discussion.
First, consider a very simple agent called “CooperateBot”, or “CB” for short, which cooperates with every possible opponent:
def CB(opp):
return C
(Here “opp” is the argument representing the opponent’s source code, which CooperateBot happens to ignore.)
Next consider a more interesting agent, “FairBot”, or “FB” for short, which takes in a single parameter $k$ to determine how long it thinks about its opponent:
Continue reading →