Organic Computing

Smartphone in der Hand, Tablet im Rucksack, Laptop auf dem Schreibtisch – diese Ausstattung ist heute keine Seltenheit mehr. Dazu vielleicht noch eine Smartwatch am Handgelenk, ein Schritt- und Pulstracker für den Sport, ein Bordcomputer mit Navi im Auto und eine programmierbare Kaffeemaschine - fertig ist der Fuhrpark voller kleiner Computer. Sie kommunizieren nur begrenzt untereinander, aber manche tun es. Teilweise über Bluetooth, teilweise greifen sie auf einen gemeinsamen Online-Speicher zu. Aber wie viel mehr wäre möglich, wenn sie wirklich miteinander sprechen und sich selbstständig organisieren und „mitdenken“ würden?

Ideenklau bei Mutter Natur

Das ist die Grundidee hinter Organic Computing: zahlreiche kleine Computer, oder allgemeiner formuliert, Einheiten sollen sich selbst organisieren und zusammen etwas leisten. Und zwar mit Methoden, die man aus der Natur kennt und nachahmt.

Netzwerke bieten viele Möglichkeiten. Es kann Wissen geteilt, individuelles Know-How einzelner Teilnehmer auch den anderen zugänglich gemacht oder die gesamte Rechenkapazität für komplexe Aufgaben genutzt werden. Aber je größer ein solches Netzwerk wird, desto schwerer ist es, die dadurch entstehende Komplexität zu beherrschen. Jeder möglicherweise auftretende Sonder- und Fehlerfall muss bedacht werden, jede Einheit einzeln programmiert und jeder noch so elementare Schritt festgelegt werden. Vergisst man etwas, so kommt es leicht zu Fehlfunktionen. Schon in einem „einfachen“ Auto stecken heutzutage eine Vielzahl kleiner Recheneinheiten, die sich um den Schließmechanismus, Scheibenwischer, Heizung, Radio, Navigation, Sicherheitssysteme, Lenkung und vieles weitere kümmern. Diese Systeme müssen sich häufig untereinander abstimmen. Das alles ist so komplex, dass es schon eigene Studiengänge für Automotive Systems Engineering gibt.

Kooperation organisieren

Traditionellerweise verwendet man eine Kontrollinstanz, die die Arbeit der anderen koordiniert und, wo nötig, Informationen weiter gibt. Diese zentrale Kontrolle gerät aber irgendwann an ihre Grenzen und stellt einen sogenannten Bottleneck (Flaschenhals) dar: Weil alle Informationen und Entscheidungen über diese Einheit laufen müssen, ist ihre Kapazität und Leistungsfähigkeit entscheidend für das gesamte System. Und wenn sie ausfällt, geht erst einmal gar nichts mehr.

Die Lösung, die Organic Computing realisieren will, heißt Selbstorganisation. In der Natur gibt es zahlreiche Beispiele für Systeme, bei denen viele kleine autonome Einheiten miteinander interagieren und gemeinsam ein großes Ganzes oder gewisse Strukturen schaffen, ohne dass eine zentrale Kontrolle existiert. Seien es Ameisen, die eine Brücke bauen, oder Zellen, die wachsen und dabei bestimmte Muster ausbilden. Keine einzelne Ameise hat einen Überblick darüber, was ihre Kollegen gerade tun – allein durch ihre eigenen einfachen Ziele und lokalen Interaktionen mit wenigen anderen Ameisen werden für die einzelne Ameise unlösbare Aufgaben bewältigt. Das Große Ganze kennt sie nicht.

Ein solches System, das sich selbst organisiert, hat sogenannte self-x-properties. Das sind beispielsweise self-healing, self-optimisation und self-protecting. Es kann sich also selbst heilen, selbstständig die eigene Leistung optimieren, sich selbst beschützen und noch vieles weiteres. Das System wird robust und flexibel und passt sich selbstständig an Störungen, Ausfälle oder Änderungen der Umwelt an, ohne dass man bei der Entwicklung alle Eventualitäten bedacht haben muss oder ein Eingreifen im laufenden Betrieb nötig ist. Dennoch ist es intuitiv zunächst kaum vorstellbar, dass eine Maschine etwas lernen, eigene Ideen und Strategien entwickeln und flexibel handeln kann.

Im Kleinen beginnen

