Der Turniererfolg einer bestimmten Strategie sagt noch nicht zwingend etwas über den langfristigen Erfolg dieser Strategie im evolutionären Wettbewerb aus. Um diese Frage zu untersuchen, soll nun das ursprüngliche Computerturnier in einem zweiten Schritt zu einer populationsdynamischen Simulation ausgebaut werden.
Dazu wird mit einer Population von zehntausend Spielern, die auf die gegebene Menge von Strategien gleichmäßig verteilt werden, eine Serie von Turnieren durchgespielt, wobei diejenigen Strategien, die sich als besonders erfolgreich erweisen, in der jeweils folgenden Runde von einer größeren Anzahl von Spielern angewendet werden, während die weniger erfolgreichen Strategien eine geringere Anzahl von Spielern zugewiesen bekommen, bis sie möglicherweise irgendwann ganz "`aussterben"'.4 Es würde an dieser Stelle zu weit führen, auf alle technischen Einzelheiten dieser Simulation detailliert einzugehen.
Lediglich eine der (gegenüber der im letzten Abschnitt beschriebenen Simulation geringfügig erweiterten) Strategiemenge neu hinzugefügte Strategie soll kurz vorgestellt werden, da sie in der populationsdynamischen Simulation unter bestimmten Bedingungen sehr erfolgreich ist.
Die Strategie Pawlow beginnt mit zwei Defektionen und ändert nur dann ihr Verhalten, wenn sie vom Gegner bestraft wird (d.h. wenn der Gegner mit einer Defektion antwortet), wobei es keine Rolle spielt, ob sie für kooperatives oder unkooperatives Verhalten "`bestraft"' worden ist. Als Sicherheitsmechanismus (um "`Missverständnisse"' zu vermeiden) ändert sie ihre Strategie aber nur höchstens jede zweite Runde.
def nextMove(self, round, myMoves, opMoves):
if round <= 2:
return 0 # be naughty
else:
if opMoves[-1] == 0 and myMoves[-1] == myMoves[-2]:
if myMoves[-1] == 0: return 1 # learned something
else: return 0
else:
return myMoves[-1]