Der Einsatz evolutionärer Computermodelle bei der Untersuchung historischer und politischer Fragestellungen

Eckhart Arnold

1 Einleitung
2 Evolutionäre Erklärungen
3 Computermodelle zur Simulation evolutionärer Vorgänge
    3.1 Ein Beispiel: Die Simulation des iterierten Gefangenendilemmas
    3.2 Erweiterung zur populationsdynamischen Simulation
        3.2.1 Die Ergebnisse der populationsdynamischen Simulation
        3.2.2 Der Einfluss von Rauschen auf die Populationsdynamik
        3.2.3 Der Einfluss von Mutationen
    3.3 Möglichkeiten und Grenzen von Computermodellen bei der Untersuchung evolutionärer Prozesse
4 Beispiele für evolutionäre Erklärungsansätze im Bereich der Kulturwissenschaften
5 Zitierte Literatur
6 Anhang: Programmcode des Computerturniers

3.2 Erweiterung zur populationsdynamischen Simulation

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]

[4] Die Neuverteilung der Spielerpopulation auf die Strategien wird dabei nach folgender Vorschrift bestimmt: Zunächst wird der Mittelwert der Resultate aller Strategien berechnet. Dann wird für jede Strategie der Quotient aus ihrer Punktzahl und dem Mittelwert der Punktzahlen aller Strategien gebildet. Der ermittelte Wert dient als Faktor für die Größenänderung der Population der Strategie. In einem letzten Schritt werden die Populationen aller Strategien soweit skaliert, dass ihre Summe wieder einer vorgegebenen Gesamtpopulation von 10.000 Individuen entspricht, wobei kleine Abweichungen zugelassen werden, um Rundungsfehler möglichst zu vermeiden. Strategien, von denen nur noch weniger als zwei Individuen übrig geblieben sind, werden aus dem Rennen gezogen.

Dieses Verfahren zur Ermittlung der Neuverteilung der Individuen ist mehr oder weniger willkürlich gewählt, genügt aber der Bedingung, dass eine Strategie sich umso erfolgreicher vermehrt, je größer ihre Punktzahl ist. Natürlich könnte man ebenso gut auch jede andere streng monoton steigende Abbildung der erreichten Punktzahlen auf die Größenänderungen der Populationen wählen. In den meisten Fällen dürfte dies nur zu einer Beschleunigung oder Verlangsamung der zu beobachtenden Phänomene führen.

t g+ f @