Es gibt unzählige Ansätze, wie man ein solches Verhalten in der IT umsetzen kann. Angefangen von Organisationsstrukturen, die auch lokale Hierarchien beinhalten können, über verschiedenste Ansätze, die das Netzwerk lernen lassen (wie beispielsweise neuronale Netze oder Prinzipien der Schwarmtheorie), Theorien über Zielfunktionen und Kontrollstrukturen und vieles mehr. Aber schon im ganz Kleinen mit ganz simplen Regeln kann man erstaunliches bewirken.

Eine Spielwiese für alle, die sich mit Selbstorganisation beschäftigen, sind sogenannte zelluläre Automaten. Das sind eine Anzahl kleiner Rechtecke, die entweder in einer Reihe aufgereiht sind (eindimensional), wie bei einem Brettspiel eine Fläche abdecken (zweidimensional) oder wie Bauklötze im dreidimensionalen Raum existieren. Eine Zelle kann verschiedene Farben haben oder verschiedene Zustände, beispielsweise „tot“ und „lebendig“. Rundenweise ändert jede Zelle ihren Zustand abhängig von denen ihrer Nachbarn. Dabei sind verschiedenste Regeln möglich. Bei dieser Variante werden verschiedene Farben als Zustände verwendet:

Jede Zelle spielt in jeder Runde gegen einen ihrer Nachbarn quasi Schere-Stein-Papier: rot gewinnt gegen blau, grün gegen rot und blau gewinnt gegen grün. Die Zelle, die verliert, übernimmt die Farbe der Gewinner-Zelle. Mehr Regeln braucht es nicht - heraus kommen diese faszinierenden spiralförmigen Muster.

Game of Life

Der Mathematiker John Conway hat 1970 eine Variante eines zellulären Automaten entwickelt, die ganz besondere Eigenschaften hat. Das „Spiel des Lebens“ – ein fast reißerischer Titel. Aber tatsächlich ist es geradezu unheimlich zu sehen, was mit sehr simplen Regeln alles möglich ist.

Das Game of Life findet auf einem zweidimensionalen Raster statt. Jede Zelle ist entweder „tot“ oder „lebendig“. In jeder Runde zählt jede Zelle, wie viele ihrer acht angrenzenden Nachbarn lebendig sind und ändert ihren Zustand anhand von nur vier Regeln:

  1. Eine lebende Zelle mit weniger als zwei lebenden Nachbarn stirbt an Einsamkeit,
  2. eine mit mehr als drei stirbt wiederum an Überbevölkerung und
  3. eine mit zwei oder drei lebenden Nachbarn bleibt unverändert am Leben.
  4. Eine tote Zelle wird neu geboren, wenn genau drei ihrer Nachbarn leben.

Mehr Regeln gibt es nicht. Möglich ist damit: alles, und zwar im wahrsten Sinne des Wortes. Das Game of Life ist erwiesenermaßen turingvollständig, was nichts anderes heißt, als dass man mit ihm jede Berechnung, die irgendein Computer ausführen kann, ebenso lösen kann. Photoshop nachprogrammieren mit dem Game of Life – das mag unglaublich aufwändig sein, ist aber theoretisch möglich. Das Game of Life kann Strukturen ausbilden, die sich fortbewegen und sogar sich selbst reproduzieren. Es hat somit auch tatsächlich Eigenschaften von realem Leben.

Man kann vieles über das Game of Life schreiben, aber beeindruckender ist es, es in Aktion zu sehen. Dieses dreieinhalb Minuten-Video erklärt nochmal die Grundlagen des Game of Life und zeigt sehr schön, wie viel mit diesen einfachen Regeln möglich ist.

Nur Schachbrettmuster?

Wie bereits erwähnt: Zelluläre Automaten sind Spielwiesen, um auf ganz grundlegender Ebene faszinierende Effekte zu beobachten. Das Wissen, das man dabei erlangt, kann man dann auf größere Anwendungen übertragen und es mit Erkenntnissen aus anderen Bereichen kombinieren. Heraus kommt dabei bislang beispielsweise ein Ampelsystem, dass sich automatisch an unterschiedliche Verkehrsaufkommen anpasst, oder ein Energiemanagement-System, dass von selbst autonom den Bedarf und die Einspeisungen von Kraftwerken organisiert. Und es sind noch zahlreiche weitere Anwendungen denkbar – irgendwann auch fürs heimische Wohnzimmer.