Begriff

Figure 3.2: Environment and Population
\includegraphics[scale=.85]{GA1-2-Structure.eps}

Die Besonderheit bei einem 'Genetischen Algorithmus ohne Phänotyp (GA1)' liegt darin, dass die Interaktion mit der jeweiligen Welt $W$ (oder auch $E$ für 'environment') ohne Phänotyp nicht mehr explizit dargestellt werden kann. Man benötigt dazu dann eine Fitnessfunktion $Fit()$, die die möglichen Auswirkung der Population der molekularen Informationsspeicher $P$ auf die Welt und dann wieder zurück auf die Population $P$ mittels einer Abbildung auf eine Menge von möglichen Fitnesswerten $FVAL$ 'simuliert'.

Im Falle realer Phänotypen $PHTYPE$ würden die Phänotypen während ihrer Lebenszeit 'Nachkommen' in Form neuer molekularer Speicher $P$ erzeugen. Die Fähigkeit, unter den Bedingungen er 'realen Welt' hinreichend Energie einzusammeln, strukturell umzusetzen und zusätzlich 'Baupläne' in Form von molekularen Speichern weiter geben zu können.


$\displaystyle GA1(x)$ $\textstyle gdw$ $\displaystyle \langle \Sigma^{n}, P, FVAL, Fit, \gamma\rangle$ (31)
$\displaystyle P$ $\textstyle \subseteq$ $\displaystyle \Sigma^{n}$ (32)
$\displaystyle \Sigma$ $\textstyle :=$ $\displaystyle Menge von Informationslementen$ (33)
$\displaystyle n$ $\textstyle :=$ $\displaystyle Laenge einer Kette$ (34)
$\displaystyle Fit$ $\textstyle :$ $\displaystyle P \longmapsto P \times FVAL$ (35)
$\displaystyle \gamma$ $\textstyle :$ $\displaystyle P \times FVAL \longmapsto P$ (36)

Den Verzicht auf Phänotypen kann man einerseits als eine 'Verarmung' an Information ansehen, andererseits stellt aber diese Vereinfachung auch eine Art von 'Verallgemeinerung' dar: unter Absehung von vielen Details kann man über eine Problemstellung sehr 'abstrakt' sprechen. Bevor dies im Folgenden anhand einiger Beispiele näher betrachtet wird, muss aber der Informationsbearbeitungsgenerator $\gamma$ etwas mehr erläutert werden (vgl. 3.11).


$\displaystyle \gamma$ $\textstyle =$ $\displaystyle sel \otimes corr \otimes mut$ (37)
$\displaystyle sel$ $\textstyle :$ $\displaystyle P \times F \mapsto P$ (38)
$\displaystyle corr$ $\textstyle :$ $\displaystyle P \mapsto P$ (39)
$\displaystyle mut$ $\textstyle :$ $\displaystyle P \times X \mapsto P$ (40)

Würden die molekularen Speicher unverändert 1-zu-1 weiter gegeben, dann gäbe es im allgemeinen Fall immer die gleichen Phänotypen bzw. bei GA1 würde sich die Wirkung der aktuellen Population $P$ nicht ändern. Damit hätten wir nur ein 'statisches' Wissen.

In der biologischen Evolution lassen sich schon sehr früh Mechanismen beobachten, die dem Zweck dienen, die bestehenden molekularen Speicher bei der Weitergabe (biologisch: 'Vererbung') abzuändern, zu variieren. Dabei gibt es zwei Grundprinzipien: (i) bestehende Informationen von zwei molekularen Speichern $\zeta, \zeta^{*}$ zu 'mischen' (und dabei die benutzten Informationen zu konservieren) oder (ii) Teile von bestehenden Informationen zu 'zerstören', indem man diese durch andere Werte 'ersetzt' (nicht konservierend). Die konservierende Methode bezeichnet man meistens als 'Kreuzung' (Engl.: 'crossover') und die revolutionäre Methode als 'Mutation'. Die Mutation wird dabei in zufälliger Weise vorgenommen.

Man kann sich jetzt fragen, wozu man das Ganze macht; warum überhaupt ändern?

Im allgemeinen Fall GA2 ist klar, man möchte die Struktur eines biologischen Systems mit Blick auf bestimmte 'Leistungsparameter' 'optimieren'. Sei $y \in G$ ein solcher zu optimierender Parameter, der von mindestens einer veränderlichen Bedingung $x$ abhängt, dann sucht man diejenigen Werte $max(y) \subseteq G$ die ein bestimmtes 'Erfolgskriterium' $\kappa$ erfüllen, etwa dass es eine Teilmenge $G+ \subseteq G$ gibt, die das Erfolgskriterium $\kappa$ erfüllt und $y$ soll darin vorkommen. Dies impliziert, dass es irgendeine 'Ordnung' $\leq$ gibt, sodass für je zwei Werte $y,y'$ gilt $y \leq y'$ oder $y' \leq y$. In diesem Fall ist es normalerweise dann entscheidbar, ob ein bestimmter Wert $y$ sich dem Ziel 'nähert' oder nicht. Schwieriger wird es nur, wenn die Werte von $G$ keine monotone Kurve bilden sondern mehrere (relative) Maxima und Minima besitzen.

Nimmt man an, dass eine Fitnessfunktion nun genau dies leistet, nämlich für eine gegebene Veränderliche $x$ den jeweiligen Wert $y \in G = FVAL$ zu ermitteln, und nimmt man ferner an, dass die Veränderliche $x$ jeweils der Informationsstring $\zeta$ eines molekularen Speichers ist, dann berechnet die Fitnessfunktion $Fit()$ für jeden solchen Informationsstring einen zugehörigen Fitnesswert, den man als 'Abstand' zum 'Ziel' interpretieren kann.

Mit dieser Interpretation kann man dann sagen,dass die Anwendung der Fitnessfunktion $Fit()$ eine 'Bewertung' für jeden einzelnen molekularen Speicher $\zeta \in P$ in dem Sinne liefert, dass damit zwischen 'besseren' und 'schlechteren' molekularen Speichern unterschieden werden kann. Damit erhält man einen Anknüpfungspunkt welche der molekularen Speicher man weiter verwenden und welche man eher eliminieren sollte. Dies führt dann zu der dritten Teilfunktion des Informationsbearbeitungsgenerators $\gamma$: er 'selektiert' mit der Teiloperation 'Selektion' $sel()$ die 'Besseren' und vergisst die 'Schlechteren'.

Der gesamte Prozess verläuft dann also wie folgt:

GA1-Basis-Algorithmus


\begin{svgraybox}
\begin{enumerate}
\item Gegeben $P, Fit, \gamma, t=0$
\item ...
... erfüllt, STOP; andernfalls weiter bei Schritt 2
\end{enumerate}\end{svgraybox}

Software: Falls nicht abweichend festgestellt werden alle folgenden Theoriebeispiele mit Programmbeispielen in der Programmierumgebung scilab (siehe http://www.scilab.org) illustriert. Den Quellcode findet man im Anhang im Abschnitt 'Programmbeispiele'8.1.

Gerd Doeben-Henisch 2014-01-14