Die ausgewählten Individuen bilden den Pool der nächsten Generation. Es wird also ein Schleifenprozess durchgeführt, bis irgendein Abbruchkriterium erfüllt ist.
Durch mehrere Schleifendurchläufe unseres Verfahrens wird eine Generationenfolge für die Population simuliert. Man kann zwar in einigen Fällen Abbruchkriterien aus dem Problem heraus definieren - bei den Satisfaktionsproblemen kann man das Erreichen des Zieles feststellen. Erzeugt man mit GA z.B. magische Quadrate, dann ist man -wenn man denn eines gefunden hat- fertig. Sonst wird man beispielsweise die Zahl der Generationen vor der Bearbeitung festlegen - beachten Sie: GA gehören zu den sub - optimierenden Verfahren.
Bei einer Funktionalen Sprache wie Scheme bietet es sich an, die einzelnen Komponenten im Schritt von einer Generation zur nächsten funktional zu schachteln. Das heißt: Jeder Teilprozeß wird aufgerufen vom nächsten und gibt sein Zwischenergebnis -den veränderten pool- an diesen aufrufenden weiter. An der entsprechenden Stelle im Programm steht daher:
(Selektion ; S ruft K und verwendet deren Wert (Kreuzen ; K ruft M und verwendet deren Wert (Mutation Population Mutationswahrscheinlichkeit) ; M bekommt Population / Parameter crossing-over-Wahrscheinlichkeit) ; Parameter von K Populations-Groesse) ; Parameter von S
Dies Zwischenergebnis wird dann dem nächsten Schritt (loop ...) der Generationenfolge übergeben.
In der sich aus den geschachtelten Funktionsaufrufen ergebenden Unabhängigkeit der einzelnen Bearbeitungsstufen von einander liegt eine der wesentlichen Voraussetzungen, dies Problem durch modulares Arbeiten zu lösen. Teilaufgaben können problemlos an einzelne Gruppen vergeben werden, die sich untereinander nur über die Schnittstellen ihrer Module verständigen müssen.