# Organic Computing

Organic Computing bezeichnet eine interdisziplinäre Forschungsinitiative mit dem explanatorischen Anliegen, ein besseres Verständnis organischer Strukturen zu gewinnen und dem Entwicklungsziel einer organisch strukturierten Informationstechnologie. Die Forschungsinitiative nimmt Bezug auf das biologische Paradigma selbstorganisierter Informationsverarbeitung in organischen Systemen. Biologische Organismen zeigen spezifische phänomenale Merkmale, sogenannte Selbst-x-Eigenschaften, die als Qualitätsmerkmale einer organisch strukturierten Informationstechnologie angeführt werden. Die Verwirklichung der erwünschten Qualitätsmerkmale soll auf dem Konzept der Selbstorganisation basieren. Diese grundlegende methodologische Positionierung impliziert insbesondere eine Abkehr von der algorithmisch organisierten Informationstechnologie.
Unter anderem werden – motiviert durch die Herausforderungen für die Informatik bezüglich der Gestaltung technischer Systeme, die ab etwa 2015 präsent sein werden – Antworten auf die Probleme der zu erwartenden Technologieentwicklungen erarbeitet. Die fortschreitende Miniaturisierung und die Steigerung der Leistungsfähigkeit mikro- und nanoelektronischer Systeme führen dazu, dass zukünftig eine Vielzahl intelligenter Systeme existieren wird, die in dynamisch veränderlichen Einsatzumgebungen ihre Dienste erbringen. Über unterschiedlichste Kommunikationssysteme werden Informationen untereinander ausgetauscht, es entstehen zwangsläufig Netzwerke intelligenter Systeme, deren Verhalten nicht vollständig vorhersehbar sein wird. Die einzelnen Komponenten müssen somit in der Lage sein, auch in unvorhergesehenen Situationen sinnvoll zu reagieren, d. h. technische Systeme werden sich in ihrem Verhalten aufeinander und mit der Umgebung abstimmen können und müssen – sie passen sich an und sie organisieren sich selbst.

## Selbst-x-Eigenschaften

Selbstorganisation stellt an sich kein Qualitätsmerkmal dar, weil eine selbstorganisierte Systemkonfiguration nicht notwendigerweise der technischen Zielsetzung entspricht. Unkontrollierte Selbstorganisationsprozesse können mitunter vollkommen dramatische Folgen haben. Selbstorganisierte Systeme sollen darum beherrschbar bleiben. Sie sollen keine Verhaltensweisen entwickeln, die der gewünschten Funktionalität und den aktuellen Anforderungen insbesondere menschlicher Nutzer zuwiderlaufen. Die Frage bezüglich der Technologie der Zukunft ist deshalb nicht, ob selbstorganisierte Systeme entstehen, sondern wie wir diese gestalten werden.
Benötigt werden Systeme, die sich durch eine ausreichende Zahl von Freiheitsgraden an unterschiedliche Einsatzbedingungen und funktionale Anforderungen anpassen können, die Fehlverhalten von Komponenten durch geeignete Maßnahmen ausgleichen, dabei insbesondere die Bedürfnisse menschlicher Nutzer berücksichtigen und insgesamt den Menschen in seinen Lebensumständen auf vielfältige Weise vertrauenswürdig unterstützen. Es werden Systemarchitekturen benötigt, die sich insbesondere durch Robustheit und Flexibilität auszeichnen. Wegen des lebensähnlichen Verhaltens solcher Systeme werden sie organisch genannt. Die zukünftigen organischen Informatiksysteme sollen eine Reihe sogenannter Selbst-x-Eigenschaften aufweisen, sie seien insbesondere
* selbst konfigurierend,
* selbst optimierend,
* selbst heilend,
* selbst schützend und
* selbst erklärend.
Nach Vorstellung der Vision des Organic Computing in einem Positionspapier der GI und ITG/VDE gab die Einrichtung des DFG-Schwerpunktprogramms 1183 Organic Computing dieser neuen Forschungsrichtung wesentlichen Auftrieb. In derzeit 18 Forschungsprojekten werden bis zum Jahr 2011 Eigenschaften selbst organisierender Systeme grundlegend untersucht, geeignete Systemarchitekturen entworfen und Werkzeuge entwickelt, die den Entwurf und das Management dieser Systeme vielfältig unterstützen.
Das Gebiet des Organic Computing hat starke Bezüge zur Autonomic Computing Initiative von IBM, die sich allerdings auf die Beherrschung der Komplexität großer Serverarchitekturen durch Erzeugung von Selbst-x-Eigenschaften konzentriert. Organic Computing beachtet jedoch insbesondere das durch lokale Interaktion entstehende Verhalten des Gesamtsystems, in dem nicht vorhergesehene globale Effekte auftreten können. Da nicht jedes selbst organisierend entstehende (auch emergent genannte) Verhalten gewünscht wird, strebt Organic Computing nach einer Form von gesteuerter Selbstorganisation, wie sie unter anderem durch die generische Observer/Controller-Architektur erzielt wird.

## Observer/Controller-Architektur

