ABM & For-Loops#

Wir haben jetzt eine ganze Menge über For-Loops gelernt. For-Loops sind allgemein in der Programmierung essentiell. Und wie immer gilt daher: ABM sind Computerprogramme, weshalb auch in ABM For-Loops essentiell sind. Doch was sind die typischen Anwendungen von For-Loops innerhalb von ABM? In eigentlich jedem ABM brauchen wir For-Loops mindestens in diesen beiden Situationen:

  1. Einerseits modellieren wir ja bei ABM das Handeln vieler Akteure. Und damit jeder einzelne Akteur auch wirklich “handelt”, müssen wir jedem einzelnen Akteur direkt ansprechen und sagen: “Ey du! Jetzt handel doch mal!”. Und jetzt stell dir mal vor, dass wir mehrere Hundert oder Tausende Akteure haben. Deswegen schreiben wir unseren “Befehl” an die Agenten in der Regel nur genau einmal auf und verwenden dann einen Loop, um jeden einzelnen Agenten automatisch “direkt anzusprechen”.

  2. Durch einen solchen Loop wie bei Punkt 1 hätten wir es schonmal geschafft, ganz bequem alle Akteure zum handeln zu bewegen. Das Ding ist aber, dass wir ja die Akteure nicht nur einmal handeln lassen wollen, sondern mehrmals im Zeitverlauf. Erst durch das wiederholte, aufeinanderbezogene Handeln mehrerer Akteure entstehen ja typischerweise die zu erklärenden sozialen Phänomene, soziale Strukturen oder soziale Systeme. Deswegen nutzen wir auch hier wieder einen Loop, der macht, dass der Loop aus Punkt 1 immer wieder ausgeführt wird. Ein Loop im Loop also. Der eine Loop “looped” durch die Agenten, der andere Loop “looped” durch die Zeit und macht, dass alle Agenten in jedem Zeitschritt handeln.

Nicht selten weist der eigentliche Simulationsablauf im Code also allgemein folgende Struktur mit mindestens zwei geschachtelten Loops auf:

for TICK in TIME:
    for AGENT in POPULATION:
        DO_SOMETHING

Für jeden Zeitschritt wird für jeden Agenten etwas getan, bspw. den Agenten zum handeln gebracht. Diese Loops sind dann der eigentliche “run” der Simulation. Bevor die Loops jedoch anlaufen, werden in einer Initialisierungsphase noch die benötigten Variablen definiert z.B. die Populationsliste erstellt (für deren Erstellung wir nicht selten auch einen For-Loop verwenden), die Agenten definiert oder die Zeitspanne festgelegt. Das wird alles später an konkreten Beispielen noch klarer. Zumindest hast du jetzt schon mal eine grobe Idee davon, wofür wir Loops hauptsächlich brauchen werden. Neben diesen beiden zentralen Anwendungen, brauchen wir Loops auch in anderen Situationen, die in den obigen Beispielen angedeutet wurden, sehr oft.