Sonntag, 17. Juli 2011

Evolutionäre Hardware Entwicklung

Trotz intensiver Recherche, konnte ich keinen deutschsprachigen Beitrag zu den Experimenten von Adrian Thompson finden. Da ich aber der Ansicht bin, dass dessen Ergebnisse sehr viele interessante Implikationen bergen, möchte ich das Ganze hier kurz vorstellen. Zunächst kommentarlos – später werde ich wohl auf diesen Beitrag bezug nehmen.

Zwischen 1993 und 1997 ließ Adrian Thompson eine Evolution von Schaltkreisen laufen. Er überlegte, was wohl geschähe, wenn man die Prinzipien der Evolution auf Schaltkreise anwendet. Man legt eine Aufgabe fest, würfelt zufällig ein paar Schaltkreise zusammen und sieht, ob sie die Aufgabe erfüllen oder nicht. Dann nimmt man die, die der Lösung ein bisschen näher sind, rekombiniert sie untereinander und sieht, ob sie dadurch der Lösung näher kommen oder sich von ihr entfernen usw. Das Interessante daran ist, dass eine so gefundene Lösung nichts mit den Lösungen zu tun haben muss, die sich ein Ingenieur für das Problem ausdenken würde. Thompson beschloss, es einfach zu versuchen.

Also setzte er ein Ziel fest, das die Schaltkreise erreichen sollten. (Normalerweise funktioniert Evolution natürlich nicht teleologisch, aber diese Zielvorgabe simuliert quasi die Umwelt, an die es sich anzupassen gilt und mit der Organismen normalerweise koevolvieren.) Das Ziel war eine Schaltung, die zwei Töne, einen tiefen (1000 Hz) und einen hohen (10.000 Hz) eindeutig unterscheiden und über entsprechende Signale bekanntgeben kann. (Ein sehr einfaches Ziel, aber man muss für ein Experiment klein anfangen. Eventuell hätte es auch mit einem Radio als Zielvorgabe funktioniert, aber wahrscheinlich wäre das Experiment erst in ein paar Jahrhunderten zu Ende gewesen – und so lange wollte er nicht warten.)
Natürlich war es Thompson klar, dass er nun nicht tausende von Schaltungen löten konnte. Ein gangbarer Weg wäre also eine Computersimulation gewesen. Aber Thompson vertraute diesen Computermodellen nicht, da sie nur mit jenen Variablen rechnen können, die ihnen vom Menschen einprogrammiert werden und wer weiß, ob Menschen wirklich alle für diese Aufgabe relevanten Parameter kennen? Wie sich später herausstellte, misstraute er den Theorien von Physikern und Programmierern zu Recht.

Er suchte also stattdessen eine Möglichkeit, diese Schaltungen nicht virtuell im Computer sondern ganz real als physische Schaltkreise zu realisieren. Es gibt sogenannte „field-programmable-gate-arrays“. Das sind Mikrochips, die ein Feld von 64x64 transistorisierten logischen Zellen (logische Gatter) enthalten, die alle auf verschiedene Funktionen programmiert und untereinander vernetzt werden können. Programmiert werden solche Chips, indem man eine Reihe von Bits in den Speicher lädt. Diese Bit-Reihen sind ähnlich dem DNS-Code und man kann sie untereinander ebenso rekombinieren, wie das Erbgut von Zellen. Genau das tat Thompson auch, verwendete aber nur ein Ausschnitt-Array von 10x10 logischen Zellen, also nur 100 der 4096 verwendbaren Gatter.

Am Beginn erzeugte er 50 verschiedene zufällig generierte Bit-Reihen und testete deren Eingenschaften, die beiden Töne zu erkennen. Der beste zufällig generierte Schaltkreis erzeuge ein Ausgangssignal von 5 Volt, egal welcher Ton eingegeben wurde. Dieser wurde nun mit einigen der nicht ganz so „tüchtigen“ Bit-Reihen rekombiniert um eine zweite Generation zu erzeugen. Dieses Testen mit anschließender Rekombination wurde im Anschluss immer wieder ausgeführt. Die Details sind absolut nicht spannend und müssen uns nicht interessieren. Wohl aber das Ergebnis.

Nach etwa 200 Generationen erzeugte ein Schaltkreis Outputs, die den Inputs ähnlich waren: Zwei Töne unterschiedlicher Frequenz. Nach etwa 3000 Generationen erzeugte der tiefe Ton ein konstantes Ausgangssignal, der hohe Ton jedoch erzeugte immer noch eine Frequenz. Etwa bei Generation 4000 war eine Lösung gefunden, die sich danach kaum noch veränderte:
Input tiefer Ton = Output 0 Volt
Input hoher Ton = Output 5 Volt

Ein Techniker würde, um diese Aufgabe zu lösen, wahrscheinlich einen Taktgeber konstruieren, an dem die Frequenzen verglichen und sortiert werden. Das wäre mit nur 100 logischen Gattern kaum zu schaffen. Die Evolution kümmerte sich um solche Überlegungen nicht und entwickelte stattdessen eine Schaltung, welche die Eingangssignale über komplizierte Schleifen verschob und schließlich zu den gewünschten Output-Signalen kombinierte.

Das erste, was Thompson erstaunte, war die Tatsache, dass der evolutionäre Prozess zu einem Ergebnis geführt hatte, das mit nur 32 logischen Gattern auskam. Den Rest konnte man entfernen, ohne die Funktion zu beeinträchtigen.
Aber das Erstaunlichste war, dass es 5 logische Gatter gab, die überhaupt keine elektrische Verbindung zu der Schaltung hatten, aber wenn man diese entfernte, funktionierte die Sache nicht mehr. Irgendwie schien die Schaltung mit diesen Gattern zu kommunizieren – wahrscheinlich über elektromagnetische Rückkopplungen. Und hier zeigte sich wie gut es war, dass Thompson keine Computersimulation verwendet hatte, denn diese Möglichkeit wäre nicht vorgesehen gewesen.
Schlussendlich fasst Thompson die Analyse der Schaltung so zusammen: „Ich habe nicht die geringste Ahnung, wie das funktioniert.“

Keine Kommentare:

Kommentar veröffentlichen