Do Bad Guys Always Win?

Everett Griffiths
4 min readSep 20, 2021

A couple years ago when I heard a Radiolab podcast episode about a computer programming tournament, I thought I would try to reproduce in code a framework similar to the one devised by Robert Alexrod back in 1980. The premise revolved around the Prisoner’s Dilemma, an example in game theory that explores the rewards of selfishness.

Does being selfish pay?

In a nutshell, “play” revolves around two criminals who are in police custody. They are separated for questioning, and as any CSI junkie knows, the detectives will pressure each prisoner to rat the other out. Here’s a little truth-table summary of the game’s consequences:

  • If Prisoner A rats out prisoner B (“defect” in this game’s parlance), but Prisoner B keeps mum (a.k.a. “cooperates”), then Prisoner A walks away scot free but Prisoner B gets sentenced to 3 years in prison.
  • Conversely, if Prisoner B rats out prisoner A, but A keeps mum, Prisoner B gets off the hook and Prisoner A does 3 years hard time.
  • If they both rat out the other (i.e. they both “defect”), they each serve 2 years in prison.
  • If they both keep silent (i.e. “cooperate”), they each serve 1 year.

This means it is better for the individual to rat the other out, but it is better for the gang as a whole when everyone cooperates.

The winning strategy as reported in the Radiolab podcast was named “Tit for Tat”: it would just mirror the reaction of its opponent (i.e. it would defect if the opponent had defected or cooperate if the opponent had cooperated). However, I could not reproduce the results. (I hope Jad Abumrad or Robert Krulwich reads this).

I experimented with tweaking the rules of the game and scoring, but still, the results stayed the same: the bad guy always won. Individuals favor themselves über alles; there is no honor among thieves.

You can see this outcome yourself without doing any coding (or without traipsing through my cringeworthy code). Imagine a series of interactions between 2 “players”: Player A who always defects (i.e. rats the other out), and Player B who always cooperates (i.e. keeps silent). After each interaction of these players, Player B is sentenced to 3 years in jail. The bad-guy Player A “wins” in a landslide by serving no jail time because he always defects.

Tit-for-Tat can’t seem to beat him either. In a Player Defect vs. Player Tit-for-Tat lineup, the first face-off would see Player Tit-for-Tat optimistically cooperating, whereas Player Defect would (of course) defect. So Player Tit-for-Tat would be down a 3 year sentence going into the next round, after which it would just play good defense: remember when both players defect, they both get sentenced equally (2 years), so Player Tit-for-Tat never catches up. The bad guy (Player Defect) comes out ahead again!

I fully acknowledge that my code is probably full of bugs, and I would love for someone to help identify any flaws in the premise of the game, because my experiments have left me grappling with the implications of a “selfish” Ayn-Randish strategy. It seemed I could trace so many of society’s ills back to this type of interaction. Building wealth on the backs of slaves or ascending to power through unflinching lies are two outcomes that seem to be consistent with these types of ends-justify-the-means interactions.

Focusing the scoring on individuals means that the winning algorithm will favor selfishness. I wondered how things might shake out if we kept score differently. Instead of ranking algorithms by how well they performed for individual players, what if we ranked the algorithms according to how they affected the total prison time served by all members of the gang?

This is where the namesake dilemma starts to break down, but there are some fruitful possibilities to consider. What if the premise were farming and the options were to cash in on a crop that paid well, but was reliant on soil-depleting pesticides OR to accept more modest yields in favor of sustainable soil? What if “winning” such a game required feeding people over millennia? Thinking about the game in this way reflects a paradigm shift, and it is one that is relevant to the challenges facing the planet as a whole. Instead of the myopic zero-sum-game mindsets, we need to frame success in terms of all mankind. When we are talking about the possibility of mankind failing as a whole — i.e. the end of the human experiment — then we need strategies that view success as the success of mankind as a whole. Otherwise I fear the bad guys will have won before the game has even started.

Maybe it’s time for version 2.0 of the Prisoner’s Dilemma coding tournament that highlights not only a winning algorithm, but one that properly keeps track of the resources we all share — a combination of the Prisoner’s Dilemma and the Tragedy of the Commons perhaps? Let the game begin!

--

--