Im Bereich organischer, autonomer und autonom-naher Systeme gibt es neben der Observer/Controller-Architektur eine Reihe weiterer Architekturansätze zur Unterstützung selbst organisierenden, adaptiven Verhaltens. Zu nennen sind hier insbesondere
* der MAPE-Zyklus, der mit Monitor, Analyze, Plan und Execute die wesentlichen Arbeitsschritte eines Autonomic Element beschreibt und damit ein zentrales Konzept des Autonomic Computing ist,
* die vom DFG-Sonderforschungsbereich 614 entwickelten Operator/Controller-Module, die ihren Einsatzschwerpunkt bei selbst optimierenden Systemen des Maschinenbaus haben,
* die im Rahmen des Projekts Organic Fault-Tolerant Control Architecture for Robotic Applications konzipierten Organic Control Units (OCU), die ein selbst organisiertes Verhalten 6-beiniger Laufroboter ermöglichen,
* die SPA-Architektur (Sense, Plan und Act) aus der Robotik oder die 3-Ebenenarchitektur (component control, change management und goal management) aus dem Software Engineering für adaptive Systeme,
* agentenbasierte Ansätze, wie sie zum Beispiel im Roboterfußball (z. B.) oder in selbst organisierenden Fabrikanlagen (z. B.) zum Einsatz kommen, sowie
* autonome System-On-Chip-Architekturen (z. B.).
In der Observer/Controller-Architektur sind die wesentlichen Komponenten dieser Architekturansätze zu einem generischen Konzept zusammengeführt, in dem insbesondere auch die Aspekte des maschinellen Lernens berücksichtigt werden.
* Verschiedene Observer/Controller-Architekturen
* Zentral
* Mehrschichtig
* Hierarchisch
* Verteilt
Die Observer/Controller-Architektur beobachtet, analysiert und bewertet bezüglich vorgegebener Zielkriterien in einer Art Regelkreis das Verhalten der zu überwachenden Systeme. Dies führt zur Auswahl geeigneter Maßnahmen, um das zukünftige Verhalten in der gewünschten Richtung zu beeinflussen. Die Architektur besteht aus einem Netzwerk autonomer Einheiten (genannt Produktivsystem), ergänzt durch jeweils eine oder mehrere Observer- und Controller-Einheiten. Für den Observer muss eine angemessene Methodik entwickelt werden, um das (globale) Systemverhalten zu beobachten und hinsichtlich des Auftretens von Emergenzeffekten zu analysieren und zu bewerten. Ein auf Shannons Entropiedefinition basierendes Verfahren zur Quantifizierung von Emergenz wird in vorgeschlagen. Der Controller soll aufgrund der Ergebnisse des Observers entscheiden, in welcher Form das Produktivsystem beeinflusst werden muss, um ein kontrolliertes selbst organisiertes globales Verhalten innerhalb der Grenzen und Ziele zu ermöglichen, die von einer externen Einheit (der Umgebung) vorgegeben sind. Der Controller soll somit in der Lage sein, sein Verhalten lernend zu verbessern, d. h. insbesondere aufgrund von Erfahrungen bezüglich der Wirkung früherer Aktionen sein Verhalten anzupassen. Für mehr Informationen zum generischen Framework sei auf verwiesen.

## Robustheit und Flexibilität

Neben der Quantifizierung und Beherrschbarkeit von emergentem Verhalten gilt die Forderung nach Robustheit und Adaptivität eines organischen Systems als eine der wesentlichen Herausforderungen: Wie muss ein System gestaltet werden, damit es sich in seiner Funktionalität an Veränderungen der Einsatzumgebung anpassen und gleichzeitig robust reagieren kann, d. h. seine Funktionalität trotz Veränderungen in Umgebungsparametern weiterhin erfüllt? Wie können Systemeigenschaften wie Robustheit, Flexibilität, Autonomie und Selbstorganisation quantitativ bestimmt werden? Ansätze für eine verstärkt quantitative Betrachtung finden sich u. a. in.
Bis zur Realisierung der in der Vision des Organic Computing formulierten Systemanforderungen ist es noch ein weiter Weg. Allerdings sind im DFG-Schwerpunktprogramm 1183 Organic Computing bereits wichtige Konzepte entwickelt und Teilergebnisse erzielt worden. Wichtig ist die Ergänzung dieses grundlagenorientierten Forschungsprogramms durch weitere, mehr anwendungsorientierte Forschungsprojekte, um die im Schwerpunktprogramm gewonnenen theoretischen und methodischen Erkenntnisse in konkreten technischen Systemen zu erproben und weiterzuentwickeln.

## Aktuelle Forschung

Erste Schritte in Richtung organischer, selbst organisierender und adaptiver Systeme werden im DFG-Schwerpunktprogramm 1183 Organic Computing unternommen. Dabei werden eine Vielzahl von Fragestellungen betrachtet, die neben anderen Aspekten folgende Schwerpunkte umfassen: Adaptivität, Rekonfigurierbarkeit, Emergenz neuer Systemeigenschaften und Selbstorganisation in technischen Systemen.