Bio-inspired & Grid Computing I

Größe: px
Ab Seite anzeigen:

Download "Bio-inspired & Grid Computing I"

Transkript

1 Universität Augsburg Institut für Informatik Programmierung verteilter Systeme Bio-inspired & Grid Computing I WS 2006/2007 Seminarband Prof. Dr. Bernhard Bauer Dipl.-Inf. Holger Kasinger Dipl.-Inf. Raphael Romeikat

2 Vorwort Dieser Band umfasst studentische Arbeiten, welche im Rahmen des Seminars Bio-inspired & Grid Computing I im Wintersemester 2006/2007 an der Universität Augsburg erstellt wurden. Im ersten Teil des Seminars, dem Bio-inspired Computing, sollte untersucht werden, wie bestimmte biologische Vorbilder die Informatik inspirierten und bei der Lösung künstlicher, aber auch alltäglicher, Probleme halfen. Florian Krebs gibt dazu in seiner Einführung einen Überblick über das Forschungsgebiet des Bio-inspired Computing und ordnet es in den aktuellen Forschungskontext ein. Michael Wagner und Lars Müller untersuchen anschließend emergente Systeme, wie Ameisen- oder Bienenkolonien, zeigen deren Nutzen für die Computerwelt auf und diskutieren die Möglichkeiten der Entwicklung solcher Systeme. Carsten Schiemann gibt im Anschluss einen Überblick über das Gebiet der evolutionären Algorithmen inspiriert durch die Evolutionstheorie inklusive ihrer Entstehungsgeschichte und ihrer heutigen Bedeutung. Sebastian Kern und Benedikt Gleich zeigen anschließend, wie mit Hilfe von zellularen Automaten komplexe, dynamische Systeme, wie beispielsweise die Verkehrsflüsse auf Autobahnen, effizient modelliert und simuliert werden können. Sebastian Paulus und Sayf Al-Sefou geben danach einen Einblick, wie sich durch künstliche neuronale Netze die Lernvorgänge unseres Gehirns abbilden, simulieren, besser verstehen und in der Praxis anwenden lassen. In die Theorie künstlicher Immunsysteme führen anschließend Rebekka Mayr und Wolf Fischer ein, indem sie erklären, welche Eigenschaften von biologischen Immunsystemen auf Computersysteme übertragen werden können und welchen Nutzen dieses vorgehen bringt. Markus Henze grenzt zum Abschluss des ersten Teils das Forschungsgebiet Bio-inspired Computing gegenüber verwandten Forschungsgebieten, wie Artificial Life, DNA Computing und Quantum Computing, noch genauer ab. Im Gegensatz zu biologisch inspirierten Systemen wurde im zweiten Teil des Seminars das eher technisch inspirierte Gebiet des Grid Computing untersucht. Auch Grids sind komplexe, dynamische Systeme, in denen Herausforderungen vor allem durch eine stark heterogene Umgebung entstehen. Grid Computing ermöglicht die Vernetzung und gemeinsame Nutzung von Ressourcen verschiedenster Art und Herkunft. Zu Beginn gibt Christian Kathan eine Einführung in dieses Thema, indem er die Entstehungsgeschichte des Grid Computing vorstellt und wichtige Grundlagen solcher Systeme erklärt. Daraufhin analysiert Ferry Hielscher etablierte Middleware-Lösungen, die Basisfunktionalitäten für komplexere Anwendungen im Grid-Umfeld bereitstellen. Marc Gritsch erläutert anschließend verschiedene Ansätze, wie geeignete Ressourcen innerhalb eines Grids ausfindig gemacht und überwacht werden können. Danach stellt Carsten Angeli grundlegende Techniken aus dem Gebiet des Semantic Web vor und untersucht, inwiefern diese bereits Einzug in Grid-Systeme gefunden haben. Wie Ressourcen mit Hilfe solcher Techniken semantisch beschrieben werden und so auch das

3 III Auffinden von Ressourcen optimiert werden kann, wird schließlich von Sandra Jobst untersucht. Auch wenn diese beiden Teilgebiete auf den ersten Blick ziemlich konträr anmuten, bleibt es spannend abzuwarten, wie, wann und wo sie letzten Endes konvergieren. Januar 2007 Die Editoren

4 Inhaltsverzeichnis I Biologically-inspired Computing Einführung in Biologically-inspired Computing Emergent Systems - inspirations and design Evolutionäre Algorithmen Zellulare Automaten Neuronale Netze Künstliche Immunsysteme Artificial Life, DNA Computing und Quantum Computing II Grid Computing Einführung in Grid Computing Grid Middleware Service Discovery im Grid Grundlagen des Semantic Grid Semantic-enabled Grid Services

5 Teil I Biologically-inspired Computing

6

7 Einführung in Biologically-inspired Computing Florian Krebs Universität Augsburg Zusammenfassung Biologically-Inspired Computing versucht effiziente Methoden und Strukturen aus natürlichen Vorbildern zu gewinnen um reale Probleme zu lösen. Die Grundidee hierbei ist, dass durch die Evolution im Laufe von Jahrmillionen hocheffiziente Systeme in der Natur entstanden sind. Im Folgenden sollen einige dieser Methoden betrachtet und der Begriff Biologically-Inspired Computing in den aktuellen Forschungskontext eingeordnet werden. 1 Einleitung Die Natur und ihre Ressourcen waren schon immer die wichtigste Lebensgrundlage des Menschen. Die Beobachtung und Anpassung der Natur ermöglichte viele neue Entdeckungen, die dazu führten, dass der Mensch alltägliche sowie auch lebensbedrohliche Probleme aus dem Weg räumen konnte. Dem neuzeitlichen Philosophen Francis Bacon schreibt man das Zitat Wissen ist Macht zu. Hinterfragt man dies aber genauer, erkennt man, dass Bacon mit dieser These jedoch meint die Natur nämlich lässt sich nur durch Gehorsam bändigen. In seinem wissenschaftstheoretischen Programm schlägt er eine genau und methodische Untersuchung der Natur und ihrer Wirkungszusammenhänge vor. Bacons Perspektive 1 war sogar noch etwas extremer. Denn nach Bacon kann wirklich Neues nicht vom Menschen erzeugt werden, dieser nimmt vielmehr nur die Rolle des Bewegers ein, die Natur aber ist Vollender. Denn er vermag [...] nichts anderes, als dass er die von der Natur gegebenen Körper einander näher bringt oder sie voneinander entfernt; das übrige vollendet die Natur von innen her. Obwohl Bacon damals noch keine Vorstellung von rechnergestützten Systemen besaß, lässt sich das Credo Bacons auch in Natural Computing wiedererkennen. Die Natur soll als Quelle von Inspiration genutzt werden um komplexe Problemstellungen zu meistern. Natural Computing vereint diesen Ansatz mit der modernen Informatik und verfolgt dabei drei Hauptziele. Zum Ersten sollen natürliche Phänomene im Rechner nachgebildet und simuliert werden können, um innere Zusammenhänge und ihre Funktionsweisen zu verstehen. Daraus sollen im zweiten Teilziel von Natural Computing, durch geeignete Abstraktionen und Vereinfachungen, effiziente Verfahren zur Lösung von komplexen Problemstellungen erarbeitet werden. Abschließend soll hier noch der dritte Aspekt von 1 in seinem Hauptwerk Novum Organon

8 4 F. Krebs Natural Computing genannt werden, der sich damit beschäftigt natürliche Materialien auf ihre Tauglichkeit, als neue Rechner Plattformen zu untersuchen. Kurz gesagt ist also Natural Computing ein Forschungsfeld welches sich mit Lösungen auseinander setzt die der Natur entlehnt worden sind. Der zweite Aspekt von Natural Computing, nämlich Biologically-Inspired Computing oder auch Computing inspired by nature, soll im Folgenden genauer beleuchtet werden. Es werden einige jetzt schon existierende Verfahren exemplarisch betrachtet, um deren Möglichkeiten und Grenzen aufzuzeigen. Außerdem soll durch den Vergleich mit anderen Subdisziplinen der modernen Informatik der Begriff des Biologically-Inspired Computing von diesen abgrenzt und in eine Begriffshierarchie eingegliedert werden. 2 Biologically-inspired Computing Der Grundgedanke von Biologically-inspired Computing lässt sich mit einigen kurzen Worten beschreiben. Die Natur ist sehr erfolgreich beim Lösen von komplexen Problemstellungen, denn der Überlebenstrieb in Organismen erfordert oft komplizierte Strategien und Strukturen, die im Normalfall nicht bewusst sind. Diese sind durch Evolution entstanden und oft hochspezialisiert. Die Entdeckung und Anpassung für die Anwendung dieser Methoden und Organisationsformen, sind die Herausforderungen denen sich Biologically-inspired Computing stellt. 2.1 Geschichte Die Idee des Biologically-Inspired Computing ist nicht ganz neu hat Alan Turing hat in dem Paper Intelligent Machinery neuronale Architekturen beschrieben, die er unorganisierte Maschinen nannte. Das Paper wurde aber von seinem Vorgesetzten als ein Aufsatz eines Schülers abgetan. Im seinem späteren Aufsatz Computing Machinery and Intelligence, der 1950 erschien, schlägt Turing vor, dass natürliche Auslese und Evolution möglicherweise Mechanismen darstellen, die zu intelligenten System führen können. John Holland veröffentlichte 1975 sein Buch Adaptation in Natural and Artificial Systems. Dort beschrieb er das Grundkonzept des genetischen Algorithmus. Neuronale Netze wurden zuerst um 1962 mit Rosenblatts Perzeptrons erwähnt. Nach einigen Rückschlägen, bei denen unter andern Marvin Minsky und Seymour Papert gezeigt haben, dass neuronale Netze gewisse Unzulänglichkeiten besaßen, wurden sie 1982, durch John Hopfields Thesen über Association Networks, wieder aktives Subjekt der Forschung setzte sich Craig Reynolds mit der Art und Weise wie Vogelschwärme sich koordinierter Weise bewegen auseinander. Dabei fand er drei einfache Regeln aus denen dieses Verhalten entsteht. Diese Regeln boten die Basis für eine Software, die entwickelt wurde, um im Computer simulierte Fledermausschwärme und Pinguine, in dem 1992 erschienenen Tim Burton Film Batman Returns, darzustellen. Marco Dorigo stellte 1992 in seiner Doktorarbeit ein Verfahren vor, um diskrete Optimierungsprobleme zu lösen. Dieses Verfahren, genannt Ant colony Optimization, war an das Verhalten von Ameisen bei

9 Einführung in Biologically-inspired Computing 5 der Nahrungssuche angelehnt. Die Beobachtung, dass viele sozial organisierte Insekten zusammenarbeiten um Probleme zu lösen, wie zum Beispiel der Bau eines Nests von Wespen, führte zu der Entwicklung von Schwarm basierter Software. Kennedy und Eberhart entwickelten 1995 die Partikelschwarmoptimierung, bei der eine große Anzahl an Partikeln nach einer optimalen Lösung innerhalb eines Problemraums suchen. Forschung im Gebiet des Sozialverhaltens von Insekten, wie zum Beispiel Termiten (Pierre-Paul Grassé, 1959) und Ameisen (Jean-Louis Deneubourg, 1989) beeinflussten eine große Anzahl an Wissenschaftlern, wie beispielsweise Bonabeau, Dorigo, und Theraulaz am Santa Fe Institut. Diese veröffentlichten 1999 Swarm Intelligence: From Natural to Artificial Systems, in dem die emergenten Problemlösungsfähigkeiten von großen Gruppen von einfachen, interagierenden Agenten, wie Ameisen, Bienen, Termiten und Wespen beschrieben wurden. (vgl. [7]) 2.2 Grundlagen Computing Inspired by Nature ist also von allen Facetten des Natural Computing die älteste und beliebteste. Sie entwickelte sich durch zwei Hauptziele. Einerseits wollten Wissenschaftler Modelle und Simulationen natürlicher Systeme entwickeln. Das gemeinsame Ziel in dieser Richtung ist es theoretische Modelle für bestimmte Arbeitsweisen zu finden, um diese dann in rechnergestützten Systemen nachzubilden. Diese Modelle sollen einen tieferen Einblick in das simulierte, natürliche Phänomen liefern. Außerdem kann sie bei der Analyse, dem Entwurf und der Auswertung von Experimenten behilflich sein. Andererseits liegt das Hauptaugenmerk von Computing Inspired by Nature, im Kontext von Natural Computing, auf der Anwendung als auf der Erstellung von theoretischen Modellen. Zwar beinhaltet auch dies die Betrachtung von natürlichen Phänomenen, Prozessen und theoretischen Modellen, aber das Ziel ist Lösungsverfahren für Probleme zu finden, die bis jetzt nicht oder nur unbefriedigend von klassischen Verfahren wie linearer, nicht-linearer und dynamischer Programmierung lösbar waren. Man spricht in diesem Fall auch von Biologically Motivated Computing, Computing with Biological Metaphors und Biologically-inspired Computing. Da sich Biologically-inspired Computing im Normalfall auf die Lösung von Problemen richtet, beschäftigt sich kaum ein Ansatz mit der Formulierung eines genauen Modells des betrachteten natürlichen Phänomens. Oft werden stark abstrahierte Modelle eingesetzt, die auch Metaphern genannt werden. Diese sollen bestimmte Eigenschaften und Mechanismen des betrachteten Systems nachahmen. Diese entstehen durch algorithmische und mathematische Optimierung des zugrunde liegenden Modells. Die Ergebnisse dieses Optimierungsprozess haben oft nicht mehr viele Gemeinsamkeiten mit ihren natürlichen Vorbildern. Einige Beispiele (siehe Abbildung 1), auf die hier exemplarisch eingegangen wird, sind Emergente Systeme (Schwarm Intelligenz), Evolutionäre Algorithmen, Künstliche Neuronale Netze, Künstliche Immunsystem und Zellulären Automaten. (vgl. [4])

10 6 F. Krebs Biologically-Inspired Computing Natürliches Vorbild genetic algorithms biodegradability prediction cellular automata emergent systems neural networks artificial immune systems rendering (computer graphics) lindenmayer systems membrane computers excitable media Evolution Biologischer Abbau Leben Ameisen, Bienen, Staaten bildende Insekten Nervensystem und Gehirn Menschliches Immunsystem Musterung von Tierhäuten, Vogelfedern, Schneckengehäusen und Bakterienkolonien Pflanzenstrukturen Zellinnere molekularbiologische Prozesse Waldbrände, La-Ola-Welle, etc Abbildung 1. Liste Biologically-Inspired Computing und Natürliches Vorbild (Quelle: [18]) 2.3 Schwarm Intelligenz Schwarm Intelligenz ist eine Problemlösungstechnik, die sich als natürliches Vorbild das kollektive Verhalten in flexiblen, robusten, dezentralen und selbstorganisierenden Systemen nimmt. Flexibilität bedeutet in diesem Kontext, dass ein System auf interne Störungen und externe Anforderungen reagieren kann. Robustheit wird erreicht wenn Aufgaben an das System abgeschlossen werden können, obwohl einige Einzelindividuen dabei scheitern. Ein selbstorganisierendes System liegt vor, wenn die Lösungswege emergenter Natur sind, anstatt starr vorgegeben zu sein. Deshalb werden solche Systeme auch als emergente Systeme bezeichnet.(vgl [2]) Normalerweise sind Schwarm Intelligenz Systeme aus einer Population von einfachen Agenten aufgebaut. Jeder Agent besitzt ein einfaches Regelwerk das sein Handeln bestimmt. Oft führt die Interaktion miteinander zu einem, auf globaler Ebene, emergenten Systemverhalten. Beispiele für diese Art von Systeme sind Ameisenkolonien, Vogelschwärme und Tierherden. Exemplarisch soll nun das Verhalten von Vogelschwärmen als emergentes System modelliert werden. Das Regelsystem für jeden Agenten besteht aus den drei folgenden Regeln. Separation Ausrichtung Kohäsion Abbildung 2. Regelsystem für Flocking (Quelle: [13])

11 Einführung in Biologically-inspired Computing 7 Separation Steuere um Ansammlungen von benachbarten Schwarmmitgliedern auszuweichen. Ausrichtung Steuere um deine Richtung an den Mittelwert der Richtungen der benachbarten. Schwarmmitglieder anzugleichen. Kohäsion Steuere um deine Richtung an den Mittelwert der Positionen der benachbarten Schwarmmitglieder zu erreichen. Dieses Regelsystem scheint zuerst widersprüchlich zu sein, wenn man aber die Regeln entsprechend gewichtet, entwickelt sich das gewünschte Verhalten. (vgl. [13]) Ein anderer Ansatz der Schwarm Intelligenz sind Algorithmen für Suche und Optimierung, die auf Kulturen oder Soziokognition basieren. Ein Beispiel hierfür ist Ant Colony Optimization. Dieser Algorithmus versucht möglichst kurze Wege durch Graphen zu finden (vgl. Travelling Salesman Problem). Die Verhaltensweise von Ameisen bei der Nahrungssuche wird hierfür zugrunde gelegt. Der Algorithmus lässt sich folgendermaßen beschreiben. Die Ameisen wandern zunächst zufällig umher. Sobald eine Ameise aber Nahrung findet kehrt sie zu ihrem Nest zurück und hinterlässt dabei einen Pheromonpfad zur Nahrungsquelle. Wenn nun eine andere Ameise einen solchen Pfad findet, wird sie wahrscheinlich diesem Pfad folgen. Falls sie am Ende des Pfads Futter findet wird sie zum Nest zurückkehren und auf dem Weg den alten Pfad durch erneute Freisetzung dieses Pheromons verstärken. Je länger ein solcher Pfad unbenutzt bleibt, desto unattraktiver wird dieser, da die Pheromone über die Zeit an Intensität verlieren. Deshalb ist auch ein kurzer Pfad attraktiver als ein Längerer, da die Zeit, die eine Ameise braucht diesen abzulaufen, kürzer ist als für einen langen Weg. Der Verlust an Intensität der Pheromons und damit der Attraktivität hat zur Folge, dass der Algorithmus nicht in einem lokalen Optimum stecken bleibt. Wenn also eine Ameise einen kürzeren Pfad zu einer Nahrungsquelle findet, werden andere Ameisen diesem wahrscheinlich folgen und durch die positive Verstärkung des Pfades laufen schließlich alle Ameisen auf dem gleichen Pfad. (vgl. [15]) 2.4 Evolutionäre Algorithmen Evolutionäre Algorithmen (EA) sind ein Teilgebiet von Evolutionary Computing. Im Allgemeinen kann man von populationsbasierten, Optimierungsalgorithmen sprechen. Das natürliche Vorbild von Evolutionären Algorithmen ist die Evolution wie man sie in der Natur vorfindet, mit ihren Operationen der Reproduktion, Rekombination, Mutation, Natürlicher Auslese und dem Überleben der am Besten angepassten Individuen. Lösungskanidaten für das Optimierungsproblem spielen dabei die Rolle der Individuen einer Population. Die Güte der Anpassung wird dabei von einer fitness Funktion beschrieben, die ermöglicht eine gewisse Individuen auszuwählen. Sobald dieses System initialisiert ist beginnt die Evolution mit den oben genannten Operationen. (vgl. [4]) Reproduktion bedeutet in dieser Analogie, dass sich nur die am besten angepassten Lösungskanidaten an dem Aufbau der nächsten Generation beteiligt

12 8 F. Krebs werden. Dabei erzeugen meist je zwei Individuen zusammen durch Vererbung ihres Genoms neue Kandidaten für die darauffolgende Generation an Individuen. Ihre Genominformation wird dabei zu verschiedenen Teilen miteinander neu kombiniert. Durch Mutation ermöglicht sich bei jeder neuen Generation, dass ein kleiner Teil des kodierten Genoms sich zufällig verändern kann. So wird sichergestellt, dass neue Lösungsmöglichkeiten, die zu Beginn nicht im Genpool vorhanden waren über die Zeit entstehen können. Die natürliche Auslese findet am Ende jeder Generation statt und ermöglicht es nur einer begrenzten Zahl an Individuen sich zu reproduzieren. (vgl. [21]) Prinzipiell gibt es vier Haupttypen von Evolutionären Algorithmen. Genetische Algorithmen (GA) sind ein Werkzeug zur Suche, das verwendet wird um vollständige oder angenäherte Lösungen zu Optimierungs- und Suchproblemen zu finden. Im Fall der Genetischen Algorithmen sind die Individuen die wirklichen Lösungskandidaten für eine spezifische Problemstellung, die Evolution durchlaufen um bessere Lösungen zu finden. Meistens werden die Lösungen als Binärstrings aus Einsen und Nullen dargestellt. Der Evolutionsprozess beginnt begin GA g:=0 f generation counter g Initialize population P(g) Evaluate population P(g) f i.e., compute fitness values g while not done do g:=g+1 Select P(g) from P(g.. 1) Crossover P(g) Mutate P(g) Evaluate P(g) end while end GA Abbildung 3. Genetischer Algorithmus in Pseudocode (Quelle: [12]) mit einer zufällig erzeugten Startpopulation und schreitet dann generationsweise fort. In jeder Generation wird die Güte der Lösung durch eine fitness Funktion bestimmt. Danach werden einige Individuen nach ihrer fitness ausgewählt und Mutation und Crossing-Over bei der Reproduktion modifiziert, um eine neue Population zu erzeugen. Der Algorithmus terminiert, sobald eine Lösung erzeugt wurde die einer bestimmten Anforderung an die Güte der Lösung genügt. Andere Bedingungen zur Terminierung stellen eine Maximalzahl an Generationen oder die Erkenntnis, dass die Lösungen sich nach wiederholten Anwendungen des Algorithmus nicht mehr verbessern.(vgl.[24] und [8]) Einen anderen Ansatz von Evolutionären Algorithmen stellen Genetische und Evolutionäre Programmierung (GP und EP) dar. Ähnlich zu Genetischen Algorithmen werden wieder Lösungskandidaten erzeugt und diese mit den oben beschriebenen Methoden weiterentwickelt. Der Unterschied besteht nun darin, dass

13 Einführung in Biologically-inspired Computing 9 bei Evolutionärer und Genetischer Programmierung versucht wird Programme zu erzeugen, die bestimmte Anforderungen erfüllen sollen. Bei Evolutionärer Programmierung ist die Struktur des Programms fest vorgegeben und der Evolutionsprozess bezieht sich nur auf die numerischen Parameter. Genetische Programmierung erlaubt auch die Veränderung der Struktur des Programms. Das Genom eines Programms wird meist in einer Baumstruktur dargestellt, wobei jeder Knoten, der kein Blatt ist, eine Operation ist und jedes Blatt ein Terminal ist. Durch diese Struktur ist es wieder möglich Verfahren wie Crossing-Over und Mutation leicht und effizient zu implementieren. Als Randbemerkung soll, als neueste Entwicklung auf diesem Gebiet, Meta-Genetic Programming erwähnt werden, welches versucht genetische Programme durch Genetische Programmierung selbst zu erzeugen.(vgl. [25] und [22]). Ein weiterer Teilaspekt von Evolutionären Algorithmen sind Evolutionsstrategien (ES). Evolutionsstrategien sind eine Art von Optimierungsalgorithmen bei denen sich an das biologische Vorbild der Evolution nur solange gehalten wird, wie es für das zu lösende Problem nützlich ist. Das Ziel ist also eine Strategie zu entwickeln, die für die Lösungsfindung in einer bestimmten Problemdomäne optimal zugeschnitten ist. Wie schon eingangs erwähnt umfassen typische Evolutionsstrategien Initialisierung, Selektion, Rekombination, Mutation, Bewertung und Generierung von neuen Generationen. Die Besonderheit von Evolutionsstrategien liegt darin, dass sich im Gegensatz zu anderen Evolutionären Algorithmen dieser sich selbst dynamisch anpassen kann. Zum Beispiel ist es möglich Evolutionsstrategien zu erzeugen, bei denen sich die Stärke, wie eine Mutation einen Wert verändert sich dynamisch anpasst. Ein anderes Beispiel ist die so genannte (1 + 1)-Evolutionsstratgie. Bei dieser besteht die gesamte Population aus einem einzigen Individuum. Aus diesem wird ein Nachkomme erzeugt, der durch Mutation verändert wird. Als nächste Generation wird der Kandidat, der nach der fitness Funktion besser angepasst ist ausgewählt. Zwar ist diese Strategie ein sehr einfaches Besipiel, trotzdem beschreibt sie gut was Evolutionsstrategien sind. (vgl. [23] und [14]) Als letzten Aspekt sollen Lernende Classifier Systeme (LCS) vorgestellt werden. Lernende Classifier Systeme wurden als Erstes von John Holland beschrieben. Nach ihm besteht ein Lernendes Classifier System aus einer Population von binären Regeln auf denen ein Genetischer Algorithmus angewendet wird, um die besten Regeln zu finden. Aber anstatt einer fitness Funktion wird eine Reinforcement-Learning Technik eingesetzt um den Nutzen der Regel zu bestimmen. Lernende Classifier Systeme können in zwei Kategorien eingeteilt werden. Einerseits gibt es Pittsburgh-type LCS, welche Populationen von Regelsystemen verwenden um das am besten geeignete Regelsystem zur Klassifikation zu finden. Andererseits gibt es Michigan-style LCS in denen nur eine Population von Regeln existiert und versucht wird durch die Anwendung eines genetischen Algorithmus die besten Klassifizierer zu finden. Am Rande soll bemerkt werden, dass neuere Entwicklungen auf diesem Gebiet statt den bisher binären Regeln auch Populationen von künstlichen neuronalen Netzen verwenden. (vgl. [26] und [1])

14 10 F. Krebs 2.5 Künstliche Neuronale Netze Künstliche Neuronale Netze (Artificial Neural Network - ANN) entstanden hauptsächlich durch das erste mathematische Modell eines Neuron, das 1943 von McCulloch und Pitts vorgestellt wurde. Sie können als Informationsverarbeitungssysteme definiert werden, die an Anlehnung an Nervensysteme entwickelt wurden. Meist dient als natürliches Vorbild das menschliche Gehirn. Außerdem wird besonderes Augenmerk auf Problemlösung gelegt. (vgl. [4]) Als kleinste funktionale Einheit von neuronalen Netzen fungieren meist Perzeptrons (siehe Abbildung 4). Ein Perzeptron besteht aus n Eingängen die meist mit x 1, x 2... x n bezeichnet werden. Der Wertebereich dieser umfasst meist das Intervall [0, 1]. Außerdem wird jeder Eingang mit einem Gewicht ω 1, ω 2... ω n belegt. Der so genannte Netto Input eines Perzeptrons berechnet sich aus der gewichteten Summe aller Eingänge und der entsprechenden Gewichte. Als Aktivierungsfunktion werden meist Schwellwertfunktionen oder sigmoide Fuktionen verwendet, die über den Ausgabewert des Perzeptrons entscheiden. Diese Ausgaben liegen wieder aus dem Intervall [0, 1]. Durch das Zusammenschalten mehrere Abbildung 4. Perzeptron (Quelle: [11]) Perzeptrons in einem Netzwerk erhält man ein Neuronales Netz. Das Netz besteht im Allgemeinen aus einem Input-Layer, mehrern Hidden-Layers und einem Output-Layer. Es wird generell jedes Neuron eines Layers mit allen Neuronen des darauf folgenden Layers verknüpft. (siehe Abbildung 5) Initial werden die Gewichte für die einzelnen Verbindungen zufällig, in gewissen Grenzen, bestimmt. (vgl. [8]) Um ein neuronales Netz einzusetzen, muss es vorher trainiert werden. Übrigens ist die Beschaffung oder Erzeugung der Trainingsdaten für Neuronale Netze einer der größten Nachteile dieser, da eine große Menge an Daten vorhanden sein muss, um ein verlässliches System zu erhalten. Für das eigentliche Training existieren mehrere Verfahren. Die einfachste ist die Hebbsche Lernregel (nach Hebb 1949). Sie basiert auf der einfachen Grundüberlegung, das je häufiger zwei Neuronen gleichzeitig aktiv sind, desto bevorzugter werden sie aufeinander reagieren. ω ij = ηa j o i Hierbei bezeichnet ω ij die Anpassung des Gewichts, also die Stärke des Einflusses, von Neuron i zu Neuron j. Die Lernrate oder auch Momentum wird

15 Einführung in Biologically-inspired Computing 11 Abbildung 5. Beispiel für neuronales Netz (Quelle: [11]) durch η ausgedrückt, die vorher gewählt werden muss. Es regelt die Stärke der Anpassung des neuronalen Netzes. a j ist die Aktivierung von Neuron j und o i die Ausgabe von Neuron j. Diese Berechnung wird in jedem Lernschritt für alle Neuronen des Netzwerkes durchgeführt und führt so, bei konsistenten Trainingsdaten, zu einer Approximierung der gesuchten Funktion. (vgl. [8]) 2.6 Artificial Immune Systems Ahnliche wie bei Neuronalen Netzen ist, nach de Castor und Timmis, ein Künstliches Immunsystem ein adaptives System, das von der theoretischen Immunologie und von beobachtbaren Immunfunktionen, -prinzipien und -modellen inspiriert ist und auf das Problemlösen angewendet wird. Insofern gibt es einige Eigenschaften, die in künstlichen Immunsystemen vorhanden sein sollten. Ein künstliches Immunsystem muss daher Verfahren zur Mustererkennung verfügen, da das Andocken von Antigenen, das Erkennen von molekularen Signale (z.b. Lymohokine) und die Bindung spezieller Proteine an der Zelloberfläche nachgebildet werden muss. Ein damit verwandter Aspekt, ist dass ein solches System die Möglichkeit zur Unterscheidung von eigenem und fremdem Gewebe möglich ist. Eine weitere wichtige Eigenschaft ist die Austauschbarkeit, die erfordert, dass einzelne Zellen oder Moleküle nicht wesentlich für das Funktionieren des Immunsystems sind. Außerdem sollen künstliche Immunsysteme autonom arbeiten, so dass es keine zentrale Steuerung gibt und das ein Eingriff oder eine Wartung von Außen nicht notwendig ist. Weiterhin darf es keine geschützte Schicht geben, die nicht angegriffen werden darf, sondern alles, auch das Immunsystem selbst, kann Ziel eines Angriffs werden. Damit ist die Notwendigkeit für eine vielschichtige, kooperativ sowie kompetitiv arbeitende Architektur gegeben, um ein Höchstmaß an Sicherheit zu erreichen. Die Entdeckung von Anomalien, und damit von unbekannten Pathogenen, ist ein weiterer sicherheitsrelevanter Mechanismus, der möglichst robust und fehlertolerant sein sollte. Bei Störungen, zum Beispiel durch einen Angriff auf das Immunsystem oder Erschöpfung,

16 12 F. Krebs darf das System nicht funktionsunfähig werden. Lediglich seine Leistungsfähigkeit darf sich vermindern. Als einer der wichtigsten Punkte muss ein künstliches Immunsystem in der Lage sein zu lernen und sich zu erinnern, um sich an Antigene direkt anzupassen und ein Reservoir an ehemaligen Antikörpern zu Verfügung zu haben, um im Falle eines Wiederauftretens schnell reagieren zu können. (vgl. [3]) Abbildung 6. CLONAG von de Castro und von Zuben (Quelle: [5]) All diese Eigenschaften fordern also ein Höchstmaß an Selbstorganisation, um ein System dieser Komplexität kontrollierbar zu halten. Eines der Verfahren denen dabei besondere Beachtung zukommt ist die Klonale Selektion. Im Folgenden soll nun exemplarisch untersucht werden wie diese sich auf Künstliche Immmunsysteme übertragen lässt. Die klonale Selektion ist dafür veranwortlich, dass das Immunsystem auf Antigene antworten kann bevor es sie jemals angetroffen hat. Dabei velässt sich das Immunsystem auf die vorherige Erzeugung einer sich voneinader stark unterscheidenen Population von B- und T-Zellen. Bei der klonalen Selektion vermehren sich B- und T-Zellen als Reaktion auf Antigenen. Aber nur die B-Zellen mutieren auch. Bei der Modellierung von künstlichen Immunsystemen werden nur die B-Zellen simuliert. Zwei Merkmale sollten in einem Algorithmus zur klonalen Selektion vorhanden, denn so unterscheidet er sich von der bloßen Adaption eines evolutionären Algorithmus. Erstens soll die Vermehrungsrate der Immunzellen proportional zu ihrer Affinität zu den Antigenen sein und zweitens soll die Mutiationsrate der Immunzellen umgekehrt proportional zu der oben genannten Affinität sein. Der Algorithmus CLONALG

17 Einführung in Biologically-inspired Computing 13 von de Castro und von Zuben hat diese Merkmale, er erzeugt zusätzlich sogar Gedächtniszellen (siehe Abbildung 6). (vgl. [5]) 2.7 Zelluläre Automaten Zelluläre Automaten sind wohl eines der abstraktesten Modelle die in Bereich des Biologically-Inspired Computing hervorgegangen sind. Deshalb folgt zunächst eine Beschreibung der Funktionsweise eines Zellulären Automaten, um danach ein Anwendungsbeispiel zu beleuchten. Zelluläre Automaten beschreiben ein diskretes Modell, welches aus einem unendlichen, gleichförmigen Gitternetz von Zellen besteht. Jede dieser Zellen ist genau in einem von endlich vielen Zuständen. Das Gitternetz kann jede endliche Anzahl an Dimensionen haben. Neben dem Raum ist auch die Zeit diskretisiert und der Zustand einer Zelle zum Zeitpunkt t lässt sich als eine Funktion der Zustände von endlich vielen anderen Zellen zum Zeitpunkt t 1 beschreiben. Diese Nachbarzellen,auch Nachbarschaft genannt, sind eine endliche Auswahl von Zellen die sich, relativ zu der betrachteten Zelle, an bestimmten Positionen aufhalten. Jede Zelle besitzt die gleichen Regeln um sich abhängig von ihrer Umgebung zu verändern. So ergibt sich jedes mal, wenn diese Regeln auf das Gitternetz angewendet werden eine neue Generation von Zellen. Im Folgenden soll dies nun an einem Beispiel veranschaulicht werden. Aktuelles Muster Neuer Zustand für mittlere Zelle Abbildung 7. Definition des Rule 110 Zellulärer Automat (Quelle: [20]) Abbildung 8. Ausgabe eines Rule 110 Zellulären Automaten (Quelle: [20])

18 14 F. Krebs Der einfachste nicht triviale Zelluläre Automat ist ein eindimensionales System mit nur zwei Zuständen pro Zelle. Die Nachbarn der Zelle sind, wie nach intuitiver Vorstellung, jeweils der linke und rechte Nachbar der betrachteten Zelle. Durch eine Zelle und ihre Nachbarn, ergibt sich für dieses lokale System 2 3 = 8 mögliche Muster. Außerdem gibt es dann insgesamt 2 8 = 256 mögliche Regeln. Diese möglichen Zellularen Automaten werden nach der Wolfram Notation benannt. Der Name eines Zellularen Automaten ist die Dezimalzahl, die seine Regel in binärer Notation beschreibt. Regel 110 zum Beispiel ergibt sich in dem man die untere Zeile in eine Dezimalzahl umrechnet = (vgl. Abbildung 7) Gelesen wird das Regelsystem indem man das aktuelle Muster mit der Tabelle abgleicht und dann den Status der mittleren Zelle auf den angegebenen Wert setzt. Führt man dies für einige Generationen aus ergeben sich Muster wie zum Beispiel in Abbildung 8. Ein mögliches Anwendungsgebiet für Zelluläre Automaten ist pseudorandom number generation. Stephen Wolfram schlug 1990 vor die mittlere Spalte eines Rule 30 Zellulären Automaten zur Erzeugung von Zufallszahlen zu verwenden. Zwar besteht der Automat alle Standardtests für Zufälligkeit der Zahlen mit einigen bestimmten Eingabmustern. Aber nicht jedes Eingabemuster erzeugt ein zufälliges Verhalten. Ein triviales Beispiel hierfür ist ein Eingabemuster, das nur aus 0 besteht. Trotz Allem sind aber Zelluläre Automaten aktueller Forschungsgegenstand und man erhofft sich von ihnen die Möglichkeit komplexes emergentes Verhalten aus Einfachen Regelsystemen zu generieren. Beispielsweise kann man die Belousov-Zhabotinsky Reaktion durch Zelluläre Automaten simulieren. (vgl. [20] und [12]) 3 Einordnung und Abgrenzung von Biologically-inspired Computing Biologically-inspired Computing ist eines der aktuellsten Forschungsfelder der modernen Informatik und beschäftigt sich, wie schon erwähnt, mit der Natur entliehenen Lösungsverfahren. Dies allein ermöglicht aber keine genaue Einordnung und Abgrenzung zu anderen, ähnlichen Begriffen aus dem aktuellen Forschungskontext. Insofern wird zuerst versucht, über die Begriffe Bionik und Natural Computing, Biologicallyinspired Computing in eine Art Begriffshierarchie einzuordnen. Im Folgenden soll es dann exemplarisch mit Begriffen wie Bioinformatik, Computational Biology, Neuroinformatik, Biomorphic Robotics, Autonomic Computing und Machine Learning verglichen werden um Berührungspunkte und Überschneidungen mit anderen Disziplinen zu erkennen. Damit soll am Ende herausgearbeitet werden wo Gemeinsamkeiten aber auch Unterschiede zwischen verschiedenen Disziplinen bestehen.

19 Einführung in Biologically-inspired Computing Natural Computing Wie schon einleitend erwähnt, ist Natural Computing der direkte Überbegriff zu Biologically-inspired Computing. Natural Computing setzt sich aus den drei Computing with natural materials Natural Computing Computing inspired by nature Simulation of natural phenomena in computers Abbildung 9. Natural Computing Subdisziplinen Biologically-inspired Computing, Computing with natural materials und Simulation and Emulation of natural phenomena in computers zusammen. (Siehe Abbildung 9) Der Teilbereich Computing with natural materials beschäftigt sich mit der Erschaffung von neuen Hardwareplattformen, wie Quantum Computing und DNA Computing, die durch ihre natürlichen physikalisch oder biologischen Eigenschaften das rechnen auf dem Computer von Grund auf neu definieren sollen. Simulation and Emulation of natural phenomena in computers versucht dagegen natürliche Prozesse möglichst funktions- und modellgetreu auf Computersystemen zu beschreiben. Dies ist im Allgemeinen dem Biologically-Inspired Computing sehr ähnlich, da nach einer erfolgreichen Simulation eines natürlichen Systems versucht werden kann die elementaren Wirkungszusammenhänge zu entdecken und diese für Anwendungen nutzbar zu machen. (vgl. [4]) 3.2 Bionik Einen noch umfassenderen Überbegriff stellt Bionik dar, der auch unter anderen Begriffen, wie biomimetics, biognosis, biomimicry oder bionical creativity engineering bekannt ist. Der Name Bionik wurde 1960 auf eine Konferenz in Dayton von Jack E. Steele geprägt und beschränkt sich nicht wie Biologically-inspired Computing auf Verfahren zur Informationsverarbeitung. Der Grundgedanke hinter Bionik ist, ähnlich wie bei Biologically-inspired Computing, dass der evolutionäre Druck, der auf alle Spezies eines Ökosystems wirkt, zu hocheffizienten und stark optimierten Systemen führt. Wenn diese Systeme entdeckt werden und entsprechend abstrahiert werden ergeben sich oft äußerst effiziente Anwendungen dieser natürlichen Vorbilder. Ein klassisches Beispiel für eine Anwendung von Bionik ist der Klettverschluss, der sich am Vorbild der Kletten orientiert. Aber auch der so genannte Lotus Effekt, der die Oberfläche der Lotuspflanze vor Befall

20 16 F. Krebs durch Mikroorganismen schützt und Winglets an den Flügeln von Flugzeugen sind Ergebnisse von Bionik. Die prinzipielle Vorgehensweise bei bionischen Ver- Abbildung 10. Bionisches Denken in sieben Schritten (Quelle: [11]) fahren, also auch bei Biologically-Inspired Computing, ist immer gleich. Zuerst wird die biologische Funktion des natürlichen Phänomens mit der Funktion der Lösung verglichen. Sind diese ähnlich zueinander werden dann die biologischen Randbedingung auf ihre sinnvolle Anwendbarkeit in dem konstruierten System geprüft. Wenn diese sinnvoll Anwendbar sind wird zuletzt die Güte der natürlichen Lösung mit der möglichen Güte des künstlichen Systems verglichen. Erst wenn alle drei dieser Punkte zutreffen ist der Einsatz einer bionischen Lösung sinnvoll (siehe Abbildung 10). (vgl. [16] und [10]) 3.3 Bioinformatik und Computational Biology Im Gegensatz zu den oben genannten Begriffen folgen nun Bespiele die Biologicallyinspired Computing von anderen Disziplinen abgrenzen sollen. Die junge Wissenschaft der Bioinformatik nutzt Methoden der Informatik um Antworten auf biologische Fragestellungen zu finden. Geschichtlich gesehen war eine der ersten Herausforderung der Bioinformatik die Sequenzierung und Entschlüsselung des Menschlichen Genoms. Allein durch die Menge der anfallenden

21 Einführung in Biologically-inspired Computing 17 Information war es notwendig speziell zugeschnittene Verfahren zur Verarbeitung und Speicherung von Information zu entwickeln. Aus der Bioinformatik entstand auch Computational Biology. Diese versucht Modelle zu entwickeln um so genannte in silico -Experimente 2 in rechnergestützten Systemen durchführen zu können und damit Antworten auf spezifische molekular-biologische Fragestellungen zu gewinnen. (vgl. [17]) Dabei werden oft Techniken aus Biologically-inspired Computing angewendet um effiziente Lösungsverfahren zu entwickeln. Beispielsweise werden evolutionäre Algorithmen verwendet um die Faltungsstrukturen von RNA-Molekülen zu bestimmen, da der Suchraum 3 für konventionelle Algorithmen viel zu groß ist. (vgl. [9]) 3.4 Neuroinformatik Die Neuroinformatik ist der Bioinformatik sehr ähnlich, aber sie versucht das menschliche Nervensystem und Gehirn in seinen vielfältigen Funktionsweisen, wie Wahrnehmung, Entscheidungsfindung, Kognition und Schlussfolgerung durch die Anwendung von rechnergestützten Methoden zu verstehen. Um das Nervensystem als Ganzes zu Verstehen sind vielschichtige Untersuchungen notwendig. Beispielsweise müssen Brücken von cerebralen Systemen zu Nervenzellen und dann zu Molekülen als Transmitter geschlagen werden. Kurz gesagt besteht die Neuroinformatik aus drei Teilbereichen. Im Ersten steht die Entwicklung und Anwendung von Methoden zur Untersuchung von Gehirn und Verhaltensmustern im Vordergrund. Der Zweite beschäftigt sich mit der Anwendung von fortschrittlichen Informationsverarbeitungsmethoden um mit der hohen Menge und Komplexität an neurowissenschaftlichen Daten umzugehen. Insofern werden hier wieder Methoden aus Biologically-inspired Computing angewendet. Der Versuch die Erkenntnisse über die grundlegenden Funktionsprinzipien des Gehirns zu nutzen und neue Informationsverarbeitungsverfahren zu entwickeln stellt den dritten Teilbereich dar. (vgl. [27]) 3.5 Biomorphic (robotics) Biomorphic Robotics ist eine Unterdiziplin der Robotik. Sie konzentriert sich auf die mechanischen, sensorischen und berechnenden Funktionsprinzipien von Tieren. Nebenbei bemerkt ist der Unterschied zu Neuromorphics, dass sich diese mehr auf die Kontroll- und Sensorsysteme eines Systems konzentriert. Kurz gesagt ist die Idee von Biomorphic Robotics die Konstruktion von Robotern, die auf Strukturen und Methoden von biologischen Systemen zurückgreifen. (vgl. [19]) 3.6 Autonomic Computing Autonomic Computing ist eine Forschungsinitiative, die von IBM 2001, gestartet wurde. Das endgültige Ziel ist es Computersysteme zu schaffen die sich selbst 2 in Anlehnung an die Begriffe in vivo und in vitro aus der Chemie und Biologie 3 Eine RNA-Sequenz aus n Basen hat etwa 2 n /2 mögliche Faltungsstrukturen.

22 18 F. Krebs verwalten, um die schnell steigende Komplexität zu bewältigen und weiteres Wachstum zu ermöglichen. Das Problem der steigenden Komplexität wird deutlich wenn man sich bewusst macht dass die Anzahl der benutzten Computersystemen pro Jahr um etwa 38% steigt. Außerdem bieten diese Geräte immer mehr Funktionalität und so steigt auch die Komplexität dieser Geräte. Im Moment werden IT-Spezialisten eingesetzt um diese Entwicklung zu bewältigen, aber laut IBM ist das Angebot an ausgebildeten Fachkräften schon jetzt nicht mehr ausreichend. Deshalb soll Autonomic Computing eine Lösung bieten, die ermöglicht, dass Systeme sich selbst verwalten. Die Vorstellung ist an das vegetative Nervensystem des Menschen angelehnt. Dieses kontrolliert beim Menschen wichtige Körperfunktionen, wie beispielsweise Atmung, Herzfrequenz und Blutdruck, ohne dass bewusst eingegriffen werden muss. In einem solchen autonomen System soll die Rolle des Menschen nicht mehr die direkte Überwachung und Kontrolle des Systems sein, sondern er soll nur noch Richtlinien definieren an denen der Selbstverwaltungsprozess sich orientieren soll. Für IBM besteht dann ein autonomes System aus Selbst-Konfiguration, Selbst-Heilung, Selbst-Optimierung und Selbst- Schutz. (vgl. [6]) Um diese Ziele erreichen zu können sind Methoden aus Biologically-Inspired Computing, wie zum Beispiel Artificial Immune Systems, notwendig. Insofern kann man Biologically-Inspired Computing als Überbegriff für Autonomous Computing sehen, da wie oben erwähnt, das vegetative Nervensystem zu Grunde liegt und so die gleichen Methoden zur Entschlüsselung der Funktionsweise und Strukturen des natürlichen Vorbilds angewendet werden müssen. 3.7 Machine Learning und Künstliche Intelligenz Als letztes soll Biologically-Inspired Computing mit Machine Learning und Methoden der Künstlichen Intelligenz verglichen werden. Viele der Konzepte von Machine Learning decken sich mit entsprechenden Konzepten in Computing inspired by Nature. Prinzipiell gibt es starke Überschneidungen der Problemstellungen in beiden Bereichen. Eine klare Trennung lässt sich nicht durch die angewendeten Methoden erreichen, sondern durch die unterschiedlichen zu Grunde liegenden Philosophien beider. Künstliche Intelligenz macht es sich zum Ziel intelligentes Verhalten in Maschinen zu ermöglichen. Dieses Verhalten muss aber nicht von biologischen Vorbildern abstammen, sondern kann auch probabilistischer oder rein logischer Natur sein. Probabilistische Beispiele sind Bayes sche Netze und Markovmodelle, die eventuelle zwar Entsprechungen in der Natur haben, aber nicht von diesen abgeleitet wurden. Bei logischen Verfahren der klassischen Künstlichen Intelligenz zeigt sich der Unterschied in einer noch stärkeren Form. Die Annahme, dass die Welt sich rein logisch beschreiben lässt, hat kein entsprechendes natürliches Phänomen als Grundlage. Trotzdem beschäftigen sich beide Zweige mit Lösungsverfahren für hochkomplexe Problemstellungen und können so sich gegenseitig unterstützen. (vgl [18])

23 Einführung in Biologically-inspired Computing 19 4 Fazit Die effizienten und oft auch eleganten Lösungen der Natur sind in Jahrmillionen von Evolution entstanden. Biologically-Inspired Computing macht sich diesen Zeitvorsprung zu Nutze, in dem es versucht die tiefer liegenden Organisationsprinzipien dieser Phänomene zu ergründen. Das Studium dieser bringt zweierlei Arten von Fortschritt. Einerseits ermöglicht es den Menschen ein tiefgründigeres Verständnis für die inneren Wirkungszusammenhänge der Natur zu erlangen und damit das Wissen der Realwissenschaften, wie Physik, Biologie, Medizin, Chemie und auch Soziologie sowie Psychologie zu erweitern. Andererseits birgt es aber auch die Möglichkeit in sich, konkrete Problemstellungen der Informatik mit der gleichen Effizienz und Eleganz wie die Natur zu lösen. Schwarm Intelligenz, Evolutionäre Algorithmen und Künstliche Neuronale Netze zum Beispiel zeigen schon heute ihr Potential in hochkomplexen Anwendungen. Man sollte aber nicht vergessen, dass auch wenn diese Funktionsweisen sich schon über eine lange Zeit bewährt haben, dass sie trotzdem nur für eine Population von Organismen im Zusammenspiel mit ihrer Umwelt entstanden sind. Deshalb ist es wichtig geeignete Abstraktionen der Problemstellungen zu finden und die Lösungen der Natur nicht als global optimal zu verstehen. Evolution ist ein Prozess der wahrscheinlich nie eine globale optimale Lösung erreichen kann, da er immer nur nach einem Minimalprinzip vorgeht. Große evolutionäre Sprünge, wie zum Beispiel vom Affen zum modernen Menschen in einer Generation, wären kontraproduktiv und würden die Spezies gefährden. Keinesfalls unterstelle ich der Evolution eine schützenden Gedanken oder gar einen Willen, aber auch der Prozess der Evolution unterliegt ihrerseits einer ständigen Entwicklung. Daraus ergibt sich auch die Frage ob computergestützte Verfahren nicht eher eine Frage der Mathematik, Logik und Algorithmen ist. Sind biologische Phänomene nicht Teil einer ungeordneten, chaotischen Welt, in der Verhaltensweisen entstehen, durch die Interaktion seiner Teile anstatt der expliziten Programmierung dieser? Eine Welt in der Individuen, die einfachen Regeln folgen komplexe Muster und Strukturen bilden? Einer dezentral organisierten Welt, die ohne Führung auskommt und keine Pläne oder Rezepte bereithält um die Bildung dieser Muster zu kontrollieren? Natürlich ist die Antwort auf alle diese Fragen ein einfaches ja. Genau diese Unordnung und Verteiltheit der Welt der natürlichen Phänomene ermöglicht, dass Biologically-Inspired Computing auf viele komplexe Probleme der Informatik anwendbar ist. Denn trotz aller fehlender Koordination und scheinbaren Chaos entwickeln sich Organismen, die wachsen, leben, sich selbst reparieren, sich anpassen und überleben. Wäre doch nur mein Computer genauso organisiert - Vielleicht kann er das werden. Literatur [1] BULL L., Learning Classifier Systems: A Brief Introduction

24 20 F. Krebs [2] BONABEAU E., Swarm intelligence: a presentation. [3] DE CASTRO, L. N. An Introduction to the Artificial Immune Systems. International Conference on Artificial Neural Networks and Genetic Algorithms (ICANN- GA) ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/lnunes/tutorial01.pdf [4] DE CASTRO, L. N. Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications. Chapman & Hall/CRC, 2006 [5] DILGER W., Künstliche Immunsysteme Vorlesungsskript. [6] KEPHART J. O., CHESS M. D. The Vision of Autonomic Computing. IBM developerworks [7] LODDING K. N., Hitchhiker s Guide to Biomorphic Software., ACM Queue vol. 2, no. 4 - June [8] MITCHELL T. Machine Learning. McGraw-Hill Science/Engineering/Math [9] NARAYANAN A., KEEDWELL E.C. und OLSSON B. Artificial Intelligence Techniques for Bioinformatics pdf [10] RECHENBERG I., Bionics - Building on Bio-Evolution [11] REIF G., Moderne Aspekte des Wissensverarbeitung. Technische Universität Graz. Institut für Informationssysteme und Computer Medien [12] SIPPER M., Evolution of Parallel Cellular Machines: The Cellular Programming Approach, Springer-Verlag, Heidelberg, [13] REYNOLDS C., Boids - Background and Update [14] Evolution Strategies [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27]

25 Emergent Systems - inspirations and design Michael Wagner und Lars Müller Universität Augsburg Zusammenfassung Emergent systems can be found everywhere in nature. They provide robustness, fault tolerance and adaptability. Several applications and algorithms have already been deduced from these inspirations. This paper presents a working definition of emergent systems and distinguishes emergence from the closely related term of self-organization. Afterwards, emergent systems such as swarming and neural networks are illustrated in relation to their inspiration from biology. The architectural components are identified in order to underpin the discussion whether design of emergent systems is actually possible and which approaches already exist. Finally, the current state-of-the-art is discussed. 1 Introduction Nature is a great inspiration for a lot of inventions in human history. Having a detailed look at natural phenomenons is of use for computer science, too. The interaction of individual, relatively simple ants in a colony leads to a complex structure and behavior of the colony that can solve difficult tasks. The cooperation of the ants on micro-level (the ant s point of view) leads to properties on macro-level (the colony as a whole), like building a nest or finding shortest paths between a food source and the nest. Systems with such properties are emergent, if the macro-level properties cannot be easily understood by the individuals. Emergent systems are of interest because they provide desirable properties such as fault tolerance, robustness and adaptability. In contrast to current software development methodologies, it is unnecessary to explicitly design these properties. They emerge in complex systems by interaction of much simpler subsystems, which reduces the required time and effort. However, there is a vast amount of philosophical discussions about the concept of emergence, the resulting emergent systems and their features. After several years of research, there are various definitions of emergent systems in respect to their features. This is an important base to understand nature and distinguish phenomena in complex systems. There is however no consensus how to implement such a system. While there exist some first applications and research results in this field, no overall architecture or design methodology has been defined yet. Nevertheless, even a solution that only facilitates emergent behavior of systems would be a notable advance in current research. Therefore several researchers from different disciplines evaluate emergent systems, propose approaches to design methods, create guidelines and evaluate them.

26 22 M. Wagner, L. Müller The purpose of this paper is to give a summary of emergent systems in nature and the algorithms that have been deduced from them. Furthermore, we would like to know if it is possible to design emergent systems for solving computer science problems without having an analogy in fauna or physics. This paper begins defining some basic concepts. Afterwards, we have a look at emergent systems in social animal life and describe algorithms that have been inspired by them. Subsequently, we raise the question whether it is possible to design emergent systems. From which components could an emergent system be built and which design approaches are used? The state-of-the-art of guidelines and principles is reviewed and discussed. Which approach may lead to an emergent system? Finally, the results of this paper are reviewed. 2 Basics Before having a detailed look at emergent systems, we clarify the definition of important related concepts. There are various definitions for emergence and self organisation in literature. Tom De Wolf and Tom Holvoet have analyzed these in [1] and proposed a working definition for both concepts. 2.1 Emergence A system has the emergent property, if its global (macro-level) properties, behavior, structure or pattern (emergents) arise from interactions of the micro-level parts. Macro-level refers to the system as a whole, micro-level to the individual entities of the system (e.g. ants, agents,...) Furthermore, the global behavior has to be novel w.r.t. the individual parts of the system ([1], p. 3). This means that the micro-level actions can t be deduced from macro-level behavior and that the macro-level behavior is not easily understood from a micro-level point of view. Now we will describe the properties of emergent systems more precisely. According to [1], there are eight properties an emergent system must have: 1. Micro-Macro effect Properties, behaviors, structures or pattern at macro-level emerge from the interactions at micro-level. 2. Radical Novelty For a system to be emergent, the micro-level individuals must not have explicit knowledge of the systems macro-level goal/behavior. Often, radical novelty is described inadequatly or even incorrectly as if the emergent properties are not a result of the behavior of the micro-level parts. Instead, emergent properties can t be found by taking a system apart and looking at the individual entities. However, if looking at the parts and their interactions - without removing them from the system - the emergent properties can be found.

27 Emergent Systems - inspirations and design Coherence Emergent properties have to maintain a persistent pattern (emergent property) over time. The lower level parts are correlated consistently. 4. Interacting Parts The lower-level parts need to interact in order to be able to cause macro-level emergent effects. 5. Dynamical The system evolves over time, making the occurance of new emergents possible. 6. Decentralized Control As a result of radical novelty, there can t be a single entity with knowledge of the macro-level emergents. Thus, the systems control is decentralized. 7. Two-Way Link The micro-level and macro-level are linked to each other: On the one hand, interaction of lower level parts cause emergent properties on the macro level. On the other hand, the emergent structure influences its parts as we will see later in Robustness and Flexibility Because of radical novelty and decentralized control, no single micro-level entity can be a single point of failure. The system can adapt to a changed situation and the individuals can be exchanged by other individuals. 2.2 Self organisation An emergent system is not necessarily self-organising. The term self organisation refers to self i.e without external control and organisation i.e. an increase of in structure or order of the system. Again, a definition is given by [1]: Self-organisation is a dynamical and adaptive process where systems acquire and maintain structure themselves, without external control [1] In order to be self-organizing, a system has to fulfil the following properties: 1. Increase in Order As implied by organisation, an important characteristic of self organisation is an increase in Order. This could be an increasing order leading to a spatial, temporal or functional structure. For an increase in order to be possible, the system has to start in a disorganised or semi-organised state. An increase in order has to serve a specific function. 2. Autonomy As implied by self, the system has to organise without external control. The definition of system boundary is important for specifying what is inside and what outside the system. A system may have data input, but the decision making needs to be in the system. For physical systems, because an increase in order or decrease in entropy is impossible in a closed system, there has to be energy input.

28 24 M. Wagner, L. Müller 3. Adaptability A self-organising system is also expected to be robust with regard to changes in the environment. 4. Dynamical Self-organisation is a process, i.e. order increases over time. It needs to be capable of reacting dynamically to changes. Abbildung 1. Bénard rolls develop when there is a temperature difference between bottom and top of a fluid In figure 1, an example for a self organising system can be seen: If a fluid is heated from below, it starts to circulate forming regular structures, the Bénard rolls. Warm fluid is transported to the surface, where it cools down and sinks to the bottom at the other side of the Bénard roll. This is an example of self organisation, as the original chaotic movement of the fluid turns into a structure with more order. 2.3 Comparing emergence and self organisation Self organisation and emergence are different, but closely related concepts. Even though emergence without self organisation is possible according to de Wolf, in general, emergence appears in conjunction with self organisation. In our context of emergent systems that are usable as algorithms for solving specific problems, it is probably wise to combine both properties. The biological systems discussed in the next chapter also have mainly both attributes. 2.4 Stigmergy Stigmergy is an important concept found in biological emergent systems. It is a communication process by which information is transferred indirectly between individuals using their environment [6]. For example, ants use stigmergy for communication: Ants leave pheromone on the ground where they walked and their movement decisions are based on the pheromone perceived. The concept is also often used in algorithms derived from biological systems using stigmergy. 2.5 Swarm intelligence Swarm intelligence is a natural or artificial emergent system. Natural swarm intelligence includes social insect colonies and swarms of birds or fish if they exhibit emergence. Neural networks are not included.

29 Emergent Systems - inspirations and design 25 A system with the attribute swarm intelligence is usually also an emergent system. 3 Emergent systems in biology and their deduced systems in computer science There are quite a few social animal societies that exhibit emergence. Examples are ant, termite and bee colonies and flocks of birds and fish. We will now describe the behavior of several species, focusing on their emergent properties. For each case, a derived algorithm is described. 3.1 Ants The following section describes the behavior of an ant colony. It doesn t refer to a specific species - there are thousands of ant species with a variety of different behaviors Behavior of real ant colonies Most of the population of an ant colony consists of workers. There are also one or several queens and male drones (which live only for a short time). The queen doesn t give any orders to the workers, she only lays eggs. All workers are basically identical and capable of doing any work in the colony. Nevertheless, an ant usually specializes on a specific task: smaller ants stay inside and care for the young, larger ones are scouts or foragers or defend the colony against enemies. When searching for food, ants use pheromones for orientation. They walk along ant trails that are marked by these pheromones. If a worker encounters a branch in the trail, it follows one of them randomly, while the probability for each trail is directly proportional to the pheromone level. A simplified example for real ants solving a shortest path problem can be seen in Figure 2. Let s assume two (or several) scouts have concurrently found a major food source. They return to the nest on different paths, placing a pheromone track on the ground. As there was no pheromone present previously 1, the workers movement is random until encountering a path leading to the nest. Once a scout reaches an ant path or the hive, other workers are recruited by the scent and follow the trail to the food source. Foraging via the shorter path starts earlier than via the longer one. More importantly, as workers traveling between food source and hive also lay pheromone, the intensity on the shorter trail increases quicker than on other paths. This leads to more ants taking the reinforced trail. Thus, a positive feedback loop is created. After a while, all foragers use the shorter path: Pheromone evaporates over the course of time, so paths that are not used often enough vanish completely. 1 In most ant species, scouts only lay pheromones when returning from a food source. Others, like the argentine ant, also use it to mark areas that have already been searched. [9]

30 26 M. Wagner, L. Müller The route now used by the ants isn t necessarily the shortest one possible. However, as most ant colonies consist of several hundred thousand or million individuals, it is likely existing shortcuts will be found and used instead of the old route segment. Thus, an emergent property of ant colonies is the ability to approximately solve the shortest path problem. Abbildung 2. Ants harvesting a food source Ant algorithm Dorigo et al. describe in [2] an algorithm based on the behavior of real ants - the Ant System. The ants are implemented as simple agents 2, which are based upon real ants. However, the system doesn t simulate the behavior of an ant colony. Instead, 2 An in-depth discussion of the term agent could be found in [27]

31 Emergent Systems - inspirations and design 27 the inspiration from biology is used in order to solve varying problems. In the implementation, there are some differences to real ant colonies: 1. time is discrete, 2. the ant agents are not completely blind, thus are able to see some properties of their environment from a local point of view. 3. artificial ants will have some memory [2] 3 4. the ants only interact by pheromone, not by direct contact. From now on, we will refer to ant agents as ants and similarly for other agents and concepts based upon biology. As an example application for the Ant System, Dorigo chose the Traveling Salesman Problem (TSP) [14]: A salesman is supposed to do a round tour of a set of towns (nodes) while traveling the shortest distance possible. The problem can be modeled as a fully connected graph, the distances between towns being the edges. Calculating such a minimal tour is a NP hard problem. However, in most cases it isn t necessary to find the shortest tour, a deviation of a few percent would be satisfying. Furthermore, TSP was suitable for comparing the performance of ant system as alternative heuristics exist [13]. The ant system for the TSP problem with n towns and m ants starts with one ant in each town. Each of them completes a full tour in n time. The ants visit towns according to a probability function that depends on the pheromone quantity on the trail and the distance to the destination node. In each step, one town is visited and put on a tabu list to make sure the ant doesn t return to the town within the current cycle. After n steps, all ants have completed their tour and for each ant, the same amount of pheromone is laid on all edges it used, which is inversely proportional to its trail length. As in nature, a fraction of pheromone evaporates in order to remove old solutions that have been replaced by better ones. Furthermore, all elements in the tabu lists are cleared except for the ant s current town. As a result of this algorithm, a positive feedback loop is created: short tours cause high pheromone levels on its edges, which leads to more ants using these edges. Negative feedback is present in form of evaporation of pheromone. New shortest tours are found by chance or by combination of several longer routes. Depending on the parameters of the algorithm, it enters stagnation behavior after a certain amount of cycles: all ants use the same tour. With different settings, this never happens and new solutions are tested indefinitely. Dorigo showed that an ant system with proper parameters finds better solutions than other heuristics[13] and has a better performance. However, as the article is from 1996, better heuristic solutions for the TSP might exist. Compared to other heuristics, the ant system is also the most versatile. For example, it can handle the asymetric travelling salesman problem without modifications: Instead of the distances between two towns being identical when 3 Real ants do have some memory, but Dorigo is adding some capabilities like remembering the locations an ant has visited before

32 28 M. Wagner, L. Müller Abbildung 3. A possible ant system solution for a simple TSP problem travelling from A to B and from B to A, different costs are allowed depending on the travelling direction. Furthermore, the alogorithm can be applied to various other problems (e.g Job-shop scheduling) with minor modifications. The ant system is an emergent system, as the emergent property - discovering a shortest tour - is a property which cannot be deduced from the behavior of a single agent. This emergent property remains stable over time, i.e. the discovered solutions get constantly better. The agents obviously interact, there is no centralized control and the system starts with random solutions making it possible to evolve over time to improve its results. The failure of a single agent would only slightly affect performance and quality of the result, instead of a complete system breakdown in classic algorithms. 3.2 Bees Honey bees (apis) have one of the most complex social insect societies and have been studied intensively by humans Behavior of honey bee colonies In a bee colony, young workers usually stay inside cleaning, building cells and unpacking incoming foragers. In the context of interesting emergent properties, we will focus on describing how foraging works. If a scouting worker finds a new food source (e.g. a patch of flowers), it returns to the hive with pollen and nectar. After unloading, it visits the dance floor, which is situated near the entrance of a nest. Here, returning foragers gather in order to perform a dance informing other currently unemployed foragers of the discovered food sources. Each dance contains information about the orientation and distance of a food source relative to the hive [12]. Furthermore, the duration of a dance and some other attributes depend on the quantity of available food at the discovered site. A forager looking for a new destination follows a couple of dances, but only one of them intensively. According to [10], the dances are not compared to each other, so a bee doesn t visit the best food source available. Instead, one dance is chosen randomly and followed intensively in order to memorize the instructions to reach the destination plants. As dances for better sources last longer than

33 Emergent Systems - inspirations and design 29 those for inferior ones, this also reflects the quantity of food available and thus affects the amount of workers recruited. As bees and ants are related - both belong to the suborder of Apocrita - there are certain similarities in the foraging strategies. However, the ants solve a shortest path problem while bees distribute their work force in order to maximize gathered resources while minimizing energy spent by foragers Simulation of social insect colonies Sumpter and Pratt [11] predicted in a mathematical model of social insect foraging that honey bees are able to switch from an inferior food source to a good source while foraging is already well underway at the inferior one. The ant Lasius niger isn t able to do that. In the same scenario, the ant colony keeps on harvesting the inferior food supply. Subsequent experiments proved their theory. Such a model could be viewed as a first step towards simulating an existing biological emergent system, which could enable us to develop useful algorithms for various purposes Bee routing algorithm in MANET An example for an algorithm inspired by real bees is BeeAdHoc [3]. It is used for routing in mobile ad hoc networks (MANETs), where energy efficiency is important in addition to traditional requirements to a routing algorithm. Some applications for this type of network are: handhelds communicating with each other in order to maintain internet access even for those too far away from a wireless LAN access point. The same would apply for cell phones trying to get access to a local wireless phone system that is connected to VoIP, instead of paying for regular cell phone service. BeeAdHoc is a reactive source routing algorithm, which means it finds routes on demand only (reactive vs. proactive) and the sent messages contain a complete path to the destination (source routing vs. next hop routing). There are mobile agents representing different kinds of bees and an architecture representing the hive - consisting of entrance, dance floor and packing floor. 1. Agents: There are four types of agents: packers, scouts, foragers and swarms. Packers are created once a data packet is received from application layer. Their task is storing the data until a fitting forager is found that will transport the data packet to the destination. Packers stay inside the hive in the packing floor. Once the packet is handed over to a forager, they die. If no fitting forager is found within a certain timeframe, the packer will launch a scout looking for new routes to the destination node. A scout is broadcasted to all neighbour nodes. It contains a time to live counter, which controls how often it could be re-broadcasted. After it arrives at the destination, a scout is sent back to the originating node the way it came from. Each scout has a key (id, source node) and is killed if arriving

34 30 M. Wagner, L. Müller at a node where a clone of the same scout has been earlier, unless it is travelling back to its source node. When a scout returns to its originating node, it moves to the dance floor and recruits foragers. The dance of bees is abstracted as the maximum number of forager clones a scout can recruit. Foragers do the main work of transporting data packets from one node to another. There are two types: delay or lifetime foragers. Delay foragers collect information about transmission delay between nodes and try to find the fastest path to a destination. Lifetime foragers record the remaining battery capacity of nodes and route packets in a way that increases network lifetime. A forager receives the full route to a destination from a scout or another forager on the dance floor and follows it point-by-point. When it arrives at its target, it waits there until a message is sent back to the source so it can piggypack. If a transport protocol like TCP is used, this happens in the acknowledgement. A returning forager visits the dance floor as a scout does. If an unreliable transport protocol like UDP ist used, a lot of foragers might be stuck on their destination node as no data packets are sent back. In case the number of foragers originating from a certain source node i reaches a threshold at the destination node j, a swarm of foragers is sent back to i. They are sent in one data packet and treated at j as if they arrived normally. 2. Architecture: Each node contains a hive which includes an entrance, dance floor and packing floor. The packing floor is inhabited by packers waiting for data packets to arrive from application layer (TCP/UDP), which is an interface to the packing floor. The entrance is an interface to network layers like MAC. It cares about rebroadcasting scouts or killing replica scouts or those with a zero time to live counter. Foragers arriving at their destination are forwarded to the packing floor, others to their next hop. The most important part of the hive is the dance floor, where routing decisions are made. Foragers returning to their home hive reevaluate their route to their destination based on the information collected on the last journey. The dancing of a forager depends on the quality metric it uses (delay or lifetime) and the number of packers waiting to deliver a packet to the forager s destination. The dance floor also does the matching between packers and foragers: it randomly chooses a fitting forager for the packer s task. Thus, packets are transmitted via different routes which adds to the energyefficiency of the algorithm and also avoids single nodes to be overloaded. As in nature, foragers only have a limited lifetime and are killed once they expire. This assures that old evaluations and paths are removed (negative feedback). Furthermore, young foragers are preferred to older ones when distributing tasks, as their routes are newer and probably better. In case a forager arrives at a node where there is no connection to the next hop any more, it gets deleted in the hope the data packet gets resent by a different forager returning to the source hive. If this isn t the case, a new scout is launched at the source hive after a timeout, as the forager didn t return.

35 Emergent Systems - inspirations and design 31 In comparison to classic mobile ad hoc routing algorithms DSR, DSDV and TORA [16, 17, 18], BeeAdHoc showed equal or better performance in all metrics evaluated by the authors. Generally speaking, the energy consumption was far lower than the competitors while packet delivery ratio, packet delay and throughput were equal or slightly better than DSR, DSDV and TORA. 3.3 Termites Social behavior in termite colonies has evolved independently from bees, wasps and ants. The later ones have common ancestors which already have been living in colonies exhibiting emergent properties. Even though they are not closely related, there are remarkable similarities between ants and termites. In the following subsections, a part of termite behavior and another MANET routing algorithm derived from it is described briefly based on [6] Termite hill building As a subset of termite behavior, their hill building ability is reviewed. If termites and pebbles usable for hill construction are distributed in a flat area, the termites will start piling up all pebbles in one location. In order to achive this goal, the termites act according to a few simple rules: 1. Like ants, termites communicate using pheromones. Termites move randomly, except if they perceive pheromone, which will increase the probability to move towards the pheromone source. 2. A termite can carry one pebble at a time. 3. If a termite not carrying a pebble encounters one, it picks it up. 4. If a termite carrying a pebble encounters another one, it drops the pebble and infuses it with pheromone As a result of this behavior, at first small mounds of pebbles are formed. Their scent will cause more termites put pebbles on the already existing mounds. Bigger mounds attract more termites than smaller ones, which will even lose their pheromone because of evaporation. As an effect, the termites will finally concentrate on piling up all pebbles on one hill and decompose smaller mounds Termite routing algorithm in MANET Roth an Wicker used the termite behavior described above for developing an emergent mobile ad-hoc networking algorithm (MANET), Termite [6]. The algorithm is based on the hill building example described above. In a MANET, each network node is represented by a termite hill. For each destination node, there is one type of pheromone. It is put on the communication links, i.e. stored in the routing tables. Packets sent from a source to a destination follow the pheromone of the destination and leave pheromone for their source. Packets arriving at a node are distributed randomly - however, the pheromone quantities on the outgoing links influence the probabilities. High values of pheromone on a link increase the probability for

36 32 M. Wagner, L. Müller a packet to be sent that way. At the same time, packets leave pheromone for their source when being sent through the network. Again, negative feedback is implemented by evaporation of old pheromone - this happens exponentially over time. The resulting functionality of Termite is similar to BeeAdHoc, however it didn t focus on energy efficiency. According to [3], BeeAdHoc has better performance while using less energy. 3.4 Birds and Fish Emergence doesn t only exist in the insect world. Swarms of birds and fish can be considered emergent systems under certain circumstances, too: The movement of a swarm can be considered self-organisation. However, is it emergent, too? In such a swarm, all individuals are trying to keep a certain distance to each other. At the same time, individuals try to maximize the distance to and predator. If a shark is moving into a swarm of fish, the swarm will rapidly separate and form a hole where the predator attacked. The shape of such a swarm can be considered an emergent property. Concerning birds, the movement of the whole swarm is no emergent property, as for example in a swarm moving south, every single birds knows the destination, thus it is not radical novelty. An algorithm derived from the behavior of flocks of birds is SPARROW (spatial clustering algorithm through swarm intelligence) by Folino and Spezzano [15] 3.5 Neural networks A neural network consist of a high number of neurons, connected to each other. Each cell receives electrical and chemical signals from several other neurons over its dendritic tree and is able to trigger one other neuron by sending a signal over its axon. In biology neural networks such as the central nervous system perform astonishing tasks. These networks are very robust and offer a broad range of possible functionality. They are also emergent systems. The macro level behavior of a neural network could not be understood by analyzing the individual neurons. The resulting functionality is new in respect to the individual neuron and is determined by the strength and structure of the connections between the neurons. The best known example of a neural network is the human brain, which has been an inspiration for artificial neural networks (ANN). ANNs mirror the structure of a neural network by artificial neurons, whose connections to other neurons form a directed weighted graph. ANNs is and has been a very active field of research since several years. Tom M. Mitchel [31] provides a short summary: Artificial neural networks (ANNs) provide a general, practical method for learning real-valued, discrete valued, and vector-valued functions from examples, Algorithms such us BACKPROPAGATION use gradient descent to tune network parameters to best fit a training set

37 Emergent Systems - inspirations and design 33 of input-output pairs. ANN learning is robust to errors in the training data and has been successfully applied to problems such as interpreting visual scenes, speech recognition, and learning robot control strategies. Several types of ANNs and algorithms have been developed. Most ANNs rely on a fixed structure. The required adaption to a specific problem is realized by training. Therefore the lifecycle of an ANN starts with a training phase, where the weight of each connection is adapted according to a set of training data. After completion of this training phase the ANN could be applied to similar problems. New approaches tend to use a more flexible structure of the network to achieve an increase in adaptivity e.g. self-organizing maps and chaotic neural networks[30]. 4 Architectural components of emergent systems The emergent systems presented previously have some similarities. Several components, are present in all emergent systems. They all use use a relative large number of independent individual entities that interact within a spatially extended environment. This interaction is characterized by feedback loops and their corresponding effects. These three common components appear in different forms in the systems, described in chapter 3. Hence they could provide a base for a kind of abstract architecture that applies to all emergent systems. Such meta architecture would support the development of design methods for emergent systems. At this point of research, a meta architecture imposes a big challenge, because not all components are fully understood, yet. An architecture that guarantees emergent properties seems to be impossible. Due to the fact that emergence is defined to arise without a detailed design of functionality and subfunctionality, an architecture for emergent systems may facilitate emergent properties but these properties can not be guaranteed by definition. A first step towards an architecture that facilitates emergent behavior is a common notion of their components: Which elements are absolutely neccessary and how is their role defined within an emergent system? The following section tries to answer these question, however does not claim to be complete. The components described later are the main components of a systen and may be split up. They are described in an abstract way and their different incarnations are compared. The concepts connecting these components are only mentioned briefly here, as this will be discussed in Section 5, design of emergent systems. 4.1 Independent individual entities Independent individual entities in large quantities are the main components of an emergent system. These elements are often referred to as agents. The term agent is rather old and used in a wide spectrum of applications with different notions and various definitions, e.g. intelligent agents, mobile agents, autonomous

38 34 M. Wagner, L. Müller agents and social agents The term agent will be used to describe these entities, even if they are not limited to software agents. This concept can be found in all emergent systems. In biologically inspired systems the agents are mapped to acting individuals like ants 3.1 or termites 3.3. There are robotic agents that act in swarms to accomplish a common task [20]. In neural networks the neurons are a very simple type of an agent-like entity. They are limited to communication and are only able to react to and by communication. In cellular automata each cell can be regarded as a simplified agent. The locus of functionality in emergent systems cannot be determined. The functionality is spread over all entities forming the system. Regarding the whole system, these elements have no specialized function. While they act locally, the system behavior arises from interactions of these elements The individual agent is part of a multi-agent system. Therefore, individual agents can be characterized as communicative and reactive. They sense their environment and are able to react on changes in a timely fashion. Agents react on communication or sensor information by communication or direct action. The basic functionality provided by agents within one system is very similar, resulting in very few classes of agents. In many emergent systems there is only one type of agent. The different functions of the individual agent regarding the whole emergent system arise from its basic functionality and its location in space. The location in space determines in which environment the agents work, which information they sense, how they could act and most importantly which communication partners are available Agents in emergent systems are used in large numbers. The agents communicate with each other in order to exhibit high level functionality. The definition of these individual reactions of each agent form a low level language [22] of the system. By communicating with their neighbors (see 4.2.1) the individual agents cooperate and exhibit the observed macro level behavior. The functionality at macro level could be regarded as a high level language. This high level language is an abstraction of a low level language, defined by the actions of the individual agents. The multitude of the agents could be regarded as an amorphous-medium of agents, that could adapt to various environments and provide different functionality, known as the amorphous-medium abstraction[26]. This view is one of the main components of the multi-agent approach to design emergent systems in Spatially extended interactive environment The environment is the medium in which agents act and a part of the task to be solved. It is in most cases a fragment of the underlying world[21]. This could be an image or voice data which should be recognized by a neural network, a routing problem in ad hoc networks, mirroring the local distribution of devices, or a distribution of resources which has to be managed. The environment has two

39 Emergent Systems - inspirations and design 35 roles regarding the emergent system. At first it introduces the concept of space, which is fundamental for the communication and the process of self-organization. Second it represents the underlying world, which processes the output of the emergent system and provides information input in return The concept of space separates the agents from each other. The separation leads to a limitation of communication. Only communication with local partners is possible. This rules out any central control of the emergent system. In spite of being a limitation only, space is a possibility to spread information. Information is bound to a specific point in space. As agents are also distributed in space, the information available for them influences their behavior and result in an individual behavior of each agent. Hence the results of the emergent system are distributed in space, too. Mobile agents change their location and modify the information connected to a certain point in space. The underlying world acts as a communication medium, e.g. by using stigmergy. Moreover, by changing their position, new communication partners become available, while other ones get out of range. Using this dynamic collaboration, the mobile agents explore a volatile environment. Hence successful application needs a specified density of agents. Therefore the spatial distribution of the agents is an important constraint to the functionality of the system The underlying world and its relation to the emergent information system is described by Valckenaers[21] as follows: There is an information system that is related to an underlying world.[...] The underlying world evolves several orders of magnitude slower than the information system itself[...] The underlying world and the information system do not compete for the technical resources in this environment.[...] These are two important requirements in order to decide whether an emergent system is possible. The emergent system can only adapt to an underlying world, if the input data remains constant over several iterations of the adaption process. The second point emphasizes that emergent system and world act independently. The emergent system is an observer of the underlying world. The underlying world is an independent system, a source of input data to the emergent system. This system describes a problem space, which consists of volatile distributed constraints. Likewise emergent systems, this system is not hierarchically composed, but the global property focused by the emergent system, arises by combination of several individual properties. The processed data is therefore distributed in space. An action at one point of space could influence other positions in space. The emergent system adapts to this world by several iterations. The success of emergent systems may be explained due to the notion that the observed underlying world could be regarded as an emergent system, too. On the one hand this view can be justified by regarding the emergent system as an observer, whose perception of the underlying world is limited to its

40 36 M. Wagner, L. Müller sensors. Hence low level functionality stays undiscovered and the behavior of the underlying world appears as emergent. On the other hand, calling the underlying world an emergent system could be inferred by the fact that there are actually several parts of the underlying world that are known as emergent systems, e.g. the human brain. If a computational system is faced with a choice between two or more options with the same probability, a reasonable decision is not possible, an internal random number generator is used. For biological emergent systems this problem does not occur. Two choices based on the real world never have exactly the same probablity, as minimal variances in the underlying world influence decisions in the emergent system. An ant will never wait in front of a stone, unable to decide if to surround it on the left or the right side. Minimal properties of the location guide its way around this stone. This could be used or ruled out by the abstraction level of the input data. The decision which level of detail should be processed by an emergent system is therefore crucial to the design of the system. 4.3 Feedback loops Feedback loops are the key component of the adaptability and robustness of emergent systems. Feedback forms a loop, where output of a system influences its input. Feedback loops are a result of communication between the independent entities described in 4.1. Emergent systems use various types of feedback loops. The most common feedback loop is realized by messages. The loop is not strictly defined, but every message sent by an agent, influences the messages it will receive from its neighbors. Ants and termites as explained in 3.1 and 3.3 use stigmergy, to transfer messages between the agents. Neural networks use feedback in the training phase. The backpropagation algorithm enables the network to approximate the problem space. All these emergent systems are robust and can adapt their structure to changing environments. Hence each emergent system requires an internal dynamic structure that could react to faults or changes in the environment. While the independent entities guarantee flexibility and the environment demands adaption, feedback is the internal component that explores new solutions and configurations. According to cybernetics feedback loops result in a non-linear behavior of the system. In spite of being only a source of chaos these systems also generate stable patterns, the attractors that allow an emergent system to reach a state of stability. Feedback is the key element connecting micro and macro level Deterministic chaos describes the behavior of a system which appears to be random but actually follows rigid laws. Cruse explains in [29] how deterministic chaos can arise from feedback loops. This process can be witnessed by a very simple example. Consider the following development of a population, in which the population increase rate a is reduced proportional to the growth of

41 Emergent Systems - inspirations and design 37 the population by the factor b. This could be written as the following equation. y n = y n 1 a n b a n y 2 n 1 Figure 4 and 5 show how the population develops irregular and chaotic, for b = 0, 2 and a = 4. This is a very simple example of deterministic chaos. The system follows rigid rules, but exhibits no periodic or asymptotic behavior, that could be predicted, without knowledge of the system. Another example is the Lorenz-Attractor. These chaotic processes are extremely sensitive to external input. Even minimal Abbildung 4. Deterministic chaos Abbildung 5. Butterfly effect changes of a parameter e.g. one individual of this population dies, change the future growth of the population in a nearly unpredictable way. An external event, indicated by the arrow in figure 5, has massive impact on the futher development. This effect is well known as the the butterfly effect, originated from chaos theory. These closed-loop systems work in a non-linear fashion and create the noise which is necessary to find new configurations. While in computation of these systems, every step could be calculated by the given formula and the exact state of all

42 38 M. Wagner, L. Müller components, in emergent systems there is no formula, which could be used, and the states of system and environment are in most cases only given with certain probabilities Attractors are a phenomenon in non-linear systems and an important property of emergent systems. In a dynamical system view, everything is a process. These processes produce results several times faster than an observer could handle. Hence the observer notices only an average behavior of the system[22]. A pattern could be observed, if a process produces repeatedly the same result. Attractors are patterns that emerge in this dynamical systems and remain stable over a certain time. While the underlying process may vary in its results, the observed average result remains constant. James Crutchfield and Melanie Mitchel [28] provided a good example, how higher level structures emerge in decentralized spatially extended systems. Attractors correspond to the high level structure of an emergent system and therefore to the overall function of the system. Because of non-linearity of dynamical the processes, Attractors could hardly be predicted. Hence designing an attractor with a given structure, allows to engineer emergent systems. Several strategies aim to overcome this issue. 5 Designing emergent systems Designing emergent systems is a challenging task. Various definitions even implicitly deny the possibility of designing emergent systems. One of the main attributes of emergence described in literature is the resulting functionality being a Radical Novelty [1] or an observer even experiencing surprise [22]. As Software engineering ist driven by requirements, the targeted functionality is already fixed. If the functionality cannot be predicted, it seems impossible to design a certain functionality. Three approaches to design emergent systems can be distinguished in literature. These approaches will be illustrated regarding their functionality and evaluated considering their applicability and the definition of emergence. All of them have proven as feasible and already produced working applications in different application domains, as described in section Adaption of existing architectures The majority of existing applications and algorithms adhere to an existing design. Biology is the main source for emergent design patterns e.g. swarming, pollination, and of course the brain and nervous system. The key concepts are extracted from these systems and mapped to the current solution space. As shown in section 3, biology is a rich source of inspiration for various application domains. The concepts embedded in biology are described on an abstract level. The abstract description is then evaluated in different implementations,

43 Emergent Systems - inspirations and design 39 to verify that this abstraction still captures the emergent properties of their inspiration. The best known example of this method is stigmergy. The concept of stigmergy has been studied over several years and transferred to various implementations. The resulting systems are emergent systems, because the design is copied from obviously emergent systems. Anyway it is still to question whether this method is a design method. Is the adaption of existing patterns a creative process that could be called design? The implementation of these algorithms and architectures requires design decisions. The mapping is not done easily. Many structures available in biology are not available in computer science e.g. in most cases the parallelism of functionality in nature has to be simulated in computer science. This requires software design decisions, which are creative. The resulting system is therefore designed by this method. A more detailed questions, how far this applies also to the emergent properties of this systems, could no be definitively answered. Considering this, often engineering is used instead of designing. Nevertheless some functionality could be mapped on existing designs, while most applications have to be created from scratch. This design method is not only limited to problems where biology offers a solution. Moreover this solution from biology has to be already understood in science. Apparently concepts could be only extracted if they are already understood in their functionality, but many emergent systems and especially attractors in chaotic systems are still not fully understood. These phenomena are researched by simulation but could not yet be described in a way that guarantees functionality. 5.2 Training and selection Training and selection can help to design systems, if the required internal functionality is not fully understood. Hence this is a method, which could help to overcome the missing knowledge about the connection of micro and macro level in emergent systems. The simulation of functionality and the adaption of the implementation are common in design of architectures and algorithms. However, several emergent systems like neural networks, genetic algorithms and some types of cellular automata use this process not only to optimize systems but also as part of their architecture. Neural networks and genetic algorithms have their roots in biology. However, neural networks and genetic algorithms describe functionality in a much more abstract way than e.g. stigmergy. The possible application domains are therefore broader. Neural networks use incremental approximation of the desired functionality by continuous training in the design phase. Concrete implementations are described in 3.5. Each output neuron is connected to a number of possible input connections. The combination of the individual weights of all units directly and indirectly connected to an output neuron, represent a hypotheses of the required input signal. In the training process different input pattern are presented to the system and the result is compared by fitness measures to the correct values. In each of these iterations the weights are adapted by the backpropagation algorithm.

44 40 M. Wagner, L. Müller This method has several requirements, which limit the possible application domains: Training requires a large number of iterations to adapt to a specific problem domain. This is the reason why the environment is only allowed to evolve several orders of magnitude slower than the emergent system. (See 4.2). A certain amount of data is necessary, depending on the complexity of the pattern, to train such systems. A measure of fitness of the current state of the system is required, to decide which development is promising. Training, selection and incremental optimization are processes that can be found in nearly all emergent systems. Thus, they are powerful tools. Nevertheless, the training of an emergent system offers only a limited range of pattern that could be learned. The number and type of these patterns is determined by the structure of the interconnection of the individual entities and the used approximation algorithm. 5.3 Multi-agent systems (MAS) are a field of research primarily dedicated to self-organization. As selforganization and emergence are tightly connected MAS are often also called emergent systems. Emergent MAS are based on a new type of decomposition. Complex functionality is split up into the elementary necessary subtasks realized by agents. But unlike well known functional decomposition, this is not done incrementally. Every agent is able to fulfill one or more elemental subtasks. The agents perform on a very simple level, without central coordination. The result is a gap between the complex functionality of the system as a whole and the very limited functionality of the single agent. This gap should be closed by selforganization process of the agents. Therefore these systems are often regarded as self-organizing but not as emergent systems. Most attributes of emergent system, could be proven e.g. there is a micro and macro level. But the functionality of the system is designed top-down, and so far not novel. However in many cases the functionality of the overall system is radically novel in respect to the basic functionalities of the interacting agents The amorphous-medium abstraction is a relatively new idea, introduced by Abelson [26]. The amorphous-medium can adapt to the environment to fulfill the task of the system. He defines this concept as follows: Amorphous computing is the development of organizational principles and programming languages for obtaining coherent behavior from the cooperation of myriads of unreliable parts that are interconnected in unknown, irregular, and time-varying ways. The impetus for amorphous computing comes from developments in micro fabrication and fundamental biology, each of which is the basis of a kernel technology that makes it possible to build or grow huge numbers of almost-identical informationprocessing units at almost no cost.

45 Emergent Systems - inspirations and design 41 MAS are the base for an implementation of the amorphous-medium. While some papers [25] connect the amorphous-medium to Engineered Emergence, this abstraction does not imply emergent properties. Even if the amorphous-medium abstraction decouples micro and macro level like in emergent systems, by explicitly defining a low- and high-level language, the desired properties are based on self-organization instead of emergence. In spite of arising from the individual behavior of the independent entities, the overall behavior of the system is explicitly defined at the macro-level in the high-level language. The distinction between micro and macro level is mainly the idea to hide the complexity of the system, while each high level language statement could be connected to one or more low level statements, executed by uniform agents, and chosen by self-organization. This self-organization could even be realized hierarchically, but the concrete realization is hidden to an observer working at the macro level. Hence limiting the observer to a high level view, this observer experiences emergent properties. This notion of emergent systems, which is based on the limited capabilities of an observer, implies that all emergent systems could be understood at some lower level, which may be undiscovered yet. 6 State-of-the-art guidelines and approaches Most of research describing the design or implementation of emergent systems combines the concepts emergence and self organization as proposed in [1]. It was already stated, that there is a clear distinction between both concepts in 2.3, but most applications rely on a self-organization process to connect the micro and the macro level. Hence in this section the two concepts cannot be treated separately. Self-organization is regarded as a tool to create emergence. It is however still to question if the resulting systems could be called emergent or rather self-organizing. The three approaches presented in 5 are often used in combination. Neural networks are a good example, as they are inspired by biology and adapted to the specific application domain by training and selection. Stigmergy also follows an existing design, extracted from biological processes, while the implementation is based on a MAS. Several authors investigate the possibilities of integration between these approaches into an overall guideline. At this point of research no overall guideline is available that explicitly targets emergent systems. Considering that there is very little experience about designing emergent systems present today, conventional methods are seen as a base that could be customized to emergent systems. The two authors Valckenaers and de Wolf are the main exponents of this approach. They combine the architecture and design approaches of emergent system with proven methods from software design. Their work represents the current state of the art in designing emergent software systems.

46 42 M. Wagner, L. Müller 6.1 Conventional design methodologies The two currently dominating software design methodologies, top-down functional design and the object oriented approach can provide robustness and fault tolerance and adaptivity only by a careful and expensive design as described by Valckenaers et al.[21]. Both are driven by the requirements of the user. In functional design, requirements of an application are collected, categorized and each category connected to a component or subfunctionality of the system. If a complex system can not be designed in such a straightforward manner, the process is repeated for every single component. Object orientation also focuses on the decomposition of the system into components. Since user requirements are notoriously unstable, the designed objects model the world of interest instead, which is much more stable. Both design methodologies impose a general constraint on the requirements that can be implemented as features. Functional requirements can be implemented easily, while in contrast, non-functional requirements are not explicitly addressed. Each feature is represented in the design of a system by one or a well defined number of components. Each requirement is implemented by a single component of the system or is decomposed into a limited number of components. A component can be a function or an object. Each of these components is realizing a set of features, every fault in one of these components, either by unknown input values or internal error will render the whole system incapable to provide the desired feature. The obvious and wide spread solution adds backup components to the system, which can replace a component in case of error. This lowers the probability of internal errors, but in case of an unexpected input, the backup system will fail as well. Moreover the management of backup components adds another possible source of error to the system. The complexity of the system and the number of possible errors increases, but the effect of an error decreases. In already complex system e.g. multiple tasks in a dynamic environment, an additional increase in complexity could not be managed anymore and could therefore reduce the reliability of the system. New approaches are necessary to overcome this situation. In emergent systems, robustness, fault tolerance and adaptability are not realized by a single component, but arise from interaction of all components of the system. Several authors [24, 21] suggest to learn from emergent systems as a completely new methodology to design algorithms and applications. Emergent systems do not rely on a hierarchical decomposition of requirements and features, instead the desired global properties emerge bottom up. Figure 6 illustrates the central difference between hierarchical decomposition on the left and emergence of functionality on the right. While in current design methodology, functionality is hierarchically decomposed into specialized parts, emergence works nearly inverse. The elementary parts of the system are not specialized but can fulfill various roles to provide the functionality in co-operation with each other. Hence the functionality of the system cannot be decomposed into sub functionalities. As already stated in 2.1 emergent system consist of micro and a macro level of functionality, connected by upward and downward causation. The design of this

47 Emergent Systems - inspirations and design 43 Abbildung 6. Top-down and bottom-up design methodology connection is still an open question. Most of the existing applications rely on an existing design (See section 3). Nevertheless, a methodology which enables software developers to design emergent systems would be a promising approach to reduce complexity in software design. 6.2 Principles and guidelines for emergent systems General Principles can be deduced from known properties of emergent systems. As emergent systems shall adapt to uncertain environments, Valckenaers et al. [4] formulate two basic design principles, which focus on constraints introduced in the design phase. Constraints define the behavior of a system, but also impose limitations of this function. Every design decision implicitly results in constraints. If constraints are independent regarding a changing environment, they are called stable. Unstable constraints in contrast, rely on assumptions and may result in future conflicts. The design guideline in [4] therefore summarizes as follows: (1) designers must prefer stable design decisions and (2) earlier unstable design decisions are no justification for later decisions imposing the same constraint(s). These design principles are not limited to emergent systems but can be applied to all adaptive systems. Minimizing potential harmful constraints is an obvious solution to increase the adaptivity of a system. To design real applications, an extensive knowledge is necessary to distinguish stable and unstable constraints. Low and late commitment are well-known principles that address this issue. As constraints define the behavior of a system at runtime, they should adapt to the current environment. Emergent systems require a very small number of constraints to fulfill their tasks, which are rather defined on an abstract level, than describing a concrete functionality. How could these abstract stable constraints be defined? The hierarchical decomposition methodology offers the possibility

48 44 M. Wagner, L. Müller of alternative modules e.g. objects or adapters. They aren t abstract constraints but alternative constraints, which can only adapt to at design time foreseen environments. These alternative components can be exchanged easily. Several available architectures focus on flexible combination of alternative components. Such systems are called loosely coupled. The service oriented architecture (SOA) is probably the most common loosely coupled architecture. Emergent systems use a loosely coupled network of individual elements, each providing a basic functionality. This network can adapt to a changing environment and still provide the desired functionality, because the design decisions are embedded in the basic elements. In contrast to SOA these elements have no designated function concerning the whole system. The organization of these elements changes but not the high level functionality. There are various further design principles for specialized architectures. Most notably the design of multi-agent systems has been target of intensive research. Some principles like Think in terms of flows rather than transitions, Keep agents small, focus on interactions, and Provide a local fitness measure for agents to react on that is correlated with the global situation can be adapted and applied to all emergent systems [33]. However, detailed reference architectures and guidelines are bound to multi-agent systems and focus on selforganization instead of emergence. 6.3 A customized unified process A stand-alone design approach is not sufficient to use emergent systems as a software design methodology. Embedding these new approaches into the software development process rises new questions. If the design of emergent systems is possible, could the results be guaranteed? How could the actual state of development be measured? Moreover, could a project manager estimate the required time and effort? The unified process is a wide spread conventional software development process. The process starts by gathering the requirements of the system. Based on these constraints, the design of the application follows. In the next step, the design is implemented, before the resulting application is verified and tested in respect to the requirements. This process is often organized in several mini-projects, whose goal is a functional component of the systems. The output from testing can lead to adjustments in the design, resulting in an iterative progress of software development. Tom de Wolf[32] has proposed an adaption of the unified process to self-organizing emergent systems as shown in figure 7. Each step, except the implementation has to be modified. The requirements shall focus on non-functional requirements, which describe the high level behavior of the system. Examples are the so-called self-x properties: self-optimizing, self-healing, self-configuring. The design is split up into an architectural and detailed design phase. The architectural design is mainly responsible for the emergent properties. De Wolf mirrors at this point the uncertainty in research on designing emergent systems. He cites architectural design is partially a science and partially an art. This creative task

49 Emergent Systems - inspirations and design 45 decides how the high and low level of the system should be connected. If this basic design is complete, the detailed design starts, which corresponds to the design in the conventional unified process. It defines the components that are implemented afterwards. If a first implemented system is available, the functionality of the system is tested against the requirements. This test is completely different to the unified process. Because the components on their own exhibit no emergent behavior, the system has to be tested as a whole. Considering the effort to implement an emergent system this is a serious limitation of this process. The result should help to modify the architecture design of the system. These tests can not be standardized e.g. by unit tests because the measured requirements are non-functional. A scientific analysis is necessary to obtain useful information. Even the suitability of this data for the design process, has to be questioned. The three approaches presented in 5 are combined with the unified process. MAS Abbildung 7. Unified process [32] provide the base of implementation. The iterations and their evaluation can be understood as a large scale translation of the training and selection approach. Referring to the main problem of engineering emergent systems, the architectural design, best practices from biology are advocated. This proposed customized process is aimed on MAS. The term self-organizing emergent MAS is used, which indicates the affiliation of both concepts in this particular architecture. This customization is only a first approach, several question are still open. The incremental process is only possible if the outcome of the testing phase can be measured and used directly for the design. The key problem of designing new emergent properties remains unsolved, because a biological inspiration is still necessary.

50 46 M. Wagner, L. Müller 7 Conclusion The main components have been extracted from the presented systems. Until now these components are a review of existing research but they can provide a base for a future emergence facilitating architecture. Several authors claim that designing or engineering emergent systems is possible, but all reviewed papers start by weakening the definition of emergence as used in biology and system theory for years. Emergence and self-organization are nearly always used in combination and both concepts are therefore frequently confused. The problem of designing a truly emergent system, with new non-functional properties that can be guaranteed at design time, is still unsolved. The key to this problem is the design of attractors, which is a more mathematical problem than a software problem. Promising approaches to artificial emergence come from other disciplines like physics[28]. But their work is not yet connected to the current problems faced by software developers. The overwhelming growth of complexity in a networked world needs new approaches. Emergent system can not yet be designed intentionally. Successful applications rely on existing designs from biology. All available proposals of guidelines and design processes are not able to create stable emergent systems from scratch in a reasonable time. Self-organization however is several steps ahead. Self-organizing systems have been proven as stable. New design paradigms like the amorphous-medium abstraction will ease the development of new adaptive applications. As current emergent systems heavily rely on self-organization processes, their development may facilitate a future break through in the design of emergent systems. Literatur [1] Tom De Wolf and Tom Holvoet: Emergence Versus Self-Organisation: Different Concepts but Promising When Combined; S. Brueckner et al. (Eds.): ESOA 2004, LNCS 3464, pp. 1 15, [2] Marco Dorigo, Vittorio Maniezzo and Alberto Colorni: The Ant System: Optimization by a colony of cooperating agents; IEEE Transactions on Systems, Man, and Cybernetics Part B, Vol.26, No.1, 1996, pp.1-13 [3] Horst. F. Wedde, Muddassar Farooq, Thorsten Pannenbaecker, Bjoern Vogel, Christian Mueller, Johannes Meth and Rene Jeruschkat: BeeAdHoc: An Energy Efficient Routing Algorithm for Mobile Ad Hoc Networks Inspired by Bee Behavior; GECCO 05, June 25 29, 2005, Washington, DC, USA. [4] Paul Valckenaers, Martin Kollingbaum, Hendrik van Brussel, Olaf Bochmann, C. ZamfirescuU: The design of multi.agent coordination and control systems using stigmergy; Katholieke Universiteit Leuven, Dept. of Mech. Engineering, Division P.M.A., Celestijnenlaan 300-B, B-3001 Heverlee (Leuven) - Belgium [5] Giovanna Di Marzo Serugendo, Marie-Pierre Gleizes, Anthony Karageorgos: Self- Organisation and Emergence in MAS: An Overview; Informatica 30 (2006) [6] Martin Roth and Stephen Wicker: Termite: Emergent Ad-Hoc Networking; Wireless Intelligent Systems Laboratory, School of Electrical and Computer Engineering, Cornell University, Ithaca, New York USA.

51 Emergent Systems - inspirations and design 47 [7] Carlos Gershenson and Francis Heylighen: When Can we Call a System Selforganizing?; Centrum Leo Apostel, Vrije Universiteit Brussel Krijgskundestraat 33, Brussels, 1160, Belgium [8] Francis Heylighen: The science of selforganization and adaptivity; Center Leo Apostel, Free University of Brussels, Belgium [9] J.-L. Deneubourg, S. Aron, S. Goss and J. M. Pasteels: The Self-Organizing Exploratory Pattern of the Argentine Ant; Journal of Insect Behavior, Vol. 3, No.2, 1990 [10] Thomas D. Seeley and William F. Towne: Tactics of dance choice in honey bees: do foragers compare dances?; Behav. Ecol. Sociobiol. (1992) 30:59-69 [11] D.J.T. Sumpter, S.C. Pratt: A modelling Framework for understanding social insect foraging; Behav. Ecol. Sociobiol. (2003) 53: [12] K. v. Frisch und R. Jander: Über den Schwänzeltanz der Bienen; Zeitschrift für vergleichende Physiologie Bd. 40, S (1957) [13] B.Golden, W.Stewart, Ëmpiric analysis of heuristics,ïn The Travelling Salesman Problem, E. L. Lawler, J. K. Lenstra, A. H. G. Rinnooy-Kan, D. B. Shmoys eds., New York:Wiley, [14] E.L.Lawler, J.K.Lenstra, A.H.G.Rinnooy-Kan, D.B.Shmoys eds., The Travelling Salesman Problem, New York:Wiley, [15] Gianluigi Folino and Giandomenico Spezzano: An Adaptive Flocking Algorithm for Spatial Clustering; J.J. Merelo Guervós et al. (Eds.): PPSN VII, LNCS 2439, pp , [16] David B Johnson and David A Maltz. Dynamic source routing in ad hoc wireless networks. In Imielinski and Korth, editors, Mobile Computing, pages Kluwer Academic Publishers, [17] C. Perkins and E. Royer. Ad-hoc on-demand distance vector routing. In Proceedings of Second IEEE Workshop on Mobile Computing Systems and Applications, [18] Charles Perkins and Pravin Bhagwat. Highly dynamic destination-sequenced distance-vector routing (DSDV) for mobile computers. In Proceedings of ACM SIGCOMM 94 Conference on Communications Architectures, Protocols and Applications, pages , [19] David A. Fisher & Howard F. Lipson: Emergent Algorithms - A New Method for Enhancing Survivability in Unbounded Systems; Proceedings of the 32nd Hawaii International Conference on System Sciences [20] Christopher Rouff, Walt Truszkowski, Mike Hinchey: Verification of NASA Emergent Systems; Proceedings of the Ninth IEEE International Conference on Engineering Complex Computer Systems Navigating Complexity in the e-engineering Age /04 [21] Paul Valckenaers, Hendrik van Brussel, Hadeli, Olaf Bochmann Bart Saint Germain, Constantin Zamfirescu: On the design of emergent systems: an investigation of integration and interoperability issues; Engineering Applications of Artificial Intelligence Volume 16, Issue 4, June 2003, Pages [22] Susan Stepney, Fiona A. C. Polack, Heather R Turner: Engineering Emergence; Proceedings of the 11th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 06) X/06 [23] Pierre Marcenac: Modeling MultiAgent Systems as Self-organized Critical Systems; Proceedings of 31st Annual Hawaii International Conference on System Sciences

52 48 M. Wagner, L. Müller [24] David A. Fisher, Howard F.Lispen: Emergent Algorithms - A New Method for Enhancing Survivability in Unbounded Systems; Proceedings of the 32nd Hawaii International Conference on System Sciences [25] Jacob Beal, Jonathan Bachrach: Infrastructure for Engineered Emergence on Sensor/Actuator Networks; IEEE intelligent systems, IEEE Computer Society / [26] H. Abelson, D. Allen, D. Coore, C. Hanson, G. Homsy, T. Knight, R. Nagpal, E. Rauch, G. Sussman and R. Weiss: Amorphous Computing; AI Memo 1665, August [27] Stan Franklin, Art Graesser: Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents; Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages; Springer-Verlag, [28] James P. Crutchfield, Melanie Mitchel: The evolution of emergent computation; Proc. Natl. Acad. Sci. USA Vol. 92, pp , November 1995 Computer Sciences [29] Holk Cruse, Jeffrey Dean, Helge Ritter: Die Entdeckung der Intelligenz; Deutscher Taschenbuch Verlag pp April 2001 [30] Ikuo Suzuki, Hiroshi Yokoi, Yukinori Kakazu: Emergence of Adaptive Behavior by Chaotic Neural Networks; Proceedings 2003 IEEE International Symposium on Computational Intelligence in Robtics and Automation July 1620,2003, Kobe, Japan [31] Tom M. Mitchel: Maschine Learning; McGraw-Hill Series in Coputer Science, pp ,1997 [32] Tom De Wolf, Tom Holvoet: Towards a Methodology for Engineering Self- Organising Emergent Systems; Self-Organization and Autonomic Informatics (I), Volume 135 of Frontiers in Artificial Intelligence and Applications H. Czap et al. (Eds.) IOS Press, 2005 [33] H. Van Dyke Parunak, Sven A. Brueckner:Engineering Swarming Systems; Methodologies and Software Engineering for Agent Systems. Klywer, 2004

53 Evolutionäre Algorithmen Carsten Schiemann Universität Augsburg Zusammenfassung Hier wird ein Überblick über das Gebiet der evolutionären Algorithmen gegeben. Dazu wird kurz auf die Entstehungsgeschichte eingegangen. Dann folgt eine Erläuterung, wieso diese Algorithmen entwickelt werden und auf welche Eigenschaften besonderen Wert gelegt wird. Es folgt eine Erklärung wie evolutionäre Algorithmen aufgebaut sind, in der auf die einzelnen Schritte, die den evolutionären Algorithmen eigen sind, eingegangen wird. Dann wird auf die Bedeutung des No-Free-Lunch Theorems hingewiesen und einige Beispielprobleme, die zur Analyse dieser Algorithmen hilfreich sind, vorgestellt. Zum Abschluss wird noch auf die bei evolutionären Algorithmen anders definierte Komplexität eingegangen und die Laufzeit für das Sortieren durch einen Beispielalgorithmus betrachtet. 1 Einleitung Evolutionäre Algorithmen sind ein aus der Bionik, also dem Versuch durch Imitation der Natur neues Verständnis zu erreichen, entstandenes Gebiet der allgemeinen randomisierten Suchheuristiken. Sie basieren auf den Prinzipien die von Charles Darwin in seiner Evolutionstheorie aufgestellt wurden. Darvins Lehre basiert im Wesendlichen auf drei Grundannahmen und Beobachtungen: 1. dass fast alle Lebewesen mehr Nachkommen erzeugen als überleben können, 2. dass Lebewesen einer Art sich zwar sehr stark ähneln können, jedoch nie vollkommen identisch sind und 3. dass sich nur erbliche Varianten in der Folgegeneration wieder finden, die sich im Kampf um das Überleben bewährt haben. Die letzte Annahme führt langfristig zu einer Optimierung der Lebewesen einer Art. Daraus leitete Darvin seinen Selektionsdruck ab, da die Anzahl der Lebewesen trotz des potenziellen Überschusses in der Regel relativ konstant bleibt. Ein Großteil der Nachkommen stirbt also durch Mangel an Resourcen wie zum Beispiel der Menge verfügbarer Nahrung. Daher erwartete er, dass sich diejenigen Individuen auf lange Sicht durchsetzen, die gut an die Umgebung angepasst sind. Die angepassten Individuen sollten länger leben und sich deshalb auch besser vermehren. Aus Sicht eines Informatikers lässt sich dieser Vorgang als ein seit mehreren Milliarden Jahren andauernder Optimierungsprozess auffassen, der auf dem Suchraum der genetischen Informationen möglichst gute Erbanlagen sucht. Im Falle des Menschen ist dies ein Suchraum von Genen, was zu der Annahme von Punkten im Suchraum führt. Dass ein Algorithmus, der sich auf dieser Grössenortnung so effizient wie die Evolution zurechtfindet, das Interesse der Informatiker weckt, ist somit nicht verwunderlich.

54 50 C. Schiemann Die Evolution setzt dabei auf die drei Prinzipien der Mutation, des Crossovers, auch Rekombination genannt, und der Selektion. Die Mutation erzeugt nur geringfügige Änderungen der Individuen führt aber im Sinne der Optimierung dazu, dass nicht in lokalen Optima stehen geblieben wird. Das Crossover führt dazu, dass Individuen entstehen, die gute Eigenschaften ihrer Eltern vereinen. Als Letztes sorgt die Selektion dafür, dass gute Eigenschaften häufiger und schlechte weniger häufig auftreten. Für die Informatik besonders interessant macht die evolutionären Algorithmen der Umstand, dass sie auch für NP schwere Probleme in kurzer Zeit gute Ergebnisse liefern. Diese Ergebnisse stellen zwar nicht notwendigerweise auch die optimale Lösung dar, jedoch ist für die meisten Anwendungen eine fast optimale Lösung ausreichend. Desweiteren lassen sich evolutionäre Algorithmen sehr gut parallelisieren, da viele Individuen gleichzeitig betrachtet werden können. Diese Umstände sorgen für reges Interesse seitens der Wirtschaft und führt zu Anwendungen, die so unterschiedliche Gebiete wie die Optimierung von Pipelineausnutzung, das Finden eines guten Reifenprofils oder die Anordnung der Hämmer am Rotor eines Hammerbrecher beinhalten. 2 Entstehung Die ersten Ansätze und die Idee für evolutionäre Algorithmen gehen auf Arbeiten zurück, die in den späten 50er Jahren bis Anfang der 60er erschienen sind. Sie waren noch nicht sehr erfolgreich, da sie nur die Idee der Mutation aus der Biologie nachbildeten. In den frühen 60er Jahren hat Hans J. Bremermann dann auch die Vererbung von zwei Eltern nachgebildet, wobei er die Limitierung auf nur zwei Eltern in der Informatik als überflüssig erkannte. Bis zum Jahr als sich die Wissenschaftler auf den einheitlichen Oberbegriff der evolutionären Algorithmen einigten, war das Lager in drei große Bereiche gespalten. Die genetischen Algorithmen, das evolutionäre Programmieren und die Evolutionsstrategie. Im Jahr 1992 kam noch ein vierter Bereich das genetischen Programmieren hinzu. 2.1 Genetische Algorithmen Für die genetischen Algorithmen legten die Arbeit Adaptation in natural and artificial systems von John H.Holland vom Jahre 1975 und die Arbeit von David E. Goldberg Computer-aided gas pipeline operation using genetic algorithms and rule learning von 1983 den Grundstein, auch wenn der Begriff auf die Arbeit The behavior of adaptive systems which employ genetic and correlation algorithms von J. D. Bagley aus dem Jahre 1967 zurück geht. Dieser Ansatz wird hauptsächlich in den Vereinigten Staaten verfolgt. Den offensichtlichsten Unterschied zu den weiteren Bereichen stellt die Repräsentation der Lösungen in einer Bitdarstellung dar. Andere Unterschiede sind ehr historisch bedingt und verschwinden zunehmend. Ein Untergebiet stellen die Classifier Systeme dar, die auf eine weitere Arbeit von J.H. Holland zurückgehen.

55 Evolutionäre Algorithmen Evolutionäres Programmieren Den Grundstein für evolutionäres Programmieren setzte die Arbeit von L. J. Fogel, A. J. Owens and M. J. Walsh Artificial Intelligence through Simulated Evolution des Jahres Hier wird auf einer natürlichen Representation des Problems gearbeitet. In späterer Entwicklung rückte das Gebiet des evolutionären Programmierens immer stärker zu den Evolutionsstrategien. 2.3 Evolutionsstrategie Das Gebiet der Evolutionsstrategie ist von I. Rechenberg mit der Arbeit Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution vom Jahre 1973 und Projekt MHD-Staustrahlrohr: Experimentelle Optimierung einer Zweiphasendüse, Teil I. Technischer Bericht von H.-P. Schwefel aus dem Jahre 1968 aufgestellt worden. Die Forschung zur Evolutionsstrategie hat, wie schon aus den grundlegenden Arbeiten zu erkennen ist, in Deutschland seinen Schwerpunkt und geht von einem reelwertigen Suchraum aus. Sie lässt sich in fünf Grundarten aufteilen: (1 + 1), (µ + 1), (µ + λ), (µ, λ) und (µ, λ (µ, λ) γ ). Die Unterschiede beziehen sich auf die Anzahl der gleichzeitig betrachteten Lösungen und darauf, wie weitere Lösungen berechnet werden. 2.4 Genetisches Programmieren Das jüngste Gebiet, das genetische Programmieren, stützt sich auf die Arbeit Genetic Programming: On the Programming of Computers by Means of Natural Selection von J. R. Koza des Jahres Hier wird auf einem als Baumstruktur dargestellten Programm, in lisp-artiger Darstellung gearbeitet. 3 Black-Box Optimierung Nachdem nun geklärt ist, wer wann entscheidenden Einfluss auf die Entwicklung des Verständnisses für evolutionäre Algorithmen hatte, witmet sich dieser Abschnitt der Frage, was die Ziele dieser Algorithmen sind und wie sie sich von den bereits bekannten Algorithmen wie zum Beispiel dem Sortieralgorithmus Quicksort unterscheiden. Bei den klassischen Algorithmen steht immer zuerst das Problem, in obigem Beispiel das Sortieren eines Arrays, im Raum und es wird nach einem effizienten Algorithmus gesucht. Dieser Algorithmus geht dann nach seinem Entwurf durch eine Analyse, eine Verifikation, die Implementierung und einen Test. Dann kann das Problem durch eine verbesserte Version des bekannten Algorithmus oder durch einen vollständig unabhängig entwickelten Algorithmus aufs Neue angegangen werden. Bei evolutionären Algorithmun sieht das anders aus. Hier steht zuerst der Algorithmus, für den dann ein Problem gesucht wird, das er besser als bisher bekannte Algorithmen lösen kann.auf diese Weise kommt es zu einer Sammlung

56 52 C. Schiemann von evolutionären Algorithmen. In der Praxis wird das Problem erst einmal auf eine Form gebracht, die dem Algorithmus entgegen kommt, dann wird der Algorithmus auf das so modifizierte Problem angewendet und anschliessend eventuell noch geringfügig an das Problem angepasst. Im wesendlichen geht man jedoch davon aus, dass der Algorithmus schon fertig ist und nur aus der Sammlung genommen werden muss. Das macht die evolutionären Algorithmen auch so interessant, da sie unabhängig von dem Problem funktionieren und einfach auf das Problem angewendet werden können, ohne dass man das Problem in einer Tiefe, die für einen klassischen Algorithmus notwendig ist, verstanden haben muss. Die Algorithmen arbeiten ohne Einblick auf das Problem zu haben und nutzen besondere Eigenschaften des Problems meist nicht aus. Deshalb spricht man auch häufig von Black-Box Optimierung. Während klassische Algorithmen oft scher zu verstehen sind, die Implementation nicht minder aufwändig ist, dafür aber Aussagen über sein Laufzeit, seine Effizienz und seine Fähigkeit eine Lösung zu finden gemacht werden können, sind evolutionäre Algorithmen normal einfach zu verstehen und leicht zu Implementieren, doch gibt man sich damit zufrieden, wenn sie in akteptabler Zeit eine brauchbare Lösung finden. Aus dieser Erwartungshaltung wird schon klar, wo evolutionäre Algorithmen ihren Einsatz finden: Bei Problemen, die nur schlecht verstanden sind oder wo zeitliche und/oder andere Gründe dagegen sprechen, einen problemspezifischen Algorithmus zu suchen. Hier erzeugt man also einen Tradeoff von menschlicher Arbeitszeit zu Rechenzeit. Auf der anderen Seite kann, wenn ein evolutionärer Algorithmus ein Problem gut löst, es oft auch einfach verstanden werden, was zu der Entwicklung eines problemspezifischen Algorithmus führen kann, der mindestens genauso gut wie der evolutionäre es ist, für den jedoch auch eine Analyse und Aussagen über die Laufzeit oder Güte der Lösung möglich sind. 4 Aufbau evolutionärer Algorithmen Evolutionäre Algorithmen sehen in der Grundform immer gleich aus. Es wird eine erste Generation an Punkten ausgewählt, dann bestimmt man so lange irgendwie eine nächste Generation, bis eine Abbruchbedingun erfüllt ist. Am Ende gibt man noch das beste gefunde Ergebnis aus. Wie in dieser kurzen Beschreibung schon ersichtlich ist, laufen genetische Algorithmen in Runden, die durch die Nähe zur Biologie auch Generationen genannt werden. Die Suche findet in einem Suchraum S statt und man braucht eine Funktion f die Punkte aus S, nach der Biologie Individuen genannt, bewertet. Diese Funktion wird meist als Fitnessfunktion bezeichnet. Der Algorithmus soll also ein Individuum finden, für das f(s) maximal ist, und das natürlich möglichst schnell. Dazu startet man gewöhnlich mit einer Initialisierung, in der die erste Generation Individuen, in der Summe auch Population genannt, gewählt wird. Diese wird im nächsten Schritt bewertet und es werden die Individuen ausgewählt, die die erste Elterngeneration bilden. Dann läuft der Algorithmus in immer gleichen Runden bis ein Abbruchkriterium erfüllt ist. In den Runden wird

57 Evolutionäre Algorithmen 53 immer die nächste Generation, die Nachkommen, durch Mutation, also Veränderung eines Elter, oder durch Crossover, also durch eine Variation in die mindestens zwei Eltern eingehen, erstellt. Oft wird Crossover verwendet, auf das dann noch eine Mutation angewendet wird. Dann werden die Individuen ausgewählt, die endgültig in die nächste Generation über gehen sollen, da meist die Grösse der Generation gleich bleiben soll. Abbildung 1. Ablauf evolutionärer Algorithmen 4.1 Suchraum Der Suchraum ist häufig ein Kreuzprodukt mehrerer Mengen M 1... M n wobei drei Suchräume am Häufigsten auftreten. Soll zum Beispiel eine Sortierung gefunden werden, so ist als Bewertungsfunktion eine Funktion von f : S n R angebracht, da nur eine Permutation der vorhandenen Elemente gesucht wird. In diese Kategorie fällt auch das TSP (Traveling Salesperson Problem), für das genetische Algorithmen ein häufig genutzter Ansatz sind. Dann gibt es natürlich auch die Optimierung, wie sie einem als erstes einfällt, in der die Fitnessfunktion f : R n R geht und noch die Probleminstanzen von f : B n R, wie sie zum Beispiel für SAT (Erfüllbarkeitsproblem der Aussagenlogik) geeignet sind. 4.2 Initialisierung Normal wird die erste Population zufällig gleichverteilt gewählt. Nur beim R n schränkt man den Wertebereich meist ein. Für manche Probleme kann es sinnvoll

58 54 C. Schiemann sein, die erste Population durch eine Heuristik schon möglichst gut zu wählen, doch sollte man bedenken, dass bei zu ähnlichen Individuen viele Algorithmen schlecht funktionieren. 4.3 Selektion Die Selektion wird meist in Abhängigkeit von den Fitnesswerten ausgeführt, wobei Individuen mit besserer Fitness eine höhere Wahrscheinlichkeit haben, in die nächste Generation aufgenommen zu werden. Ein paar Beispiele für die Selektion sind: Die Uniforme Selektion Es wird zufällig gleichverteilt ausgewählt Die Fitnessproportionale Selektion Es wird davon ausgegangen, dass alle Fitnesswerte positiv sind. Dann wird ein Individuum s aus der Population P mit Wahrscheinlichkeit f(s)/ x P f(x) gewählt. Nachteilig an dieser Wahl ist die sehr starke Abhängigkeit von den konkreten Fitnesswerten. So ändert sich das Selektionsverhalten merklich, wenn statt f die doch sehr ähnliche Funktion f + c gewählt wird. Bei sehr großen Unterschieden der Fitnesswerte kann eine solche Selection schon deterministisch werden, ein oft ungewollter Effekt. Ein paar Abwandlungen der fitnessproportionalen Selektion versuchen diese Probleme zu behandeln. Eine Variante ist die Rang-Selektion, bei der statt f(x) der Rang des Individuums in der nach Fitness sortierten Population verwendet wird Die Turnier Selektion Die Individuen werden durch Abzählen in Gruppen eingeteilt und aus jeder Gruppe kommt das fitteste Individuum weiter. Die Nachteile die bei der fitnessproportionalen Selektion auftreten, treten hier nur lokal auf Die Schnitt-Selektion Es werden determitistisch die k Individuen mit grösster Fitness ausgewählt. Zwei spezielle Vertreter dieser Selektionsart sind: Plus-Selektion Hier werden die µ besten Individuen aus der Vereinigung der µ alten und λ neuen Individuen gewählt. Kurz schreibt man auch (µ+λ) Selektion. Komma-Selektion Dagegen werden in der (µ, λ) Selektion die µ Nachkommen mit grösster Fitness gewählt. Es werden also µ Eltern, das heißt alle Eltern, und λ µ Nachkommen verworfen. Neben den hier vorgestellten Selektionsverfahren, die nur auf der Fitness der Individuen beruhen, wird oft auch noch die Ähnlichkeit der Individuen als Auswahlkriterium hinzugezogen. Für Bitstrings zum Beispiel der Hammingabstand: n Ham(x, y) = ((x i ) + (y i ) 2(x i )(y i )) i=1

59 Evolutionäre Algorithmen 55 also die Anzahl der Bits, an denen sich zwei Bitstrings unterscheiden. Ziel ist hier zu verhindern, dass sich die Individuen zu sehr ähneln. Mit dem selben Ziel kann auch der Abstand vom Schwerpunkt der Population mit in die Auswahl einfließen. 4.4 Mutation Für alle Mutationsoperatoren gilt, dass sie aus einem Elter einen nur leicht abgewandelten Nachkommen erzeugen. Sie sorgen dafür, dass der Algorithmus nicht an einem lokalen Optimum hängen bleibt, haben ansonsten aber ehr geringe Bedeutung Für den B n Als Maß für die Ähnlichkeit liegt wieder der Hammingabstand nahe. Bei der Standardbitmutation wird der Elter kopiert und jedes Bit unabhängig voneinander mit Wahrscheinlichkeit p m verändert. Dabei machen für p m nur Werte aus (0, 1/2] Sinn, wobei bei p m = 1/2 das Ergebnis schon eine rein zufällige Suche ist. Meist wird p m = 1/n verwendet, da dann im Durchschnitt nur ein Bit mutiert. Es kommen jedoch auch Fälle vor, in denen keins oder mehrere Bit verändert werden. Im Gegensatz dazu wird bei der 1-Bit-Mutation immer genau ein Bit verändert. Dies macht die Analyse einfacher, jedoch kann das Verhalten im Vergleich zur Standardbitmutation mit p m = 1/n erheblich abweichen. Da der Hammingabstand bei der 1-Bit-Mutation immer genau eins ist, wird diese auch als Nachbarschaftsoperation aufgefasst. Offensichlich ist auch eine k-bit-mutation möglich, findet jedoch fast keine Verwendung Für den R n Im R n wird die Mutation meist durch die Addition eines n-stelligen Vektors m zum Elter erreicht. Grundsätzlich kann jede Stelle von m unabhängig voneinander gewählt werden, in einfachen Algorithmen sind jedoch alle Stellen x i von m gleich. In der Regel werden hier Zufallszahlen mit Erwartungswert 0 gewählt. Hier wird zwischen beschränkter, also x i [a, b] meist [a, a], und unbeschränkter Mutation unterschieden. Die verbreitetere Variante ist die unbeschränkte, bei der jedoch die Wahrscheinlichkeit umgekehrt proportional zu dem Wert der Abweichung x i ist. Am verbreitetsten ist hier eine Normalverteilung mit variabler Standartabweichung. Diese wird so gewählt, dass sie in der Nähe von guten Punkten niedrig ist, mit grösser werdender Entfernug jedoch mit wächst Für den S n Die für den S n sinnvollen Mutationsoperationen hängen sehr vom zu behandelnen Problem ab. Ein paar gebräuchliche sind der Austausch, also ein zufälliges Swap von zwei Elementen, und Operationen, die einen Teilbereich unangetastet lassen, den Rest aber verändern. Dazu zählen die Rotation nach Rechts, Spiegelung und Sprung. Aus dem Chromosom a,b,c,d,e,f,g und der Wahl 5 und 2 wird dann durch die Rotation g,a,c,d,e,b,f, durch die Spiegelung g,f,c,d,e,b,a und durch den Sprung b,f,c,d,e,g,a.

60 56 C. Schiemann 4.5 Crossover Crossover ist der wichtigere Operator. Es wird versucht die guten Eigenschaften einer Gruppe von Individuen zu kombinieren, indem ein Individuum erzeugt wird, das sich in gewisser Weise zwischen den Eltern befindet. Ausser für den R n, für den auch grössere Anzahlen von Eltern gebräuchlich sind, wird meist ein Crossover von genau zwei Eltern verwendet Für den B n Das uniforme Crossover wählt unabhängig voreinader für den Nachkommen an der Stelle x i mit Wahrscheinlichkeit 1/2 den Wert des ersten oder zweiten Elters an der Stelle x i. Abbildung 2. Uniformes Crossover Das k-punkt-crossover wählt sich k Stellen im Bitstring an denen der Elter, von dem kopiert wird, geändert wird. Abbildung 3. K-Punkt-Crossover an 4 und 9 Eher für theoretische Betrachtungen interessant ist das Genpool-Crossover, das auf beliebig vielen Eltern, meist sogar der ganzen Generation, arbeitet. Hier wird mit der Wahrscheinlichkeit, die sich aus dem Quotienten der Summe der Einsen aller Eltern auf der Position x i und der Anzahl der Eltern ergibt,der Wert des Nachkommen an x i gewählt Für den R n Die für den B n vorgestellten Operationen uniformes und k-punkt-crossover sind analog auch im R n verbreitet. Desweiteren ist noch das arithmetischen Crossover häufig anzutreffen. Dies wählt als Nachkommen eine gewichtete Summe seiner Eltern x (i). Also (a 1 )(x (1) ) + (a 2 )(x (2) ) +... mit

61 Evolutionäre Algorithmen 57 (ai ) = 1. Häufig sind die a i alle identisch und man spricht von intermediärer Rekombination. Geometrisch gesehen, wird hier der Schwerpunkt der Eltern als Nachkomme gewählt Für den S n Zu erwähnen sind Order Crossover(OX), Partially Mapped Crossover (PMX), Cycle Crossover (CX) und Edge Recombination Crossover (ERX). Bei OX wählt man einen Bereich, der direkt in den Nachkommen kopiert wird. Der Rest wird mit den fehlenden Chromosomen in der Reihenfolge des anderen Elter gefüllt. PMX wählt ebenfalls einen Bereich, der direkt in den Nachkommen kopiert wird, dann werden jedoch so viele Gene wie noch möglich an die selbe Stelle wie beim anderen Elter übernommen. Der Rest wird von links nach rechts aufgefüllt. Anders als bei OX und PMX wird beim CX nicht ein Bereich gewählt, der direkt kopiert wird. Es wird ein beliebiges Gen genommen und von diesem ausgehend ein Kreis gesucht. Seien (1, 2, 3, 4, 5, 6, 7, 8) und (3, 6, 4, 8, 1, 7, 2, 5) die beiden Eltern und werde mit dem ersten Gen angefangen, so ergibt sich der Kreis (1, 3, 4, 8, 5). Alle Gene, die nun auf diesem Kreis Abbildung 4. Suche eines Kreises liegen, werden in den Nachkommen kopiert, die anderen Gene werden von dem anderen Elter kopiert. In diesem Beispiel werden also (3, 2, 4, 8, 1, 6, 7, 5) und (1, 6, 3, 4, 5, 7, 2, 8) als Nachkommen gewählt. ERX ist ein für das TSP entworfener Operator, auf den hier jedoch nicht eingegangen wird. 5 No-Free-Lunch Nachdem nun einige Algorithmen bekannt sind, interessiert natürlich die Laufzeit der Algorithem auf verschiedenen Problemen. Genauer, welchen Algorithmus sollte man für sein Problem wählen? Um hier zwei Algorithmen miteinander vergleichen zu können, definiert man erst einmal das Problem. Es wird versucht das Optimum auf einer Menge S, dem Suchraum, zu finden. Um sich einen Einblick in den Bildraum B zu verschaffen, hat der Algorithmus nur die Möglichkeit für einen Funktionswert x die Bewertungsfunktion f : S B aufzurufen. Da ein Optimum bestimmt werden soll, muss zumindest eine partielle Ordnung auf B exitieren. Also lässt sich das Problem als max{f(s) s S} darstellen. Dabei bleibt die Bewertungsfunktion dem Algorithmus aber immer verborgen. Probleme dieser Art werden wie schon erwähnt unter dem Begriff Black-Box Optimierung zusammengefasst.

62 58 C. Schiemann Da sich hier auf Algorithmen beschränkt wird, die auf einem Rechner ausgeführt werden sollen, kann man für den Suchraum und den Bildraum davon ausgehen, dass sie endlich sind. Es steht ja auch nur endlich viel Speicher zur Verfügung. Desweiteren kann davon ausgegangen werden, dass sie diskret sind, da jeder Punkt im Raum durch eine Bitfolge repräsentiert wird. Zwei unterschiedliche Punkte im Raum unterscheiden sich also um mindestens ein Bit. Für die Bewertungsfunktion kann man keine Einschränkungen treffen, doch geht man davon aus, dass jede beliebige Funktion f : S B gleich häufig auftritt. Um nun bei der Bewertung der Algorithmen nicht in ein Maschinen Model, bei dem jede Operation bewertet werden muss, zu verfallen, misst man die allgemeine Resource der Funktionsaufrufe, also wie häufig wird die Bewertungsfunktion f aufgerufen, bis das Ergebnis fest steht. Wie leicht einzusehen ist, kann man jeden Algorithmus zum Beispiel mit einem Wörterbuch so erweitern, dass ein einmal abgefragter Wert nicht ein zweites Mal abgefragt werden muss. Rechenzeit und Speicherplatz wird für die Betrachtung vernachlässigt, also wird ein Algorithmus in dieser Betrachtung durch das Hinzufügen eines Wörterbuchs nicht verändert. Nun gilt für diese Probleme das No Free Lunch Theorem[12] von Wolpert und Macready [13]: Theorem 1. (No Free Lunch) Seien S und R endliche Mengen und R partiell geordnet. Im Durchschnitt über alle Funktionen f : S R ist die Anzahl der Funktionsauswertungen bis zum Finden des Optimums für alle Algorithmen gleich. Diese Erkenntnis mag nun erstmal erschüttern, jedoch muss hier genau darauf geachtet werden, was die Vorraussetzungen waren. Es werden gar keine Anforderungen an den Suchraum, den Ergebnisraum oder die Fitnessfunktion gestellt. Also muss man das Theorem eigentlich so lesen, dass man so viele Informationen seines Problems wie möglich in den Algorithmus einfließen lassen sollte. Das verschlechtert zwar die Laufzeit bei allen Problemen, die sich nicht an die eingeflossenen Annahmen halten, dafür ist die Laufzeit bei allen gerade relevanten Problemen besser. 6 Fitnessfunktionen Da das betrachtete Problem vollständig in die Fitnessfunktion kodiert ist, ist die Wahl einer geeigneten Fitnessfunktion ein zentrales Problem bei dem Einsatz von genetischen Algorithmen. Deshalb gibt es auch eine unüberblickbare Anzahl von Funktionen und sogar Klassen von Fitnessfunktionen. Die Wahl sollte dem Algorithmus entgegen kommen, so ist eine Fitnessfunktion die eins ausgibt, wenn das Eingabearray sortiert ist, und null sonst, nicht wirklich hilfreich, wenn ein Sortieralgorithmus für Zahlen zu implementieren ist. Wählt man zum Sortieren zum Beispiel n i=1 ix i, sollte man ein günstigeres Verhalten des Algorithmus beobachten, da auch eine Information über den Platz jedes Wertes einfließt, also eine Art Fortschritt sichtbar wird. Drei häufiger für die Analyse des Verhaltens von evolutionären Algorithmen genutzte Funktionen sind:

63 Evolutionäre Algorithmen Fitnessfunktionen f : B n R OneMax(x) = ist sicher die bekannteste Funktion in diesem Bereich. Sie zählt die Anzahl der Einsen im Bitstring. Besonders die Eigenschaft, dass jeder Verkleinerung des Hammingabstandes zum Globalen Maximum 1 n um k auch den Funktionswert um genau k erhöht, hilft bei der Analyse. Sie eignet sich also recht gut, um die Eigenschaften eines Algorithmus zu untersuchen. LeadingOnes(x) = n i=1 n x i n i=1 j=1 ist recht ähnlich zu OneMax, nur dass sie nur die führenden Einsen zählt. Für sie gilt, dass sich der Funktionswert mit der Länge des Präfix ändert. Für diese beiden Beispiele gilt, dass sie unimodal sind, also dass sie nur ein lokales Maximum haben. Ein lokales Maximum im B n ist ein Punkt x, wenn für alle x mit H(x, x ) = 1 gilt, dass f(x) f(x ). Als direkte Konsequenz aus dieser Definiton gilt, dass jeder Punkt im B n entweder ein lokales Maximum ist, oder einen Nachbarn mit Hammigabstand eins und echt grösserem Funktionswert hat. x j 6.2 Fitnessfunktionen f : R n R Die bekannteste Funktion in diesem Definitionsbereich ist sicher Sphere(x) = und stellt gewissermaßen OneMax im R n dar. n i=1 x 2 i 7 Laufzeitanalyse genetischer Algorithmen Wie schon erwähnt, wird die Laufzeit eines evolutionären Algorithmus anders betrachtet, als bei klassischen Algorithmen. So wird nur die Anzahl der Zielfunktionsauswertungen gemessen, jedoch können für die Entscheidung, welcher Punkt im Suchraum als nächstes besucht werden soll, beliebig komplexe Berechnungen durchgeführt werden, ohne dass dies Auswirkungen auf die Optimierzeit hat. Ausserdem kennt ein Black-Box Optimierverfahren nicht das eigentliche Problem oder die Zielfunktion. Deshalb passt die Komplexitätstheorie, wie sie für klassische Algorithmen Anwendung findet, nicht so gut für evolutionäre Algorithmen. Die Motivation die zur Komplexitätstheorie für klassische Algorithmen geführt hat, ist aber auch für evolutionäre gegeben. Dazu ersteinmal eine formale Definition eines Black-Box Algorithmus[13] vgl.[3].

64 60 C. Schiemann Definition 1. Zu einer Klasse von Funktionen F {f : S R n }, S ein endlicher Suchraum, ist ein Black-Box Algorithmus ein Algorithmus, der folgendem allgemeinen Schema entspricht und für jede Funktion f F irgendwann einen f-optimalen Funktionswert berechnet. 1. Setze t := 0. Wähle x t S gemäss irgendeiner Wahrscheinlichkeitsverteilung. Lasse f(x 0 ) berechnen. 2. So lange das gewählte Stoppkriterium nicht erfüllt ist, führe 3 aus. 3. t := t + 1. Wähle x t S gemäß irgendeiner Wahrscheinlichkeitsverteilung, die von (x 0, f(x 0 )), (x 1, f(x 1 )),..., (x t 1, f(x t 1 )) 4. abhängen kann. Lasse f(x t ) berechnen. 5. Gib ein x (x 0, x 1,..., x t ) aus, das maximalen Funktionswert hat. Wie schnell ersichtlich ist, trifft diese Definition auf alle vorgestellten evolutionären Algorithmen zu. Das Stoppkriterium spielt keine große Rolle, wenn der Programmstopp nur spät genug eintritt, also sind auch Algorithmen die formal unendlich lang laufen hier zulässig. Nun aber zur Laufzeit [13] vgl.[3]: Definition 2. Sei F eine Klasse von Funktionen, A ein Black-Box Algorithmus für F. Für f F nennen wir die Zufallsvariable T A,f := 1 + min{t f(x t ) = max{f(x) x S}} Optimierzeit von A auf f. Ihr Erwartungswert E(T A,f ) heisst erwartete Optimierzeit. Die Zufallsvariable T A,F := max{e(t A,f ) f F} heißt Worst-Case Optimierzeit. Die Black-Box Komplexität von F B F ist durch definiert. B F := min{t A,f A Black-Box Algorithmus für F} Diese Definition setzt also die Anzahl der getesteten Individuen als Maß für die Komplexität an. Um sich klar zu machen, wie unterschiedlich diese Definition zur Komplexität von klassischen Algorithmen ist, folgt eine Analyse von 2-SAT (SAT mit Beschränkung auf maximal zwei Literale je Klausel). Um evolutionäre Algorithmen anwenden zu können, wird das Problem als eine Abbildung f : {0, 1} n R modelliert. Nun soll MAX-2-SAT (2-SAT, gesucht wird die Maximale Anzahl an erfüllbaren Klauseln), welches in NP liegt, auf diese Weise betrachtet werden. Jeder der n Werte stellt hier ein Literal dar. Nun kann die unbekannte Funktion f als Polynom dargestellt werden. f(x) := w 0 + n (w i x i ) + i=1 1 i<j n w ij x i x j

65 Evolutionäre Algorithmen 61 Dabei stellt der erste Summand alle Klauseln dar, die keins der Literale beinhalten, der zweite Summand alle Klauseln, die genau eins der Literale beinhalten und der letzte Summand alle Klauseln mit genau zwei Literalen. Wobei w natürlich für jede Klausel die in unserem Problem nicht auftritt, Null ist, und sonst Eins. Nun wird f an der Stelle 0 n ausgewertet. Dann wird f an allen Stellen ausgewertet, die nur eine Eins haben. Das sind offenbar n Auswertungen. ( Desweiteren werden noch die Stellen mit zwei Einsen betrachtet. Das sind n ) ( 2 weitere Auswertungen. Also zusammen sind es 1 + n + n ) 2 Auswertungen, was bedeutet, dass dies Problem in O(n 2 ) liegt, da danach f vollständig bekannt ist und nur noch das Maximum berechnet werden muss, was sich nicht in der Komplexität niederschlägt. Die Black-Box Komplexität unterschätzt also die erwartete Laufzeit, da nur die Abfragen gezählt werden. Schaut man sich nun die Fitnessfunktionen, die bereits vorgestellt wurden, an, so stellt man fest, dass sie alle in O(1) liegen. Ein Algorithmus, der einfach einen f-optimalen Punkt abfragt und dann aufhört ist für diese Probleme halt immer das Optimum. Also ist B F F. Diese Komplexität hilft also bei evolutionären Algorithmen nicht weiter, sofern nur eine mögliche Funktion betrachtet wird. Fasst man nun aber alle Funktionen f zusammen, auf denen sich der zu betrachtende Algorithmus gleich verhält wie für f, so ist die erwartete Worst-Case Optimierzeit von A auf F gleich der erwarteten Optimierzeit für f. Die so definierte Funktionsklasse F nennt man Verallgemeinerung von f. Im Allgemeinen ist es sehr schwierig die Komplexität einer Funktionsklasse zu bestimmen, weshalb man meist nur obere und untere Schranken bestimmt. Als obere Schranke reicht es einen Black-Box Algorithmus auf dieser Klasse zu testen. Wie man leicht nachvollziehen kann, hat diese Definition von Black-Box Komplexität sogar eine generelle obere Schranke bei ( S + 1)/2. Denn über alle Wahlen von zufälligen Reihenfolgen der Abfrage aller Werte aus S gemittelt, hat man das Maximum nach ( S + 1)/2 Abfragen gefunden. Eine untere Schranke ist meist wesentlich schwieriger zu bestimmen. Hier hilft Yaos Minimax Prinzip aus der Spieltheorie. Da dies nun etwas zu weit abschweifen würde nur die daraus folgende Erkenntnis: wenn man eine untere Schranke für einen optimalen deterministischen Algorithmus hat, ist dies auch eine untere Schranke für die Worst-Case Laufzeit eines randomisierten Algorithmus. 8 Sortieren Zum Abschluss noch ein Blick auf das Verhalten von evolutionären Algorithmen auf einem der am Besten verstandenen Gebiete der Informatik: das Sortieren. Dazu muss das Problem ersteinmal als ein Optimierungsproblem modelliert werden. Offenbar wird eine Permutation π der Eingabemenge gesucht, also bietet es sich an, als Ansatz den Suchraum S n zu wählen. Desweiteren braucht man eine Permutation, die als sortiert definiert wird. Da dies prinzipiell jede Permutation sein könnte, bietet sich die Identität an. Nun fehlt noch eine Fitnessfunktion, die der evolutionäre Algorithmus maximieren soll und die ein Maß enthält, wie nah an der Lösung die aktuelle Permutation ist. Da die Fitnessfunk-

66 62 C. Schiemann tion das entscheidende Element für die Laufzeit ist, betrachtet man verschiedene Fitnessfunktionen auf ein und dem selben Algorithmus. Der Einfachheit halber wird ein (1+1)EA gewählt und sowohl Austausch als auch Sprung als Mutationsoperatoren genutzt. Der (1+1)EA ist ein evolutionärer Algorithmus mit Populationgröße eins, der Plus-Selektion verwendet. Ein kurzer Blick wird auf die Fitnessfunktionen INV, HAM, LAS und EXC geworfen: INV(π) bezeichnet die Anzahl der Inversionen in π. Also die Anzahl der Paare, bei denen π(i) > π(j) min i < j gilt und es ist zu minimieren. INV läuft in O(n 2 ). HAM(π) bezeichnet die Anzahl der Elemente, bei denen π(i) i gilt und es ist zu minimieren. HAM läuft in O(n). LAS(π) bezeichnet die Länge der längsten sortierten Teilfolge und ist zu maximieren. LAS läuft in O(n log n). EXC(π) bezeichnet die kleinste Anzahl an paarweisen Vertauschungen, die nötig sind aus π die sortierte Folge zu erstellen, und ist zu minimieren. EXC läuft in O(n). Analyse der Laufzeit Um eine untere Schranke zu bestimmen, betrachtet man die letzte Operation, die zum Erreichen der Identität notwendig ist. Diese Operation kann sowohl eine Austausch-Operation als auch eine Sprung-Operation sein. Die Wahrscheinlichkeit für die Austausch-Operation ist 2/(n(n 1)), da es nur genau zwei passende Austausch-Operationen geben kann. Für die Sprung Operation kann es auch nur genau zwei gültige Operationen geben, da die Paare (i, i + 1) und (i + 1, i) zum selben Ergebnis führen. Insgesamt bleibt also die Wahrscheinlichkeit von 4/(n(n 1)) die letzte Operation passend zu haben. Dies führt zu der unteren Schranke von (1 1/n!)(n(n 1)/4) Ω(n 2 ) für die erwartete Optimierzeit ((1 1/n!) ist die Anzahl der möglichen Permutationen die nicht die Identität sind). Als obere Schranke läßt sich für die vorgestellten Fitnessfunktionen auf dem (1+1)EA jeweils O(n 2 log n) zeigen. Also liegen für diese Fitnessfunktionen obere und untere Schranke schon ziemlich dicht zusammen, die Fitnessfunktionen stellen folglich eine gute Wahl da. 9 Schlusswort Es wurde nun gezeigt wie ein evolutionärer Algorithmus bestehend aus den aus der Evolutionstheorie abgeleiteten Kernpunkten der Mutation, dem Crossover und der Selektion aufgebaut ist und wo die geeignetsten Anwendungsgebiete liegen. Es herrscht kein Mangel an schwierigen Problemen für die evolutionäre

67 Evolutionäre Algorithmen 63 Algorithmen zumindest gute Lösungen in annehmbarer Zeit zu liefern im Stande sind. Leider müssen einige interessante Fragen in dieser Arbeit unbeantwortet bleiben. In wie weit zum Beispiel das Crossover das Laufzeitverhalten der Algorithmen verbessert. Auch in die zu Grunde liegende Theorie konnten nur kleine Einblicke gegeben werden. Für das No-Free-Lunch Theorem gibt es noch weiter gehende Erkenntnisse, die die Gültigkeit des Theorems auch bei weniger freizügig gewählten Randdaten belegen. Die Schematheorie, die von John Holland zur Analyse der genetischen Algorithmen schon bei der Einführung dieser Algorithmen vorgestellt wurde und seit dem entscheidend weiterentwickelt wurde, kam nicht zur Sprache und auch auf andere Ansätze zur Modellierung musste leider verzichtet werden. Ein weiterer Punkt der in diesem Überblick zu kurz gekommen ist, ist die Analyse der evolutionären Algorithmen. Die zur Analyse hilfreichen Methoden konnten nicht vorgestellt werden, weshalb bei der Analyse des (1+1)EA auf dem Problem des Sortierens nur die untere Schranke gezeigt werden konnte. Dem geneigten Leser sei das Skript zur Vorlesung Evolutionäre Algorithmen[13] von Dr. Thomas Jansen zur weiteren Lektüre empfohlen, doch sei darauf hingewiesen, dass es in einigen Teilen ein größeres Wissen um die Wahrscheinlichkeitstheorie vorraussetzt, als in diesem Institut bei dem Studium der Informatik vermittelt wird. Literatur [1] The behavior of adaptive systems which employ genetic and correlation algorithms J. D. Bagley 1967 [2] The Origin Of Species Charles Darwin 1859 [3] A New Framework for the Valuation of Algorithms for Black-Box Optimization Stefan Droste, Dr. Thomas Jansen, Karsten Tinnefeld, Ingo Wegener tinnefeld/docs/blackbox.pdf [4] Upper and Lower Bounds for Randomized Search Heuristics in Black-Box Optimization Stefan Droste, Thomas Jansen, Ingo Wegener [5] Computer-aided gas pipeline operation using genetic algorithms and rule learning David E. Goldberg 1983 [6] Artificial Intelligence through Simulated Evolution L. J. Fogel, A. J. Owens and M. J. Walsh 1966 [7] Adaptation in natural and artificial systems John H.Holland 1975 [8] Entwicklung und systemtechnische Anwendung Evolutionärer Algorithmen Hartmut Pohlheim pohlheim ea.html [9] Genetic Programming: On the Programming of Computers by Means of Natural Selection J. R. Koza 1992

68 64 C. Schiemann [10] Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution I. Rechenberg 1973 [11] Projekt MHD-Staustrahlrohr: Experimentelle Optimierung einer Zweiphasendüse, Teil I. Technischer Bericht H.-P. Schwefel 1968 [12] No Free Lunch Theorems for Optimization David H. Wolpert, William G. Macready [13] Skript zur Vorlesung Evolutionäre Algorithmen WS04/05 Dr. Thomas Jansen jansen/evola pdf [14] Vorlesung Genetische Algorithmen von Prof. Rudolf Kruse [15] Vorlesung KI-Vertiefung 1996 FH-Wiesbaden, Projekt 6 Thomas Gräff, Peter Milkovits, Reiner Rosin [16]

69 Zellulare Automaten Sebastian Kern, Benedikt Gleich Universität Augsburg Zusammenfassung Bio-inspired Computing zielt darauf ab, erfolgreiche Paradigmen aus der Natur zur Lösung aktueller Problemstellungen aus den verschiedensten Forschungsgebieten heranzuziehen. Einen interessanten Ansatz stellen dabei die zellularen Automaten dar, mit Hilfe derer komplexe, dynamische Systeme effizient modelliert und simuliert werden können. Die Idee, nach dem Vorbild der Natur kurz zusammengefasst, ist, dass viele identische, untereinander vernetzte Entitäten durch lokale Interaktion, basierend auf (meist) einfachen Regeln, ein sehr komplexes (Gesamt-)Verhalten simulieren können. Die Seminararbeit gibt dazu einen allgemeinen Überblick in das Paradigma zellularer Automaten. 1 Einführung Die Natur diente dem Menschen von Anfang an als Vorbild und Orientierungshilfe. Dabei hält sie eine schier unendliche Vielfalt an Entwicklungen und Lösungen für die komplexesten Probleme bereit. Viele dieser Prinzipien, die sich in der Natur nach Jahrmillionen durch stetige Verbesserung durchgesetzt haben, inspirierten die Forschung zur Nachahmung, um ähnliche Herausforderungen aus eigenen Problemstellungen meistern zu können. Prominentes Beispiel ist das Prinzip des Fliegens bzw. der Bau von Flugzeugen. Otto Lilienthal und die Gebrüder Wright liesen sich hierzu von Vögeln und dem damit verbundenem aerodynamischen Prinzip (also Fliegen durch Auftrieb) inspirieren, um ihre Flugmaschinen in die Realität umsetzen zu können. Biologically-inspired computing (bzw. bio-inspired computing) ist ein interdisziplinäres Forschungsfeld, in dem die Natur Ideen und Konzepte liefert, welche sich in Algorithmen und Berechnungen für aktuelle Problemlösungen wieder finden. Ein interessantes Paradigma in diesem Umfeld stellen die zellularen Automaten dar. The chess-board is the world; the pieces are the phenomena of the universe; the rules of the game are what we call the laws of Nature. T. H. Huxley Einen zellularen Automaten kann man mit Hilfe der oben genannten Ausführung von Huxley [5, S. 231] wiefolgt bildlich beschreiben: Ein zellularer Automat als Schachbrett symbolisiert besteht aus gleichmäßig verteilten Zellen (hier Felder

70 66 S. Kern, B. Gleich auf dem Schachbrett). Jede Zelle hat dabei Nachbarn, also Felder, die direkt an der Zelle angrenzen. Jedes Feld wird durch einen Zustand beschrieben. In unserem Fall könnten das Farben sein: ein Feld ist also entweder weiß oder schwarz. Die Farbe eines Feldes (bzw. sein Zustand) ändern sich gemäß vorgegebenen Regeln. Hierbei berechnet sich die neue Farbe eines Feldes ausschließlich auf Basis der aktuellen Farbwerte seiner direkt angrenzenden Nachbarfelder. Das Spiel (d. h. der Ablauf des zellularen Automaten) läuft nun in Runden ab. Dabei werden in jeder Runde gleichzeitig alle Felder neu berechnet; sprich ihnen wird eine neue Farbe durch Anwenden passender Regeln zugewiesen. Obwohl ein einzelnes Feld lediglich von seinen Nachbarfeldern (direkt) beeinflusst wird und das zum Spiel gehörige Regelwerk aus einer geringen Anzahl einfacher Regeln bestehen kann, zeigen solche Abläufe oft komplexe, nur schwer beschreibbare Muster. Andersherum können also komplexe, meist große und kaum erfassbare Systeme unter gewissen Einschränkungen mit Hilfe zellularer Automaten elegant modelliert werden. Hierzu kann unter Umständen die Anwendung einfacher Regeln auf viele identische Zellen das gewünschte komplexe Verhalten simulieren. Die gerade erwähnten Einschränkungen sind dabei in den meisten Fällen die Diskretierung von Raum und Zeit. Die Natur hat uns genau dieses Paradigma eindrucksvoll aufgezeigt. Jeder biologische Organismus angefangen von einfachen Mehrzellern bis hin zum komplexen System Mensch ist mittels Zellen aufgebaut; Zellen, die im Vergleich zum Gesamtsystem (relativ) einfache Entitäten darstellen und sich untereinander austauschen (lokale Interaktion). Die Komplexität entsteht aber erst durch das eindrucksvolle und geschickte Zusammenwirken der Zellen miteinander. 1.1 Motivation Es hat sich mittlerweile gezeigt, dass zellulare Automaten in den verschiedensten Forschungsdisziplinen für die Modellierung komplexer Systeme heran gezogen werden können und auch werden! Ein Gebiet, welches schon früh die Stärken zellularer Automaten entdeckte, ist die Physik. Hier wird das Vorbild der Natur insbesondere in der Strömungslehre und Partikelberechnung verwendet. Der Grund liegt vor allem in den nummerischen Ansätzen, welche durch die Verwendung von Differential-Gleichungen nötig werden. Zellulare Automaten sind dagegen (normalerweise) vollständig deterministisch und berechenbar. Zudem lassen sich viele physikalische Systeme auf diskreten Elementen mit lokaler Interaktion modellieren [17, S. 602]. Der neue Ansatz wird seit kurzem deswegen als möglicher Ersatz von Differential-Gleichungen gehandelt [11, S. 25], da durch sie die physikalischen Phänomene besser und vor allem universeller modelliert werden könnten. Großes Ziel ist es, einen zellularen Automaten zu entwickeln, dessen Regeln die fundamentalen physikalischen Zusammenhänge erfassen kann. Bisherige fundamentale Gesetzmäßigkeiten basieren dann auf den lokalen Interaktionen der kleinsten physikalischen Einheiten (Partikel), welche durch eine Zelle repräsentiert werden [11, S. 10ff]. Aber auch andere Forschungsgebiete verwenden zellulare Automaten. In der Chemie lassen sich mit zellularen Automaten sehr schön chemische Reaktionen

71 Zellulare Automaten 67 modellieren. Hier sind insbesondere die genauen Interaktionen zwischen komplizierten Molekül-Verbindungen von Interesse [17, S. 602]. Aber auch Disziplinen im nicht naturwissenschaftlichen Bereichen verfolgen Ansätze mit zellularen Automaten. Im Folgenden sollen nur ein paar Beispiele genannt werden: In der Biologie interessiert oft die Entwicklung von Strukturen und Verhalten; zum Beispiel bei Organismen [17, S. 602]. Desweiteren lassen sich u. a. Gruppenverhalten aus der Soziologie sehr gut in zellularen Automaten modellieren. 1.2 Geschichte Die ersten Ansätze für zellulare Automaten wurden von John von Neumann in den frühen 50er Jahren eingeführt. Sein damaliges Studium und Ziel galt einem Modell für die mechanische Selbstreproduzierung nach dem Vorbild der Natur. Informationen sollten in der Lage sein, sich selbstständig vervielfältigen zu können. Bedingt durch die Komplexität und Vielseitigkeit der Thematik entwickelte von Neumann mit Unterstützung des Mathematikers Stanislaw Ulam ein abstraktes, mathematisches Framework, um den Prozess der Reproduzierung so einfach wie möglich formal beschreiben zu können [4, S. 340]. Cellular spaces stellt ein zweidimensionales Gitter aus identischen Elementen (Zellen) dar. Diese Zellen sind formal ein Zustandsautomat, dessen Überführungsfunktion den neuen Zustand aus dem eigenen und den der Nachbarzellen berechnet [14, S. 2]. Von Neumanns zellularer Automat war jedoch zu komplex. Er bestand aus mehreren zehntausend Zellen mit jeweils 29 möglichen Zuständen und es waren ungefähr 150 Seiten für seine Beschreibung nötig [5, S. 245]. Auch wenn von Neumanns Automat durch Nachfolger wie z. B. Codd vereinfacht werden konnte ( nur acht mögliche Zustände pro Zelle), wiesen diese zellularen Automaten eine immer noch zu große Komplexität auf. Neben den Begriffen zellulare Automaten und cellular spaces findet man das Konzept auch als cellular structures oder tessellation structures [17, S. 602] wieder. Im weiteren Verlauf beschäftigten sich 1962 Moore und später Myhill, sowie Richardson mit dem Problem Garden of Eden. Dabei ist eine Garden of Eden Konfiguration ein Gesamtzustand des zellularen Automaten, der nie aus einem anderen Gesamtzustand hervorgehen kann; daher auch der Name Garten von Eden, im Sinne von nicht erzeugbar bzw. von Gott gegeben. Mit anderen Worten kann ein solcher Gesamtzustand von zellularen Automaten nicht errechnet werden. Moore konnte aber zeigen, dass in der Tat solche nicht erreichbaren Konfigurationen existieren und auftreten können [9, S. 9]. Ein wichtiger Einblick in zellulare Automaten gelang Conway in den späten 60er Jahren. Er untersuchte einfache, zweidimensionale, zellulare Automaten mit nur zwei Zuständen. Trotz dieser Einfachheit wiesen diese Automaten bemerkenswerte Eigenschaften auf und zwar bis hin zu Universal Computing. Conways Game of Life ist dabei zu einem der bekanntesten zellularen Automaten geworden, der 1970 im Scientific American veröffentlicht wurde [6, S. 2].

72 68 S. Kern, B. Gleich In den späten 80er Jahren beschäftigte sich schließlich Stephen Wolfram mit den zellularen Automaten und ihrer Theorie. Er verfolgte insbesondere sehr intensiv die eindimensionalen, zellularen Automaten auch elementare Automaten genannt, um allgemeine Eigenschaften und Charakteristika für zellulare Automaten zu finden. Sein Buch A new kind of science, welches 2002 erschienen ist, gilt als eines der großen Zusammenfassungen für zellulare Automaten. Wie Wolfram in seiner Zusammenfassung versucht hat zu zeigen, stellen zellulare Automaten heute in vielen Gebieten eine interessante Alternative dar, um komplexe und dynamische Systeme erfassen bzw. erforschen zu können. 1.3 Gliederung Diese Seminararbeit gibt einen Überblick über das Paradigma zellularer Automaten. Dazu werden u. a. Beispiele aus Anwendungsgebieten und eine abschließende kurze Bewertung von zellularen Automaten geliefert. Sie ist in zwei Teile untergliedert. Zum einen wird der theoretische Hintergrund für zellulare Automaten näher erläutert, zum anderen steht aber auch der Anwendungsbereich im Mittelpunkt dieser Arbeit. Der Anfang der Arbeit befasst sich in Kapitel 2 mit der den zellularen Automaten zugrunde liegenden Theorie. Dazu soll neben einer Definition und formalen Beschreibung von zellularen Automaten auch deren Eigenschaften umrissen werden. Kapitel 3 behandelt anschließend verschiedene Möglichkeiten die unzähligen zellularen Automaten zu klassifizieren. Im Anschluss beschäftigt sich diese Arbeit mit dem Anwendungsbereich von zellularen Automaten. Dafür werden im Kapitel 4 neben einem allgemeinen Anwendungsüberblick drei konkrete Beispiele für zellulare Automaten vorgestellt: aus der Informatik die zentrale Problemstellung der Generierung von Zufallszahlen, dem zellularen Automaten Game of Life als Beispiel für Universal Computing und ein Modell für Verkehrssimulationen. Die Arbeit wird mit einer kurzen Bewertung und einem Ausblick abgeschlossen. 2 Theorie Um sich ein vollständiges Bild von zellularen Automaten machen zu können und um diese besser zu verstehen, benötigt man nicht nur die Ideen und Konzepte, die dahinter stehen, sondern auch eine formale und exakte Beschreibung solcher Automaten. Dazu behandelt dieses Kapitel eine mögliche Form der Definition von zellularen Automaten näher. Anschließend wird auch eine erste Familie an zellularen Automaten vorgestellt: Eindimensionale, zellulare Automaten auch elementare Automaten genannt besitzen trotz ihrer vermeintlichen Einfachheit verblüffende Eigenschaften. Das Kapitel endet mit einem allgemeinen und weniger formalen Vergleich zentraler und charakteristischer Eigenschaften von zellularen Automaten im Gegensatz zu anderen dynamischen Systemen.

73 Zellulare Automaten Definition Bevor wir eine formale und exakte Definition der zellularen Automaten näher betrachten, soll die folgende informelle Beschreibung die Zusammenhänge etwas verdeutlichen. Ein zellularer Automat kann als eine mathematische Idealisierung eines (physikalischen) Systems betrachtet werden [18, S. 1]. Der Automat ist dabei in Raum und Zeit diskret. Die räumliche Diskretierung wird durch einzelne Zellen modelliert, die in einem d-dimensionalen Gitter (normalerweise) regelmäßig angeordnet sind. Man spricht in diesem Fall von einem d-dimensionalen, zellularen Automaten. Ein eindimensionaler, zellularer Automat kann zum Beispiel als eine Kette von Zellen aufgefasst werden (Gerade). Im zweidimensionalen Raum können die Zellen dagegen als Quadrate in einer Ebene angeordnet werden. Das zugrunde liegende Gitter ist dabei entweder als unendlicher oder endlicher zellularer Raum modellierbar. Eine genauere Untersuchung der Randbedingungen bei endlichen Automaten wird später noch genauer folgen. Die einzelnen Zellen des zellularen Automaten bzw. ihr jeweiliger Zustand werden durch eine Variable mit einem diskreten, (meist) kleinen, endlichen Wertebereich definiert. Die Variable wird dabei durch die lokalen (direkten) Zellnachbarn beeinflusst. Dadurch wird die lokale Interaktion von kleinen Regionen innerhalb des zu modellierenden, komplexen Systems simuliert. Bedingt durch die Diskretierung der Zeit, läuft der zellulare Automat in Runden ab. Die Berechnung der Zellwerte für einen Zeitpunkt t läuft simultan; d. h. alle Zellen werden gleichzeitig auf Grund von lokalen Regeln und ihrem lokalen Umfeld zum Zeitpunkt t - 1 berechnet. Es gibt verschiedene Ansätze, um einen zellularen Automaten formal zu beschreiben [4, S. 344] [9, S. 57] [8, S. 2ff]. Eine einfache formale Definition nach [4, S. 344] beschreibt einen zellularen Automaten C als C = S, s 0, G, d, f Dabei ist S eine endliche Menge an Zuständen, die eine Zelle annehmen kann, s 0 (S) mit s 0 ist der Startzustand. G definiert die lokale Nachbarschaft einer Zelle i, d. h. G legt fest, welche Zellen aus dem Umfeld von i Einfluss auf ihren Zustand haben. d Z + beschreibt die Dimension des zellularen Automaten und damit die Dimension des Gitters, in dem die Zellen angeordnet sind. Damit lässt sich die Position der Zelle i mit i Z d als ein Vektor auffassen. Die lokalen Regeln, die das Verhalten einer Zelle im Bezug auf seine Nachbarschaft beschreiben, werden formal als eine Übergangsfunktion f definiert. S kann im einfachsten Fall eine binäre Zustandsmenge sein, d. h. eine Zelle kann entweder 0 oder 1 als Zustand annehmen. Der Startzustand s 0 legt die anfängliche Konfiguration (siehe weiter unten in diesem Abschnitt, S. 73) fest. Dabei muss diese nicht vollständig sein, sprich alle Zellen des zellularen Raums umfassen. Nicht erfasste Zellen haben per Vereinbarung zu Anfang einen Nullzustand. Man sagt auch, dass sie still bzw. untätig sind. Ist s 0 = 1, 0, 1 (oder in Kurzform s 0 = 101), bedeutet dies folglich, dass es drei nebeneinander liegende

74 70 S. Kern, B. Gleich Zellen gibt, welche jeweils die Zustände 1, 0 und 1 haben. Alle restlichen Zellen links und rechts dieser Startzellen (auch als Saat bezeichnet) sind still, haben also den Zustand 0. Abbildung 1. Nachbarschaft der Zelle i im eindimensionalen Fall: Die erste Zeile zeigt die Nachbarschaft mit n = 3, wobei die Zelle i selber mitenthalten ist. Die zweite Zeile ohne die Zelle i hat die Nachbarschaftsgröße n = 2 Die Nachbarschaft G der Zelle i ist allgemein definiert als G i = {i, i + r 1, i + r 2,..., i + r n }. Der Parameter n ist eine wichtige charakteristische Eigenschaft für die lokale Interaktion: Sie definiert die Größe der Nachbarschaft, also wie viele Zellen sie enthält. Der feste Vektor r j beschreibt ausgehend von der Zelle i die nächsten Zellen. Anzumerken ist, dass in obiger Nachbarschaftdefinition der Zelle i diese selber enthalten ist; dies ist aber nicht zwingend notwendig. Im eindimensionalen Fall ist die Nachbarschaft mit Größe 3 wiefolgt festgelegt: G i = {i 1, i, i + 1}; enthalten sind neben der Zelle i selber, zusätzlich ihr linker und rechter (direkter) Nachbar. Soll die Zelle i selber nicht in ihrer Nachbarschaft berücksichtigt werden, ist G definiert als G i = {i 1, i + 1}. Abbildung 1 zeigt beide Fälle. Im Allgemeinen kann man zwei verschiedene Formen von Nachbarschaften ausmachen. Im ersten Fall unterscheiden sich die Koordinaten einer Nachbarschaftszelle und der Zelle i in nur einer Komponente. Damit sind die Nachbarn orthogonal zu i angeordnet. So eine Nachbarschaft wird als Type-I bezeichnet, wobei ihre Größe G = 2d + 1 mit der Dimension d ist. Erlaubt man auch diagonale Nachbarn so spricht man vom Type-II. Da sich in diesem Fall mehrere Koordinaten-Komponenten von der Zelle i und einer Nachbarschaftszelle unterscheiden können, ist G = 3 d groß [17, S. 637]. Für eindimensionale, zellulare Automaten gilt für die Nachbarschaft Type-I = Type-II (G = 2d + 1 = = 3 = 3 1 = 3 d ). Im zweidimensionalen Fall mit quadratischen Zellen sind folgende zwei Nachbarschaftskonfigurationen üblich: Fall 1 beinhaltet neben der eigenen Zelle i noch die Zellen ober- bzw. unterhalb und rechts bzw. links neben i. G i = { ( ) 1 i, i +, i + 0 ( ) ( ) 0 +1, i +, i ( )} 0. +1

75 Zellulare Automaten 71 Die Nachbarschaft G der Zelle i beinhaltet damit also fünf Zellen (Type-I). Im zweiten Fall ist G = 9, da hier noch zusätzlich die diagonalen Felder hinzu kommen (Type-II): ( ( 1 G i = i, i + 1 ( +1 i + +1 ), i + ) ( ) 1, i +, i + 0 ( +1 0 ), i + ( +1 1 ( 1 +1 ), i + ), i + ( 0 1 ( 0 +1 ) ). Man nennt diese Formen von G auch Von Neumann- (für G = 5) bzw. Moore Nachbarschaft (für G = 9) [6, S. 3]. ), Abbildung 2. Von Neumann und Moore Nachbarschaft mit Größe n = 5 bzw. n = 9 Die Übergangsfunktion f beschreibt die lokalen Regeln. Ist der zellulare Automat deterministisch, so kann auf die einzelnen Zustände aus der Nachbarschaft von Zelle i als Eingabe von f genau eine Regel angewendet werden. Mit der Größe n für G und S als Menge der Zellzustände, ist die Übergangsfunktion f dabei als f : S n S definiert. Nimmt man wieder obiges Beispiel des eindimensionalen, binären, zellularen Automaten (S = {0, 1}, Nachbarschaft G hat die Größe 3) gilt für f : {0, 1} 3 {0, 1}. Die Übergangsfunktion hat damit 2 3 = 8 mögliche Argumente. Allgemein hat eine vollständige Regeltabelle damit k n Regeln, wobei k = S gilt. k repräsentiert also die Anzahl der möglichen Zustände. Geht man weiter, erhält man damit k kn mögliche Regeltabellen. Dabei sei auf das exponentielle Wachstum hingewiesen. Bereits mit k = 10 und n = 5, also bei 10 verschiedenen Zuständen einer Zelle und den jeweils zwei nächsten Zellen (links bzw. rechts) zusammen mit der eigenen Zelle als Nachbarschaft, erhält man 10 5 = Einträge pro Tabelle. Es gibt damit verschiedene Varianten für diesen Automatentyp [5, S. 234]. Man kann jedoch die Anzahl der Regeltabellen komprimieren. Dazu führt Wolfram zwei grundsätzliche Eigenschaften ein, um legale Regeln zu definieren. Zum einen muss eine Regel die Reflektionssymmetrie beachten; soll heißen, man

76 72 S. Kern, B. Gleich kann den zellularen Raum entlang einer Achse durch die Zelle i spiegeln, ohne dass die Regelanwendung das Ergebnis verändert. Damit liefern die Regeln 100 und 001 bzw. die Regeln 110 und 011 immer dasselbe Ergebnis. Zum anderen ist eine Regel nur legal, wenn aus einem stillen Zustand (alle Nachbarn und die Zelle i selber haben den Zustand 0) ein stiller Zustand folgt. Diese Regel verhindert die augenblickliche Entstehung von nicht stillen Zellen aus dem Nichts. Folglich ist ein legales Regelwerk definiert, wenn alle Regeln legal sind [17, S. 603]. Allgemein existieren damit k kr+1 (k r +1)/2 1 legale Regeltabellen, wobei r = n 2 der Radius der Nachbarschaft ist [18, S. 3]. Im Fall der elementaren, zellularen Automaten gibt es also 32 legale Regelwerke. s i 1(t) s i(t) s i+1(t) s i(t + 1) Tabelle 1. Mögliche Regel für einen eindimensionalen, binären, zellularen Automaten mit n = 3. Diese Regel (#150) entspricht dabei der Summe der Zustände aus Nachbarschaftszellen und der eigenen modulo zwei. Die Tabelle 1 gibt dabei eine mögliche Regeltabelle an [5, S. 233]. Für eindimensionale Automaten lässt sich diese auch grafisch darstellen, welches Abbildung 3 verdeutlicht. Dabei zeigt die obere Zeile die Zustandskombination der Nachbarn und die zweite Zeile den daraus neu berechneten Wert der Variable an. Abbildung 3. Grafische Repräsentation der Regeln von Tabelle 1, wobei der Zustand 0 als weißes und der Zustand 1 als schwarzes Feld dargestellt wird. Im einfachsten Fall sind alle Zellen eines zellularen Automaten identisch, was bedeutet, dass für alle Zellen dieselben lokalen Regeln gelten. Es ist aber auch möglich, die Übergangsfunktion in Abhängigkeit von der zu berechnenden Zelle i zu setzen: f i.

77 Zellulare Automaten 73 Nachdem bis jetzt zellulare Automaten ausschließlich unter lokalen Gesichtspunkten definiert worden sind, rückt nun die globale Sicht in den Vordergrund. Der Gesamtzustand eines zellularen Automaten, auch Konfiguration C genannt, ergibt sich dabei lediglich aus den einzelnen Zuständen ein jeder Zelle im zellularen Raum des Automaten: C : Z d S, d. h. jeder Zelle i wird genau ein Zustand s S zugewiesen [4, S. 344]. Für endliche, zellulare Automaten mit N Zellen ist die Konfiguration C(t) für den Zeitpunkt t vereinfacht gegeben durch C(t) = (s 0 (t), s 1 (t), s 2 (t),..., s N 1 (t)), wobei s i (t) der Zustand der Zelle i zum Zeitpunkt t ist. Damit kann man die zeitliche Entwicklung eines zellularen Automaten durch eine globale Übergangsfunktion H : C(t) C(t + 1) formal erfassen. In jedem Schritt t t+1 wird eine neue Konfiguration C(t+1) ausgehend von der vorherigen Konfiguration berechnet. Die Variablenwerte der Nachbarzellen von i zum Zeitpunkt t sind also die Eingaben der Übergangsfunktion f für die Berechnung des Zustandes von i in der Runde t + 1. Abschließend sei noch auf das Grenzverhalten eines (endlichen) zellularen Automaten hingewiesen. Dies ist insoweit wichtig, da man hierdurch einen unendlichen Automaten endlich machen kann, indem man sein Grenzverhalten festlegt. Dabei haben sich zwei übliche Formen herauskristallisiert. Zum einen legt die Null-Grenze fest, dass (virtuelle) Zellen außerhalb des zellularen Automaten immer den Grund- bzw. Nullzustand haben. Sie verändern ihren Zustand zwar nicht, für die Grenzzellen des zellularen Automaten erscheinen sie aber in dessen Nachbarschaft als Zellen mit dem Zustand 0. Zum anderen wird bei periodischen Grenzen der zellulare Raum so aufgespannt, dass die einzelnen Grenzseiten aneinander liegen. Im eindimensionalen Fall ist der zellulare Raum aufgefasst als Band als ein Kreis zusammen geschlossen. Damit liegen die beiden äußersten Zellen auf dem Band im zellularen Raum nebeneinander bzw. sind gegenseitige Nachbarn. Im zweidimensionalen Raum sind solche periodischen Grenzen in Form einer Kugel- oder Torusoberfläche möglich. 2.2 Eindimensionale, zellulare Automaten Dieser Abschnitt stellt die eindimensionalen, binären, zellularen Automaten näher vor. Im bisherigen Verlauf wurden diese bereits kurz angeschnitten. Diese Automatenfamilie Wolfram nennt sie elementar [17, S. 603] weisen trotz ihrer vermeintlichen Einfachheit bereits bemerkenswerte Eigenschaften auf. Nach obiger formaler Beschreibung sind alle elementaren, zellularen Automaten folgendermaßen definiert: C = {0, 1}, 1, {i 1, i, i + 1}, 1, f, wobei f die jeweilige Übergangsfunktion festlegt. Die hier besprochenen zellularen Automaten definieren ihre Nachbarschaft aus ihren linken und rechten direkten Nachbarn, sowie sich selbst. Sie haben also eine Nachbarschaft der Größe 3. Wie bereits im vorherigen Abschnitt beschrieben, ergeben sich damit acht mögliche Zustandskombinationen als Eingabe für die Übergangsfunktion f bzw. 256 verschiedene, mögliche Regelwerke.

78 74 S. Kern, B. Gleich Abbildung 4. Grafische Repräsentation der Regel #90 von Wolfram s elementaren Automaten. Diese Regel kann man als Modulo-2 interpretieren. Wolfram hat eine einfache und kompakte Beschreibung für die Regeln eines elementaren Automaten eingeführt [19, S. 20], indem er diese in einer binären Zahl codiert. Dazu wird Abbildung 4 einmal etwas genauer betrachtet. Dieses Regelwerk lässt sich auch durch die binäre Zahl beschreiben. Die Codierung kann man sich folgendermaßen vorstellen: Die obere Zeile der grafischen Abbildung enthält die acht möglichen Zustandskombinationen der relevanten Nachbarschaft. Stellt man sich die weißen Felder als 0 und die schwarzen Felder als 1 vor, so lassen sich die Kombinationen als binäre Zahlen interpretieren = 0 10, = 1 10, = 2 10, = 3 10,..., = Diese Werte legen die Stelle in der Codierung fest, also: α 0, α 1, α 2, α 3, α 4, α 5, α 6, α 7, wobei α i das Ergebnis der i-ten Regel ist. Das Ergebnis einer Regelanwendung (zweite Zeile in der Abbildung 4) ist dann der binäre Wert dieser Stelle. Für 000 ist das 0, für 001 ist es 1 usw. Damit erhält man schließlich die binäre Zahl zur einfachen und schnellen Beschreibung für Regeln des zellularen Automaten. Es handelt sich damit nach Wolfram hier um die Regel #90 (90 10 = ). Natürlich geht das auch für nicht binäre Automaten, wobei dann eine Stelle im jeweiligen, passenden Zahlensystem dargestellt werden muss. Für Automaten mit acht Zuständen erhält man also eine Codierung im Oktalsystem. Der zeitliche Verlauf eines eindimensionalen, zellularen Automaten lässt sich sehr schön in einer Ebene darstellen. Die x-richtung repräsentiert den (eindimensionalen) Raum des Automaten und die y-richtung die Zeit. Die Zeile j spiegelt somit den Gesamtzustand eines zellularen Automaten zum Zeitpunkt t = j wieder. Nach Vereinbarung schreitet die Zeit nach unten fort. Der zellulare Automat entwickelt sich also von oben nach unten. Die Abbildung 5 zeigt den zeitlichen Verlauf eines elementaren, zellularen Automaten (ersten 61 Runden) ausgehend von einer einzelnen Zelle (Saat) mit der Regel # Eigenschaften Betrachtet man zellulare Automaten einmal losgelöst von der unmittelbaren formalen Ebene, lassen sich einige zentrale Eigenschaften im Vergleich zu anderen dynamischen Systemen feststellen. An erster Stelle ist hier sicherlich die dreifache Diskretheit zu nennen: Zellulare Automaten sind diskret im Raum, da sie aus einem Raster von Zel-

79 Zellulare Automaten 75 Abbildung 5. Zeitlicher Verlauf des obigen zellularen Automaten für die ersten 61 Runden. len bestehen. Sie sind diskret in der Zeit, da die Regelanwendung in einzelnen Schritten durchgeführt wird. Und schließlich sind ihre Zustände diskret, da die Zellen nur eine begrenzte Anzahl von möglichen Werten haben (in der Regel schwarz oder weiß bzw. 1 oder 0). Damit stehen sie in einem starken Gegensatz zu klassischen physikalischen Vorgängen: Diese hängen von einer kontinuierlichen Zeit ab und bewegen sich in einem kontinuierlichen Raum (sonst könnte man z.b. Bewegungsgleichungen gar nicht als mathematisch stetige Funktionen notieren). Zudem ist auch der Wertebereich in aller Regel kontinuierlich, wenn man z.b. Kräfte oder Energie in Abhängigkeit zu anderen kontinuierlichen Größen berechnet. Somit könnte man die diskrete Natur von zellularen Automaten als der kontinuierlichen Natur dynamischer physikalischer Prozesse Übersetzung in die diskrete Sprache der Informatik betrachten. Hierin liegt ein wesentlicher Vorteil dieses Modells. Genauso zentral ist die Eigenschaft der doppelten Lokalität. Regelanwendungen finden bei zellularen Automaten erstens örtlich lokal und zweitens zeitlich lokal statt. Die örtliche Lokalität ergibt sich aus der Errechnung einer Zelle aus den Werten ihrer benachbarten Zellen. Dabei gibt es verschiedene Abstufungen dieses lokalen Verhaltens, da eine Regel nur die engste Nachbarschaft, eine andere Regel beliebig weit entfernte Zellen einbeziehen kann, soweit deren Abstand konstant und begrenzt ist. Dagegen gibt es für die zeitliche Lokalität nur eine einzige Stufe: Eine Regel bezieht sich nämlich immer auf den genau letzten Zustand und errechnet davon den genau nächsten. Eine Regelanwendung bezieht sich also immer nur auf einen Abstand von genau einer Zeiteinheit. Diese Eigenschaften führen natürlich zu einem relativ einfachen System: Bedenkt man, dass theoretisch jedes Atom im Universum wenn auch nur infinitesimal gering mit jedem anderem Atom interagiert, ist der Unterschied gewaltig, wenn man sich nur auf die Betrachtung der unmittelbaren Nachbarschaft beschränkt. Nun wäre

80 76 S. Kern, B. Gleich es zu erwarten, dass diese extreme Vereinfachung zu ebenso extrem verfälschten Ergebnissen führen würde. Wie im Folgenden noch beschrieben wird, ist aber gerade das Gegenteil der Fall: Trotz der Vereinfachung ergeben zellulare Automaten durchaus nennenswerte Resultate, die durch die deutlich einfachere Berechnung viel schneller und umfassender zur Verfügung stehen ein klarer Vorteil in jeder Hinsicht. Die nächste Klasse von Eigenschaften zellularer Automaten könnte unter dem Oberbegriff der Symmetrie zusammengefasst werden. Zellulare Automaten kennzeichnen sich durch eine absolute Homogenität der einzelnen Zellen. Bis auf die jeweiligen Orts- und Zeitkoordinaten gibt es nichts, was eine Zelle von der anderen unterscheidet. Genauso gleichförmig läuft die Aktualisierung mit Hilfe von Regeln ab: Jede Zelle wird zwischen zwei Schritten aktualisiert, es gibt also keine Zellen, die etwa häufiger oder weniger häufig von Regelanwendungen betroffen sind. Ebenso gibt es auch keine schnelleren oder langsameren Zellen, denn selbst wenn die Berechnung der Ergebnisse natürlich in einer bestimmten Reihenfolge erfolgen muss, ist diese gleichgültig, da für jede neu zu berechnende Zelle auf das gespeicherte Zell-Array vor der jeweils ersten Regelanwendung zurückgegriffen wird. Diese Eigenschaften machen die Berechnung der Dynamik zellularer Automaten noch einmal leichter. Zudem bilden sie damit die Bestandteile physikalischer Prozesse wie z.b. Atome, Körper oder Kräfte gut ab, die in der Regel auch untereinander gleichförmig sind und den gleichen Regeln unterliegen. Selbst wenn ein Körper größer als der andere ist, setzt er sich doch immer aus einer wechselnden Anzahl untereinander im Wesentlichen gleicher Teilchen zusammen. Schließlich sind die Regeln für zellulare Automaten deterministisch: Eine Ausgangskonfiguration wird immer zur gleichen dynamischen Entwicklung führen. Damit ist die schwache Kausalität erfüllt, nicht jedoch die starke Kausalität. Ähnliche Konfigurationen können also durchaus zu sehr verschiedenen Entwicklungen führen, was wiederum komplexe dynamische Prozesse gut abbildet. Es gibt auch Fortentwicklungen von zellularen Automaten, die eine zufällige Modifikation von Regelanwendungen erlauben. Je nach Anwendungsbereich entscheidet man sich für eine dieser Varianten, wobei vor allem in der statistischen Physik oft auf die nicht-deterministische Variante zurückgegriffen wird. Dennoch ist die deterministische Form der zellularen Automaten die klassische Variante. 3 Klassifikation Ein wichtiges Feld bei zellularen Automaten ist ihre Klassifikation. Nachdem zuvor ihre Theorie in Kapitel 2 vorgestellt worden ist, zeigt dieses Kapitel die Möglichkeit auf, sie in Klassen gemeinsamer Eigenschaften zusammenzufassen, um so einen besseren Überblick über die verschiedenen Muster an zellularen Automaten zu gewinnen. Der Zustandsraum eines zellularen Automaten ist solange es sich um keinen trivialen Fall handelt enorm. Selbst eindimensionale Automaten mit nur wenigen Zuständen erreichen schnell unvorstellbare Größen im Zustandsraum.

81 Zellulare Automaten 77 Wie in Abschnitt 2.1 gezeigt worden ist, gibt es für einen endlichen, zellularen Automaten mit n Zellen und k möglichen Zellzuständen k n verschiedene Konfigurationen. Dabei folgt aus einer endlichen Anzahl an möglichen Zuständen und Zellen, dass der Automat einen endlichen Zustandsraum hat. Somit muss ein solcher Automat nur lange genug laufen, damit sein Ablauf sich schließlich wiederholt [5, S. 237]. Dies muss spätestens nach k n Runden passieren, denn zu diesem Zeitpunkt hat der Automat alle k n verschiedenen Konfigurationen durchlaufen und der nächste Zustand muss eine bereits besuchte Konfiguration sein. Die einfachsten, nicht trivialen, zellularen Automaten sind die eindimensionalen, zellularen Automaten mit nur zwei möglichen Zuständen. Für einen solchen elementaren, zellularen Automaten gibt es bereits 256 verschiedene Regeltabellen. Die Anzahl der verschiedenen Regeltabellen lässt sich nach Abschnitt 2.1 mit folgender Formel allgemein berechnen: k kn, wobei k die Anzahl der möglichen Zellzustände und n die Anzahl der relevanten Nachbarzellen repräsentiert. Mit zunehmender Anzahl möglicher Zustände und Vergrößerung der Nachbarschaft einer Zelle erreichen die zellularen Automaten schnell eine nicht erfassbare Größe an Vielfalt und Komplexität durch die exponentiell zunehmenden Regeltabellen. Aus diesem Grund versucht man durch Klassifizierung zellulare Automaten mit gemeinsamen bzw. ähnlichen Eigenschaften zusammenzufassen. Solche (meist globalen) Eigenschaften können z. B. von dem Verhaltensmuster abgeleitet werden. Im Folgenden werden zwei wichtige Klassifikationen von Wolfram und Langton vorgestellt. 3.1 Wolframs Klassifikation Mit den ein- und zweidimensionalen, zellularen Automaten beschäftigte sich Wolfram insbesondere sehr ausgiebig in den 80er Jahren. Dabei wiesen bereits diese einfachen Automaten sehr differenzierte Verhaltensmuster auf. In Folge dessen führte Wolfram vier Basisklassen ein, in die die zellularen Automaten nach ihrem qualitativen Verhalten eingeteilt sind. Er vermutet dabei, dass sich alle zellularen Automaten in eine dieser vier Klassen einordnen lassen [18, S. 1]. Bevor die einzelnen Klassen aber näher vorgestellt werden, gibt der folgende kurze Exkurs eine knappe Einführung in dynamische Systeme in den wesentlichen Punkten, die für die weitere Betrachtung nötig sind. Die meisten zellularen Automaten entwickeln unabhängig von ihrer (zufällig gewählten) Startkonfiguration mit der Zeit ähnliche Verhaltensmuster. Wie bereits früher erwähnt, kann man die zellularen Automaten als diskrete, dynamische Systeme auffassen. Kurz zusammengefasst [4, S. 342f] beschreibt der zeitliche Ablauf in einem solchen dynamischen System (bzw. seiner Evolution) einen Weg durch den möglichen Zustandsraum. Verschiedene Wege beginnend von unterschiedlichen Startzuständen konvergieren dabei normalerweise in bestimmte Regionen des Zustandsraums für ein bestimmtes System, in denen sich die einzelnen Zustände bis auf kleine Differenzen sehr ähnlich sind. Diese Zielregionen nennt man Attraktoren. Wolfram hat gezeigt, dass solche Attraktoren auch für zellulare Automaten existieren, wobei die Form und Art der Attraktoren

82 78 S. Kern, B. Gleich durch die jeweilige Klasse charakterisiert werden [18, S. 2]: Die aus der Evolution eines zellularen Automaten entstehenden Zustände beginnend mit von einander unabhängigen Startkonfigurationen verschmelzen sich mit der Zeit; d. h. es kristallisieren sich bestimmte Konfigurationen heraus. Dabei überdecken jedoch diese typischen Attraktoren nur einen kleinen Bereich des gesamten, zellularen Zustandsraums. Eine solche Erscheinung hat zwei weitreichende Konsequenzen [18, S. 1f]. Zum einen lässt sich so eine in der Natur wohl bekannte Eigenschaft erklären: die Selbst-Organisation. Dabei versteht man unter Selbst-Organisation in diesem Zusammenhang insbesondere die Eigenschaft, dass aus unkorrelierten Komponenten eines Systems durch dessen Evolution globale, räumliche Strukturen entstehen (eigenständiger Strukurerwerb). Diese Muster bilden sich jedoch nur durch lokale Interaktion und nicht durch äußere Einflüsse am System aus [1, S. 9]. Auf zellulare Automaten bezogen gilt: Zufällige (unabhängige) Zustandsverteilungen über den Zellen, die augenscheinlich ein Chaos darstellen, organisieren sich und es entstehen eigenständige, charakteristische Strukturen innerhalb des anfänglichen Chaos. Zum anderen bedeutet das Verschmelzen von verschiedenen Zuständen, dass die Entwicklung der zellularen Automaten (in vielen Fällen) irreversibel ist. Man kann sich dazu ein Zustandsübergangsdiagramm vorstellen. Jeder Knoten dieses Diagramms repräsentiert eine mögliche Konfiguration innerhalb des gesamten zellularen Raums. Die Knoten sind durch Pfeile miteinander verbunden. Ein vom Knoten A nach B gehender Pfeil stellt den Übergang von der Konfiguration A nach B unter Anwendung einer lokalen Regel während eines Schrittes dar. In deterministischen, zellularen Automaten geht in Folge dessen immer nur ein Pfeil aus einem Knoten heraus. Die Verschmelzung von Konfigurationen heißt andererseits, dass mehrere Pfeile von verschiedenen Ausgangsknoten in einen Knoten B führen. Ist dies der Fall, ist der zugrunde liegende zellulare Automat irreversibel. Man kann die Pfeilrichtung also nicht einfach umdrehen und den bisher deterministischen Automaten rückwärts laufen lassen. An den Verschmelzungspunkten ist der Nachfolgezustand nicht mehr eindeutig bestimmt. Im Folgenden werden die vier Klassen von Wolfram etwas näher betrachtet. Dazu wird auch auf die jeweilige Analogie zu den dynamischen Systemen hingewiesen Klasse I Die in der ersten Klasse enthaltenen zellularen Automaten entwickeln eindeutige, homogene Endzustände. In einer solchen Zielkonfiguration weisen alle Zellen denselben Zustand auf, welchen sie außerdem nicht wieder verlassen. Die Evolution des zellularen Automaten ist damit ein endlicher Ablauf. Abbildung 6 zeigt einen solchen Klasse-I-Automaten, der nach wenigen Schritten seinen Endzustand erreicht, der nur noch aus Nullen besteht. Diesen wird er auch nie wieder verlassen. Analog zu den dynamischen Systemen führt eine solche Entwicklung zu einem einfachen Fixpunkt. Dieser Fixpunkt ist (im Bezug auf die obige, kurze Zusammenfassung von dynamischen Systemen) das Ende des Weges im zellularen Zustandsraum und repräsentiert dessen Endzustand. Dieser

83 Zellulare Automaten 79 ist ein (eindeutiger) Punkt im Zustandsraum, sodass ein solcher Attraktor eine räumliche und zeitliche Dimension von Null hat [18, S. 21f]. Abbildung 6. Beispiel für Wolfram s Klasse I Für fast alle Startzustände eines solchen Klasse-I-Automaten wird immer derselbe Endzustand nach endlichen Schritten erreicht. Jedoch existieren wenige Ausnahmen, bei denen bestimmte Startkonfigurationen zu komplexeren Verhalten aus der Klasse II führen können [18, S. 21f]. Die Evolution endet damit nicht in homogenen Konfigurationen, sondern in periodischen Strukturen (siehe Klasse II). Mit steigender Anzahl von Zellen nimmt aber der Anteil an solchen Ausnahmen stetig ab, sodass bei unendlichen, zellularen Automaten alle Startzustände in eine homogene Konfiguration führen. Die meisten lokalen Regeln eines solchen zellularen Automaten verweisen immer auf denselben Zustand; d. h. sie liefern für fast alle Eingaben (welche die Zellzustände der Nachbarn sind) denselben Zustand. Durch dieses Bündeln auf wenige Zustände gehen jedoch Informationen über die Vorgänger (und ihren jeweiligen Zustand) verloren. In Folge dessen zerstört die Evolution eines Klasse- I-Automaten jegliche Informationen über seinen Startzustand. Andererseits lässt sich für diesen Typus leicht eine Vorhersage in Abhängigkeit des initialen Zustands geben [18, S. 2]. Genauer gesagt kann jeder Zielwert einer Zelle mit der Wahrscheinlichkeit 1 bestimmt werden Klasse II Im Gegensatz zur Klasse I entwickeln diese zellularen Automaten eine stabile oder periodische Struktur als Endzustand. Ein solcher periodischer Endzustand ist eine endlose Schleife fester Konfigurationen, die immer wieder durchlaufen wird [18, S. 22]. Eine solche Schleife darf natürlich nur endlich viele Konfigurationen enthalten. Ein stabiler Endzustand ist dabei ein Spezialfall, bei dem die Schleife nur aus einer Konfiguration besteht. Abbildung 7 zeigt einen Klasse-II-Automaten. Man sieht deutlich, dass nach wenigen Schritten sich periodische Figuren gebildet haben, die solange sie nicht mit anderen Figuren interferieren unendlich lange wiederholt werden. In Anlehnung zu den dynamischen Systemen endet eine solche Evolution in einem periodischen Fixpunkt, d. h. der Weg im Zustandsraum (welcher dem Ablauf entspricht) tritt schließlich in einen geschlossenen Kreis ein. Man kann die periodischen Strukturen noch weiter differenzieren. Zum einen gibt es die einfache Periodizität [5, S. 239], d. h. die Wiederholung einer Strutur ist unabhängig von den Randbedingungen. Die Quasi-Periodizität [5, S. 239] dagegen hängt sehr wohl von den Randbedingungen ab. Liegt ein unendlicher,

84 80 S. Kern, B. Gleich Abbildung 7. Beispiel für Wolfram s Klasse II zellularer Automat vor hat also jede Zelle im Raum immer einen Nachbarn in alle Richtungen, so wandert eine quasi-periodische Struktur unendlich lange in eine Richtung. In diesem Fall tritt keine Wiederholung auf. Erst durch bestimmte Randbedingungen des zellularen Raums tritt der Automat in eine Schleife ein, indem die oben genannte Struktur den gesamten endlichen Raum immer wieder durchläuft und von einem Rand zu einem anderen Rand springt. Die Ränder sind dazu gegenseitig miteinander verbunden. Im eindimensionalen Fall ist so ein endlicher Raum als Kreis aufgebaut. Im zweidimensionalen Raum entsteht eine Kugel oder ein Torus. In dieser Klasse ist die Vorhersage für einzelne Zellwerte nur noch bedingt eindeutig möglich. Im Allgemeinen hängt der Endzustand einer Zelle jedoch nur von einer kleinen Region innerhalb der initialen Konfiguration ab. Folglich haben kleinere Veränderungen im Startzustand nur beschränkt Auswirkungen auf den Endzustand [18, S. 22]. Wie schon in der Klasse I, gibt es auch hier Ausnahmen bzgl. der Evolution. Manche zellulare Automaten zeigen ein unbegrenztes Wachstum unter bestimmten Startzuständen auf. Jedoch konvergiert die Wahrscheinlichkeit mit Zunahme des zellularen Raums gegen Null, sodass für unendliche, zellulare Automaten ausschließlich stabile oder periodische Strukturen entstehen [18, S. 22] Klasse III Das Verhalten dieser zellularen Automaten ist aperiodisch. Die enstehenden Konfigurationen weisen chaotische Muster auf. Während Klasse- I-Automaten das eine Extremum darstellen es entstehen immer nur einfache, homogene Endzustände sind die zellularen Automaten dieser Klasse das Extremum der anderen Seite: Chaos [5, S. 240]. Sie bilden keine stabilen Strukturen über längere Zeit aus, d. h. eventuell auftretende (instabile) periodische Muster sind nur von sehr kurzer Lebensdauer. Andererseits können sich solche

85 Zellulare Automaten 81 Defekte auch durch Raum und Zeit bewegen [18, S. 24]. Es hängt jedoch von den einzelnen Regeln eines zellularen Automaten ab, wie oft und lange solche zusammenhängenden Strukturen erscheinen. Im Allgemeinen gilt aber bei ausreichender Größe des zellularen Raums, dass keine Konfiguration wiederholt wird [5, S. 240]. Ein mögliches Beispiel für einen Klasse-III-Automaten zeigt Abbildung 8. Der zeitliche Verlauf bringt zwar deutliche, lokale Strukuren (Dreiecke) im Vergleich zu ihrer Umgebung hervor, diese sind aber nur von kurzer Zeitdauer und treten zufällig und ohne Zusammenhang auf. Mit der Zunahme an regulären Figuren nimmt der Grad der Selbstorganisation zu. Diese Zunahme führt aber auch eine Steigerung der Irreversibilität mit sich [18, S. 27]. Abbildung 8. Beispiel für Wolfram s Klasse III Charakteristisch für diese zellularen Automaten ist, dass sie sehr sensibel gegenüber dem Startzustand sind. Kleinste Veränderungen in der anfänglichen Konfiguration führen zu gravierenden Veränderungen im weiteren Verlauf [5, S. 240]. Man kann feststellen, dass zufällige Startzustände wieder zu zufälligen Konfigurationen führen, d. h. die Zustände einzelner Zellen sind nach einer gewissen Zeit genauso unabhängig voneinander wie im Startzustand [18, S. 23]. Generell tendiert die Wahrscheinlichkeit für Zellen ungleich Null mit der Zeit t gegen 1 k, wobei k für die Anzahl der möglichen Zustände steht.

86 82 S. Kern, B. Gleich Durch die schwache Kopplung von Zellen über große Regionen hinweg, weisen zellulare Automaten aus der Klasse III ein unbegrenztes Wachstum auf. Das hat auch zur Folge, dass einzelne Zellen von einer immer-wachsenden Anzahl initialer Zellzustände abhängig sind [18, S. 30]. Nichtsdestotrotz kann bei einer gegebenen Menge von Startzuständen der Wert einer einzelnen Zelle durch einen einfachen Algorithmus bestimmt werden [18, S. 2], [18, S. 23]. Im Gegensatz zur Klasse I gilt jedoch für die Attraktoren von allen Klasse-III-Automaten, dass die räumliche und zeitliche Dimension immer ungleich Null sein muss [18, S. 26] Klasse IV Die letzte der vier Klassen von Wolfram weist wohl die bemerkenswertesten Eigenschaften auf. Ihr Verhalten spiegelt dabei Formen von allen bisherigen Klassen wieder. Neben homogenen Konfigurationen und periodischen Strukturen (Oszillatoren), gibt es auch chaosähnliche Regionen mit lokalisierten Strukturen. Diese Objekte können zudem in Raum und Zeit wandern. Darüberhinaus existieren propagierende Strukturen, d. h. diese sind fähig, immer wieder neue Objekte zu erschaffen [18, S. 30]. Abbildung 9. Beispiel für Wolfram s Klasse IV In Folge dessen ist diese Klasse an zellularen Automaten auch zu komplexestem Verhalten fähig. Dies geht schließlich soweit, dass einige dieser zellularen Automaten zur universellen Ausführung (universal computing) fähig sind; d. h. analog zu den Turing Maschinen sind sie in der Lage jeden beliebigen, endlichen

87 Zellulare Automaten 83 Algorithmus unter der Annahme einer passenden Codierung auszuführen [5, S. 242]. Jedoch können diese nur durch unendliche, zellulare Automaten verwirklicht werden, da ein Automat mit einem endlichen, zellularen Raum nur eine endliche Anzahl interner Zustände hat und somit nur eine Teilmenge aller Funktionen darstellen kann [18, S. 32]. Durch die Fähigkeit von universal computing ist eine effektive Vorhersage für einen einzelnen Zellwert auch nicht mehr möglich. Ein solcher Algorithmus hätte dieselbe Komplexität wie die explizite Simulation der zeitlichen Evolution des zu untersuchenden Automaten [18, S. 2]. Abbildung 9 zeigt eindrucksvoll einen Klasse-IV-Automaten. Es wird schnell deutlich, dass er zwar nicht ein solches Chaos hervor bringt wie ein Klasse-III- Automat, aber auch definitiv nicht der Klasse I oder II zugeschrieben werden kann. Wolfram hat sich deswegen auch schwer getan eine adäquate Form bei den (klassischen) dynamischen Systemen zu finden. Heute geht man davon aus, dass das Verhalten von Klasse-IV-Automaten ein noch fundamentaleres Phänomen aus der Natur darstellt als bisher angenommen. Eine mögliche Vermutung ist deswegen, dass ihr dynamisches Verhalten sich an der Grenze zwischen Chaos und periodischen Strukturen befinden könnte. Eine mögliche Sortierung der Klassen wäre dann: I, II, IV, III [5, S. 242]. Diese Vermutung wird sich im folgenden Abschnitt mit Hilfe der λ-klassifikation von Langton bestätigen. 3.2 Die Lambda-Klassifikation Eine weitere verbreitete Klassifikation von zellularen Automaten ist die sogenannte λ-klassifikation. Sie wurde von Chris Langton eingeführt, um die allgemeine Komplexität von evolutionären Systemen auf einer eindimensionalen Skala zwischen 0 und 1 anzugeben. Die Funktion, die jedem zellularen Automaten genauer jeder Regel (R) ein λ zuordnet, hat folgende mathematische Form: f λ : [R] λ der Definitions- und Wertebereich hat dabei grob betrachtet für binäre zellulare Automaten die Form f λ : 0..k k2r+1 [0, 1] mit k als Anzahl der möglichen Zustände und r als Regel-Radius. Betrachtet man die Struktur dieser Abbildung, erkennt man schnell, dass ein sehr großer Definitionsbereich auf ein sehr kleines Intervall abgebildet wird. Darin liegt für die λ-klassifikation gleichermaßen ein Vor- und Nachteil: Natürlich ist ein so einfaches Maß sehr vorteilhaft, um die nicht greifbare Menge der verschiedenen Regeln zu klassifizieren. Allerdings stellt sich die Frage, ob bei dieser Projektion auf ein so kleines Intervall nicht zu viele Informationen verloren gehen. Im Vergleich zur Wolfram-Klassifikation besteht jedoch der klare Vorteil der kontinuierlichen Klassifizierung, die die einzelnen Regelklassen eindimensional anordnet.

88 84 S. Kern, B. Gleich Um beurteilen zu können, wie sinnvoll bzw. nützlich die λ-klassifikation ist, muss natürlich die genaue Definition der Funktionsgleichung betrachtet werden: f λ (R) = R R q R Dabei steht R für die Anzahl aller Regeln einer bestimmten Automaten- Konfiguration und R q für die Regeln, die zu einem ruhigen Endzustand führen. Ein solcher Zustand ist gegeben, wenn eine Regel auf 0 abbildet. Damit lässt sich λ also leicht berechnen, indem man in der Regeltabelle die Regeln zählt, die nicht auf 0 abbilden und diese dann durch die gesamte Anzahl der Regeln teilt. Ganz offensichtlich ist der Informationsverlust bei diesem Verfahren enorm. So kommentiert auch Gary Flake dieses Vorgehen: Mapping a whole rule table into a single scalar number is a little bit dangerous [5][S. 243]. Trotzdem hat sich die λ-klassifikation als relativ nützlich herausgestellt, da sie für die Wolfram- Klassifikation etwa folgende Anordnung ergibt: Klasse I: λ 0, 2 Klasse II: λ 0, 4 Klasse III: λ 0, 8 Klasse IV: λ 0, 5 Damit zeigt sich λ als ein insgesamt robustes Maß für die Komplexität einer Regelkonfiguration. Diese ist minimal bei Klasse I, steigt bei Klasse II und IV und ist bei Klasse III maximal. Das entspricht auch der intuitiven Erwartung: Die Klasse I ist sehr einfach und wenig komplex, während Klasse II mit periodischen Werten schon als etwas komplexer zu betrachten ist. Maximale Komplexität bzw. minimale Struktur ist sicherlich in der zufälligen Klasse III zu finden. Klasse IV befindet sich dagegen an der Schwelle zwischen Struktur und Zufälligkeit, was auch durch den λ-wert so abgebildet wird. Das gilt allerdings in dieser Klarheit nur für passend gewählte Beispiele[5, S. 244]. Für beliebige zellulare Automaten ergeben sich dagegen mindestens drei zentrale Schwachpunkte für die λ-klassifikation: Eine Regelkonfiguration kann ein hohes λ aufweisen, aber dennoch ein sehr einfaches Verhalten erzeugen. Da zellulare Automaten turing-mächtig sind, haben sie die Fähigkeit theoretisch beliebig komplizierte Funktionen berechnen zu können. Die Abbildung der Menge aller Funktionen auf das Intervall [0, 1] vernichtet offenbar nahezu alle dieser Informationen. λ kann immer nur die Regelkonfiguration abbilden, nicht jedoch angeben, ob ein zellularer Automat terminiert ist obwohl gerade das ein zentraler Maßstab für die Komplexität wäre. Eine solche Aussage ist aus grundsätzlichen Argumenten nicht möglich [5, S. 245]. Die λ-klassifikation ist also ein sehr grobes Verfahren, aber für eine erste Betrachtung einer Regelkonfiguration eines bestimmten zellularen Automaten

89 Zellulare Automaten 85 nützlich zumal es für die Bewertung der Komplexität von zellularen Automaten keine andere bessere und dennoch so einfache Maßzahl gibt. 4 Anwendung Der zweite Teil dieser Arbeit befasst sich mit der Anwendung von zellularen Automaten. Dazu liefert dieses Kapitel einen ersten Überblick der möglichen Anwendungen in den verschiedenen Gebieten der Forschung wie Physik, Biologie, aber auch der Mathematik und Informatik. Anschließend werden drei Anwendungsbeispiele näher beschrieben. Zum einen wird ein zentrales Problem der Informatik aufgegriffen: die Generierung von Zufallszahlen. Zum anderen zeigt sich, dass einer der bekanntesten zellularen Automaten Conway s Game of Life als Grundlage für einen universellen Computer dienen kann. Das letzte Anwendungsbeispiel befasst sich schließlich mit Verkehrssimulationen auf Basis von zellularen Automaten. 4.1 Übersicht Wie bei jeder neuen wissenschaftlichen Theorie gibt es immer ein großes Spektrum zwischen den ambitionierteren und den skeptischeren Betrachtern. Während Stephen Wolfram als einer der Entwickler des Konzeptes der zellularen Automaten Auswirkungen seiner Theorie in nahezu allen Bereiche des wissenschaftlichen Denkens aufzeigt, ist die Meinung der restlichen Wissenschaftsgemeinde hier etwas zurückhaltender, obwohl auch hier die Bedeutung der zellularen Automaten keineswegs als gering angesehen wird. Im Nachfolgenden sollen beide Seiten zu Wort kommen Zellulare Automaten und komplexe Systeme Gary William Flake liefert in seiner ambitionierten Zusammenfassung The Computational Beauty of Nature (sicherlich auch eine Anspielung auf Mandelbrots bedeutendes Werk The Fractal Geometry of Nature) eine Übersicht an Überschneidungsbereichen zwischen Informatik und Natur im weiteren Sinne. Dabei liefert er eine sehr neutrale Beschreibung des Konzepts der zellularen Automaten. Für ihn ist dabei besonders entscheidend, dass sie verschiedenste komplexe Phänomene zeit- und skaleninvariant beschreiben. Dazu nennt er eine Reihe von Beispielen, die hier kurz dargestellt werden sollen[5, S. 251ff.]. Statistische Mechanische Systeme Zellulare Automaten und verwandte Techniken ermöglichen einen Paradigmenwechsel in der statistischen Physik. Theoretische und experimentelle Physiker können nun gleichermaßen ihre Theorien mit Hilfe von Simulationen auf Basis von zellularen Automaten überprüfen: Beispielsweise gelten für die Dynamik von Gasen und Fluiden statistische Gesetze, die nahezu vollständig auf der Interaktion von benachbarten Teilchen beruhen. Aber auch für noch junge Bereiche der statistischen Physik wie beispielsweise für die Biophysik und insbesondere für die Forschung zur Dynamik von Epidemien

90 86 S. Kern, B. Gleich sind zellulare Automaten sehr nützlich: Populationen und verschiedene Städte werden beispielsweise als Zellen eines Automaten approximiert, was auch die Simulation sehr großer Systeme möglich macht und damit die Genauigkeit der Prognose erhöht[19, S. 16]. Kolonien und Schwärme Es ist bekannt, dass Kolonien von Ameisen oder Schwärme von Vögeln sich in irgendeiner Weise unter Abwesenheit einer zentralen Steuerung selbst regulieren. Beispielsweise versuchen Vögel zum einen, einen möglichst optimalen Abstand zu ihren Nachbaren einzuhalten, aber zum anderen, möglichst in der Mitte des Schwarms zu fliegen. Diese ganz klar lokale Optimierung auf Basis von Nachbarschaftsbeziehungen führt offenbar doch zu einem global optimalen Ergebnis. Diese Beobachtung stärkt das Prinzip der zellularen Automaten, die ja auf Nachbarschaften und lokaler Optimierung beruhen und spricht dafür, dass diese lokalen Ergebnisse dennoch einen globalen Informationswert mit sich tragen Zellulare Automaten und alltägliche Phänomene In Kapitel 8 von A New Kind of Science schildert Stephen Wolfram eine Reihe von Analogien zwischen alltäglichen Phänomenen und dem Konzept der zellularen Automaten. Aufgrund der graphischen Natur von zellularen Automaten sind viele dieser Analogien sehr gut visuell fassbar. Kristallines Wachstum Ein bekanntes Beispiel und beliebtes für kristallines Wachstum sind Schneeflocken. Stephen Wolfram zeigt, dass ein einfacher zellularer Automat viele Formen von Schneeflocken mit beeindruckender Ähnlichkeit reproduzieren kann, wie es 10 und 11. Dazu verwendet er einen zellularen Automaten auf einem hexagonalen Gitter, in dem eine Zelle dann im nächsten Schritt schwarz gefärbt wird, wenn sie genau einen Nachbaren hat, der ebenfalls schwarz gefärbt ist[19, S. 369f.]. Biologische Pigmentierungsmuster Die Pigmentierung beispielsweise von Muschel- Schalen oder dem Fell von Tieren zeigt in vielen Bereichen eine erstaunliche Ähnlichkeit zu Mustern, die von zellularen Automaten erzeugt werden können. So können etwa eindimensionale zellulare Automaten die Pigmentierung von Muschel-Schalen überraschend gut approximieren, wie die Gegenüberstellung von Abbildung 12 und Abbildung 13 zeigt. Für Wolfram ist diese Ähnlichkeit kein Zufall, sondern ein Indiz für die Art der Entstehung von Muschelschalen. Im gezeigten Beispiel wachsen diese spiralförmig und dabei wird in jeder Zeiteinheit eine neue linienförmige Schicht angetragen. Es ist also keineswegs fernliegend, dass hier eine biologische Form eines zellularen Automaten vorliegt, in dem die Pigmente eines Schrittes jeweils von den benachbarten Pigmenten des vorherigen Wachstumsschrittes abhängen. Ähnliches gilt für das Fell von Tieren, das allerdings am besten durch einen einfachen zweidimensionalen zellularen Automaten approximiert werden kann. Natürlich kann man den Standpunkt vertreten, diese Koinzidenz wäre reiner

91 Zellulare Automaten Abbildung 10. Einige echte Schneeflocken... Abbildung und ein entsprechender zellularer Automat 87

92 88 S. Kern, B. Gleich Abbildung 12. Die Pigmentierung von natu rlichen Muschel-Schalen Abbildung 13. Und einige zellulare Automaten. Vor allem die Regeln 90, 122, 126, 150 und 151 erzeugen den Muscheln a hnliche Muster.

93 Zellulare Automaten 89 Zufall, doch bei einer ausgewogenen Betrachtung sieht man darin zumindest ein Indiz dafür, dass das Prinzip der zellularen Automaten ein nicht unwesentliches Prinzip bei natürlichen Wachstumsprozessen ist Auswirkungen von zellularen Automaten auf andere Disziplinen Je nach Interpretation entfaltet die Idee hinter dem Konzept der zellularen Automaten eine große Tragweite auf andere Bereiche der Wissenschaft. Obwohl Stephen Wolfram seinen Thesen in A New Kind of Science in enthusiastischer Wiese eine sehr große Tragweite beimisst, die nicht von allen Wissenschaftlern ebenso gesehen wird, sollen seine diesbezüglichen Überlegungen hier doch präsentiert und dem Leser zur kritischen Beurteilung überlassen werden. Auswirkungen auf die Mathematik Da zellulare Automaten im Wesentlichen eine mathematische Struktur im allgemeinsten Sinne darstellen, sind sie für Wolfram eine bedeutende Erweiterung der Perspektive der Mathematik. Wie z.b. die mathematisch genau untersuchte Klasse von Abbildungen zwischen verschiedenen Mengen müssten seiner Meinung nach auch zellulare Automaten als zentrale mathematische Operationen angesehen und entsprechend intensiv untersucht werden[19, S. 7]. Auswirkungen auf die Biologie Die bisherige mathematische Analyse von komplexen biologischen Wachstumsprozessen haben haben in Wolframs Meinung bei weitem noch nicht die wünschenswerte Beschreibungsgenauigkeit erreicht. In dem Konzept der zellularen Automaten sieht er eine mögliche Beschreibung dafür, wie genetische Programme es schaffen, komplexe Organismen aufzubauen. In der Tat beruht das Wachstum einer Lebensform im Wesentlichen auf Nachbarschaftsoperationen in einem dreidimensionalen Raum, dessen Zellen verschiedenste Moleküle sind[19, S. 8f.]. Auswirkungen auf die exakte Sozialwissenschaft Eine wesentliche Eigenschaft der exakten Sozialwissenschaft ist die mathematische Notation von Theorien. Diese Form der Notation ist nach Wolframs Meinung oft irreführend, da sie bestimmte Strukturen nicht oder nur schlecht abbilden kann, die von zellularen Automaten viel einfacher und klarer dargestellt werden[19, S. 9]. Auswirkungen auf die Informatik Stephen Wolfram identifiziert es als eine zentrale Eigenschaft der Informatik, mit relativ komplexen Programmen nur vergleichsweise einfache Ergebnisse zu erzielen. Zellulare Automaten erzeugen dagegen aus vergleichsweise einfachen Konfigurationen beliebig komplexe Ergebnisse. Für Wolfram ist das ein Argument für die Ausweitung der Perspektive der Informatik, hin zu komplexen und grundsätzlichen Fragen, bei denen die Informatik mit Hilfe der Konstruktion einfach gebauter Systeme mit komplexen Ergebnissen eine Art virtuelle Simulationsrealität für natürliche Prozesse darstellen könnte[19, S. 10].

94 90 S. Kern, B. Gleich Auswirkungen auf die Technik Die heutige Technik kann als sehr weit entwickelt und komplex angesehen werden. Kein einzelner Mensch alleine kann alle Technologie in einem einfachen Computer verstehen. Dennoch ist die Technik noch weit entfernt von der Perfektion der Natur, was z.b. die Imitation des menschlichen Gehirns durch künstliche neuronale Netze anbelangt. Die Idee Wolframs besteht darin, dass man extrem komplexe Probleme vielleicht mit einfachen Regelsystemen wie zellularen Automaten lösen könnte. Auch das menschliche Gehirn ist viel komplizierter als sein Bauplan, der ja effektiv in einer einzigen Zelle gespeichert ist. Könnte man dieses Konzept auf die Technik anwenden, wäre die Komplexität des Ergebnisses nicht mehr zwangsläufig an eine komplexe Konstruktion gebunden[19, S. 11]. 4.2 Intrinsische Generierung von Zufallszahlen Eine zentrale Problemstellung der Informatik ist die Generierung von echt zufälligen Zahlensequenzen. Der immer noch verbreitetste Ansatz basiert auf der aktuellen Systemzeit in Verbindung mit einigen möglichst chaotischen mathematischen Operationen wie z.b. der Modulo-Operation mit einer möglichst großen Primzahl. Obwohl diese Methode allgemeine Anerkennung findet, hat sie doch durchaus nicht unbekannte Schwächen, darunter vor allem die Abhängigkeit der Zufälligkeit von einer externen Quelle, in diesem Fall der Systemzeit. In A New Kind of Science präsentiert Stephen Wolfram eine Lösung für dieses Problem, die auf zellularen Automaten aufbaut[19, S. 299ff.]. Dazu unterscheidet er drei Arten von Zufälligkeit : Die erste Form ist Zufälligkeit durch externes Rauschen. Dabei werden in jedem Schritt möglichst zufällige Messwerte aus einer externen Quelle erfasst, etwa die Brownsche Bewegung. Bei der zweiten Form entsteht die Zufälligkeit durch Umformung der Anfangsbedingungen. Dieser Ansatz basiert auf der Chaos-Theorie, die unter anderem besagt, dass durch minimale Veränderungen in den Eingabewerten extreme Veränderungen der Ergebnisse hervorgerufen werden können besonders bei der Anwendung von komplexen, aber deterministischen Operationen. Diese Sensibilität führt zu einer hohen Komplexität der Ergebnisse, die einer scheinbaren Zufälligkeit nahekommt. Die letzte Form der Zufälligkeit schließlich ist die intrinsische Zufälligkeit. Diese natürlich von Wolfram favorisierte Methode generiert zufällige Zahlensequenzen direkt aus der jeweiligen Zeile eines zellularen Automaten. Offenbar sind dafür keinerlei externe Eingabewerte notwendig, da die Zufälligkeit direkt aus der Anwendung der Regeln auf einen einzigen Startpunkt entsteht. Die genaueren Eigenschaften sowie die Vor- und Nachteile dieser Form der Zufälligkeit sollen im Folgenden analysiert werden. Diese Vorteile liegen vor allem in der Vermeidung der offenbaren Nachteile der externen Zufälligkeitsformen. So ist etwa externes Rauschen auf den ersten Blick eine gute Quelle für Zufälligkeit, besitzt aber bei genauerer Betrachtung sehr häufig bestimmte Strukturen. Da jede Form von Rauschen oder beispielsweise von Brownscher Bewegung in einem physikalischen System abläuft, gibt es automatisch Korrelationen zwischen den einzelnen Bestandteilen, die basierend auf Naturgesetzen bestimmte mathematische Eigenschaften haben, die

95 Zellulare Automaten 91 Abbildung 14. Eine Visualisierung der drei verschiedenen Zufallsquellen gegen eine vollständige Zufälligkeit sprechen[19, S. 302ff.]. Ähnlich liegt das Problem bei der chaotischen Umformung der Eingabewerte: Trotz aller Komplexität führen chaotische Prozesse häufig auch zu sehr regelmäßigen Systemen. Ein Beispiel ist unser Planetensystem, das trotz seiner extremen physikalischen Komplexität schon ein Drei-Körper-System kann nicht mehr exakt berechnet werden im Großen und Ganzen ein sehr regelmäßiges Verhalten zeigt. Es besteht also bei dieser Form der Zufallsgenerierung immer das Risiko, in einem stabilen Attraktor zu Enden, der alles andere als zufällig ist. Nun stellt sich natürlich die Frage, ob intrinsisch generierte Zufälligkeit mit Hilfe von zellularen Automaten keine interne Korrelation, stabile Attraktoren oder ähnliches aufweist. Stephen Wolfram betont, dass beispielsweise für den auf der Regel 30 basierenden zellularen Automaten trotz umfangreicher Studien keinerlei Regularitäten gefunden werden konnten[19, S. 316]. Dabei ist es oft nicht bekannt, dass die Random[Integer]-Funktion von Mathematica von der ersten Version an den zellularen Automaten mit der Regel 30 als Zufalls-Algorithmus verwendet[19, S. 317f.]. Dabei geht Wolfram noch weiter: zellulare Automaten können nicht nur sehr verlässliche Zufallszahlen mit einer nahezu unerreichbar großen Periodizität erstellen, seiner Meinung nach sind sie die eigentliche Quelle für Zufälligkeit überhaupt: Whenever a large amount of randomness is produced in a short time, intrinsic randomness generation is overwhelmingly likely to be the mechanism responsible. Stephen Wolfram, A New Kind of Science, S. 321 Zusätzlich begründet er diese These damit, dass intrinsische Zufallszahlengenerierung eine bestimmte Toleranz für zufällig Veränderungen hat, also in gewisser Weise als stabil betrachtet werden kann. Da nun viele Prozesse in der Natur eine offenbare Zufälligkeit aufweisen, aber trotz dieser vielen ebenfalls zufälligen Störungen in ihrem Verhalten stabil bleiben, kann dies nach Wolfram

96 92 S. Kern, B. Gleich Abbildung 15. Der für die Zufalls-Funktion von Mathematica verwendete zellulare Automat (Regel 30) nur auf die intrinische Zufälligkeit zurückgeführt werden [19, S. 323ff.]. Unser Planetensystem ist beispielsweise ein sehr komplexes Gravitations-System, das schon alleine durch die unregelmäßige Bewegung der Menschen auf der Erde immerwährend gestört wird. Trotzdem behält es seine komplexe Regelmäßigkeit und darin liegt eine klare Analogie zu der intrinsischen Zufälligkeit von zellularen Automaten, die ihr grundsätzliches Verhalten auch bei einem gewissen Maß an zufälliger Interferenz noch behalten, wie Abbildung 16 zeigt [19, S. 324f.]. Damit sind zellulare Automaten ein vielversprechender Ansatz in der Analyse und Generierung von Zufälligkeit. Zwar bleibt abzuwarten, ob sich nicht doch irgendwann Reglularitäten wie in vielen anderen Verfahren finden lassen. Dennoch ist das Konzept der intrinischen dem der externen Zufälligkeit aus prinzipiellen Gründen überlegen. Besonders vorteilhaft wirkt es sich dabei aus, dass die Regeln zur Erzeugung von Zufälligkeit bei zellularen Automaten sehr einfach sind, so dass sie auch bei der Implementierung keinerlei Probleme verursachen. Und nicht ganz zu Unrecht betrachtet Stephen Wolfram selbst die Beschreibung der intrinsischen Zufälligkeit als eines der wichtigen Resultate seines Buches[19, S. 315]. 4.3 Game of Life Einer der wohl bekanntesten zellularen Automaten ist Game of Life. Dieser wurde in den späten 60er Jahren von Conway entwickelt. Durch seine Veröffentlichung 1970 im Scientific American, fand Conways Automat anfangs nur im wissenschaftlichen Bereich Interessenten. Durch die modernen Verbreitungsformen und dabei insbesondere das Internet fand Game of Life ein immer

97 Zellulare Automaten 93 Abbildung 16. Die verschiedene Sto rungstoleranz von zwei zellularen Automaten

98 94 S. Kern, B. Gleich größer werdendes Publikum. Weltweit untersuchten viele Interessierte den zellularen Automaten und fanden mit der Zeit eine schier unglaubliche Anzahl an Strukturen und Objekten Einführung Game of Life ist ein zweidimensionaler, zellularer Automat. Eine Zelle kann hierbei nur zwei Zustände (0 und 1) annehmen, welche respektiv Tod oder Leben symbolisieren. Die Nachbarschaft einer Zelle ist von Type-II (auch als Moore-Nachbarschaft bekannt). Diese besteht aber nur aus den acht direkt angrenzenden Zellen, da der zelleigene Zustand selber nicht berücksichtigt wird. Der Einfluss der Nachbarschaft bei einer Regelanwendung weist jedoch eine Besonderheit auf, welche auch als totalistic bezeichnet wird [17, S. 637]: Es werden nicht die einzelnen Zellen der Nachbarschaft berücksichtigt, sondern nur ihre Summe. Grundsätzlich gibt es zwei Arten von Regeln. Zum einen steuern sie das Entstehen neuer Zellen und zum anderen das Überleben einer Zelle in Abhängigkeit ihrer Umgebung. Die klassischen Regeln von Conway sind dabei [8]: Geburtsregel: Wenn eine (tote) Zelle von genau drei lebenden Zellen umgeben ist, entsteht eine neue, lebende Zelle, d. h. ihr Zustand wird 1. Überlebensregel: Eine (lebende) Zelle bleibt genau dann am Leben, wenn in ihrer Nachbarschaft zwei oder drei lebende Zellen sind. Ansonsten gilt, dass lebende Zellen absterben bzw. tot bleiben. In Bezug auf die Natur können damit wichtige, grundsätzliche Eigenschaften von Lebensformen und ihrer Vermehrung modelliert werden [5, S. 246]: Isolierte Zellen, bei denen also zu wenige, lebende Nachbarzellen vorhanden sind, sterben genau so aus wie Zellen in überbevölkerten Regionen. Dagegen kann bei optimalen Bedingungen der Umgebung neues Leben entstehen. Zudem sichert die Eigenschaft der Stasis das Überleben einer Zelle, da hier eine gewisse Koexistenz zwischen der Zelle und ihrer Umgebung besteht Figuren Bei Game of Life handelt es sich um einen Klasse-IV-Automaten, der wie sich später zeigen wird auch die wichtige Eigenschaft von Universal Computing aufweist. Das Universum von Game of Life bringt durch die Klasse IV eine unglaubliche Zahl von Figuren und Strukturen mit sich. Im Internet existieren hierzu ganze Sammlungen über die verschiedensten Game-of-Life Objekte [7]. Grundsätzlich gilt für stabile, lokalisierte Strukturen, dass sie ohne Interferenz nebeneinander existieren können, solange vier oder mehr leere Zellen zwischen ihnen liegen [17, S. 637]. Die einfachsten Formen in Game of Life sind Blöcke oder Sechsecke. Diese sind zeitlich stabile Strukturen, d. h. ohne Einfluss von außen verändern sie sich nicht (siehe Abbildung 17). Oszillatoren (periodische Strukturen) sind zum Beispiel die Blinker. Sie bestehen aus nur zwei internen Zuständen, die sich gegenseitig abwechseln. Solche periodische Strukturen können aber auch deutlich komplizierter sein wie die Abbildung 18 zeigt.

99 Zellulare Automaten 95 Abbildung 17. Statische Objekte in Life Abbildung 18. Periodisches Objekt (Oszillator) in Life mit drei Schritten Es gibt zudem auch Oszillatoren, welche sich durch die räumliche Verschiebung beim Durchlaufen ihrer internen Zustände im Raum bewegen können. Die einfachsten Vertreter dieser Eigenschaft sind die Gleiter (siehe Abbildung 19). Abbildung 19. Sich bewegendes Objekt (Gleiter) in Life mit vier internen Zuständen Eine aber noch verblüffendere Erscheinung sind zum Beispiel die Gleiterkanonen oder Brüter. Sie generieren kontinuierlich neue Objekte; im Fall der Gleiterkanonen sind dies sich in einem Strom davon bewegende Gleiter. Durch solche Figuren wird eine interessante Eigenschaft möglich: das kontrollierte (unendliche!) Wachstum lebender Zellen. Die meisten geometrischen Figuren vermehren sich exponentiell, wobei das (explodierende) Wachstum irgendwann durch eine gewisse Überbevölkerung der Figuren im Raum gebremst oder sogar gestoppt wird. Gleiterkanonen sind dagegen in der Lage unendlich viele Gleiter zu generieren. Auch verwirklichen diese Objekte die schon von Neumann angestrebte Eigenschaft der Selbst-Reproduktion Universal Computing Durch die Eigenschaft von Universal Computing ist es möglich, basierend auf einer gleichen (internen) Struktur, jeden beliebigen Algorithmus unter der Annahme einer passenden Codierung laufen

100 96 S. Kern, B. Gleich zu lassen. Mit anderen Worten kann ein solcher Automat als ein universeller Computer betrachtet werden. Im Bezug auf zellulare Automaten ist der Aufbau des universellen Computers, wie auch das Programm und seine (Eingabe-)Daten durch die initiale Startkonfiguration gegeben. Zellulare Automaten von Game of Life weisen eben genau diese bemerkenswerte Eigenschaft auf. Es gibt dabei verschiedene Ansätze, um diese Fähigkeit zu zeigen. Zum einen kann man den zellularen Automaten mit einer Turing Maschine vergleichen, da viele Turing Maschinen zu Universal Computing fähig sind. Eine der einfachsten Turing Maschinen mit einer solchen Fähigkeit hat sieben interne Zustände und verarbeitet vier verschiedene Symbole [17, S. 639]. Ziel ist also ein zellularer Automat, der eine solche Turing Maschine simulieren kann. Somit kann eine universal computing fähige Turing Maschine, welche jeden Algorithmus verarbeiten kann, von dem zellularen Automaten simuliert werden. Dieser ist dann ebenfalls in der Lage jeden Algorithmus zu verarbeiten [13]. Ein anderer Ansatz verfolgt den Nachbau eines digitalen Standardcomputers. Wichtige Bestandteile eines solchen Computers sind neben den logischen Gattern und Leitungen, der Speicher und ein Zähler (zur Synchronisation). Mit diesen elementaren Bausteinen kann man schließlich einen Computer realisieren. Folglich muss ein universal computing fähiger, zellularer Automat diese Bausteine bereitstellen können. Dabei zeigt sich, dass ein solcher Automat bis auf den Unterschied eines konstanten Faktors mit derselben Geschwindigkeit laufen kann wie der zu simulierende Computer. Zur grundsätzlichen Demonstration für das Vorgehen soll im Folgenden aber nur kurz eine mögliche und sehr einfache Form der Realisierung von Leitungen und Gattern erklärt werden. Für die Realisierung eines Speichers und Zählers sei auf die sehr ausführliche Arbeit von Paul Rendell [13] verwiesen, da es hier den Rahmen der Arbeit sprengen würde. Leitungen lassen sich durch einen kontinuierlichen Strom von Gleitern bzw. das Fehlen von Gleitern simulieren. Dabei stellt das Vorhandensein eines Gleiters die logische 1 und das Fehlen eines Gleiters die logische 0 an dieser Stelle dar. Mit Hilfe von Gleiterkanonen kann ein weiterer kontinuierlicher Strom von Gleitern generiert werden. Dieser kann an Stellen mit einer logischen 0 durch gezielte Kollisionen senkrecht auftreffender Gleiter und anschließender Auslöschung (Lücke entspricht logischer 0) zu der gewünschten binären Sequenz moduliert werden. Ströme von Gleitern können durch sogenannte Gleiter-Esser wieder gezielt elemeniert werden, um eine unkontrollierte Ausbreitung (und damit unerwünschte weitere Interferenzen mit anderen Objekten) zu verhindern. Der zweite wichtige Baustein in einem Computer sind die logischen Gatter. In heutigen Systemen verwendet man normalerweise ausschließlich NAND-Gatter, da mit ihnen alle anderen logischen Verknüpfungen wie NOT ( A = A A), AND (A B = A B A B) und OR (A B = A A B B) dargestellt werden können [4, S. 251]. Eine mögliche Realisierung des NAND-Gatters stellt die Abbildung 20 dar. Hier generiert die linke, untere Gleiterkanone einen kontinuierlichen Gleiterstrom, welcher mit dem eingehenden Datenstrom von A kollidiert. Ist der aktuelle Stellenwert im Datenstrom eine 1 also ein vorhandener Gleiter, kollidiert dieser

101 Zellulare Automaten 97 Abbildung 20. NAND-Gatter in Life mit einem Gleiter aus der Gleiterkanone und wird ausgelöscht. Somit entsteht ein Loch (entspricht der logischen 0), welches sich weiter nach oben im Strom bewegt. Umgekehrt gilt: Ist das Eingangssignal eine 0 also ein Loch im Datenstrom von Gleitern, kann ein Gleiter aus der Gleiterkanone ohne Kollision sich frei weiter nach oben bewegen. Damit wird das Eingangssignal von A also negiert. Der resultierende Strom A wird nun mit dem zweiten Eingangsdatenstrom B gekreuzt. Es gilt hier dasselbe Verhalten mit Gleiterkollisionen und Löchern wie zuvor, sodass sich nach dieser Verknüpfung der resultierende Datenstrom A B nach rechts weiterbewegt. Der mögliche Gleiterstrom nach oben (wenn von B ein Loch kommt und A = 1) wird durch einen sogenannten Gleiter-Esser (siehe Abbildung 20) eleminiert, um weitere unerwünschte Interferenzen zu vermeiden. Um schließlich das gewünschte Resultat A B zu erhalten, muss das bisherige Ergebnis A B noch negiert werden. Dies geschieht analog zur Negation von A im ersten Schritt mit einer NOT-Verknüpfung. Hierzu wird das zu negierende Signal mit einem dazu senkrechten kontinuierlichen Gleiterstrom aus einer Gleiterkanone gekreuzt. Sind das logische Gatter, Leitungen, sowie Speicher und Zähler (letztere beiden Bausteine siehe [13]) realisiert, kann man schließlich einen digitalen Standardcomputer bauen. Damit ist auch die Eigenschaft des Universal Computing für zellulare Automaten gezeigt. 4.4 Verkehrssimulation Ein sehr beachtenswerter Anwendungsbereich für zellulare Automaten ist die Simulation der Dynamik des Straßenverkehrs. Die Art und Weise der täglichen Verkehrsflüsse auf Autobahnen und anderen Straßen hat allgemein gesprochen erhebliche Auswirkungen auf die Leistungsfähigkeit einer Volkswirtschaft. Klassische Ansätze mit Hilfe von Differentialgleichungen zeigen dabei deutliche Performance-Probleme aufgrund der Komplexität der zu Grunde liegenden Mathematik. Allerdings ist die Rechenzeit für die Simulation von Verkehrsströmen

102 98 S. Kern, B. Gleich essentiell, da für eine sinnvolle Anwendung viele Millionen von Fahrzeugen simuliert werden müssen Das Nagel-Schreckenberg-Modell Einen bedeutenden Schritt zur Realisierung solcher umfangreicher Simulationen stellt das Nagel-Schreckenberg- Modell dar. Dieses wurde erstmals 1992 von Kai Nagel und Michael Schreckenberg präsentiert[10]. Dabei werden die Eigenschaften des Straßenverkehrs folgendermaßen abgebildet: Eine Straße wird als zyklisches eindimensionales Array betrachtet, das aus einzelnen Zellen besteht. Ein Fahrzeug kann eine oder mehrere solcher Zellen belegen. Die Geschwindigkeit v ist ein ganzzahliger Wert, im vorliegenden Fall zwischen 0 und 5. Auf diesem System werden nun spezielle Regeln ausgeführt, die den realen Straßenverkehr so gut wie möglich approximieren sollen: Falls möglich, bewegt sich ein Fahrzeug um v Zellen nach vorne. Es beschleunigt um eine Einheit, wenn es den dafür notwendigen Platz hat und seine Maximalgeschwindigkeit noch nicht erreicht ist. Es bremst, falls das nächste Fahrzeug weniger als v Zellen entfernt ist. Zusätzlich kann sich die Geschwindigkeit v zufällig um eine Einheit verringern. Obwohl alle diese Regeln sehr intuitiv sind, spielt vor allem die Zufälligkeit eine besondere Rolle: Ohne diese Eigenschaft würde die resultierende Simulation schnell einen stationären Zustand erreichen, der wenig Zusammenhang mit den tatsächlichen Entwicklungen aufweist. Der Zufall repräsentiert dagegen das oft zufällige Fehlverhalten von Autofahrern (Trödeln) genauso wie externe Einflüsse (Unfälle, Baustellen) und macht die Simulation so deutlich realistischer. Somit ergibt sich ein sehr einfacher zellularer Automat, der sich hochperformant simulieren lässt und dabei schon wesentliche Aspekte des Straßenverkehrs analytisch erklärt. Die angesichts der groben Vereinfachung überraschende Genauigkeit dieses Ansatzes zeigt Abbildung Die Simulation von Kreisverkehren Das Nagel-Schreckenberg-Modell ist Grundlage für viele weitere Anwendungen und Verfeinerungen. Als eine Beispiel für eine solche Fortentwicklung soll hier die Simulation der Dynamik von Kreisverkehren [3] kurz dargestellt werden. Diese Veröffentlichung präsentiert eine recht fortgeschrittene Anwendung ( Archirota ) zur Simulation von Kreisverkehren auf Basis von zellularen Automaten. Die Autoren begründen ihre Wahl dieses Modells mit einer Reihe von Vorteilen: Komplexes Verhalten lässt sich durch einfache Regeln erzeugen. Der vorliegende Ansatz ist den deutlich komplizierteren Differentialgleichungen überlegen.

103 Zellulare Automaten 99 Abbildung 21. Direkter Vergleich zwischen Nagel-Schreckenberg-Modell und realem Verkehrsaufkommen Die Berechnung ist extrem effizient. Die verwendeten Regeln und Eigenschaften entsprechen dabei im Wesentlichen dem Nagel-Schreckenberg-Modell. So lassen sich Kreisverkehre in Hinblick auf ihre Effizienz simulieren und entsprechend optimieren. Verkehrsplaner haben so z.b. die Möglichkeit, schon während der Konzeptionierung auf Basis von verlässlichen Messdaten etwa über die Anzahl der notwendigen Spuren zu entscheiden. Wie auch schon bei der Grundform des Nagel-Schreckenberg-Modells gibt es auch hier ein bestimmtes Dichte-Optimum, bei dem der Durchsatz an Fahrzeugen am größten ist. Abbildung 22 zeigt dieses Optimum bei etwa 0,05 Fahrzeugen pro Zelle. Abbildung 22. Das aus der Simulation von Kreisverkehren resultierende Fundamentaldiagramm

104 100 S. Kern, B. Gleich Wie an diesem Beispiel klar ersichtlich ist, wird das Konzept der zellularen Automaten also auch außerhalb der Grundlagenforschung angewendet. Welche Perspektiven sich aus dieser Anwendung ergeben könnten, beschreibt der folgende Abschnitt Nationale Verkehrsleitsysteme? Da zellulare Automaten im Vergleich zu anderen Methoden eine hohe Effizienz aufweisen, lassen sich auch schon sehr umfangreiche Verkehrs-Systeme simulieren. So ist beispielsweise eine Simulation des gesamten Verkehrs der Schweiz auf Basis der hier beschriebenen Methoden im Einsatz [12]. Führt man diese Entwicklungen gedanklich fort, ist beispielsweise ein nationales oder internationales Verkehrsleitsystem realistisch, das auf Grundlage der aktuellen Position jedes Fahrzeugs eventuelle Staurisiken errechnet und ein Optimum über eine Reihe von verschiedenen Korrektions-Maßnahmen wie etwa Umleitungen kalkuliert. So könnte man einen optimalen Verkehrsfluss realisieren, der die Ressourcen der Verkehrswege optimal ausnutzt. Dabei muss bemerkt werden, dass dieses Ziel ganz besonders erst durch den Einsatz von zellularen Automaten realistisch wird, denn für ein funktionierendes Verkehrsleitsystem muss nicht nur die Dynamik eines Systems mit vielen Millionen Fahrzeugen errechnet werden, sondern es müssen in jedem Schritt auch diverse Alternativen simuliert werden, um eine möglichst optimale Lösung zu erhalten. Der dadurch entstehende immense Rechenaufwand ist momentan nur mit einer maximal einfachen Methode sinnvoll: Mit zellularen Automaten. 5 Zusammenfassende Bewertung Die letzten drei Kapitel haben eine ausführliche Einführung in das Gebiet der zellularen Automaten gegeben. Neben einer detailierten Theorie und verschiendenen Varianten der Klassifikation, wurden auch mehrere konkrete Anwendungsbeispiele vorgestellt. Dieser Abschnitt gibt eine abschließende Zusammenfassung zum Konzept der zellularen Automaten. 5.1 Einfaches Modell komplexes Ergebnis Ein gerade von Stephen Wolfram besonders hervorgehobenes Merkmal von zellularen Automaten liegt wie beschrieben darin, dass sie mit einfachsten Regeln auch sehr komplizierte Entwicklungen aufweisen können. In der Tat entfaltet diese Eigenschaft eine große Tragweite. Würde man das Universum als Ganzes so exakt wie möglich simulieren wollen, wäre der Simulator selbst mindestens so groß bzw. aufwendig wie das Universum selbst. Anders betrachtet muss eine Simulation also immer vereinfachen, weil die kleinste exakte Simulation im Wesentlichen so kompliziert wie das zu simulierende System ist. Nun hat aber gerade die Chaos-Forschung gezeigt, dass selbst kleinste Abweichungen oder Vernachlässigungen zu bedeutenden Veränderungen im Ergebnis führen können.

105 Zellulare Automaten 101 Eine große aus dem Studium von zellularen Automaten entstehende Erkenntnis liegt nun aber darin, dass für eine Reihe von komplexen Systemen gerade das Gegenteil gilt: Selbst eine äußerst weitgehende Vernachlässigung der Details erhält dennoch die Essenz des Ergebnisses. Zellulare Automaten sagen also aus, dass es in bestimmten Situationen erlaubt und sinnvoll ist, komplexe Systeme auf recht grobkörnige Zellen zu reduzieren und mit dieser viel einfacheren Zahlenbasis weiter zu rechnen. Nun lässt sich dieser allgemeine Gedanke leicht als Anlass zu optimistischen Höhenflügen nehmen. Nüchtern betrachtet kann man hier von einem Ansatz sprechen, der in einigen Bereichen bereits erstaunlich einfache Lösungen für komplexe Probleme geliefert hat. Es bleibt der künftigen Forschung vorbehalten, das Potential dieses Ansatzes voll auszutesten. Angesichts der oft kaum fassbaren Komplexität in der modernen Physik und der dazu notwendigen Mathematik ist solch ein Ansatz jedoch durchaus brauchbar. 5.2 Naturwissenschaft trifft Informatik Oft wird bei der computergestützten Simulation physikalischer Prozesse eine grundsätzliche Unvereinbarkeit übersehen: Auf allen menschlich fassbaren Skalen laufen die physikalischen Prozesse kontinuierlich ab, während in der Informatik ausschließlich diskrete Berechnungen möglich sind. Einer der zentralen Aspekte von zellularen Automaten, die Diskretheit, ist also auch der zentrale Aspekt schlechthin in der Simulation von physikalischen Prozessen. Das Studium von zellularen Automaten schafft also etwas mehr Klarheit in Bezug auf dieses oft ignorierte grundsätzliche Problem. Die genaue Analyse zeigt, dass sich das allgemeine Verhalten von diskreten Systemen bei makroskopischer Betrachtung nicht wesentlich von dem kontinuierlicher Systeme unterscheidet. Diese Beobachtung liefert genau genommen erst die Begründung dafür, dass physikalische Prozesse überhaupt mit digitaler Technik halbwegs brauchbar simuliert werden können. Wie einige Seitenblicke auf biologische Phänomene wie etwa die Fell-Pigmentierung zeigen, liegt in dem Konzept der zellularen Automaten vielleicht auch ein neues Erklärungsmodell für viele biologische Prozesse. Dieser Ansatz beruht jedoch momentan nur auf einigen Analogiebildungen und muss noch genauer wissenschaftlich analysiert werden, bevor weiter gehende Thesen aufgestellt werden können. 5.3 Eine neue Form der Wissenschaft? Stephen Wolfram betitelt sein Kompendium zu zellularen Automaten mit dem Titel A New Kind of Science. Offenbar deutet diese Namensgebung auf eine sehr euphorische Beurteilung des Konzepts der zellularen Automaten hin. Allerdings sind solch euphorische Anpreisungen eines neuen grundsätzlichen Gedankens mit Vorsicht zu genießen. Der von Thomas Kuhn eingeführte Begriff des Paradigmenwechsels wurde seit seiner Formulierung von viel mehr Autoren in Anspruch genommen als auch wirklich hervorgerufen. Gerade im Umfeld der

106 102 S. Kern, B. Gleich Theorie komplexer dynamischer Systeme wurden und werden viele grundsätzliche Fragen behandelt, deren konkreter Nutzen noch nicht ganz klar ist. Die zu ganzen Büchern Anlass gebende Beobachtung, dass das menschliche Gehirn genauso wie Börsenkurse und diese genauso wie fliegende Vogelschwärme gleichermaßen chaotisches Verhalten an den Tag legen, war in ihrer Auswirkung auf konkrete Forschungsprojekte hauptsächlich nur auf der begrifflichen Ebene relevant. Für zellulare Automaten gilt in einigen Bereichen Ähnliches: Das zugrunde liegende Konzept ist für theoretische Betrachtungen interessant und liefert einen guten Startpunkt für weitere Untersuchungen die Hauptarbeit der Forschung liegt jedoch in der konkreten Anwendung dieses recht abstrakten Konzeptes. Betrachtet man beispielsweise die Verkehrssimulation: Hier lässt sich eine erste Umsetzung mit Hilfe von zellularen Automaten in kürzester Zeit realisieren. Trotzdem ist die Forschung seit diesem 1992 erreichten Meilenstein nicht weniger anspruchsvoll geworden. Man kann in der Verwendung von Simulationen mit Hilfe von diskreten Berechnungen einen Paradigmenwechsel erkennen, aber dieses Konzept ist nicht erst das Resultat der Forschung zu zellularen Automaten, obwohl dieses Thema sicherlich wie geschildert den einen oder anderen wesentlichen Beitrag zu dieser Entwicklung geleistet hat. 5.4 Die Bedeutung von zellularen Automaten Zellulare Automaten sind also in jedem Fall ein theoretisch reizvolles Thema, um sich mit einigen grundsätzlichen Fragen an der Schnittstelle zwischen Physik und Informatik auseinander zu setzen. Sie liefern aber auch eine Reihe von Methoden, die jeder Informatiker, Physiker und Biologe wenn auch oft unbewusst bei der Implementierung von Simulationen nutzt. Diese Methoden genauer zu betrachten ist sicherlich keine reine Kürübung, sondern ein Erfordernis der wissenschaftlichen Genauigkeit. Ob zellulare Automaten allerdings einen fundamental neuen Weg zur formalen Beschreibung von natürlichen Systemen aufzeigen oder gar unser wissenschaftliches Denken und Arbeiten revolutionieren, bleibt abzuwarten. Wie weitgehend eine neue Idee die Welt (der Forschung) verändert, bestimmt nicht so sehr die Idee wie die Gemeinschaft der Forscher anhand der damit erzielten und erzielbaren Resultate. Euphorie ist also bei zellularen Automaten wie bei allen anderen wissenschaftlichen Fragestellungen eine Einstellung, die jeder nach Belieben einnehmen kann, die aber im wissenschaftlichen Diskurs eher fehl am Platz ist. Was unter Abzug der oft euphorischen Betrachtung bleibt: Ein für Grundlagenforschung und Theorie bedeutsames Modell, dass für die praktische Forschung zwar wesentliche und wertvolle Anfangsbedingungen liefert, aber deren Ergebnis (leider) nicht gänzlich vorwegnimmt.

107 Zellulare Automaten 103 Literatur [1] Camazine, Scott ; Franks, Nigel R. ; Sneyd, James ; Bonabeau, Eric ; Deneubourg, Jean-Louis ; Theraula, Guy: Self-Organization in Biological Systems. 1. Princeton, NJ, USA : Princeton University Press, ISBN [2] Campari, Enrico ; Levi, Giuseppe ; Maniezzo, Vittorio: Cellular Automata and Roundabout Traffic Simulation. In: Proceedings of the Sixth International Conference on Cellular Automata for Research and Industry (ACRI 2004), 2004 [3] Campari, Enrico G. ; Levi, Giuseppe ; Maniezzo, Vittorio: Cellular Automata and Roundabout Traffic Simulation. In: ACRI, 2004, S [4] Castro, Leandro N.: Fundamentals of Natural Computing. 1st edition. Chapman & Hall/CRC, Jun ISBN [5] Flake, Gary W.: The Computational Beauty of Nature. 1st edition. MIT Press, Mar ISBN [6] Ganguly, Niloy ; Sikdar, Biplab K. ; Deutsch, Andreas ; Canright, Geoffrey ; Chaudhuri, P. P.: A Survey on Cellular Automata / Centre for High Performance Computing, Dresden University of Technology Forschungsbericht. A Survey on Cellular Automata [7] Hensel, Al. Life patterns. Jan 2005 [8] J.-P. Allouche, G. S.: Notes on cellular automata / Institut für Dynamische Systeme, Universität Bremen Forschungsbericht. Notes on cellular automata [9] Merzenich, Wolfgang: Cellular spaces. In: Theoretical Medicine and Bioethics 1 (1980), Feb, Nr. 1, S [10] Nagel, K. ; Schreckenberg, M.: A cellular automaton model for freeway traffic. In: J. Phys. I France 2 (1992), S [11] Ostoma, Tom ; Trushyk, Mike: Cellular Automata Theory and Physics: A new Paradigm for the Unification of Physics. In: ArXiv Physics e-prints (1999), Jul [12] Raney, B. ; Cetin, N. ; Völlmy, A. ; Vrtic, M. ; Axhausen, K. ; Nagel, K.: An Agent-Based Microsimulation Model of Swiss Travel: First Results. In: Networks and Spatial Economics 3 (2003), S [13] Rendell, Paul: A Turing Machine In Conway s Game Life / Computing Science, University of Alberta Forschungsbericht. A Turing Machine In Conway s Game Life [14] Tempesti, Gianluca: A New Self-Reproducing Cellular Automaton Capable of Construction and Computation. In: European Conference on Artificial Life, 1995, S [15] Waterman, Michael S.: Some applications of information theory to cellular automata. In: Physica 10D. North-Holland, Amsterdam : Elsevier Science Publishers, 1984, S [16] Wojtowicz, Mirek. Mirek s Cellebration 1D and 2D Cellular Automata explorer. Feb 2005 [17] Wolfram, Stephen: Statistical mechanics of cellular automata. In: Theory and Application of Cellular Automata. World Scientific Publishing, July 1983, S [18] Wolfram, Stephen: Universality and complexity in cellular automata. In: Theory and Application of Cellular Automata. World Scientific Publishing, Jan 1984, S [19] Wolfram, Stephen: A New Kind of Science. 1st edition. Champaign, Ilinois, US, United States : Wolfram Media Inc., May ISBN

108 Neuronale Netze Sebastian Paulus, Sayf Al-Sefou Universität Augsburg Zusammenfassung Seit Jahrhunderten ist die Wissenschaft vom menschlichen Gehirn fasziniert; der Wunsch es genauer zu verstehen führte schließlich zur Entwicklung erster künstlicher neuronaler Netze, die im Aufbau unserem Gehirn ähneln. Mit Hilfe dieser lassen sich Lernvorgänge, wie sie unser Gehirn durchführt, abbilden bzw. simulieren und so besser verstehen. Jedoch gibt es mitlerweile auch andere, praxisorientiertere Anwendungen für neuronale Netze, z.b. in der Mustererkennung oder der Steuerung von Robotern. 1 Einleitung Die Idee künstliche neuronale Netze (KNN) nach dem Vorbild des menschlichen Gehirns zu entwickeln entstand schon in einer sehr frühen Phase der Informatik, nämlich in den 50er Jahren des letzten Jahrhunderts. Damals wie heute war man vom Aufbau und der Funktionsweise des Gehirns fasziniert und versuchte diese Struktur nachzubauen. Genau diese spezielle Struktur ist es, die es dem menschlichen Gehirn ermöglicht, Informationen sehr effizient zu verarbeiten. Zwar können Computer heutzutage vieles schneller und genauer erledigen als unser Gehirn, geht es jedoch um das Erkennen von Mustern (z.b. Gesichter) so schlägt unser Gehirn jeden noch so schnellen Computer. Die Struktur unseres Gehirns ist bereits bei der Geburt voll ausgebildet; wir sammeln von da an Erfahrungen, die unser Gehirn speichert und daraus lernt. Und genau diesen Aspekt, das Lernen und das spätere Anwenden des Gelernten auch auf andere Eingaben, versucht ein KNN nachzubilden. Wie unser Gehirn auch, benötigt ein künstliches neuronales Netz Eingaben um Lernen zu können. Diese Eingabe kann vieles sein, ein Muster zum Beispiel, oder allgemein eine Situation, die das neuronale Netz später wiedererkennen und lösen soll. Mathematisch ist die Eingabe, genau wie die Ausgabe, ein Vektor, der die jeweiligen Informationen enthält. In der Praxis sind künstliche neuronale Netze noch nicht sehr weit verbreitet. Da ihre Programmierung oft sehr aufwändig ist und der Lernvorgang eine Zeit lang dauert. Dennoch gibt es Bereiche in denen nicht auf diese Netze verzichtet werden kann. So sind sie ein unschätzbares Hilfsmittel für die Erforschung von Lernvorgängen unseres Gehirns. Auch in der Industrie werden sie schon eingesetzt, beispielsweise in der Robotersteuerung oder Mustererkennung. Um einen guten Einstieg und etwas Hintergrundwissen über das Vorbild künstlicher neuronaler Netze zu haben, beginnt diese Ausarbeitung mit einem kurzen Abriss über die Biologie unseres Gehirns. Dann folgt eine kleine Zeitreise

109 Neuronale Netze 105 durch die Geschichte der künstlichen neuronalen Netze. Bevor dann die einzelnen Lernverfahren und Netztypen näher erläutert werden, wird noch auf die Grundlagen von KNNs, sowie die zugrunde liegende Mathematik eingegangen. Zum Abschluss folgen noch zwei Anwendungsbeispiele und ein Bewertung der Möglichkeiten neuronaler Netze. 2 Grundlagen 2.1 Biologischer Hintergrund Wie zu Beginn der Einleitung bereits erwähnt, stammt die Idee für den Bau künstlicher neuronaler Netze direkt aus dem Wunsch, die Funktionsweise unseres Gehirns zu verstehen und nachzuvollziehen. Ohne zu weit in die Biologie einzusteigen, sollen hier kurz der Aufbau und die Bestandteile des wichtigsten Bausteins des Gehirns - der Nervenzelle - erläutert werden um später erkennen zu können, dass künstliches neuronale Netze wirklich Ähnlichkeit mit der Struktur unseres Gehirns haben und somit unter Umständen auch als Simulator dafür dienen können. Abbildung 1. Grobaufbau des menschlichen Gehirns Aufbau einer Nervenzelle Die Nervenzelle ist der Grundbaustein des menschlichen Gehirns und gleichzeitig das Vorbild für ein Neuron in einem künstlichen neuronalen Netz. Das menschliche Gehirn besteht aus etwa 2, dieser Zellen. Im Großen und Ganzen entspricht der Aufbau einer solchen Zelle, dem anderer Zelltypen. Was eine Nervenzelle von anderen Zellen abhebt sind ihre Verbindungsmöglichkeiten (siehe Abbildung 2); und genau diese machen unser

110 106 S. Paulus, S. Al-Sefou Gehirn so lern- und leistungsfähig. So besitzen Neugeborene zwar die meisten Nervenzellen, allerdings sind diese nur spärlich miteinander verbunden. Erst Umwelteinflüsse sorgen dafür, dass unser Gehirn lernt und neue Verbindungen anlegt. Diesen Vorgang will man mit Hilfe künstlicher neuronaler Netze simulieren. Abbildung 2. Schematischer Aufbau einer Nervenzelle Die einzelnen Bestandteile haben folgende Funktionen: Soma: Zellkörper des Neurons; beinhaltet den Zellkern (Nucleus) Axon: Verbindung zu anderen Neuronen; leitet neuroale Impulse weg von der Zelle, kann bis zu 2m lang sein. Dendriten: Dienen der Reizaufnahme.

111 Neuronale Netze 107 Synapse: Spalt zwischen dem Ende eines Axons und einer anderen Nervenzelle oder einem Muskel. Reize werden durch diesen Spalt chemisch übertragen. Dieser Aufbau ist grundsätzlich auch in künstlichen neuronalen Netzen zu finden; die entsprechnden Bausteine des künstlichen Netzes werden im Abschnitt eingeführt und erklärt. 2.2 Geschichtlicher Ablauf - von den Anfängen bis heute Die Geschichte der künstlichen neuronalen Netze unterteilt sich in vier Stadien. Erste Arbeiten wurden bereits in den vierziger Jahren des letzten Jahrhunderts veröffentlicht; damit blickt dieses Thema auf eine für die Informatik sehr lange Tradition zurück. Unterteilen kann man die Stadien wie folgt (vgl. [3]): Die Anfänge ( ) Die frühe Hochzeit ( ) Die ruhigen Jahre ( ) Die Renaissance (1985-heute) Diese lange Geschichte unterstreicht den Wunsch intelligente Automaten zu simulieren. Im Folgenden wird auf die einzelnen Zeitabschnitte genauer eingegangen und anhand einiger Arbeiten der Fortschritt in den verschiedenen Epochen aufgezeigt. Die Anfänge Schon 1939 beschrieben McCulloc und Pilis in ihrer Arbeit A logical calculus of the ideas immanent in nervous activity eine Struktur, die einem neuronalen Netz ähnelte. Der größten Fortschritt in dieser Zeit gelang allerdings Hebb. Er beschrieb in seinem Buch The Organization of Behaviour eine Trainingsstrategie für Neuronen. Diese wurde als Hebb sche Lernregel bekannt und wird im Kapitel über die Lernregeln genauer erklärt (vgl. Abschnitt 3.2). Die frühe Hochzeit In dieser Phase gab es gleich zwei Entwicklungen, die bis heute Anwendung finden: Das Perzeptron und das Adaline. Das Perzeptron war eine Entwicklung von Frank Rosenblatt zusammen mit seinen Mitarbeitern am MIT. Es gelang damals auch die entwickelte Lernarchitektur mittels Hardwarekomponenten zu implementieren; das enstandene System konnte einfacher Ziffern auf einer Pixelmatrix erkennen (Die Bilderkennung ist bis heute eine wichtige Anwendung neuronaler Netze). Eine ähnliche Entwicklung gelang Bernhard Widrow und Marcian E. Hoff; sie entwickelten das Adaline. Diese dem Perzeptron sehr ähnliche Netzsorte wurde damals ebenfalls erfolgreich für erste Anwendungen in der Mustererkennung eingesetzt. Die ruhigen Jahre Ende der 60er Jahre untersuchten Marvin Minsky und Seymour Papert das Perzeptron. Sie wiesen nach, dass es für eine ganze Reihe einfacher Probleme (z.b. das XOR-Problem) nicht geeignet ist. Dies führte -

112 108 S. Paulus, S. Al-Sefou aus heutiger Sicht fälschlicherweise - dazu, das Gebiet der neuronalen Netze insgesamt als wenig erfolgverprechend einzustufen: Ein herber Rückschlag für alle Forschungen auf diesem Gebiet, da vielfach Forschungsgelder gekürzt wurden. Dennoch führten einige Wissenschaftler ihre Forschungen fort und machten einige erwähnenswerte jedoch wenig beachtete Fortschritte. Besonders zu erwähnen sind hier Teuve Kohonen (nach ihm ist das sogenannte Kohonennetz benannt; vgl. 4) und Paul Werbos. Ersterer präsentierte 1972 einen speziellen linearen Assoziativspeicher (vgl. Correlation Matrix Memories ). Letzterer entwickelte 1974 einen Ansatz um ein zentrales Problem des Perzeptrons zu lösen. Diese Problem bestand darin, innere Netzknoten innerhalb mehrschichtiger Architekturen zu trainieren. Sein Verfahren, die Backpropagation (vgl. Abschnitt 3.2.3) wurde jedoch erst ein Jahrzehnt später anerkannt. Die Renaissance Für eine Trendwende im Bereich der künstlichen neuronalen Netze sorgte bereits 1982 John Hopfield mit seiner Arbeit über binäre Hopfield- Netz. Ebenfalls trugen Rumelhart, Hinton und Williams 1986 dazu bei, das Forschungsgebiet der neuronalen Netze wieder auferstehen zu lassen. Sie beschrieben, das schon 1974 von Weber veröffentlichte Verfahren detailliert und widerlegten so die von Minsky und Pappert formulierten Einschränkungen des Perzeptrons. Ihr Buch Parallel Distributed Processing [11] wurde zum Standardwerk und sorgte für eine große Popularität der künstlichen neuronalen Netze entwickelten Sejnowski und Rosenberg NETTALK. Diese erste allgemein bekannte Anwendung künstlicher neuronaler Netze benutzte das Verfahren der Backpropagation und konnte die Aussprache englischer Texte selbstständig erlernen. 2.3 Künstliche neuronale Netze Bevor auf die verschiedenen Arten künstlicher Neuronaler Netze eingegangen wird und die Lernregeln erläutert werden, folgt in diesem Kapitel eine Definition, sowie eine Einführung in die Mathematik der künstlichen neuronalen Netze. Definition Ein neuronales Netz besteht aus einer Menge von Neuronen N = {n 1,..., n m } und einer Menge von Kanten K = {k 1,..., k p }, mit K N N. Man unterteilt die Menge der Neuronen nochmals in Partitionen (Schichten) N(j). Jedes Neuron n i gehört also zu genau einer Schicht N(j) aus N. Eine Partition ist eine Menge von Neuronen, die auf der selben Ebene in einem neuronalen Netz liegen. (entnommen aus [3]) Eigenschaften Künstliche neuronale Netze arbeiten auf eine Weise, die auch in vielen anderen Bereichen von Experten angewandt wird. Sie lernen indem neue Probleme auf bekannte und bereits gelöste zurückgeführt werden. Übertragen auf neuronale Netze bedeutet das, es gibt eine Lernphase/Trainingsphase in der ausgewählte Trainingsbeispiele dafür sorgen, dass das neuronale Netz später

113 Neuronale Netze 109 korrekt funktioniert. Hier deutet sich schon eine der attraktivsten Eigenschaften eines neuronalen Netzes an: die Lernfähigkeit. Dies ist ein großer Vorteil gegenüber anderen Methoden, die Probleme haben nicht-lineare Zusammenhänge zu verstehen. Zwei weitere wichtige Eigenschaften sind die Robustheit und die Fehlertoleranz. Dadurch ist es neuronalen Netzen möglich den Ausfall einzelner Neuronen zu kompensieren oder trotz verrauschter Daten korrekte Ergebnisse zu liefern. Auch wenn die Performanz in der Lernphase relativ bescheiden ist (hoher Aufwand nötig), kann ein neuronales Netz in der Anwendung (z.b. bei Echtzeitanwendungen) durch eine sehr hohe Performanz überzeugen. Außerdem sind künstliche neuronale Netze in gewisser Weise intelligent, da sie durch geeignete Lernverfahren später eigene Entscheidungsregeln bilden, die über die antrainierten Regeln hinausgehen. Weitere vorteilhafte Eigenschaften finden sich im Bereich der Parallelverarbeitung und der verteilen Speicherung (hohe Ausfalltoleranz) Trainigs - und Ausbreitungsphase Wie im vorherigen Abschnitt bereits erwähnt unterscheidet man bei neuronalen Netzen zwei Phasen, die Trainingsund die Ausbreitungsphase. In der Trainingsphase lernt das neuronale Netz das vorgegebene Material. Dies geschieht nach einer vorher festgelegten Lernregel, die vorgibt wie das Netz verändert wird. Es gibt im Grunde zwei Arten des Lernens. Beim supervised learning wird der korrekte Output vorgegeben und das neuronale Netz optimiert nur die internen Verbindungen. Dagegen gibt es beim unsupervised learning keinerlei Vorgaben. Welche Lernart verwendet wird hängt von der jeweilig benutzen Lernregel ab. Die Ausbreitungsphase beginnt nach der abgeschlossenen Trainingsphase. Jetzt werden keine Modifikationen am Netz mehr vorgenommen, sondern es wird überprüft ob das Netz in der Trainingsphase etwas gelernt hat. Dies wird mit zwei verschiedenen Reizarten überprüft. Einerseits wird dem Netz ein Ausgangsreiz präsentiert, d.h. ein Reiz, den das neuronale Netz zuvor zum Lernen verwendet hat; hier muss es den richtigen Output liefern. Um zu überprüfen, ob das Netz auch über die gelernten Reize hinaus dazu fähig ist richtige Ergebnisse zu liefern werden ihm neue Reize präsentiert Aufbau eines künstlichen Neuronalen Netzes Der Aufbau eines künstlichen neuronalen Netzes ist eng an den Aufbau des menschlichen Gehirns angelehnt. Es besteht aus mehreren Neuronen (auch Units oder Knoten genannt), entsprechend den Nervenzellen unseres Gehirns, die durch Kanten untereinander verbunden sind. Man unterscheidet drei verschiedene Typen von Neuronen (siehe Abbildung 3): Input-Units: Empfangen Reize von außen und geben sie an andere Units innerhalb des Netzes weiter (in Abbildung 3 rot). Hidden-Units: Diese nicht sichtbaren Neuronen sind nur für die Reizweiterleitung und -verarbeitung zuständig; da sie innerhalb des Netzes liegen heißen sie hidden (in Abbildung 3 gelb).

114 110 S. Paulus, S. Al-Sefou Output-Units: Sind für die Ausgabe der berechneten Daten zuständig. Diese Daten müssen nicht vom gleichen Typ wie die von den Input-Units empfangenen Daten sein (in Abbildung 3 grün). Abbildung 3. Schema eines künstlichen neuronalen Netzes Zusätzlich gibt es noch die sogenannte Bias-Unit. Diese bekommt weder einen direkten noch einen indirekten Input; ihr einziger Zweck ist es andere Units erst aktiv werden zu lassen, wenn sie eine bestimmte Schwelle überschritten haben (negativer Bias) oder gar nicht in die Arbeit anderer Units einzugreifen. Abbildung 3 zeigt außer den Neuronen auch die Kanten. Die Stärke einer Verbindung zwischen zwei Neuronen wird durch Kantengewichte ausgedrückt. Ein größerer Absolutbetrag ist gleichbedeutend mit einem höheren Einfluss. Ist das Gewicht einer Kante w ij positiv, so üben die Neuronen einen anregenden Einfluss aufeinander aus. Das Gewicht Null bedeutet, dass die Neuronen derzeit keinen Einfluss aufeinander haben. Soll der Einfluss hemmender Natur sein, so muss das Kantengewicht negativ sein. Eine Gewichtsveränderung definiert man als Lernen. Ebenso können die Kanten auch als Datenspeicher in neuronalen Netzen dienen. In diesem Fall dienen die Kanten als Informationsspeicher und ihre Gewichte repräsentieren Daten. Man kann ein neuronales Netz auch als Abbildungsvorschrift verstehen; eine Menge von Eingaben, die in einem Eingabevektor kodiert werden, führt zu einer Menge von Ausgaben, die ebenfalls als Vektor aufgefasst werden. Ein- und Ausgabevektor müssen dabei nicht den gleichen Datentyp haben. Intern besteht ein neuronales Netz aus vielen Prozessoren, die jeweils nur einfache Berechnungen durchführen können. Gewichtete Kanten verbinden diese Prozessoren; und nur die Modifikation dieser Gewichte

115 Neuronale Netze 111 bringt das neuronale Netz dazu die richtige Ausgabe zur gegebenen Eingabe zu liefern. Abbildung 4. Neuronales Netz als Abbildungsvorschrift und Verbindugsstrukur einfacher Prozesse Darstellung künstlicher neuronaler Netze Um ein neuronales Netz auf dem Papier darzustellen gibt es zwei Möglichkeiten. Die eine bezieht sich nur auf die Gewichte eines neuronalen Netzes und bedient sich der Matrizendarstellung. Die andere Darstellung stellt komplette Netze als gerichteten Graph dar. Matrizendarstellung Will man ein neuronales Netz als Matrix darstellen, so werden in dieser Matrix die Kantengewichte abgebildet, da in diesen das Gelernte abgespeichert ist; daher nennt man eine solche Matrix auch Gewichtsmatrix. Diese Darstellung ist allerdings nur dann möglich, wenn das neuronale Netz keine Hidden-Schicht besitzt. Neuronale Netze mit einer oder mehreren Hidden- Schichten müssen entsprechend mit mehreren Matrizen dargestellt werden. Abbildung 5. Darstellung der Äquivalenz zwischen schematischer Illustration und Matrizenschreibweise bei neuronalen Netzen. Der jeweils erste Index der Gewichte bezieht sich auf die Output-Unit (1, 2 oder 3), der zweite Index gibt die entsprechende Input-Unit (1 bis 4) des neuronalen Netzes an. Darstellung als gerichteter Graph - Netztopologien Man kann neuronale Netze auch als endlichen Graphen verstehen. Dabei unterscheidet man verschiedene Topologien, die im folgenden kurz erläutert werden.

116 112 S. Paulus, S. Al-Sefou Feedforward-Netze Bei FF-Netzen unterscheidet man zwei Varianten: Man spricht genau dann von einem FF-Netz 1. Ordnung, wenn es nur gerichtete Verbindungen zwischen den Schichten N(i) und N(i + 1) gibt. Das Netz ist also schichtweise verbunden. Abbildung 6. FF-Netz 1. Ordnung Ein neuronales Netz heißt FF-Netz 2. Ordnung genau dann, wenn Neuronen einer Schicht N(i) nur gerichtete Verbindungen zu Neuronen aus höheren Schichten N(i + k) besitzen. Verbindungen, die eine Schicht überspringen, also nicht von N(i) nach N(i + 1) verlaufen, heißen shortcut connections. Abbildung 7. FF-Netz 2. Ordnung Feedback-Netze Rückkopplungsnetze besitzen Verbindungen von Neuronen einer Schicht zu Neuronen einer niedrigeren Schicht oder auch zu Neuronen der gleichen Schicht. Im speziellsten Fall kann das auch heißen, dass ein Neuron mit sich selbst verbunden ist. Diese Art der Rückkopplung kann sehr nützlich sein, wenn zeitlicher Abläufe exakt dargestellt werden müssen. Ein Feedback-Netz besitzt direkte Rückkopplungen, wenn ein Neuron n j seine Ausgabe direkt wieder als Eingabe erhält und diese somit in die nächste Berechnung seines Aktivierungszustandes einfließen lässt (vgl. Abbildung 8).

117 Neuronale Netze 113 Abbildung 8. Direkte Rückkopplung Besitzt ein neuronales Netz Verbindungen von Schichten N(j) zu Schichten N(i), mit i j, und gibt es gleichzeitig gerichtete Verbindungen von Neuronen der Schicht N(i) zu Neuronen der Schicht N(i + k), so spricht man von einem Feedback Netz mit indirekter Rückkopplung. Diese Konstruktion dient häufig dazu, die Eingabe bestimmter Neuronen als besonders wichtig hervorzuheben (vgl. Abbildung 9). Abbildung 9. Indirekte Rückkopplung Gibt es in einem neuronalen Netz Verbindungen zwischen Neuronen einer Schicht, so spricht man von einem Netz mit Lateralverbindungen (siehe Abbildung 10). Diese Technik wird beispielsweise in Kohonen-Netzen verwendet (vgl. Abschnitt 4.4). Abbildung 10. Neuronales Netz mit Lateralverbindungen

118 114 S. Paulus, S. Al-Sefou Existiert in einem Netz von jedem Neuron n i eine gerichtet Verbindung zu jedem anderen Neuron n j (i j), so spricht man von einem vollständig vermaschten Netz (siehe Abbildung 11). Diese Topologievariante wird zum Beispiel in den sogenannten Hopfield-Netzen verwendet. Abbildung 11. Vollständig vermaschtes Netz Mathematische Grundlagen In diesem Kapitel wird die Mathematik hinter den künstlichen neuronalen Netzen erläutert, ohne die das Konstrukt des neuronalen Netzes nur eine leere Hülle wäre. Im einem vorhergehenden Abschnitt wurde erklärt, dass die Kantengewichte ausschlaggebend für den Output eines neuronalen Netzes sind, in diesem Abschnitt wird nun auch erklärt wie sich die Kantengewichte berechnen und wie es in einem künstlichen Neuron aussieht (Es besitzt zwar keinen Zellkern, dafür jede Menge mathematische Funktionen). Ein Neuron in einem künstlichen neuronalen Netz besteht genauer betrachtet aus vier Bestandteilen: 1. Der Aktivierungszustand (activiation state) definiert den aktuellen Zustand des Neurons. 2. Die Propagierungsfunktion (propagation function) beschreibt das Verhalten eines Neurons im Hinblick auf seine Informationsverarbeitung. 3. Die Aktivierungsfunktion (activation function) legt fest, wie ein Aktivierungszustand zum Zeitpunkt t in einen Aktivierungszustand zum Zeitpunkt t + 1 überführt wird. 4. Die Ausgabefunktion (output function) legt den Ausgabewert eines Neurons fest. Diese vier Bestandteile beschreiben ein Neuron vollständig. Die folgende Abbildung stellt den gerade beschriebenen Aufbau übersichtlich dar. Wie in Abbildung 12 zu sehen, steht das Neuron n j mit seinen Vorgängern n 1,..., n k in Verbindung. Diese Kanten haben die Gewichte w 1j, w 2j,..., w nj.

119 Neuronale Netze 115 Abbildung 12. Aufbau eines Neurons Die Ausgabe von n j wird durch die Funktionen, die innerhalb des Neurons ausgeführt werden, generiert und an andere Neuronen weitergegeben. Für diese Berechnungen im Inneren eines Neurons gibt es verschiedene Möglichkeiten die im Folgenden erklärt werden. Die Propagierungsfunktion Die Propagierungsfunktion, oft auch Eingabefunktion genannt, NET j eines Neurons n j gibt an, auf welche Weise die Eingabe zunächst verarbeitet wird. Diese Eingabe kann ein Input von außen sein, oder von einem anderen Neuron kommen. Im zweiten Fall ist der Input das Gewicht der Kanten zwischen dem empfangenden Neuron und allen mit ihm verbundenen sendenden Neuronen. o i ist die Ausgabe der n j vorgeschalteten Neuronen. Gebräuchliche Funktionen sind z.b. Summation der gewichteten Eingabe: NET j = Maximalwert der gewichteten Eingabe: k w ij o i (1) i=1 NET j = max(w ij o i ) (2)

120 116 S. Paulus, S. Al-Sefou Produkt der gewichteten Eingabe: NET j = Minimalwert der gewichteten Eingabe: k w ij o i (3) i=1 NET j = min(w ij o i ) (4) Die am häufigsten verwendetet Funktion ist (1), da hier alle vorherigen Ergebnisse mit einfließen und die Funtktion relativ einfach ist. Aktivierungsfunktion und -zustand Um berechnen zu können, wie sich der Aktivierungszustand a j (t) eines Neurons n j vom Zeitpunkt t zum Zeitpunkt t + 1 ändert, benutzt man die Aktivierungsfunktion f act. Die allgemeine Funktion lautet: a j (t + 1) = f act (a j (t), NET j ) (5) Man kann hier erkennen, dass in der allgemeinen Funktion (5) auch noch der alte Aktivierungszustand a j (t) berücksichtigt wird. Diese Modellierungsoption wird in der Praxis nicht eingesetzt. Davon abgesehen gibt es nur eine überschaubare Anzahl an Funktionen, die in der Praxis als Aktivierungsfunktionen eingesetzt werden. Welche dieser Funktionsklassen gewählt wird, hängt sowohl vom benutzten Netztyp als auch vom gegebenen Problem ab. Im Folgenden wird auf diese drei praxisrelevanten Funktionsklassen näher eingegangen. Lineare Funktionen Eine einfache und deshalb oft gewählte Aktivierungsfunktion ist die lineare Aktivierungsfunktion. Diese ist aufgrund der einfachen und schnellen Implementierung so beliebt. Sie findet vor allem dann Anwendung, wenn das Netz keine Hidden-Units besitzt und die Beziehung zwischen Ein- und Ausgabedaten hinreichend genau linear approximiert werden kann. Beispiele für lineare Aktivierungsfunktionen sind die Identitätsfunktion (vgl. Abbildung 13) oder auch abschnittsweise lineare Funktionen. o j = NET j (6) Eine Verwendung linearer Aktivierungsfunktionen ist allerdings laut Zell [2] nicht sinnvoll, da man jedes mehrschichtige Netz in ein einstufiges überführen kann. Er führt den Beweis am Beispiel eines zweistufigen Netzes (eine Eingabeschicht, eine versteckte Schicht, eine Ausgabeschicht), das in ein einstufiges Netz überführt wird. Analoges gilt auch für Netze mit mehr als einer versteckten Schicht.

121 Neuronale Netze 117 Abbildung 13. Lineare Aktivierungsfunktion Schwellwertfunktionen Eine ebenfalls sehr einfache Funktion ist die sogenannte Schwellwertfunktion. Diese Funktion besitzt eine Schwelle Θ j, die von der Eingabe erreicht oder überschritten werden muss, damit die Funktion aktiv wird. Sie wird vor allem in klassischen Netzen (z.b. Perzeptron) verwendet. { 1 falls NET j Θ j o j = (7) 0 sonst Diese leicht implementierbare Funktionsklasse ist sehr effizient auswertbar, da sie jedoch an ihrer Sprungstelle nicht differenzierbar ist, eignet sie sich nicht für neuere Netzwerksorten, die häufig mit der ersten Ableitung der Aktivierungsfunktion arbeiten (vgl. Backpropagation in Abschnitt 3.2.3). Abbildung 14. Schwellwertfunktion Sigmoide Funktionen Die für die meisten neueren Netzwerksorten gewählte Funktionenklasse ist die Klasse der sigmoiden Funktionen (S-förmige Funktionen). Diese Klasse bietet zwei wesentliche Vorteile gegenüber den anderen: Sie begrenzt das Aktivitätslevel nicht nur nach unten (wie lineare Funktionen) sondern auch nach oben. Dies verhindert, dass die Aktivität des Netzes ungewollt zu hoch wird und dadurch Fehler produziert werden.

122 118 S. Paulus, S. Al-Sefou Sie ist im Gegensatz zur Schwellwertfunktion differenzierbar; dies ist, wie bereits erwähnt, vor allem für neuere Netzwerksorten von Bedeutung, die mit der ersten Ableitung der Aktivierungsfunktion arbeiten. Eine mögliche sigmoide Aktivierungsfunktion ist beispielsweise der Tanges hyperbolicus: f tanh (x) = ex e x e x + e x (8) Der Wertebereich des Tangens hyperbolicus ist das offene Intervall ] 1; 1[; seine Ableitung lautet: f tanh(x) = 1 tanh 2 (x) (9) Abbildung 15. Sigmoide Aktivierungsfunktion Ausgabefunktion Die Ausgabefunktion bildet den aktuellen Zustand eines Neurons auf den gewünschten Wertebereich ab. Diese Funktion wird häufig als ein Teil der Aktivierungsfunktion verstanden und daher oft nicht extra aufgeführt. Der Vollständigkeit halber sei sie an dieser Stelle allerdings erwähnt und formal als f out definiert. Benutzt werden muss sie allerdings bei Netzen mit mehreren Aktivierungsfunktionen, die unterschiedliche Werte- und Definitionsbereiche haben. Sie lautet formal: o j (t + 1) = f out (a j (t + 1)) = f out (f act (a i (t), NET i )) (10) Die am häufigsten verwendete Ausgabefunktion ist die Indentitätsfunktion. 3 Lernverfahren und Lernregeln 3.1 Lernverfahren In disem Abschnitt werden zunächst die drei grundlegenden Lernverfahren erläutert, bevor im nächsten Kapitel die wichtigen Lernregeln beschrieben werden. Unter dem Begriff Lernen versteht man eine dauerhafte Änderung des Verhalten, die durch Übung erfolgt [5]. Einfach ausgedrückt bedeutet Lernen ausprobieren und anschließende etwaige Fehler korrigieren (Trial and Error); dieser Lernprozess kann in neuronalen Netzen auf drei Arten erfolgen: überwacht, unüberwacht und verstärkt.

123 Neuronale Netze Überwachtes Lernen (Supervised Learning) Überwachtes Lernen findet, wie der Name schon sagt unter Überwachung statt, d.h. es gibt einen Lehrer (Lernalgorithmus) der darauf achtet, dass das Richtige erlernt wird. Es wird ein vordefiniertes Modell mit einer Menge von variablen Parametern (Gewichte des Netz) angenommen; dann wird ein Lernalgorithmus verwendet um diese Parameter zu verändern, so dass die gewünschte Ergebnisse möglichst nahe approximiert werden(vgl. Abschnitt 3.2.2). Dazu wird eine Fehlerrate eingeführt, die minimiert werden soll. Der Lernenvorgang an sich erfolgt nun über einen Vergleich zwischen erwünschten und tatsächlichen Ausgabewerten. Um die Differenz zwischen erwünschtem und tatsächlichem Ausgabewert, also den Fehler, so gering wie möglich zu halten, werden nun die Gewichte modifiziert. Nach der Trainingsphase sollte das Netz die Fähigkeit haben, zu einer unbekannten Eingabe, die ähnlich zu den gelernten Beispielen ist, eine richtige Ausgabe liefern Unüberwachten Lernen (Unsupervised Learning) Im Gegensatz zum überwachten Lernen gibt es die Methode des unüberwachten Lernen. Hierbei gibt es kein vordefiniertes Modell sondern nur Eingabedaten; man versucht das neuronale Netz ohne Lehrer zu trainieren. Dies wird erreicht, indem man Clustering-Algorithmen auf die Eingabedaten anwendet. In diesen Algorithmen versucht man Regeln und Gesetzmäßigkeiten in den Eingabedaten zu finden um diese zu analysieren und auszuwerten. Dazu verwendet man oft Ähnlichkeitsoder Distanzfunktionen; mehr über Clustering-Algorithmen findet sich bei [6]. Die Aufgabe des Netzes beim unüberwachten Lernen ist also das Finden und Bilden von Klassen aufgrund der in den Eingabedaten vorhandenen Gesetzmäßigkeiten (vgl. Abschnitt ) Verstärkendes Lernen (Reinforcement learning) Bei dieser Lernart wird versucht, aus eine Reihe von Aktionen (Strategien) zu lernen, die erfolgreich ein gestelltes Ziel erreichen. Damit muss das System sowohl fähig sein auszuwerten, ob eine Strategie gut oder schlecht ist, als auch gute Strategien generieren zu können. Diese wird erreicht, indem man das neuronale Netz als Entscheidungsagent verwendet, der die Umgebung beeinflusst und die Ergebnisse seiner Aktionen analysiert. Erreicht wird dies über eine Funktion, die einer Belohnung entspricht. Mathematisch gesehen befindet sich die Umwelt zu jeden Zeitpunkt t in einem Zustand z t Z und der Agent wählt eine Aktion a t A(z t ) aus. Daraufhin geht die Welt in den Zustand z t+1 über und der Agent erthält eine Belohnung b t B. Das Ziel ist es, die Gesamtbelohnung zu maximieren [7]. k=0 B t = δ k b t+k+1 (11) Hierbei ist δ der discout-faktor und liegt zwischen 0 und 1. N

124 120 S. Paulus, S. Al-Sefou 3.2 Lernregeln Das Lernen in neuronalen Netzen erfolgt in erster Line durch Verändern der Verbindungen/Kanten, bzw. der mit ihnen assoziierten Gewichte. Die Umsetzung erfolgt durch verschiedene Arten von Lernregel. Es kann allerdings keine Aussage getroffen werden, welche Lernregel die Beste ist; man kann höchstens feststellen, welche Lernregel sich für eine bestimmte Anwendung am besten eignet. In diesem Abschnitt werden vier Lernregeln vorgestellt, die in Abschnitt 4 auch in verschiedensten Netztypen benutzt werden Die Hebb sche Lernregel Die Hebb sche Lernregel ist eine der einfachsten und ältesten Lernregeln zur Gewichtsanpassung in neuronalen Netzen, die vom Psychologen Donald Oldnug Hebb entwickelt wurde. Diese Lernregel besagt, dass das Gewicht zwischen zwei Neuronen verändert wird, wenn beide Neuronen gleichzeitig aktiv sind [4]. Diese Lernregel ist nur auf einstufige Netze anwendbar und wird als Basis für viele andere Lernregeln benutzt, wie zum Beispiel die Delta-Regel und die Backpropagation (vgl. Abschnitt und 3.2.3). Die einfachste Form der Hebb-Regel ist folgende: w ij = k a i o j (12) Hier ist k die Lernrate, die vor der Trainingphase festgelegt wird und angibt wie stark die Gewichtsänderung pro Lerndurchgang ausfallen soll. Die günstigste Lernrate liegt zwischen 0 und 1. Ist k = 0 so wird nichts gelernt; ist k = 1 so werden die Gewichte, die schon gelernte Muster assoziieren konnten, sehr wahrscheinlich zerstört, da sich das Netzwerk neue Muster merkt und so die Alten teilweise zerstört werden. Die Veränderung des Gewichtes der Kante w ij von Neuron i zu Neuron j ergibt sich aus folgenden Werten: 1. Einem vorher festgelegten Lernfaktor k. 2. Der Aktivierungsfunktion des Neurons n i. 3. Der Ausgabe des Neurons n j Delta-Regel Diese Lernregel, auch als Widrow-Hoff-Regel bekannt wurde von der Hebb schen Lernregel abgeleitet. Sie basiert auf einem Vergleich zwischen der erwünschten und tatsächlichen Ausgabe eines Neurons. Sind erwünschte und tatsächliche Ausgabe gleich, so geschieht nichts. Ist die erwünschte Ausgabe größer als die tatsächliche Ausgabe, so wird die tatsächliche erhöht. Dazu werden alle Verbindungen bzw. die mit ihnen assoziierten Gewichte, bei denen die Eingabe negativ war, verstärkt und positive Eingaben abgeschwächt. Ist die erwünschte Ausgabe zu niedrig werden die gegenteiligen Modifikationen durchgeführt. Allgemein bedeutet dies, die Gewichtsänderung erfolgt proportional zur Differenz der aktuellen Ausgabe eines Neurons zu seiner erwünschten Ausgabe [8]. Formal erhalten wir somit: w ij = k (o i t i ) o j (13) w ij = k δ i o j (14)

125 Neuronale Netze 121 Wobei w ij die Änderung des Gewichtes von Neuron j zu Neuron i ist; K ist die Lernrate (vgl. Hebb sche Lernregel), o i der gewünschte Output der Neuronen i und t i der tatsächliche Output der Neuronen i, o i der Output der Neuron j und δ i das Fehlersignal des Neurons i. Es ist deutlich zu sehen, dass es sich um eine Ableitung der Hebbeschen Regel handelt, da die Eingabe durch die Differenz der Ausgabe erzeugt wurde. Somit muss der quadratische Fehler, ein häufige genutztes Fehlermaß, für die aktuelle Eingabe minimiert werden. Der Gradient der Fehlerfunktion kann mit Hilfe der Kettenregel in Abhängigkeit von Ausgabe- und Aktivierungsfunktion bestimmt werden. Die genaue mathematische Ableitung der Delta-Regel findet man unter [9]. Diese Lernregel ist nur für einstufige Netze definiert und die Ausgabefunktion der Neuronen ist auf eine lineare Funktion beschränkt. Eine für mehrere Schichten geeignete Variante ist die sogenannte Backpropagation, die im nächsten Abschnitt erklärt wird Backpropagation ist ein Verfahren zur Gewichtsanpassung überwachter, mehrschichtiger neuronaler Netze. Es wurde das erste Mal 1974 durch Pauel formuliert. Bekannt wurde es jedoch erst durch die Arbeit von David 1986 und führte dadurch zu einem Fortschritt auf dem Gebiet der künstlichen neuronalen Netze [10]. Man kann diese Lernregel als eine Verallgemeinerung der Delta-Regel betrachten, die eine Berechnung der Fehlersignale für Hidden-Units definiert. Diese Fehler kann man analog zur Delta-Regel berechnen, indem man einen Vergleich zwischen der vom Netz berechneten (tatsächlichen) und der erwünschten Ausgabe vornimmt. Mit Hilfe dieses berechneten Fehlers werden die Parameter des Netzes (Gewichte) angepasst, um so die Leistung des Netzes zu verbessern (je größer der Fehler, desto stärker müssen die Gewichte verändert werden). Da die Gewichte zu Beginn der Trainingsphase auf kleine, zufällige Werte festgelegt werden, ist es unwahrscheinlich, dass das Netze gleich zu Beginn die richtige Ausgabe liefert. Daher wird der Fehler Schicht für Schicht in Richtung Eingabeschicht weitergereicht, wobei jeweils Korrekturen an der entsprechenden Schicht vorgenommen werden [4]. Das Lernverfahren erfolgt in folgenden Schritten: 1. Zuerst wird das angelegte Muster in Richtung Output propagiert, um dort die Reaktion des Netzes auf das präsentierte Muster zu generieren. Die Ausbreitung der Aktivierung durch das Netz erfolgt schichtweise von links nach rechts. 2. In der zweiten Phase erfolgt die Gewichtsänderung, abhängig vom Grad der Falschheit der Netzantwort. Wiederum erfolgt die Ausbreitung der Fehlersignale schichtweise, diesmal aber von rechts nach links. 3. Wurde der Fehler bis zum letzten Hidden-Layer und Eingabe-Layer zurückgesendet und wurden dabei alle Gewichtsänderungen vorgenommen, dann kann wieder ein neues Muster angelegt und vorwärts propagiert werden. 4. Man wiederholt diese Lernprozedur bis der Fehler schrittweise verringert wurde und entsprechend klein geworden ist. Der Lernprozess wird dann als beendet angesehen.

126 122 S. Paulus, S. Al-Sefou Für die Mathematische Ableitung der Backpropagation sei auf Rumelhart und Hinton(1986) verwiesen [11]. Die Gewichtsänderungen lassen sich wie folgt zusammenfassen: w ij = k δ i o j Gewichtssänderung (15) δ i = f (NET i ) (t i o i ) Fehlersignal für Output-Unit i (16) δ i = f (NET i ) (δ k w ki ) Fehlersignal für Hidden-Unit i (17) Hier ist ij die Gewichtsänderung der Kante von Neuron j zu Neuron i; k ist die Lernrate, o i der Ausgabewert des Neurons i. t i ist die i-te Komponente des Sollmusters(target wert), f die erste Ableitung der Aktivierungsfunktion und Net i der Nettoeingabe des Neurons i. Das Fehlersignal wird für Hidden- und Output-Unit, wie in Formel (16) und (17), unterschiedlich berechnet. Formel (15) für die Gewichtsänderung ist der Delta-Regel sehr ähnlich, der Unterschied liegt lediglich in der Berechnung der Fehlersignale. Falls Formel (15) für die Berechnung der Fehlersignale des Ausgabe-Layers zustädig ist, dann sieht diese Formel genauso aus, wie die Formel der Delta-Regel Competitive Learning (Wettbewerbslernen) Bisher haben wir keine Beispiele für neuronale Netze vorgestellt, die für Klassifikationsprobleme geeignet sind und somit ein unüberwachtes Lernverfahren verwenden. Wir wollen diese Klassikaktionsaufgabe etwas modifizieren, dazu müssen für einen vorgegebenen Satz von Eingabedaten zwei Aufgaben gelöst werden. 1. Das Auffinden geeigneter Klassen inklusive typischer Repräsentanten. 2. die Zuordnung der Daten zu den Klassen. Diese Fragestellungen werden im Rahmen der Clusteranalyse behandelt mehr dazu in [6]. Wir wollen uns hier auf Ansätze für die Clusteranalyse auf der Basis neuronaler Netze beschränken. Typischerweise werden für diese Aufgabe neuronal Netze mit zwei Schichten verwendet (vgl. Abbildung 16). Die untere Schicht wird als Eingabeschicht bezeichnet und die Anzahl ihrer Neuronen entspricht der Anzahl der Komponenten der zu untersuchenden Daten. Die Aufgabe dieser Schicht ist es, die Werte eines Eingabemusters an die zweite Neuronenschicht weiterzuleiten. Die zweite Schicht wird als Wettbewerbsschicht bezeichnet; die Anzahl ihrere Neuronen entspricht der Anzahl an Klassen, in die die Eingabedaten eingeteilt werden. Jedes Neuron dient zur Repräsentation einer Klasse. Die Kanten, die die Neuronen der Eingabeschicht mit diesem Neuron verbinden, legen fest, welche Klasse einen bestimmten Neuron zugeordnet wird [12]. Wird einem solchen neuronalen Netz ein Muster in der Eingabeschicht präsentiert, dann wird zwischen der Gewichtsinformation eines Neuron der zweiten Schicht und des Eingabemusters verglichen. Dafür betrachten wir zwei Vektoren: Den Eingabevektor v i als einen n-dimensionalen Vektor; dabei ist die i-te Komponente dieses Vektors die Eingabe für das i-te Neuron.

127 Neuronale Netze 123 Abbildung 16. Netzarchitektur für Competitive Learning. Den Gewichtesvektor w (u), der von der Eingabeschicht zu einem Neuron u der Wettbewerbsschicht führt. Wobei W i(u) = W (vi, u)) gilt. W (v i, u) ist das Gewicht vom Eingabe-Neuron v i zum Neuron u. Die Übereinstimmung zwischen Eingabevektor i und Gewichtsvektor w (u) bestimmen wir durch ihr Skalarprodukt: i w (u) = j i j w (u) j (18) Das Neuron, das die größte Übereinstimmung seiner Gewichtinformation mit dem Eingabemuster feststellt, erhält die Aktivität 1, allen anderen Neuronen der zweiten Schicht wird die Aktivität 0 zugeordnet. Falls nicht eindeutig bestimmt werden kann, welches Neuron die größte Übereinstimmung aufweist, dann soll zufällig eines der Neuronen mit maximaler Übereinstimmung ausgewählt werden. Das Neuron, das die Aktivität 1 erhält, wird als Siegerneuron bezeichnet [12]. Nachdem wir beschrieben haben, wie Eingabemuster verarbeitet werden und das Siegerneuron berechnet wird, werden als letzter Schritt die Gewichte aller Kanten, die zum Siegerneuron führen, verändert; alle anderen Gewichte werden nicht verändert (The-Winner-Takes-It-All-Prinzip). Die Gewichte werden so angepasst, dass sie der Eingabe ähnlicher gemacht werden (a j w ij ). Dies lässt sich als Formel darstellen: k ist hier ein zuvor festgelegter Lernparameter [4]. w ij = k(a j w ij ) (19) 4 Netztypen Künstliche neuronale Netze lassen sich nach unterschiedlichen Aspekten klassifizieren. Die Aspekte der Klassifizierung basieren auf den verschiedene Netztopologien (mehrstufige oder einstufige), den Verbindungsarten (Feedforward oder Feedback) und den Lernregeln (Backpropagation, Hebb sche Regel usw.). In diesem Abschnitt werden wir die Funktionsweise von vier Netztypen kennen lernen.

128 124 S. Paulus, S. Al-Sefou 4.1 Pattern Associator Dies ist der einfachste Netztyp, der aus verfügbaren Informationsmengen Muster erkennt, die er zuvor gelernt hat. Dabei lernt das neuronale Netz Assoziationen zwischen verschiedenen Reizpaaren zu bilden. Das Netz besteht nur aus einer Eingabe- und einer Ausgabeschicht. Damit enthält es keinerlei Hidden-Units (siehe Abbildung 17). Abbildung 17. Netzarchitektur für Pattern Associator Um eine bestimmte Stimulation zu erkennen und mit bestimmten Reaktion zu verbinden ändert sich in der Trainingsphase die Verbindungsstärke zwischen den Neuronen um beide Seiten korrekt abzubilden. Dazu verwendet man entweder die Hebb sche oder die Delta-Regel (vgl. Abschnitt 3.2). Die wichtigsten Eigenschaften des Pattern Associators [4] sind: 1. Der Pattern Associator bildet bei mehreren gelernten Eingabemustern einen Prototyp verschiedener Mustern aus. 2. Der Pattern Associator kann Muster auch bei unvollständigem oder fehlerhaftem Input identifizieren. 3. Der Pattern Associator kann, obwohl einzelne Neuronen abgestorben sind, die richtige Ausgabe produzieren. 4. Bei Der Pattern Associator kann ähnlichen Reize mit ein und derselben Reaktion verbinden. 4.2 Rekurrente Netze Rekurrente Netze sind ein Netztyp, bei dem Rückkopplungen von Neuronen einer Schicht zu anderen Neuronen derselben oder einer vorgegebenen Schicht existieren [13]. Sie lassen sich nach der Rückkopplungsverbindung in verschiedene im Folgenden beschriebene Arten unterteilen [14]: 1. Direkte Rückkopplung (direct feedback): Bei dieser Art ist die Ausgabe eines Neurones einer Schicht gleichzeitig wieder die Eingabe dieses Neurons. 2. Indirekte Rückkopplung (indirect feedback): Hier existieren Verbindungen vom Neuronen einer Schicht zu anderen Neuronen der vorgegebenen Schicht.

129 Neuronale Netze 125 Abbildung 18. Direkten Rückkopplungen [4] Abbildung 19. Indirekten Rückkopplungen [4] 3. Seitliche Rückkopplung (lateral feedback): Hier erfolgt die Rückmeldung der Informationen eines Neurons an Neuronen, die sich in derselben Schicht befinden. Abbildung 20. Seitlichen Rückkopplungen [4] 4. Vollständigen Verbindungen: Diese Netze besitzen Verbindungen zwischen alle Neuronen. Rekurrente Netze ermöglichen es Vorhersagen über die Zukunft zu machen oder menschliche Verhaltensweisen zu simulieren. Damit eignen sie sich als grundlegende Technik zur Realisierung von verschiedensten Anwendungen. Im folgenden Abschnitt werden Simple Recurrent Networks als indirekt rekurrente Netze vorgestellt. Einfaches rekurrentes Netz Das Simple Recurrent Network ist, wie der Name schon sagt, ein einfaches neuronales Netz, das durch vorhandene Rückkopplungen zwischen den Neuronen in der Lage ist zeitliche Abhängigkeiten von Eingaben implizit zu verarbeiten. Dies wird durch ihre Kontext-Einheiten(Neuronen) erreicht, die auf der gleicher Ebene wie die Eingabe-Schicht liegen und von den Hidden-Units Informationen erhalten. Diese Informationen werden dort verarbeitet und dann an die Hidden-Units der betreffenden Schicht um einen Schritt verzögert zurückgesendet [14] (siehe Abbildung 22). Die Anzahl der Kontext-Einheiten ist genauso groß wie die Anzahl der Einheiten der Hidden-Schicht, mit welcher die Kontext-Einheiten verbunden sind. Ferner erhält jede Kontext-Einheit nur von genau einer Hidden-Unit Informationen. Zudem werden sämtliche Gewichte von den Hidden-Units zu den Kontext- Einheiten permanent auf +1 fixiert. Dadurch erhalten die Kontext-Einheiten in jedem Durchlauf eine exakte Kopie der Aktivität der Hidden-Units, mit denen sie

130 126 S. Paulus, S. Al-Sefou Abbildung 21. Vollständigen Verbindungen. [4] Abbildung 22. Netzarchitektur für Simple Recurrent Network. [4] verknüpft sind. Die Gewichte dieser Verbindungen von den Kontext-Einheiten zurück zu den Units der Hidden-Schicht werden nicht fixiert, sondern können während der Lernphase wie alle anderen Gewichte des Netzes auch mit Hilfe des Backpropagation-Verfahrens angepasst werden [4]. Durch die Kontext-Einheiten besitzt ein Simple Recurrent Network Teilinformationen aus sämtlichen vorangegangen Zeitpunkten bzw. Durchgängen (t). Dies liegt daran, weil in einem beliebigen Durchgang die Kontext-Units eine Kopie der Aktivität der Hidden-Units aus dem vorangegangenen Durchgang (t 1) besitzen. Zu diesem vorangegangen Zeitpunkt (t 1) haben die Kontext-Units aber wiederum eine Kopie des vorangegangen Zeitpunktes (t 2) besessen und den Hidden-Units in modifizierter Form zur Verfügung gestellt usw. (t 3, t 4 usw. bis zum ersten Durchgang). Dadurch enthalten die Kontext-Units indirekt Teilinformationen über alle vorangegangen Zeitpunkte [14]. Kontext-Einheiten mit den dazugehörigen modifizierbaren Gewichten kann man auch als dynamisches Gedächtnis des neuronalen Netzes betrachten. Identischer Input im Netz wird durch die Existenz der Kontext-Units kontextabhängig modifiziert (daher der Name). Ein Anwendungsgebiet von rekurrenten Netzen sind die Attraktorennetze. Dabei erhält das Netz einen Input und arbeitet dann in Zyklen weiter, bis ein stabiler (Output-)Zustand erreicht worden ist.

131 Neuronale Netze Kompetitive Netze Dies sind neuronale Netze, die aus zwei Schichten (Eingabe- und Ausgabe- Schicht) bestehen. Kompetitive Netze basieren in der Lernphase auf der kompetitiven Lernregel (vgl. Abschnitt 3.2.4). Kompetitive Netze können zur Musterklassifikation, zum Filtern von Redundanzen und als Alternative zur Faktorenanalyse verwendet werden. Der Ablauf des Lernens in kompetitiven Netze erfolgt, wie schon bei der kompetitiven Lernregel erwähnt, nach dem The-Winner-takes-it-all-Prinzip. Genauer betrachtet unterteilt sich der Ablauf wie folgt: 1. Bestimmung des Netzinputs für alle Ausgabe-Neuronen nach folgender Formel: NET i = a j w ij (20) j 2. Bestimmung des Gewinner-Neurons durch Vergleichen des Netto-Input für alle Ausgabe-Neuronen miteinander. Somit ist der Gewinner das Neuron mit dem höchsten Netto-Input. 3. Im letzten Schritt werden die Gewichte verändert und zwar nur die, die zum Gewinner-Neuron führen. Alle anderen Gewichte werden nicht verändert. Die Gewichte werden so modifiziert, dass sie der Eingabe ähnlicher gemacht werden a j w ij. Mathematisch lässt sich das folgendermaßen formulieren: w ij = k(a j w ij ) k ist hier die Lernrate (21) Bei kompetitiven Netzen kann es vorkommen, dass die Gewichte zu einer einzigen oder einigen wenigen Outputunits so groß werden, dass diese den Wettbewerb unabhängig vom Muster des Inputs gewinnen. In diesem Fall leistet ein kompetitives Netz keine sinnvolle Kategorienbildung mehr. Um dies zu verhindern kann man zum Beispiel alle einzelnen Gewichtsvektoren auf einen konstanten Wert festlegen [4]. 4.4 Kohonen-Netz Dieser Netztyp ist eine Erweiterung des kompetitiven Netzes, in dem die Neuronen in selbstorganisierender Weise lernen können; deshalb wird diese Art Netz auch als selbstorganisierendes Netz bezeichnet. Bei solchen Netzen wird keine explizite Ausgabe vorgegeben, sondern sie wird aufgrund der Eingabedaten berechnet. Somit sie ist in der Lage eigenständig Klasse zu definieren. Konkret heißt das: Ein Netz bildet eine Karte aus, die eine Strukturierung des Eingaberaums beschreibt, dann berechnet es eine Funktion, wodurch eine Klassifikation erreicht wird. f : X Y (22) X ist hier ein reellwertiger Eingaberaum, Y ist ein reellwertiger Ausgaberaum. Damit ein Netz f repräsentiert, müssen gewisse Bereichsähnlichkeiten dargestellt werden. Hierzu werden die Eingaberäume durch eine Schicht von Neuronen

132 128 S. Paulus, S. Al-Sefou präsentiert und jedes Neuron dieser Eingabeschicht ist mit allen Neuronen der Ausgabeschicht (vgl.abschnitt 3.2.4) verbunden. Zusätzlich existiert eine Gitterstruktur, die die Neuronen des Wettbewerbsschicht untereinander verbindet. Diese wird als Kohonenschicht bezeichnet (siehe Abbildung 23) [12]. Abbildung 23. Netzarchitektur für Kohonen-Netze [4]. Das Ziel ist es, selbstorganisierende Netze so zu trainieren, das benachbarte Cluster durch benachbarte Neuronen der Wettbewerbsschicht repräsentiert werden. Hierfür werden alle Gewichtesvektoren der Neuronen in der näheren Umgebung des Gewinnerneurons nach der Präsentation des Eingabevektors geändert. Dadurch wird verhindert, das benachbarte Neuronen weit voneinander entfernte Cluster repräsentieren [4]. Die Grundidee ist, dass während der Ausführungszeit des Netzes, die Eingabevektoren mittels eines vorgegeben Distanzmaßes mit den Gewichtsvektoren der Ausgabeneuronen verglichen werden. Das Neuron mit der minimalen Distanz wird zum aktuellen Gewinner und wird aktiv; alle anderen Neuronen weisen keinerlei Aktivität auf. Damit wird der Eingabevektor der Klasse zugeordnet, die durch das Gewinnerneuron repräsentiert wird [12]. Genauer betrachtet läuft der Lernalgorithmus folgendermaßen ab: Sei der Eingabevektor von der Form X = (x 1,..., x q ), wobei q die Anzahl der Eingabeneuronen ist, und sei W = (w i1,..., w iq ) der Gewichtsvektor, der zu einen Neuron i der Kohonenschicht gehört, wobei k die Anzahl der Neuronen in der Kohonenschicht ist. Und nun um den Abstand von X zu W zu berechnen, wird die euklidische Distanz als Distanzmaß verwendet. Damit wird das Neuron bestimmt, dessen assoziierter Gewichtsvektor einen minimalen Abstand zur Eingabe hat. Nun werden die Gewichtesvektoren modifiziert; dazu werden nicht nur die Gewichte des Gewinnerneurons berücksichtigt, sondern auch das Umfeld des Gewinnerneuronen: W j (t + 1) = W j (t) + k(t) d ij (t) ( X W j (t) ) (23)

133 Neuronale Netze 129 Hier ist 0 k 1 die zeitliche veränderliche Lernrate. Der Wert von k fällt monoton im Lauf der Trainingsphase. Wichtig ist hier auch die Abstandsfunktion d, mit der die Änderung der Gewichtesvektor auf benachbarte Neuronen definiert wird. Es gibt verschiedene Abstandfunktionen, die die Distanz zwischen den Neuronen der Kohonenschicht bestimmen. Als Beispiel sei hier die Abstandsfunktion d so gewählt, dass sie ein Nachbarschafts-Neuron zeigt und die zugehörige Distanzfunktionen (siehe Abbildung 24) [15]. e N(n j,n Sieger ) σ (24) Abbildung 24. Nachbarschafts-Neuronen Also zeigt die Abbildung, welche Auswirkung die Erregung eines Neurons auf seine Nachbarn hat und diese Auswirkung nimmt mit zunehmenden Grad ab. N(n j, n Sieger ) := Grad (25) Man versteht unter m-nahbaren Neuronen, alle Neuronen, die in höchsten m Schritten, ausgehend vom Gewinner-Neuron, über die Kanten des Gitters erreicht werden können. In Abschnitt 5 wird gezeigt wie man ein künstliches neuronales Netz, genauer gesagt ein hier beschriebenes Kohonen-Netz, in der Praxis einsetzen kann, um beispielsweise einen Roboterarm zu steuern. 5 Beispiele und Anwendungen Künstliche neuronale Netze findet man heute in vielen verschiedenen Bereichen. Grob gesehen unterscheidet man zwei grundlegende Anwendungsbereiche. Einerseits werden künstliche neuronale Netze dazu genutzt, die Funktionsweise des menschlichen Gehirns besser zu verstehen, andererseits dienen sie in der Industrie auch dazu, konkrete Anwendungsprobleme zu lösen. Die Anwendungsgebiete sind sehr vielfältig und erstrecken sich auch in Bereiche in denen man nicht unbedingt damit rechnen würde auf ein künstliches neuronales Netz zu stoßen. Hier seien als Überblick einmal einige große Anwendungsgebiete mit Beispielen genannt:

134 130 S. Paulus, S. Al-Sefou Industrie, z.b. Robotersteuerung (vgl. Abschnitt 5.1), Sortierung Finanzen, z.b. Kursprognose, Bonitätsvorhersage, Unterschriftenerkennung Telekommunikation, z.b. Datenkompression, Routingstrategien, Netzoptimierung Medizin, z.b. Atemanalyse, Blutdruckanalyse Marketing, z.b. Mustererkennung, Zielgruppenbestimmung Künstliche Intelligenz, z.b. Dateimanagement, Spracherkennung Verkehr, z.b. automatisches Einparken, Hinderniserkennung, Ampelschaltung, Routenplanung Im folgenden werden noch zwei Beispiele konkret beschrieben. Zuerst ein Beispiel aus den praktischen Anwendungsgebieten und im Anschluss noch etwas aus der Theorie rund um das Verständnis der Arbeitsweise des menschlichen Gehirns. 5.1 Steuerung eines Roboterarms mittels eines Kohonen-Netzes Der in diesem Beispiel gesteuerte Roboter besteht aus einem dreigelenkigen Arm, der eine zwei-dimensionale Arbeitsfläche abdeckt (siehe Abbildung 25). Abbildung 25. Schematischer Aufbau des Roboters Der Roboter erthält die Eingabeinformationen von zwei Kameras, die dier Arbeitsfläche betrachten. Jede Kamera liefert einen zweidimensionalen Vektor, der die Position des Objekts in der Bildebene der Kamera angibt. Die Aufgabe des Systems besteht nun darin, den Roboterarm so zu positionieren, dass er ein auf der Arbeitsfläche platziertes Objekt greifen kann. Um diese Ziel zu erreichen, wird ein Kohonen-Netz (vgl. Abschnitt 4.4) verwendet; in diesem ist jedes Neuron der Wettbewerbschicht für die Erkennung einer Position auf der Arbeitsfläche zuständig. Dies reicht jedoch noch nicht aus um die Aufgabe des System korrekt zu erfüllen. Es sollen zusätzliche Informationen zum Winkel der Gelenke des Roboterarms für diese Position berechnet werde. Dafür wird jedem Neuron eine Winkeleinstellung für die Gelenke und eine Feinregulierungsmatrix zugeordnet. Die Feinregulierungsmatrix dient der Feinpositionierung, falls der Eingabevektor nicht exakt mit dem Gewichtsvektor des Siegerneurons übereinstimmt.

135 Neuronale Netze 131 Die Abweichung bei der Winkelposition wird von den Kameras beobachtet und jedes Mal zu einer Verbesserung des benutzten Ausgangswerts verwendet. Der Feinregulierungsprozess kann mit Hilfe der Delta-Regel (vgl. Abschnitt 3.2.2) erlernt werden. Der Roboter stellt dadurch ein in sich geschlossenes, autonomes System dar, das ohne Lehrer funktioniert. Mehr Information zu dieses Thema findet man im Buch Neuronale Netze und Fuzzy Systeme [12]; unter dem Weblink [16] findet man ein fertiges Java-Applet, das zeigt wie der Roboterarm sich unter verschiedene Umständen (verschiedene Anzahl an Lernschritten, verschiedene Lernfortschritte, verschiedene Anzahl und Positionierung der Gegenstände, usw.) verhält. 5.2 Lautes Lesen In dieser Anwendung geht es um die Frage, wie Kinder in ihrer eigenen Sprache lernen, Wörter korrekt auszusprechen. Dieses Problem wird normalerweise durch ein traditionelles 2-Wege-Modell dargestellt. In diesem Modell gibt es 2 unabhängige Mechanismen, die für die korrekte Ausprache sorgen. Wie Abbildung 26 zeigt wird nach der visuellen Analyse entweder die lexikalische oder die nicht-lexikalische Route durchlaufen. Erstere wird immer dann verwendet, wenn es um bekannte, aber unregelmäßig ausgesprochene Wörter geht, da diese Route alle benötigten Informationen zu dem jeweiligen Wort besitzt. Die andere Route besteht aus den allgemeinen Ausspracheregeln und behandelt unbekannte Wörter. Ein bereits bekanntes Wort kann über eine beliebige Route laufen. Regelmäßig ausgeprochene englische Wörter sind beispielsweise save, cave, wave ; have dagegen ist ein unregelmäßig ausgeprochens Wort. Abbildung 26. Schematische Darstellung eines traditionellen 2-Wege-Modells.

136 132 S. Paulus, S. Al-Sefou Im Gegensatz zu diesem Modell haben Plaut, McClelland, Seidenberg und Patterson (1996) ein neuronales Netz entwickelt, das keine Unterscheidung zwischen bekannten Ausnahmen und den allgemeinen Ausspracheregeln macht. Stattdessen gehen sie davon aus, dass das gesamte Wissen über die korrekte Aussprache auf alle Gewichte des neuronalen Netzes verteilt gespeichert ist. Ihr neuronales Netz besteht aus drei Schichten; einer Input-, einer Hidden- und einer Output-Schicht: Die Input-Schicht besitzt 105 Units für 105 Grapheme (distinkte Einheiten eines Schriftsystems). Allgemein ist es für neuronale Netze sehr wichtig, die richtige Input-Kodierung zu wählen. In der Hidden-Schicht gibt es insgesamt 100 Hidden-Neuronen. 61 Neuronen produzieren in der Output-Schicht den sprachlichen Output als sogenannte Phoneme (kleinste lautliche Einheit mit bedeutungsunterscheidender Funktion). Diese besitzen zusätzlich rekurrente Verbindungen zur eigenen Schicht, sowie zur Hidden-Schicht. In der Trainingsphase werden diesem Netz dann Wörter in Form von Graphemen präsentiert. Da es sich bei diesem Verfahren um überwachtes Lernen handelt wird der korrekte Output vorgegeben; die Gewichte werden durch Backpropagation (vgl. Abschnitt 3.2.3) angepasst. Der Aktivitätslevel der einzelnen Neuronen wird mit Hilfe einer sigmoiden Aktivitätsfunktions berechnet. Genauere Informationen zum Aufbau des Netzes und den gewählten Funktionen finden sich auf der Website der Entwickler dieses Netzes unter [17]. Das so generierte neuronale Netz liefert mit einer Trefferquote von 98% die korrekte Aussprache eines regulär ausgesprochenen Wortes. Es ist damit besser als ein durchschnittlicher Erwachsener, der nur auf 94% kommt. Soll das Netz die Aussprache von Wörtern bestimmen, die es nicht gibt, so liegt es immer noch in 72% aller Fälle richtig; hier erzielt der Erwachsene 78%. Dies zeigt, dass das Modell auch ohne angeschlossene Datenbank mit expliziten Ausspracheregeln, lernen kann, bekannte und unbekannte Wörter korrekt auszusprechen. 6 Zusammenfassung Abschließend kann man sagen, dass der Einsatzbereich neuronaler Netze heutzutage viel größer ist als man zunächst vielleicht vermuten würde. Im Abschnitt 5 wird aufgezeigt, dass in den verschiedensten Bereichen auf neuronale Netze zurückgegriffen wird und zwar häufig der Vorteile wegen. Die wichtigsten Vorteile sind sicherlich die große Flexibilität und die vielen Freiheitsgrade, die ein einmal trainiertes und eingerichtetes neuronales Netz bietet. Auch die Ausfallsicherheit (ein ausgefallenes Neuron ändert in der Regel nichts am korrekten Output) und die Möglichkeit des eigenständigen Lernens sprechen für den Einsatz künstlicher neuronaler Netze. Desweiteren arbeiten neuronale Netze schon alleine wegen ihres Aufbaus parallel, wodurch sie viele Probleme sehr schnell lösen können. Eine andere Einsatzmöglichkeit ist die Simulation des menschlichen Gehirns; hier sind vor allem Mediziner und Psychologen daran interessiert mehr über die Lern- und

137 Neuronale Netze 133 Denkweise des Menschen zu Erfahren und dies gelingt ihnen, indem sie mit Hilfe künstlicher neuronaler Netze Denk- und Lernprozesse nachbilden. In diesem Anwendungsgebiet hat man auch öfter mit einem Nachteil neuronaler Netze zu kämpfen: Der fehlenden biologischen Plausibilität (Wie stellt man sich zum Beispiel die Rückwärtsausbreitung der Backpropagation im menschlichen Gehirn vor?). Aber auch die konkreten Anwendungen haben des Öfteren mit Nachteilen dieser Netze zu kämpfen. Um korrekt zu arbeiten benötigen künstliche neuronale Netze oftmals sehr lange Lernphasen, die in einem hohen Rechenaufwand resultieren können. Desweiteren stellen auch die oft vorteilhaften Freiheitsgrade ein Problem dar, da dadurch mitunter auch falsche Ergebnisse geliefert werden können. Abschließend lässt sich feststellen, dass dieses sehr alte Forschungsthema der Informatik mittlerweile nach vielem hin und her in der Geschichte einen wichtigen Platz in der Informatik eingenommen hat und durch neue Bedürfnisse und Anforderungen im Bereich der Informatik (Parallelverarbeitung, intelligente System, autonom fahrende Autos,...) auch weiterhin an Bedeutung gewinnen wird. Literatur [1] Rüdiger Brause: Neuronale Netze, Einführung in die Neuroninformatik (1991) [2] Andreas Zell: Simulation neuronaler Netze (1994) [3] Andreas Scherer: Neuronale Netze. Grundlagen und Anwendungen (2002) [4] Eine Einführung - [5] Was ist Lernen? [6] Janne Grunau, Alexander Riemer: Clustering; Ausarbeitung zum Vortrag im Rahmen des Seminars Data Mining and Prediction - [7] Wikipediaeintrag; Verstärkendes Lernen; Lernen [8] Monika Köhle: Neuronale Netze [9] Delta-Regel; koenig/ni grundlagen prak/deltalearning/deltalearning.html [10] Wikipediaeintrag; Backpropagation; [11] D.E.Rumelhart, G.Hinton, R.J.Williams: Learning representations by backpropagating errors. Nature 323, 1986, [12] Detlef Nauk und Frank Klawonn und Rudolf Kruse: Neuronale Netze und Fuzzy- Systeme [13] Rekurrente Netze; RekurrenteNetze; mherrma/v0/node59.html [14] Wikipediaeintrag; RekurrenteNetze; Neuronales-Netz [15] Kohonen-Netzes; hammer/lectures/seminar ml/kohonen-netze.pdf [16] Applet zur Steuerung eines Roboterarms mit Hilfe eines Kohonen-Netzes saj39122/nn/roboterarmsteuerung/index.html [17] Plaut, McClelland, Seidenberg and Patterson (1996). Understanding normal and impaired word reading: Computational principles in quasi-regular domains; plaut/papers/abstracts/plautetal96psyrev.wordreading.html

138 Künstliche Immunsysteme Rebekka Mayr, Wolf Fischer Universität Augsburg Zusammenfassung Diese Arbeit führt in die Theorie von biologischen Immunsystemen ein und zeigt auf, welche Eigenschaften von diesem auf Computersysteme übertragen werden können. Aus biologischer Sicht ist das Immunsystem für die Unversehrtheit eines Lebewesens von großer Bedeutung, da es für die Erkennung und Abwehr von Fremdkörpern verantwortlich ist. Auch in vielen Bereichen der Informatik ist es essenziell, Informationen von vermeintlich gefährlichen Angreifern aus einem Datenstrom zu extrahieren und das Immunsystem - sei es künstlich oder natürlich - für mögliche zukünftige Infektionen des selben oder ähnlichen Schädlings zu stärken. 1 Einleitung Unser heutiges Leben ist geprägt durch eine Abhängigkeit von Computersystemen, welche Einzug in sämtlichen Bereichen des Alltags gehalten haben. Was auf der einen Seite Vorteile durch Erleichterungen im täglichen Ablauf mit sich bringt, bedeutet auf der anderen Seite auch Gefahren, da diese Systeme durch Viren, Würmer und anderweitige virtuelle Angriffe außer Gefecht gesetzt werden können. Erhebliche wirtschaftliche Schäden sind eine häufige Konsequenz. Trotz des heutigen Stands der Technik ist es nicht möglich, einen vollständigen Schutzmechanismus für Computersysteme und Netzwerke zu gewähren. Ob ein hundertprozentiger Schutz vor Schädlingen jemals existieren wird, ist überdies eine nicht beantwortbare Frage - zum jetzigen Zeitpunkt liefern sich Softwarehersteller und Virenentwickler einen kontinuierlichen Wettlauf. Durch Software wie Firewalls oder Virenscanner wird zwar ein gewisses Maß an Sicherheit geboten, dennoch finden Angreifer durch immer ausgefeiltere Techniken Schwachstellen, an denen sie ansetzen können. Ein wichtiger Punkt hierbei ist, dass die derzeitigen Lösungen nicht oder nur eingeschränkt adaptiv sind. Das heißt, sie sind nur begrenzt in der Lage, bisher unbekannte, schädliche Angreifer zu erkennen und abzuwehren. Um diese Sicherheitslücken zu schließen, müssen Hersteller für ihre Software oftmals mehrere Patches veröffentlichen, die natürlich nicht vor zukünftigen Schädlingen schützen können. Aus diesem Grund ist ein Schutzmechanismus, wie der des biologischen Immunsystems, erstrebenswert: Es sollen auch bisher unbekannte Erreger erkannt und bekämpft werden. Weiterhin bieten die Konzepte des biologischen Immunsystems neue Möglichkeiten der Lösung von anderen bekannten Problemen wie der Erkennung von Mustern im Allgemeinen oder dem Schutz von Flugzeugen im Speziellen. Diese Arbeit gibt eine

139 Künstliche Immunsysteme 135 Einführung in die Theorie von künstlichen Immunsystemen. In Kapitel 2 wird ein kurzer Einblick in die wichtigsten biologischen Grundlagen gegeben. Absatz 3 befasst sich mit den Grundzügen künstlicher Immunsysteme inklusive einer detaillierten Beschreibung der in der Informatik adaptierten Algorithmen, bevor Absatz 4 vier Praxisbeispiele darstellt. Den Abschluss dieser Arbeit bildet Kapitel 5, welches die Arbeit kurz zusammen fasst und einen Ausblick über mögliche zukünftige Entwicklungen bietet. 2 Grundlagen von Immunsystemen 2.1 Definition Unter Immunität wird die Fähigkeit des Körpers verstanden, sich gegen fast alle Mikroorganismen und Toxine zu wehren, die für ihn schädlich sind. Immunität ist teilweise angeboren, teilweise erworben. [12] Alle Lebewesen, egal ob Pflanzen, Tiere oder Menschen, verfügen über Schutzfunktionen, die sich im Laufe der Evolution zu einem komplexen Netzwerk entwickelt haben. Das Immunsystem (vom lateinischen immunis für frei, verschont, unberührt, auch Lymphsystem genannt) ist ein natürlicher, schneller und sehr effektiver Verteidigungsmechanismus des Körpers gegen Infektionen. Diese entstehen, sobald Fremdkörper von außen eindringen. Dazu gehören Antigene wie Mikroorganismen, Viren, Bakterien, Chemische Stoffe und Selbst- Antigene (z.b. Zellbruchstücke und Moleküle des eigenen Körpers). Das Immunsystem besteht aus zwei Hauptkomponenten, dem angeborenen und dem erworbenen (adaptiven) Immunsystem. Beide hängen von der Aktivität der weißen Blutkörperchen, den Leukozyten, ab. Die Aufgaben der angeborenen Immunabwehr werden von verschiedenen Zellen wahrgenommen. Dazu gehören unter anderem Granulozyten, Makrophagen und natürliche Killerzellen. Das adaptive Immunsystem wird dagegen vorwiegend durch die Lymphozyten gesteuert (siehe Abbildung 1). 2.2 Biologische Grundlagen Bereits sehr einfache Organismen besitzen einen Abwehrmechanismus: Die angeborene Immunabwehr (engl. Innate Immunity ). Diese entwickelte sich sehr früh in der Stammesgeschichte der Lebewesen und ist seitdem weitgehend unverändert geblieben. In Wirbeltieren entstand zusätzlich eine komplexe, anpassungsfähige adaptive Immunabwehr, die sie noch effektiver vor Krankheitserregern schützt. Zellen, Moleküle und Organe sind in allen Teilen des Organismus (siehe Abbildung 2) am Immunsystem beteiligt. Die zwei primären lymphatischen Organe ( Primary Lymphoid Organs ) sind der Thymus und das Knochenmark. Sie sind verantwortlich für die Produktion und Entwicklung der Lymphozyten. Lymphozyten sind für die Immunabwehr spezialisierte weiße Blutkörperchen, die

140 136 R. Mayr, W. Fischer Abbildung 1. Bestandteile eines Immunsystems man zusätzlich in B- und T-Zellen einteilt (vgl. 2.3 und 2.3.2). Die eigentliche Bekämpfung der Pathogene findet schließlich in den sekundären Lymphorganen ( Secondary Lymphoid Organs ) wie Lymphknoten, Milz oder Mandeln mit Hilfe der Lymphozyten statt Angeborenes Immunsystem Die Zellen des angeborenen Immunsystems sind dazu ausgelegt, selbständig gegen eine Vielzahl von Bakterien und Viren (Pathogene) zu kämpfen, ohne dass sie vorher schon einmal in Kontakt mit ihnen waren (Anomalie-Erkennung). Die Zellen sind in der Lage, körpereigene Elemente von fremden Strukturen zu unterscheiden. Kommt es zu einer Erstinfektion, beginnt die Immunreaktion bei den antigenrepräsentierenden Zellen (Makrophagen): Diese sind in der Lage, typische Merkmale von Krankheitserregern zu erkennen, ohne mit ihm vorher schon einmal in Berührung gekommen zu sein. Sie können die Krankheitserreger aufnehmen und in ihrem Inneren einschließen, weshalb sie auch Fresszellen genannt werden. Anschließend präsentieren sie der adaptiven Abwehr an ihrer Oberfläche Bruchstücke des Erregers, welche darauf hin in einen aktivierten Zustand übergehen kann (siehe Abbildung 3). Weiterhin verfügt jede Zelle im Körper über einen Haupthistokompatibilitätskomplex (MHC), der die Zelle identifiziert. So werden körperfremde oder erkrankte Zellen, die über keinen MHC verfügen, erkannt und abgewehrt. Zusätzlich können die Zellen der angeborenen Immunabwehr mit speziellen Rezeptoren schädliche Mikroorganismen erkennen. Diese Rezeptoren nennt man Cell- Receptors. Etwa 90 Prozent aller Infektionen werden durch das angeborene Immunsystem erkannt und erfolgreich bekämpft.

141 Künstliche Immunsysteme 137 Abbildung 2. Die Organe des Immunsystems Adaptives Immunsystem Alle Lebewesen haben die Möglichkeit, gegen Pathogene resistent zu sein. Jedoch unterscheidet sich diese Resistenz in den verschiedenen Organismen. Das adaptive Immunsystem muss sich auf noch unbekannte Erreger erst einstellen und reagiert deswegen langsamer. Nur wenn der Erreger einmal aufgetreten und die Immunisierung bereits erfolgt ist, kann sofort reagiert werden. Dies sorgt für ein Verteidigungssystem, das gegen viele Arten von Antigenen vorgehen und somit Infektionen entgegenwirken kann - es ist lernfähig. Die adaptive Immunabwehr entwickelte sich im Laufe der Evolution aus dem angeborenen Immunsystem. Ein großer Unterschied zwischen den beiden Mechanismen ist die Anpassungsfähigkeit der adaptiven Immunabwehr gegenüber neuen oder veränderten Erregern. Die T- und B-Zellen der adaptiven Abwehr sind in der Lage, spezielle Strukturen (Antigene) der Erreger zu erkennen, gezielt Abwehrmechanismen zu entwickeln und Antikörper zu bilden (siehe Abbildung 3). Diese Antikörper bleiben nach einer Infektion erhalten und dienen dem Körper als Erinnerung ( Memory Cells ) an bereits bekämpfte Schädlinge. Dadurch kann bei erneutem Kontakt eine schnelle und gezielte Gegenreaktion eingeleitet werden. Die Lymphozyten sind die wichtigsten Zellen des adaptiven Immunsystems. Unterschieden werden hier die B- und T-Zell-Lymphozyten. Jede naive Lymphozyte (noch nicht an einer Immunreaktion beteiligt), die aus dem Knochenmark oder dem Thymus in die Blutbahn gelangt, besitzt spezifische Antigenrezeptoren an der Oberfläche. Diese werden aus Genanordnungen erzeugt, wodurch Millionen verschiedener Varianten dieser Rezeptoren erstellt werden können. Sobald eine Lymphozyte ein Antigen an sich gebunden hat, wird sie aktiviert. Sie vermehrt

142 138 R. Mayr, W. Fischer Abbildung 3. Das Erkennen von Antigenen mit T-Zellen sich und bildet einen großen Klon, der entweder aus einer oder aus einer Vielzahl von Zellen besteht. 2.3 Mustererkennung Um eine Immunreaktion hervorzurufen, ist es wichtig, dass das eingedrungene Pathogen zuerst erkannt wird. Aus der Sicht der Mustererkennung sind hierfür die wichtigsten Komponenten des Immunsystems die Rezeptoren, die die T- und B-Zellen an ihrer Oberfläche tragen. Diese Rezeptoren sind in der Lage, Antigene mit bestimmten Eigenschaften zu erkennen. Sobald ein B-Zell-Rezeptor (BCR) an ein Antigen andockt, produziert die B-Zelle spezifische Antikörper gegen dieses fremde Antigen. Erkennt hingegen ein T-Zell-Rezeptor (TCR) ein Antigen, bekämpft die T-Zelle dieses direkt eigenständig T-Zellen Die T-Lymphozyten oder T-Zellen (siehe Abbildung 4) entstehen im Knochenmark und wandern danach in den Thymus, in dem sie ausreifen. An der Oberfläche tragen diese Zellen Rezeptoren, mit denen sie sich an dazu passende Antigene heften können. T-Zellen erkennen nur zellgebundene Antigene, die ihnen von anderen Körperzellen mittels MHC-Molekülen präsentiert werden (engl. Antigen Presenting Cells, APC). Hat eine T-Zelle an ein Antigen gebunden, teilt sie sich vielfach

143 Künstliche Immunsysteme 139 Abbildung 4. Die T-Zelle und setzt Botenstoffe frei (Siehe Abbildung 3), die den gesamten Organismus in Alarmbereitschaft versetzen. Abbildung 5. Eine B-Zelle mit Antikörpern auf ihrer Oberfläche B-Zellen B-Zellen (siehe Abbildung 5) entstehen ebenso wie T-Zellen im Knochenmark (entgegen der weitläufigen Meinung stammt das B der B- Zelle jedoch nicht von Bone Marrow (Knochenmark), sondern von Bursa Fabricii, einem lymphatischen Organ bei Vögeln, in welchem die B-Zellen das erste Mal entdeckt wurden). Bindet eine B-Zelle an ein Antigen, das zu einem ihrer Rezeptoren passt, so wird sie aktiviert. Daraufhin differenziert die B-Zelle zu einer Plasmazelle, die Antikörper produziert (siehe Abbildung 6). Im Gegensatz zu den T-Zellen sind die B-Zellen auch in der Lage, freie Antigene zu erkennen und daraufhin eine Immunreaktion einzuleiten. Diese erfolgt über Moleküle und basiert auf dem Komplement zwischen der Art des Rezeptors und den sogenannten Epitopen an der Oberfläche des Schädlings. Während Antikörper nur einen einzigen Rezeptor-Typ mit sich tragen, können bei den Pathogenen eine Vielzahl von Epitopen vorkommen (siehe Abbildung 7). Das bedeutet, dass verschiedene Antikörper das gleiche Antigen erkennen können und sich somit die Chance erhöht, dass der Angreifer gefunden und zerstört wird.

144 140 R. Mayr, W. Fischer Abbildung 6. Die Funktionsweise der B-Zellen- Erkennung Abbildung 7. Die Epitopen des Antigens 2.4 Klonale Selektion Obwohl jede Lymphozyte spezielle Rezeptoren bietet, ist die Anzahl an Lymphozyten, die den Schädling wirklich an sich binden und zerstören können, gering. Um genügend spezifische Zellen für eine Abwehrreaktion zu entwickeln, muss sich eine Lymphozyte zuerst vermehren und anschließend in eine Effektorzelle differenzieren. Dieses Prinzip nennt man Klonale Selektion und läuft in den Keimzentren der Lymphknoten ab (siehe Abbildung 8). Einige Lymphozyten tragen Rezeptoren, die irrtümlicherweise Self-Antigene binden. Diese Lymphozyten werden in einem frühen Stadium der Generierung, bevor sie eine Immunreaktion auslösen können, zerstört (Negative Selektion). Dieser Prozess führt zur Selbst-Toleranz. Sollte aber ein normales Antigen mit dem Rezeptor einer bereits reifen Lymphozyte in Berührung kommen, wird diese aktiviert und es beginnt ein starker Vermehrungprozess. Es entsteht ein Klon, der sich in zahlreiche Effector-Zellen (Plasmazellen) und Memory-Zellen differenziert. Zusammenfassend sind folgende ergänzende Punkte die Haupteigenschaften der Klonale Selektion: Negative Selektion: Die Elimination von neuen differenzierten Lymphozyten, die mit körpereigenen Antigenen reagieren

145 Künstliche Immunsysteme 141 Klonale Expansion: Vermehrung und Differenzierung beim Kontakt von reifen Lymphozyten mit fremden Antigenen im Körper Monospezifität: Beschränkung eines Musters für je eine differenzierte Zelle und Speicherung des Musters bei den klonalen Abkömmlingen Somatische Hypermutation: Erzeugung zufälliger genetischer Veränderungen (unterschiedliche Antikörper-Muster) durch eine Art somantischer Mutation Autoimmunität: Als Basis für Krankheiten, die durch Autoimmunreaktionen ausgelöst werden, existieren sogenannte Autoantikörper. Diese werden nicht durch Self-Antigene eliminiert (siehe [1], [8]). Abbildung 8. Das Klonale Selektion Prinzip 2.5 Lernen und Gedächtnis im Immunsystem Das adaptive Immunsystem kann lernen, die Anzahl der nützlichen Lymphozyten zu erhöhen. Da die Gesamtanzahl an Lymphozyten allerdings beschränkt ist, müssen die, die nicht gebraucht werden, entfernt werden. Als Konsequenz daraus entwickelt der Organismus ein Repertoire von Abwehrmechanismen, die zu einem bestimmten Zeitpunkt an die vorhandenen Antigene angepasst sind. Das Auftreten eines Antigens stimuliert die adaptive Immunreaktion, woraufhin die Anzahl an BCRs, welche das Antigen erkennen, durch die Vermehrung der entsprechenden B-Zellen vergrößert wird. Außerdem wächst die Wahrscheinlichkeit, dass eine Bindung zum Antigen eingegangen wird (Affinität) durch Mutation. Spezifische B-Zellen mit einer hohen Affinität zu einem Antigen werden

146 142 R. Mayr, W. Fischer als Gedächtniszellen gespeichert. Bei erneutem Auftreten desselben oder eines ähnlichen Antigens kann die Immunreaktion sofort einsetzen und entwickelt dabei eine noch größere Effizienz durch die wachsende Affinität der B-Zellen. Diese Art von Lernen nennt man Reinforcement Learning (vgl. [1], S.31ff). 2.6 Selbsterkennung - Positive Selektion Das Positive Selektion - Prinzip dient dazu, unreife T-Zellen, deren Rezeptoren Self-MHC Moleküle erkennen und binden können, auszusondern, um eine Immunreaktion gegen eigene Zellen zu verhindern. Reife T-Zellen gelangen in die Blutbahn und können nur durch fremde Antigene mit Self-MHC-Peptid Komplexen aktiviert werden. Der Antigen-Rezeptor der B-Zellen wird bei der Entstehung der Zelle produziert. Die Rezeptoren sind mit Signal übertragenden Molekülen verbunden. Bei der Bindung an ein Epitop wird durch die Übertragung der Signalstoffe der Zelltod verhindert und ein weiteres Reifestadium erreicht. 2.7 Selbsterkennung - Negative Selektion Bei der Negativen Selektion werden Anti-Self-Rezeptoren eliminiert. Sie entstehen bei der Reifung von T-Zellen und bei der Mutation von B-Zellen. Die Interaktion zwischen Zelle und Self-Antigen führt zum Tod der Zelle. Die Reaktionen laufen hauptsächlich in den sekundären Lymphorganen ab. Die negative Selektion von T-Zellen erfolgt innerhalb oder außerhalb des Thymus. Dort existieren große Mengen an MHC tragenden Zellen. Durch die Abschirmung gegen den Blutstrom haben diese Zellen hauptsächlich Self-MHC- Peptid-Komplexe bei sich. Sobald die noch unreifen T-Zellen mit diesen Komplexen interagieren, sterben die Zellen ab (Negative Selektion). T-Zellen, die nicht mit solchen Komplexen interagieren, gelangen in die Blutbahn (Positive Selektion). Die Schnelligkeit des Absterbens der Self-Antigen-T-Zellen hängt von ihrer Affinität ab. Self-reaktive T-Zellen können aber nach außen gelangen und Autoimmunkrankheiten auslösen wie z.b. Morbus Crohn (siehe [13]). Bei den B-Zellen verläuft die negative Selektion folgendermaßen: Findet eine schnelle und plötzliche Verbindung des Rezeptors mit einem Fremd-Antigen statt, bewirkt dies eine klonale Reaktion. Andererseits führt eine konstante und schwache Stimulation von Self-Antigenen zu Toleranz. Die klonale Reaktion findet nicht statt und deshalb tritt der Zelltod ein. 2.8 Immunnetzwerke Bislang ging man davon aus, dass das Immunsystem ähnlich einem Heer organisiert ist und gemeinsam gegen Fremdkörper vorgeht. Neuere Forschungen geben immer mehr Anlass zu der Vermutung, dass die Organisation des Immunsystems eher einem Netzwerk gleicht. Antigene sowie Antikörper besitzen externe Merkmale, anhand derer sie erkannt

147 Künstliche Immunsysteme 143 werden können. Bei Antigenen wird dabei, wie bereits zuvor erwähnt, von Epitop gesprochen ([16]), während man diese Merkmale bei Antikörpern als Idiotop bezeichnet. Antigene besitzen, im Gegensatz zu Antikörpern, allerdings meist mehrere verschiedene Epitopen. Wird das Immunsystem einem Antigen ausgesetzt (Abbildung 9), so werden Abbildung 9. Detailliertere Betrachtung des idiotypischen Netzwerks dessen Epitope von einer Menge von Paratopen (die an das Antigen bindende Haftstelle eines Antikörpers) erkannt (p a ). Die Idiotopen Menge i b nennt man dabei das interne Bild des Antigens, da diese Menge von der selben Menge Paratopen erkannt wird wie die Epitopen des Antigens. Genauso werden die Idiotopen i a von einer anderen größeren Menge p c an Paratopen erkannt. Die Pfeile deuten eine Stimulation bei der Reaktion an. Dabei kommt es entweder zu einer positiven (Zellaktivierung / Zellvermehrung bei Erkennung von Antigenen) oder einer negativen (Toleranz / Unterdrückung bei Erkennung von eigenen Antikörpern) Reaktion. Dieser Mechanismus sorgt für ein sich selbst regulierendes System, dass auch in Abwesenheit von Antigenen trainiert bleibt. 3 Grundlagen von künstlichen Immunsystemen Die Implementierung von speziellen Funktionen des natürlichen Immunsystems, zum Beispiel des Reifungsprozess der T-Zellen und die Verwendung von mathematischen Beschreibungen selbiger, waren die Basis für einen neuen Ansatz in der IT-Welt. In der Vergangenheit wurden bereits einige Funktionen des Immunsystems mit Algorithmen umgesetzt und erfolgreich zum Lösen von bestimmten Problemen eingesetzt wie zum Beispiel Mustererkennung, Anomalie-Detektion, Data Analysis (Data Mining und Data Classification) sowie die Sicherheit von Computernetzwerken [9].

148 144 R. Mayr, W. Fischer 3.1 Definition Es existieren viele verschiedene Definitionen von Künstlichen Immunsystemen, die teilweise stark an der mathematischen oder theoretischen Immunologie orientiert sind. Hier eine allgemeine Definition: Artificial Immune Systems (AIS) are adaptive systems, inspired by theoretical immunology and observed immune functions, principles and models, which are applied to problem solving. [1] 3.2 Besondere Eigenschaften von Immunsystemen Welche Eigenschaften des Immunsystems sind für die Perspektive der Berechenbarkeit besonders relevant? Auf diese Frage folgen nur ein paar der zahlreichen Merkmale des biologischen Systems, die kaum ein anderes zu bieten hat. Durch den Fortschritt in der Immunologie gibt es heute ein gutes Verständnis der Abwehrmechanismen des Körpers. Aus Sicht von Berechnungsprozessen haben diese Vorgänge attraktive Eigenschaften, die zusammen mit grundlegenden Kenntnissen der Immunologie eine gute Motivation für die Entwicklung von Berechnungsmodellen und Softwarelösungen nach dem Vorbild des Immunsystems darstellen: Mustererkennung und Anomalie-Entdeckung Auf unterschiedliche Weise können Zellen und Moleküle des Immunsystems Muster erkennen. Ebenso kann es auf Pathogene reagieren, die dem System unbekannt sind. Einzigartigkeit und Selbst-Identifizierung Jedes Individuum besitzt sein eigenes Immunsystem mit speziellen Eigenschaften. Diese Einzigartigkeit ermöglicht es, fremde Zellen, Moleküle oder Gewebe zu erkennen und unschädlich zu machen. Vielfalt und Integration mit anderen Systemen Unterschiedliche Typen von Elementen wirken zusammen. Es existieren verschiedene Verteidigungsstrategien wie das angeborene und adaptive Immunsystem. Ebenso kommunizieren die Elemente mit anderen Teilsystemen des Körpers und können diese beeinflussen bzw. von ihnen beeinflusst werden. Autonomes und dynamisches System Durch Zelltod, Produktion und Reproduktion verändert sich laufend das Repertoire an Lymphozyten. Zusätzlich besitzt das Immunsystem keine zentrale Steuerung. Es organisiert sich selbst und benötigt keinen externen Eingriff. Austauschbarkeit Keine einzelne Zelle oder ein einzelnes Molekül ist verantwortlich für das Funktionieren des Immunsystems. Einzelne Komponenten werden ständig ausgewechselt, sterben ab oder werden erneuert. Robustheit Durch die große Vielfalt und Anzahl der Immunzellen und Moleküle ist das System sehr stabil (siehe [1], [8]).

149 Künstliche Immunsysteme Abstrakte Modelle der Komponenten des Immunsystems Wie lassen sich die natürlichen Moleküle und Mechanismen abstrakt darstellen? Hierzu gibt es verschiedene Algorithmen und Modelle, die in den folgenden Abschnitten vorgestellt werden. In Abbildung 10 werden zwei künstliche Moleküle dargestellt, wobei das obere ein Antigen und das untere einen Antikörper darstellen soll. Aus der Perspektive der Mustererkennung ist die Hauptcharakteristik der Leukozyten der Zellrezeptor, der bestimmte molekulare Muster (Antigene) an sich binden kann. Die Stärke, mit der das Antigen an den Antikörper gebunden wird, bezeichnet man als Affinität. Die Affinität von Antikörper (Ab) und Antigen (Ag) wird von mehreren Faktoren bestimmt, zu denen Wasserstoffbrückenbindungen und elektrische Kräfte zählen. Durch das komplementäre Aussehen der Moleküle (wie auch in Abbildung 10 deutlich zu erkennen ist) sowie durch unterschiedliche elektrische Ladungen wird die Wahrscheinlichkeit erhöht, dass eine Bindung eingegangen werden kann. Je größer die Komplementarität der beiden Elemente ist, desto größer ist auch ihre Affinität. Abbildung 10. Komplementäre Regionen des Antigens werden schnell erkannt 3.4 Algorithmen Die beiden wichtigsten Organe des natürlichen Immunsystems, die für die Entstehung der Zellen für die Immunabwehr verantwortlich sind (das Knochenmark und der Thymus), wie auch das Klonale Selektion Verfahren und die Immunnetzwerk-Theorie, existieren bereits als algorithmisch umgesetzte Modelle. Dieser Abschnitt liefert einen grundlegenden Überblick über die meist verwendeten Algorithmen, die durch Beobachtungen des Immunsystems entstanden sind und beschreibt deren Funktionsweisen. Es sei an dieser Stelle angemerkt, dass die in den folgenden Abschnitten dargestellten Algorithmen immer nur eine Möglichkeit des entsprechenden Algorithmus darstellen. Zum Einsatz kommen dementsprechend meist unterschiedlich ausgeprägte und auf die jeweiligen Bedürfnisse besser angepasste Varianten. Auf eine ausführliche Beschreibung der biologischen Grundlagen wird an dieser Stelle verzichtet, da diese bereits in Kapitel 2.4 geliefert wird. Wer Interesse hat und die negative, positive sowie die klonale Selektion anhand eines praktischen Beispiels ausprobieren will, kann sich den Link zur NSC Course Page genauer anschauen. Dort werden die drei genannten Algorithmen anschaulich in Form von Java Applets dargestellt und können beliebig parametrisiert werden.

150 146 R. Mayr, W. Fischer Das Knochenmark-Modell Das Knochenmark ist ein weiches Gewebe innerhalb der Knochen, das für die Generierung der Blutkörperchen zuständig ist. Einige künstliche Immunsysteme imitieren die Funktion des Knochenmarks, indem sie zum Beispiel Strings (eine Folge von Symbolen) erzeugen, die auf vielfältigste Weise zur Verteidigung gegen Schädlinge eingesetzt werden können. Ein ganzes Repertoire an künstlichen Zellen und Molekülen kann somit durch das Knochenmark-Modell erzeugt werden Das Thymus-Modell Der Thymus lässt Zellen entstehen, die fähig sind, zwischen Self und Non-Self zu unterscheiden. Die Negative und Positive Selektion sind zwei Hauptprozesse, die bei der Auswahl sowie Reifung von bestimmten, zur Abwehr qualifizierten Zellen stattfinden. Für beide Prozesse wurden Algorithmen entwickelt, die für verschiedene Zwecke zur Identifikation eingesetzt werden wie zum Beispiel Aufzeichnungen von Netzwerkaktivitäten, die sich von einem gewöhnlichen User unterscheiden (Anomalie-Detektion) [9] Positive Selektion Die positive Selektion dient der Selektierung von gutartigen, d.h. systemeigenen Nachrichten / Elementen. Zuerst werden durch Strings repräsentierte Antikörper generiert. Weiterhin müssen sämtliche systemeigenen Elemente in Form von Strings vorhanden sein. Alle generierten Antikörper werden daraufhin auf ihre Affinität (d.h. Bindungswunsch) bzgl. aller systemeigenen Elemente überprüft. Überschreitet die Affinität eines Antikörpers einen zuvor definierten Schwellwert, wird dieser Antikörper in die Menge der Detektoren aufgenommen (siehe [14]). Die so erstellte Detektormenge erkennt ausschließlich Elemente, die systemeigen sind. Um die Affinität zweier Strings zu überprüfen, sei hier auf die Hamming-Distanz verwiesen (siehe 3.5.5) Negative Selektion Die negative Selektion stellt eine Möglichkeit dar, systemfremde Elemente zu erkennen. Dazu werden Antikörper so trainiert, dass sie alle Elemente außer den körpereigenen erkennen. Sie bildet somit das Komplement zur positiven Selektion. Das grundlegende Prinzip der negativen Selektion in künstlichen Immunsystemen lässt sich sehr einfach zusammenfassen: Für eine Datenmenge, die dem System selbst bekannt ist, d.h. von diesem verwendet wird und dementsprechend auch nicht angegriffen werden soll, wird eine Menge von Strings generiert, die diese Daten repräsentieren. Daraufhin erstellt man (mehr oder minder) zufällig andere Strings (Antikörper), die mit der bestehenden Menge von systemeigenen Strings verglichen und ihre Affinität errechnet werden. Stimmen dabei zwei Strings überein, d.h. besitzen sie eine entsprechend hohe Affinität, wird der Antikörper zurückgewiesen. Sollte der Antikörper mit keinem der eigenen Elemente übereinstimmen, so wird dieser in die Menge der Detektoren aufgenommen (Abbildung 11). Sobald diese Initialisierung abgeschlossen ist, können zu testende unbekannte Daten in Form von Strings mit der Menge der Detektoren

151 Künstliche Immunsysteme 147 Abbildung 11. Schematischer Überblick über das Prinzip der negativen Selektion verglichen werden. Tritt hierbei ein Treffer auf, so kann davon ausgegangen werden, dass es sich um einen Fremdkörper handelt. Die Ähnlichkeit zwischen zwei Strings kann analog der Hamming-Distanz (siehe 3.5.5) bestimmt werden Vergleich von positiver und negativer Selektion Betrachtet man die Prinzipien, die hinter positiver und negativer Selektion stehen, könnte man zu dem Schluss gelangen, dass sich beide Techniken auf dieselben Gebiete anwenden lassen. Als Gegenbeispiel sei hier schlicht die Anwendung eines Virenscanners genannt. Normalerweise werden alle Dateien, in denen nichts gefunden wird, als virenfrei betrachtet (negative Selektion). Würde man das Prinzip umdrehen und einen Virenscanner erstellen, der nur solche Dateien als virenfrei anerkennt, die ihm bekannt vorkommen (positive Selektion), kann man von immensen Hardwareanforderungen ausgehen, da jede gute Datei dem Virenscanner bekannt sein müsste Klonale Selektion Klonale Selektion ist ein System des Körpers zur Ausbildung von Antikörpern, welches sich selbst, bzw. seine Affinität bzgl. der Antigene durch fortwährendes Lernen verbessert. Sie fußt auf dem Prinzip, dass nur die Zellen sich vermehren sollen, die ein Antigen erkennen, bzw. eine hohe Affinität bzgl. dieses Antigens besitzen [4]. Eine Analogie zu Darwins Evolutionstheorie ( Der Stärkere überlebt ) ist erkennbar. Das Prinzip des Algorithmus basiert darauf, erst ein Set von Antikörpern mit Hilfe von vorher bekannten Eingabedaten zu trainieren. Etwas detaillierter wird hierbei auf den von Castro und Zuben entwickelten Clonale Selection Algorithm (CSA) eingegangen [15], welcher die Basis vieler anderer klonaler Selektionsalgorithmen darstellt (Abbildung 12). 1. Generiere eine Menge P von Kandidaten, die aus einer Teilmenge von Gedächtniszellen M und der bisherigen Population P r besteht (P = P r +M)

152 148 R. Mayr, W. Fischer 2. Bestimme die n besten Kandidaten basierend auf einer Messung der Affinität. 3. Erstelle eine neue temporäre Population C, indem man diese n Kandidaten klont 4. Setze diese Population C einer Hypermutation aus. Es entsteht Population C. 5. Reselektiere die verbesserten Individuen aus C und füge sie M hinzu. Einige alte Mitglieder von P können durch verbesserte Varianten aus C ersetzt werden. 6. Ersetze eine Anzahl d von Antikörper mit zufällig erstellten Individuen (dies führt das Prinzip der Artenvielfalt ein). Solche Antikörper mit einer niedrigen Affinität besitzen eine höhere Wahrscheinlichkeit, ersetzt zu werden. Abbildung 12. Ablauf des Clonale Selection Algorithm Immunnetzwerke (Algorithmus anhand von ainet) Wie der Ausdruck Netzwerk bereits suggeriert, handelt es sich hierbei um eine Art Graph, bei der verschiedene Elemente (in dem Fall Antikörper) voneinander abhängig sind. Das erste Mal wurde dieses Prinzip von Jerne im Jahr 1974 vorgeschlagen.

153 Künstliche Immunsysteme 149 Kurz zusammengefasst beschreibt es ein Verfahren, bei dem sich ein Immunsystem auch in Abwesenheit von Antigenen selbst reguliert. Generell unterscheidet man zwischen diskreten und konstanten Modellen. Erstere werden hauptsächlich zu dem Zweck des Problemlösens entwickelt, da sie variabel in der Anzahl und der Struktur ihrer Elemente sind - sie sind sozusagen lernfähig. Konstante Modelle basieren hingegen überwiegend auf Differentialgleichungen und werden überwiegend zur Simulation eines Immunsystems ein- gesetzt. ainet (Artificial Immune Network) ist ein lernender Algorithmus, bei dem es sich, um ein diskretes Modell handelt. Jeder Knoten in einem ainet Graph repräsentiert einen Antikörper, welcher durch z.b. einen String oder einen Vektor dargestellt wird. Diese Antikörper treten dabei in Gruppen auf (so genannte Cluster), die gemeinsam ein internes Abbild von den für dieses Netzwerk verwendeten Daten darstellen. Die Kanten zwischen den Knoten geben die Affinität an (siehe Abbildung 13). Initialisiert wird dieser Algorithmus mit einer Menge von zufällig erzeugten Antikörpern. Der Algorithmus durchläuft anschließend folgende Schritte mehrere Male (man beachte nochmals: Im Gegensatz zum Immunsystem, in welchem die Erkennung über eine komplementäre Reaktion erfolgt, wird dies hier über eine Ähnlichkeitsmessung umgesetzt): Berechne für ein Antigen die Affinität zu jedem vorhandenen Antikörper und wähle diejenigen Antikörper mit der größten Affinität aus. Diese werden geklont (siehe klonale Selektion) sowie Antikörper, die körpereigene Zellen erkennen, eliminiert. Anschließend wird das neue Set an Gedächtniszellen mit dem schon bestehenden Set zusammengeführt und auf Ähnlichkeiten zwischen bestehenden und neuen Antikörpern hin überprüft. Das so trainierte Netzwerk besitzt anschließend für jedes ihm präsentierte Antigen ein internes Bild. Wie auf Abbildung 13 erkennbar ist, besteht das finale Netzwerk aus meist wesentlich weniger Zellen als Daten in der ursprünglichen Datenmenge vorhanden waren, weshalb diese Architektur auch für Datenkompression verwendet werden kann. 3.5 Die Konstruktion eines künstlichen Immunsystems Im Folgenden werden die einzelnen Schritte zur Konstruktion eines künstlichen Immunsystems nacheinander beschrieben. Auf jeden Schritt folgt die Anwendung der Theorie anhand eines Beispiels aus der Mustererkennung. Die beiden Zeichen 1 und 4 (im Computer durch ein 3x4 Bitmuster dargestellt, siehe Abbildung 14) sollen erkannt werden. Dabei entsprechen die schwarzen Pixel der binären 1 und die weißen der 0. Im bisherigen Verlauf der Arbeit bereits vorgekommene Algorithmen werden dazu teilweise nochmals anhand des Beispiels beschrieben.

154 150 R. Mayr, W. Fischer Abbildung 13. Bild a) präsentiert eine Datenmenge mit drei Klustern von hoher Dichte. Bild b) zeigt ein Netzwerk, bestehend aus nummerierten Zellen und der Affinität auf den Kanten. Die gestrichelten Linien zeigen Verbindungen, die entfernt werden können, um schließlich einzelne Subgraphen für jeden Cluster aus der Datenmenge zu erhalten. Abbildung 14. Muster der Ziffern 1 und Problembeschreibung Die erste Aufgabe ist es, das Problem, für welches ein Künstliches Immunsystem (AIS) konstruiert werden soll, genau zu beschreiben. Dazu müssen alle Elemente, die eingebunden werden sollen, bestimmt werden. Zu diesen gehören Variablen, Konstanten, Funktionen, Agenten und Parameter. Oftmals können nicht alle Elemente zu Beginn schon festgelegt werden, weshalb diese Liste im Laufe der Konstruktion meist kontinuierlich aktualisiert wird. Beispiel Das Problem ist das Entwickeln eines Systems, das die beiden Bilder identifizieren kann. Zwei Elemente müssen für die Konstruktion des AIS bestimmt werden: Die beiden Muster, die erkannt werden sollen und die Komponenten des Künstlichen Immunsystems, die die Pattern identifizieren sollen Welches Immun-Prinzip wird verwendet? Die Modelle und Algorithmen, die in Abschnitt 3.3 vorgestellt wurden, können für verschiedene Bereiche eingesetzt werden. Durch Variation der Basis-Algorithmen können auch neue Algorithmen entwickelt werden. Beispiel Um die Theorie zu verdeutlichen, werden im Folgenden zwei AIS für das bestehende Problem erstellt. Das Erste verwendet den Negative Selektions Algorithmus, um eine Menge an Elementen zu erhalten, das die Muster, welche mit den Ziffern 1 und 4 übereinstimmen, nicht erkennt. Die Idee dabei ist, ein AIS zu entwickeln, das solche Muster identifiziert, die Anomalien zu den Pattern 1 und 4 darstellen. Das zweite AIS wird den Klonale

155 Künstliche Immunsysteme 151 Selektions Algorithmus anwenden, um ein Repertoire an Antikörpern bereitzustellen, das ausschließlich die Muster 1 und 4 oder geringe Abweichungen dieser erkennt Welche Komponenten werden benötigt? Die meisten schon eingesetzten Anwendungen benutzen nur einen bestimmten Zell-Typ. Normalerweise ist dies die B-Zelle (oder ein Antikörper) und ein Antigen. Es können aber beliebige Typen, wie T-Zelle, Lymphozyten, Knochenmark oder Thymus modelliert werden. Beispiel Fall 1: Der Negative Selektions Algorithmus Das Ziel des Negative Selektions Algorithmus ist, ein verfügbares Repertoire A aus T-Zellen (Self Strings) zu generieren, das nur Muster erkennt, die weder mit den gesuchten Mustern noch mit körpereigenen Zellen übereinstimmen (siehe 3.4.4). Der Datentyp der beiden Ziffern 1 und 4 ist ein protected String (Zeichenketten, die nur in einem bestimmten Umfeld bekannt sind). Die beiden Ziffern gehören zur Menge S der körpereigenen Strings. Zusätzlich wird eine andere Menge P an Strings (neue Antikörper) generiert und mit der Menge S verglichen. Dabei darf kein String der Menge P einen String der Menge S erkennen. Die beiden Pattern 1 und 4 sind also völlig unbekannt für die Menge P. Insgesamt sind in A die Strings von P, die keinen String der Menge S erkennen können. (Siehe Abbildung 15) Abbildung 15. Negative Selektion Fall 2: Der Klonale Selektions Algorithmus Im Gegensatz zur negativen Selektion (siehe 3.4.3) stellt die Klonale Selektion ein Repertoire an Zellen bereit, das die gesuchten Muster erkennt. Jedes Muster der Menge S stellt dabei ein Antigen dar, welches von der jeweiligen B-Zelle bzw. Antikörper der Menge P gebunden werden kann.

156 152 R. Mayr, W. Fischer Die mathematische Definition Der Formalismus des Formenraums (näheres hierzu vgl. Kapitel 3.5 [1]) ermöglicht die mathematische Repräsentation von Immunzellen und Molekülen. Ein Formenraum ist ein Konzept zur Beschreibung der Interaktion zwischen Molekülen des Immunsystems und den Antigenen. Das Immunsystem fungiert hierbei in erster Linie als Mustererkennungssystem, welches die Aufgabe der Erkennung von bestimmten Strukturen hat. Beispiel Die beiden Ziffern werden im Binären Hamming-Formenraum dargestellt. Jede Ziffer ist hierbei ein Bild, bestehend aus 12 Bit, angeordnet in einer Matrix aus 3 Spalten und 4 Reihen. Um das Beispiel anschaulicher zu machen, werden im Folgenden die 4 Spalten von s 1 (Ziffer 1) und s 2 (Ziffer 4) nebeneinander geschrieben, so dass eine Matrix mit zwölf Spalten und zwei Reihen entsteht (Siehe Abbildung 16). Abbildung 16. Hamming Formenraum Anwendung der Immun-Prinzipien Das in Schritt 2 ausgewählte Modell und der jeweilige Algorithmus werden umgesetzt und implementiert. Beispiel Das potenzielle Repertoire P, das mit einem Zeichen, bestehend aus 12 Bit, generiert werden kann, hat eine Kardinalität von 2 12, also 4096 Elemente. Um die Affinität zwischen diesen zahlreichen Antigenen und den Antikörpern aus A berechnen zu können, benötigt man die Hamming-Distanz, die die Anzahl an komplementären Bits bestimmt (siehe Abbildung 17). Sie gibt somit an, wie hoch die Affinität zwischen einem Antikörper und einem Antigen ist. Wie diese berechnet wird, sieht man in Abbildung 18. Abbildung 17. Die Hamming-Distanz

157 Künstliche Immunsysteme 153 Abbildung 18. Berechnung der Affinität mit der Hamming-Distanz Ein Element aus S kann von einem Element aus P nur dann identifiziert werden, wenn die Hamming-Distanz D = L ɛ, wobei L die Länge 12 der Bitanzahl des Bildes und ɛ ein festgelegter Schwellwert ist. Das bedeutet, dass die Affinität zwischen den zwei komplementären Strings (s 1 und s 2 ) gemessen wird. Sei ɛ = 1, bedeutet das, dass zwei Strings als gleich gelten, auch wenn sie sich in einem Bit unterscheiden. Beide Algorithmen (die Negative und Klonale Selektion) starten mit einer Matrix P, die mit den jeweilig korrespondierenden Bitmaps in Abbildung 19 dargestellt ist. Um die Affinität zwischen allen Elementen aus P in Relation zu den Elementen aus A zu setzen, wird eine Matrix M mit den einzelnen Affinitäten berechnet (siehe Tabelle 1). Tabelle 1. Beispiel zur Berechnung der Hamming-Distanz D p 1 p 2 p 3 p 4 p 5 s s Dabei bezieht sich der Wert von (m 11 ) auf die Affinität zwischen s 1 und dem ersten Element aus P, m 12 auf s 1 und dem zweiten Element aus P, usw. Mit dem Schwellwert 1 erkennen die Elemente P 1 und P 4 das Muster 1 (m 11 und m 14 ) und P 2 das Muster 4 (m 22 ) (siehe Abbildung 19). Fall 1: Der Negative Selektions Algorithmus Alle Elemente von P, die Elemente aus S erkennen, werden eliminiert. Das verfügbare Repertoire besteht also aus A = P 3, P 5. Anschließend gelten alle Muster, die von A erkannt werden, als Non-Self. Fall 2: Der Klonale Selektions Algorithmus (siehe Kapitel 3.4.6) Mit dem ersten Element s 1 aus S wird der Algorithmus schrittweise demonstriert. Schritt 1 und Schritt 2 sind schon durchgeführt: P ist definiert und die Affinitäten werden in der Matrix M aufgelistet. Die besten n Kandidaten werden als n 1 = 3 und n 2 = n 3 = 1 festgelegt. Im Schritt 3 werden s 1 die Elemente mit der höchsten Affinität (n 1 = 3) aus P zugeteilt. Dies sind P 1, P 4 und P 5 (m 11, m 14 und m 15 ). Aus P 1 gehen danach drei Klone, aus P 4 zwei und aus P 5 ein Klon hervor. Je höher also die Affinität ist, desto mehr Klone entstehen (siehe Abbildung 20). In Schritt 4 werden die Klone verändert. Je höher hier die Affinität ist, desto geringer mutieren die Klone. Schritt 5 und Schritt 6: Alle veränderten

158 154 R. Mayr, W. Fischer Abbildung 19. Immunprinzipien Abbildung 20. Generierte Klone Elemente, die maximale Affinität zu s 1 haben, können als Memory-Cells des Systems für das Muster s 1 ausgewählt werden. Das erste Element von Klon 2 oder Klon 3, die die niedrigste Affinität haben, wird so durch ein zufällig generiertes Element ausgetauscht (siehe Abbildung 21). Abbildung 21. Veränderte Klone Metadynamik Das Immunsystem ist insofern metadynamisch, weil kontinuierlich neue Zellen und Moleküle in das System eintreten, während andere absterben oder beseitigt werden. Diese Metadynamik ist besonders wichtig bei

159 Künstliche Immunsysteme 155 Immunnetzwerken (siehe Abschnitt 3.4.7) und kann als generelles Verfahren zur Aufnahme von neuen Komponenten sowie zur Eliminierung von nutzlosen Elementen eines künstlichen Immunsystems gesehen werden. Auf diese Weise kann ein künstliches Immunsystem ständig seine Struktur dynamisch verändern. Beispiel Die Metadynamik trifft auf die Negative Selektion nicht zu. Bei der klonalen Selektion entspricht sie dem Ersetzungsschritt (Schritt 6 ) Umkehrabbildung ( Reverse Mapping ) Nach der Anwendung eines künstlichen Immunsystems auf ein Problem ist es manchmal nötig, das Resultat zu interpretieren oder zu dekodieren. Dieses Verfahren nennt man Reverse Mapping. Beispiel Die Elemente von der Menge P werden in ihr Komplement umgewandelt. Damit stellen sie Kopien der Muster in S dar (siehe [1], [8], [11]). 4 Anwendungsbeispiele Die Algorithmen, die durch das Forschungsgebiet der künstlichen Immunsysteme entstanden sind, besitzen heutzutage eine weitreichende Relevanz und kommen auch in der freien Wirtschaft zum Einsatz. Die folgenden Kapitel sollen deshalb einen Einblick über die möglichen Anwendungsgebiete der künstlichen Immunsysteme in der Praxis geben. 4.1 Immunity Based Aircraft Fault Detection System (Negative Selection) Mehr als 10 Flugzeuge sind in den letzten 30 Jahren durch größere Flugkontroll System Fehler abgestürzt, was insgesamt mehr als 1100 Menschen das Leben kostete (siehe [17]). Die NASA startete deshalb 1992 das IFC (Intelligent Flight Control) Programm, um solche plötzlich und unerwartet auftretenden Fehler schneller erkennen und diesen automatisch entgegen steuern zu können. Um die Fehlererkennung zu verbessern erweiterte man das bestehende Programm um den Ansatz der negativen Selektion. Diese hilft dabei, Abweichungen von sicheren Flugmustern zu erkennen und entsprechende Gegenmaßnahmen einzuleiten. Der Algorithmus wird dabei mit Flugdaten von als sicher bekannten Flügen trainiert, um damit eine Menge von Detektoren zu erstellen, die möglichst jede Art von Abnormalität im Flugverhalten erkennen soll. Das Ziel ist es, eine möglichst kleine Menge an Detektoren für schon bekannte sowie eine große Menge für unbekannte Fehler zu erhalten Real-Valued negative Selection Algorithm In Anlehnung an die negative Selektion (siehe 3.4.4) verwendete man für diesen speziellen Einsatz einen real-valued negative Selection Algorithm (RNS). Ein Detektor wird in

160 156 R. Mayr, W. Fischer diesem Fall durch einen n-dimensionalen Vektor dargestellt, der in einem R n Raum zwischen [0, 1] n existiert. Er stellt dabei das Zentrum eines Kreises mit variierendem Radius dar. Um eine möglichst gute Fehlererkennung zu gewährleisten muss die Detektormenge so trainiert werden, dass sie bestmöglich den kompletten Raum an Fremdkörpern abdeckt. Dies wird durch einen iterativen Prozess erreicht, der die Position eines Detektors unter folgenden zwei Bedingungen kontinuierlich optimiert: 1. Bewege den Detektor weg von eigenen Punkten 2. Die Detektoren sollen möglichst voneinander getrennt bleiben um die Abdeckung des fremden Raumes zu maximieren Die Detektorgenerierung beginnt mit einer initialen Menge zufällig erstellter Detektoren, welche durch den iterativen Prozess reifen. Die Position der Zentren wird zufällig gewählt. Der Radius bestimmt sich durch die euklidische Distanz zu seinen nächsten Nachbarn in der Trainingsmenge. Daraufhin durchläuft der Algorithmus folgende Schritte in jeder Iteration: Das Zentrum eines jedes Detektors wird nacheinander justiert, indem man ihn von Trainingsdaten und anderen Detektoren entfernt. Dies wird solange fortgeführt, bis die Menge an abgedecktem Raum stabilisiert bzw. maximiert ist. Die Detektoren werden daraufhin nach der Größe ihres Radius geordnet. Basierend auf dieser Ordnung bestimmt ein Algorithmus eine neue Population von Detektoren, indem er aus der Menge an bekannten Detektoren diejenigen auswählt, die einen großen Radius sowie eine möglichst geringe Überschneidung mit anderen Detektoren besitzen und erzeugt aus ihnen eine neue Generation. Detektoren mit einem kleinen Radius werden gelöscht und durch besser angepasste Klone ersetzt. Die neuen Klone eines Detektors werden über eine fixe Distanz bewegt, um später in der näheren Umgebung um seine Position herum neue Detektoren zu produzieren. Zusätzlich werden durch die Einführung einiger zufällig erstellter Detektoren bisher nicht abgedeckte Gebiete des Raums belegt Failure Detection Da es sich bei der Luftfahrt um ein sehr zeitkritisches Unterfangen handelt, müssen entsprechende Systeme auch echtzeitfähig sein. Der bis dato eingeschlagene Weg umfasst ein neurales Netzwerk für die Flug- und Antriebskontrolle. Jedoch kann die tote Zone bzgl. der Kontrolle eines fehlerhaften Flugzeugs mit dem bestehenden System nicht ausreichend erkannt werden. An diesem Punkt setzt RNS an und versucht, diese Fehler rechtzeitig zu bestimmen, so dass das IFC anschließend mit den verbleibenden Flugressourcen das Flugzeug in einer stabilen Fluglage halten kann Experimente und Resultate Das System wurde in einem Boeing Simulator der NASA eingebaut und dort durch erfahrene Air Force Piloten getestet. Dabei wurden die Fehler aus Tabelle 2 simuliert. Sämtliche Tests wurden

161 Tabelle 2. Simulierte Fehler Künstliche Immunsysteme 157 Flugstatus Fehlerort Charakteristik Landung Heck Ausfall des kompletten Hecks. Landung Flügel Ausfall von zwei Querrudern Start Triebwerk Ausfall von zwei Triebwerken auf einer Seite mit der selben Anzahl von Detektoren durchgeführt (103), um die Effektivität dieser bestimmen zu können. Dabei wurden die Resultate aus Tabelle 3 erzielt. Diese Ergebnisse zeigen zum einen, dass eine sehr hohe Trefferquote mit einer verhältnismäßig geringen Rate an falschen Alarmen erzielt werden kann. Ebenso ist zu erkennen, dass je größer die Auswirkungen des Fehlers auf die Fluglage sind, desto besser kann er detektiert werden - der Ausfall der Triebwerke besitzt mit 97,8% eine sehr hohe Erkennungsquote, wohingegen der Ausfall nur einer Heckfunktion mit 91,8% auf eine signifikant geringere Erkennungsrate hinausläuft. Tabelle 3. Resultate der Tests zur Fehlererkennung Fehler Typ Aktivierte Erkennungsrate Falscher Alarm Detektoren (Durchschnitt) (Durchschnitt) Triebwerk 10 97,8% 0,15% Heck (3) 9 94,7% 0,76% Heck (1) 7 91,8% 1,04% Flügel (3) 3 95,6% 0,43% 4.2 Recognition of Handwritten Indic Script using Clonale Selection Algorithm Automatische Erkennung von handgeschriebenem Text ist ein Thema, welches heutzutage an verschiedensten Orten von Bedeutung ist (z.b. bei PDAs). Leider muss dabei der Benutzer entweder eine besondere Schriftsprache erlernen, die nur bedingt etwas mit seinem normalen Alphabet (z.b. das Deutsche Alphabet) zu tun hat oder die Erkennungsrate ist häufig signifikant schlechter, da jeder Mensch eine eigene Art hat, ein und den selben Buchstaben zu schreiben. Dies ist ein potentielles Anwendungsgebiet für künstliche Immunsysteme, insbesondere den klonalen Selektions Algorithmus. Der folgende Abschnitt behandelt eine Abwandlung der klonalen Selektion, die dazu verwendet wird, zehn verschiedene handgeschriebene indische Zahlen zu erkennen. In Experimenten wurde dabei eine Erkennungsrate von 96% erreicht [18].

162 158 R. Mayr, W. Fischer Algorithmus - Einführung Der Algorithmus unterscheidet sich von der zuvor beschriebenen klonalen Selektion durch einen zusätzlichen Verfeinerungsschritt während der Trainingsphase. Dabei splittet sich die Trainingsphase in zwei Unterphasen: Zuerst erfolgt Phase 1, in der die Initialisierung des Immungedächtnis, die Klon Generierung sowie die Selektion der Klone erfolgt. Anschließend folgt Phase 2, in der das in Phase 1 gewonnene Immungedächtnis verbessert wird. Man beachte, dass die Phase 1 insgesamt nur ein einziges Mal durchlaufen wird Phase 1 Initialisierung Diese Phase dient der Initialisierung des Immunsystems. Dazu wird aus jeder Klasse (jede Zahl des indischen Alphabets stellt eine Klasse dar, ergo existieren in diesem Fall zehn Klassen) nur ein einziges Antigen genommen. Generierung der Klone Für ein Antigen ag i wird unter allen Gedächtniszellen diejenige gesucht, die die größte Reaktion auf dieses Antigen zeigt: m match. Diese Gedächtniszelle wird anschließend durch Hypermutation vermehrt und so Klone von ihr erstellt. Keiner der so erstellten Klone ist eine exakte Kopie von m match. Die Mutationen werden durch benutzerdefinierte Parameter kontrolliert. Selektion Sobald das Training für ein Antigen (siehe letzter Punkt) abgeschlossen ist, wird der am meisten stimulierte Klon als Kandidat für das Immungedächtnis ausgewählt Phase 2 Verfeinerung Das in Phase 1 gewonnene Immungedächtnis wird herangezogen und nochmals allen Antigenen ausgesetzt, wobei eine spezielle Klassifizierungsstrategie zum Einsatz kommt: Jedes Antigen ag wird nochmals jedem m i des Immungedächtnis ausgesetzt und die Stimulation gemessen. Die km i mit der größten Stimulation werden ausgewählt und basierend auf ihren Klassen gruppiert. Die Gruppe mit der größten Menge an Gedächtniszellen repräsentiert ag. Die Klasse der so gewonnenen Gruppe und die des Antigens werden verglichen. Stimmen sie nicht überein (sprich wird die Zahl 1 von mehr Antikörpern der Klasse 2 erkannt), so unterläuft das Antigen nochmals die komplette Phase 1. Das so geupdatete Immungedächtnis wird nochmals der Klassifizierungs- Strategie unterworfen. Hat das neu gewonnene Immungedächtnis eine bessere Erkennungsrate als das Alte, wird es beibehalten, ansonsten verworfen. Es wurde beobachtet, dass diese Verfeinerungsphase über ein paar Iterationen Verbesserungen mit sich bringt, anschließend aber in der Erkennungsrate sinkt - man spricht von einem negativen Lerneffekt.

163 Künstliche Immunsysteme Ergebnisse Der Algorithmus wurde auf zwei verschiedenen Datensets (D1 und D2) angewandt, von denen der eine mit Devanagri und das andere mit Bengali (je eine Indische Schriftart) erstellt wurden. Die Proben, die herangezogen wurden, bestanden dabei jeweils aus Beispielen. Die Experimente wurden zusätzlich mit zwei unterschiedlichen Trainingsmethoden erstellt: Einmal L1, welches nur aus Phase 1 bestand und zusätzlich L2, welches den Verfeinerungsprozess zusätzlich beinhaltete. Auf einem Pentium IV System (733 MHz, 128 MB RAM) konnten somit ca. 50 Zeichen pro Sekunde erkannt werden (siehe 4). Dabei lag die Erkennungsgenauigkeit von Variante L1 bei ca. 93%, während Variante L2 auf ca. 96% kam (siehe 5). Tabelle 4. Benötigte Zeit für Training und Klassifizierung der zwei Algorithmen Trainingsdauer Zeichen / Sekunde Datensatz L1 L2 L1 L2 D1 5 H 14 Min 7 H 05 Min D2 5 H 19 Min 7 H 22 Min Tabelle 5. Erkennungsgenauigkeit und Größe des Immungedächtnisses Erkennungsgenauigkeit Größe des Immungedächtnis Datensatz L1 L2 L1 L2 D1 93,31% 96,23% D2 92,57% 95,68% AISIMAM - An Artificial Immune System Based Intelligent Multi Agent Model and its Application to a Mine Detection Problem Künstliche Immunsysteme eignen sich häufig für die Anwendung im Bereich der so genannten Agenten Systeme, da sie teils große Ähnlichkeiten aufweisen wie zum Beispiel: Beide stellen verteilte oder dezentralisierte Systeme dar Beide besitzen mehrere autonome Einheiten Beide besitzen individuelle und globale Ziele Beide Systeme lernen aus der Erfahrung Diese Ähnlichkeiten waren auch die Grundmotivation für die Forschung an AISI- MAM (Artificial Immune System for Intelligent Multi Agent Model). Die folgenden Kapitel geben zuerst einen kurzen Überblick über die allgemeine Definition

164 160 R. Mayr, W. Fischer von Agenten. Anschließend wird auf den Aufbau des AISIMA Modells eingegangen und daraufhin die praktischen Einsatzmöglichkeiten des Konzepts anhand eines Beispiels zum Aufspüren und Entschärfen von Minen (siehe [21]) dargestellt Agenten Was genau ein Agent ist, lässt sich nicht exakt abgrenzen, bzw. es existiert keine eindeutig gültige Definition. Eine mögliche Definition jedoch lautet wie folgt: Agents that operate robustly in rapidly changing, unpredictable, or open environments, and where there is a significant possibility that actions can fail are known as intelligent agents or sometimes called autonomous agents (Bond & Gasser, 1998). Wichtig für einen Agenten ist die Umgebung, in welcher er agiert und wie exakt und akkurat er Informationen aus dieser Umgebung extrahieren kann. Agenten können dabei sowohl alleine als auch in Gruppen, so genannten Multi Agenten Systemen (MAS) auftreten. Das Ziel von MAS ist es, ein gemeinsames Ziel zu verfolgen, bzw. durch die Aktionen der Einzelnen das globale Ziel zu erreichen. Typische Charakteristiken, deren Agenten dabei je nach Anforderung fähig sein müssen, sind z.b. autonomes Verhalten, Schlussfolgerungen ziehen, Lernen, miteinander kommunizieren etc., wobei diese Bereiche je nach Anwendungsgebiet und Agententyp unterschiedlich stark ausgeprägt sind AISIMAM - Einführung Das AISIMA Modell definiert zwei Agententypen: Non-Self Agents (NAGs, analog zu Antigen) und Self Agents (SAGs, analog zu Antikörpern). Die Umgebung wird als eine Matrix definiert, in der sowohl NAGs als auch SAGs operieren. Jeder NAG enthält einen Vektor mit Informationen (Epitop), der z.b. einen Virus in einem Computernetzwerk oder ähnliches darstellen kann. Ebenso besitzt jeder SAG einen Informationsvektor, der bei diesem das Ziel der jeweiligen Einheit definiert (z.b. eine Koordinate, ein Datum etc.). Eine einzelne Aktion einer SAG kann dabei mit einer Veränderung der Rezeptorhülle gleichgesetzt werden, wohingegen eine koordinierte Aktion von mehreren SAGs analog zu einer Gruppe Antikörper wäre, welche ein Antigen unschädlich machen. Wichtig ist, dass die SAGs sensorische Fähigkeiten besitzen, um NAGs in ihrer Nähe zu identifizieren. Es wird dabei angenommen, dass die Reichweite zur Kommunikation mit anderen SAGs größer ist als die Reichweite ihrer Sensoren, um NAGs aufzuspüren. Die Kommunikation lässt sich dabei mit der Fähigkeit der Antikörper vergleichen, Informationen weiter zu geben - Die SAGs kommunizieren also in einem Netzwerk (siehe 3.4.7). Das Agenten Modell beschreibt fünf Prozessphasen: Muster Erkennung SAGs erkennen die Präsenz eines NAG und identifizieren es. Bindung Die Affinität zwischen der Aktion des SAG und NAG wird errechnet

165 Künstliche Immunsysteme 161 Aktivierung Wird in der vorherigen Phase ein gewisser Schwellwert überschritten, so wird eine Reaktion eingeleitet. Nach Aktivierung Die aktivierten Agenten werden geklont. Abschluss Hypermutation wird durchgeführt. Eine gewisse Ähnlichkeit zur klonalen Selektion ist auf den ersten Blick ersichtlich Minen Erkennung Um zu zeigen, dass das konzeptuelle Modell auch in praxisrelevanten Anwendungen lauffähig ist, wird als Beispiel die Erkennung von Minen herangezogen. Die Minen selbst werden durch NAGs repräsentiert. Der Informationsvektor enthält dabei die Position der Mine. Weitere Charakteristiken der Mine sind unter anderem stationär und unfreundlich. Sollte eine Mine komplett von Robotern umstellt sein wird sie als entschärft betrachtet. Ein SAG wiederum stellt einen Minen-Roboter dar. Der Informationsvektor der SAGs wird mit der initialen Position des Roboters belegt. Als Charakteristiken werden unter anderem umherziehend, unabhängig und kooperativ ausgewählt. Es wird angenommen, dass die SAGs die Minen wahrnehmen können und untereinander kommunizieren können. Sobald ein SAG eine Mine findet, wird diese Information an alle anderen SAGs weitergeleitet Ergebnisse Das Experiment wurde mit verschiedenen Parameter Settings durchgeführt und zeigte, dass das AISIMAM Modell fähig ist, dieses Problem zu lösen. Die Anzahl der benötigten Algorithmen-Iterationen variierte dabei mit den Werten der Parameter. Insbesondere durch eine Vergrößerung der Kommunikations- und Sensorik- Reichweite konnten die Agenten die in der Umgebung verteilten Minen schneller entschärfen - das Mehr an Informationen sorgte für ein schnelleres Aufklären der Umgebung und somit Finden der Minen. 4.4 Self-Protection - A Bio-Inspired Approach for Self-Protecting an Organic Middleware with Artificial Antibodies Der letzte Abschnitt zeigte bereits, wie künstliche Immunsysteme in den Bereich der Agenten Systeme einfließen und dort z.b. die Organisation beeinflussen können. Ein weiteres interessantes Anwendungsgebiet für künstliche Immunsysteme stellt die Verwirklichung von Self Eigenschaften im Bereich des Autonomic and Organic Computing dar: Durch den Einsatz von unter anderem zuvor genannten Algorithmen werden Self Eigenschaften wie z.b. Selbstschutz, Selbstheilung etc. erreicht und somit das autonome Handeln eines Systems verbessert bzw. teilweise erst ermöglicht Einführung Größere zentrale Systeme wie das in den folgenden Kapiteln noch genauer beschriebene Service orientierte Organic Middleware System (siehe [20]) können durch den Einsatz von künstlichen Immunsystemen effizient Selbst-Eigenschaften erreichen, um sich prophylaktisch vor Viren und Würmern

166 162 R. Mayr, W. Fischer zu schützen - man versucht, die eigentliche Infektion des Systems durch Viren zu verhindern ( Das Übel bei der Wurzel packen ). Was im Gegensatz dazu passieren kann, wenn erst die Symptome behandelt werden (sprich der Versuch unternommen wird, ein bereits infiziertes System wieder von Viren zu befreien), zeigt der berühmt berüchtigte Fall des Melissa Virus: Im Frühjahr 1999 versendete dieser nicht nur vertrauliche Dokumente von befallenen Rechnern an beliebige Empfänger, sondern stellte auch die Hersteller von Antiviren Systemen durch die große Verbreitung an infizierten Rechnern vor große Probleme: Sie waren dem Ansturm an Update Anfragen schlicht nicht gewachsen (siehe [19]). Die Menge an Anfragen hätte in diesem Fall einfach unterbunden werden können, wenn die eigentliche Ausbreitung des Virus eingedämmt worden wäre. Diese Forderung verlangt bei klassischen Antivirensystemen allerdings, dass der Virus bekannt, eine Signatur von ihm vorhanden sowie auf den entsprechenden PCs verfügbar ist, bevor der Virus sich selbst weiter versenden kann - eine gerade bei bisher unbekannten Viren nahezu unmögliche Aufgabe. Die folgenden Kapitel zeigen deshalb eine Möglichkeit, ein sich selbst schützendes System zu entwickeln Konzept des verwendeten künstlichen Immunsystems Im biologischen Immunsystem werden Antikörper erstellt und im Thymus ausselektiert, sofern sie körpereigene Zellen angreifen. Dieses Verfahren wurde nicht in die Organic Middleware übernommen, da dieser Weg, sämtliche erzeugten Antikörper erst durch einen Thymus zu schleusen, zusätzlichen Aufwand bedeutete. Statt dessen werden die Antikörper strukturiert erschaffen, d.h. die Rezeptor Muster der Antikörper werden von Anfang an so erstellt, dass sie keine systemeigenen Nachrichten erkennen können. Dieses Prinzip funktioniert deshalb, weil sich die Middleware aller eigenen Nachrichten bewusst ist. Ein Problem bei eingehenden Nachrichten ist, dass sie unterschiedliche Längen besitzen, d.h. sie müssen erst auf eine einheitliche Länge reduziert werden. In diesem Fall wird dafür ein Hash-Algorithmus verwendet. Um eine möglichst hohe Erkennungsrate der Antikörper zu gewährleisten, wurden verschiedene Tests in einer Simulationsumgebung durchgeführt, um die Länge und den jeweiligen Offset eines Antikörpers für eine bestmögliche Erkennungsrate zu bestimmen. Dabei stellte sich heraus, dass Antikörper weder eine fixe noch eine zufällig bestimmte Länge besitzen dürfen. Die Länge korreliert direkt mit der Anzahl S an systemeigenen Nachrichten - sie sollte <= log 2 S sein (siehe 22). Wird die Länge der Rezeptoren im Verhältnis zu der systemeigenen Nachrichtenzahl zu groß, werden die generierten Antikörper zu speziell und erkennen immer weniger systemfremde Nachrichten. Ebenso ist die Bestimmung des optimalen Offsets nicht ganz trivial. Die einfachste Variante, immer einen fixen Offset zu verwenden, ist dasselbe, als wie wenn ein Rezeptor dieselbe Länge wie eine Nachricht besitzen und immer ab Offset 0 verglichen werden würde. Die besten Resultate zeigten sich, wenn der Offset variabel gewählt wurde.

167 Künstliche Immunsysteme 163 Abbildung 22. Rezeptor Länge in Abhängigkeit von der Anzahl systemeigener Nachrichten Optimierung Ein Problem bei der allgemeinen Anwendung betrifft den Speicherverbrauch der Antikörper, der allerdings durch Wildcards drastisch verringert werden kann: Antikörper, die den selben Offset, aber an ein oder zwei Positionen unterschiedliche Rezeptoren besitzen, können zu einem Antikörper mit entsprechend ein oder zwei Wildcards verschmolzen werden. Auf diese Art und Weise konnten 30% der Antikörper eingespart werden. Betrachtet man den Körper und vergleicht die Art und Weise, wie in einem normalen biologischen System Antikörper Fremdkörper entdecken (alles spielt sich in einer dreidimensionalen Umgebung ab, in der Antikörper andauernd an andere Elemente andocken) und vergleicht diesen Vorgang mit einem klassischen eindimensionalen Computer, wird klar, dass ein Computer einigen Limitierungen unterworfen ist. Der klassische Weg, sämtliche Antikörper in einem Array zu speichern und der Reihe nach für jede neue Nachricht einzeln zu durchlaufen ist nicht sonderlich effizient. Deshalb wurde für die Speicherung der Antikörper ein binärer Baum integriert, der auf Basis der Unterschiedlichkeit der Antikörper an den verschiedenen Offsets aufgebaut ist. Befindet sich beim Durchlaufen des Baums ein vollständiger Pfad von der Wurzel bis zu einem Blatt, so wurde ein Antikörper gefunden und eine Nachricht als Fremdkörper identifiziert. Die Ausführungsgeschwindigkeit verbesserte sich dadurch um den Faktor 30 verglichen zur linearen Methode Integration in das Framework Die Organic Middleware ist eine nachrichten-basierte Middleware. Sämtliche Nachrichten, die das System entweder verlassen oder in dieses eingehen, müssen den sogenannten Event Dispatcher durchlaufen. Dieser ermöglicht das Einbinden von unterschiedlichen Monitoren, die die verschiedenen Nachrichten analysieren können. Es bietet sich

168 164 R. Mayr, W. Fischer somit an, auch das künstliche Immunsystem über einen solchen Monitor in die bestehende Middleware einzubinden, da somit zum einen eine einfache und saubere Integration gewährleistet als auch eine klare Trennung zwischen eigentlicher Middleware und den Diensten vorhanden ist. Zum aktuellen Zeitpunkt besteht das Eindringling-Erkennungs System aus drei Komponenten: Thymus Der Thymus ist als ein Service in der Middleware realisiert worden und generiert sämtliche Antikörper einer Middlewareinstanz. Er hat die Möglichkeit, sämtliche lokalen Services sowie mit dieser Middleware verbundene andere Thymuse nach deren bekannten systemeigenen Nachrichten zu fragen. Ebenso kann er selbst anderen Thymusen seine bekannten Nachrichtentypen schicken. Immun Instanz Diese Komponente kümmert sich darum, ob Nachrichten akzeptiert werden dürfen oder nicht. Dazu speichert es Antikörper intern ab und vergleicht diese mit ankommenden Nachrichten. Eindringling Erkennungs Monitor Dieser Monitor wird in den Event Dispatcher eingehängt und fängt die eingehenden Nachrichten ab. Diese werden an den Immun-Service weitergeleitet, der entscheidet, ob eine Nachricht angenommen werden darf oder nicht Effizienz des künstlichen Immunsystems Um sich die Performance des Systems mit der Integration des künstlichen Immunsystems anzuschauen muss zuerst beachtet werden, dass aufgrund der Rechenintensivität der Antikörpergenerierung diese auf einen anderen Knoten ausgelagert werden sollte und somit nicht weiter beachtet werden muss. Die Testmessungen ergaben einen um 0,3% bis 1,3% erhöhten Zeitbedarf im Gegensatz zur normalen Nachrichtenverarbeitung. Die Messungen wurden auf einem System durchgeführt, welches ca systemeigene Nachrichten, Antikörper sowie zufällig generierte Nachrichten beinhaltete. Alles in allem konnte eine Erkennungsrate von bis zu 99,3% in einigen Testszenarien beobachtet werden. 5 Fazit und Ausblick Die vorangegangenen Kapitel haben einen komprimierten Überblick über die Theorie hinter künstlichen Immunsystemen, deren Entwicklung, die bekanntesten Algorithmen und ihren Einsatz in der Praxis gegeben. Weiterhin wurden Möglichkeiten gezeigt, die Konzepte hinter künstlichen Immunsystemen in anderen Teilbereichen wie Multi Agenten Systemen zu integrieren oder Self - Eigenschaften in einem Computersystem zu realisieren. Es zeigte sich, dass trotz der zusätzlichen Belastung für die Computer eine nur minimale Abnahme der Performance eintrat. Sogar echtzeitfähige Systeme sind mit Algorithmen aus den künstlichen Immunsystemen möglich (siehe 4.1). Wie schon im Ansatz gezeigt wurde, bieten künstliche Immunsysteme gerade für verteilte und dynamische Umgebungen des alltäglichen Lebens interessante

169 Künstliche Immunsysteme 165 Möglichkeiten der Problemlösung, sei es zum Schutz vor Computer Viren oder zur Erkennung von Schriften. Die Vorteile liegen insbesondere darin, dass Probleme dezentralisiert und parallel von mehreren kleineren Instanzen gelöst werden können. Dies erhöht die Übersicht in der Entwicklung und somit auch die Qualität des Systems, vergleicht man dies mit anderen Lösungen, die zentralisierte monolithische Ansätze verwenden. Weiterhin bietet dieser Ansatz eine Möglichkeit, zukünftige Computersysteme, die immer häufiger über mehrere Prozessoren verfügen, besser auszulasten - eine Tatsache, die sich mit klassischen Algorithmen häufig nur schwerlich erreichen lässt. Die im Rahmen dieser Arbeit vorgestellten Algorithmen stellen nur die gebräuchlichsten der bisher erforschten Immuntechnologien dar, somit ist es also durchaus denkbar und auch wahrscheinlich, dass in Zukunft weitere Ansätze der biologischen Immunologie Einzug in die Informatik halten werden. Die weitere Forschung an künstlichen Immunsystemen sollte sich unter anderem darauf konzentrieren, die theoretischen Grundlagen hinter künstlichen Immunsystemen zu verbessern. Bisher wurden hauptsächlich Metaphern extrahiert und direkt angewendet (siehe [22]). Beispielhaft sei dazu Abschnitt 4.3 genannt: Zu dem dort verwendeten Modell existierte zu dem Zeitpunkt der Verfassung des Artikels noch kein formales Modell. Ein weiteres Gebiet, welches Gegenstand zukünftiger Forschung sein könnte, ist das Zusammenspiel vom Immunsystem mit anderen körpereigenen Systemen (wie z.b. das neurale (Nerven) und endokrine (hormonale) System) und welche Möglichkeiten sich daraus für die Informatik ableiten lassen. Literatur [1] de Castro, Leandro N., Jonathan Timmis Artificial Immune Systems: A new Computational Intelligence Approach, Springer Verlag, [2] de Castro, Leandro N., An Introduction to the Artificial Immune Systems [3] de Castro, Leandro N., Artificial Immune Systems: Theory and Applications [4] de Castro, Leandro N., Von Zuben, Fernando J., Artificial Immune Systems: Part I - Basic Theory and Applications, Technical Report TR - DCA 01/99, [5] de Castro, Leandro N., Von Zuben, Fernando J., Artificial Immune Systems: Part II - A Survey of Applications, Technical Report DCA-RT 02/00, [6] de Castro, Leandro N., Fundamentals of Natural Computing, Chapman & Hall/CRC, 2006 [7] Dasgupta D., Artificial Immune Systems and Their Applications, Springer Verlag 1998, S.3 -S.18

170 166 R. Mayr, W. Fischer [8] Dilger, Prof. Dr. Werner, Künstliche Immunsysteme Skript zur Vorlesung Künstliche Immunsysteme an der Technischen Universität Chemnitz, 2003, Pages/KI/skripte.php [9] Gonzalez Luis J., A Self-Adaptive Evolutionary Negative Selection Approach for Anomaly Detection Dissertation, Nova Southeastern University, 2005 [10] Sommer Peter, Computer Immunologie Seminar Organic and Ubiquitous Computing, Universität Augsburg, 2005 [11] Timmis J., de Castro, Artificial Immune Systems:A Novel Paradigm to Pattern Recognition University of Kent at Canterbury [12] Universität Hamburg, Immunsysteme, 2006 [13] Eberhard Zillessen: Morbus Crohn - Colitis ulcerosa Fragen und Antworten für Betroffene [14] Dr. Gabriella Kókai, Uni Erlangen: Vorlesung 13 zum Thema Heuristik [15] Leandro Nunes de Castro, Fernando José Von Zuben: The Clonale Selection Algorithm with Engineering Applications [16] Leandro Nunes de Castro, Fernando José Von Zuben: ainet: An Artificial Immune Network for Data Analysis [17] D. Dasgupta, K. KrishnaKumar, D. Wong, M.Berry: Immunity-Based Aircraft Fault Detection System [18] Utpal Garain, Mangal P. Chakraborty, Dipankar Dasgupta: Recognition of handwritten Indic Script using Clonale Selection Algorithm [19] Steve R. White, Morton Swimmer, Edward J. Pring, William C. Arnold, David M. Chess, John F. Morar: Anatomy of a Commercial-Grade Immune System [20] Andreas Pietzowski, Benjamin Satzger, Wolfgang Trumler, Theo Ungerer: A Bio- Inspired Approach for Self-Protecting an Organic Middleware with Artificial Antibodies [21] Srividhya Sathyanath, Ferat Sahin: AISIMAM - An Artificial Immune System Based Intelligent Multi Agent Model and its Application to a Mine Detection Problem [22] Jon Timmis: Challenges for Artificial Immune Systems [23] Dipankar Dasgupta, Fernando Nino: A comparison of negative and positive selection algorithms in novel pattern detection

171 Artificial Life, DNA Computing und Quantum Computing Markus Henze Universität Augsburg Zusammenfassung Das Natural Computing versteht sich als die Verbindung der Nutzung natürlicher Phänomene für die Computerwelt und der Analyse natürlicher Vorgänge mit Hilfe des Computers. In dieser Arbeit werden einige Verfahren aus dem Bereich des Natural Computing vorgestellt, mit denen natürliche Phänomene mit Hilfe des Computers simuliert und emuliert werden, sowie welche natürlichen Materialien für zukünftige Rechenmaschinen verwendet werden können. 1 Einleitung Schon Leonardo da Vinci ließ sich bei seinen Erfindungen von der Natur inspirieren. So konstruierte das bekannte Universalgenie bereits im 15. Jahrhundert Flugapparate, deren Aufbau sich an Vogelschwingen oder Ahornsamen orientierte [1]. Ebenso versuchen in der heutigen Zeit Wissenschaftler der Informatik in Zusammenarbeit mit Biologen, Chemikern und Physikern, natürliche Phänomene für die Informationstechnologie auszunutzen oder diese im Computer zu simulieren. Diese interdisziplinäre Forschung über und mithilfe der Natur als Teil der Informatik wird als Natural Computing [2] bezeichnet. Das Natural Computing lässt sich dabei in drei nicht zwingend disjunkte Teilbereiche untergliedern [3, Seite 2f]: Durch die Natur inspiriertes Rechnen. Für die Lösung spezifischer Probleme werden in diesem Teilbereich Phänomene aus der Natur herangezogen, um neue Algorithmen und Strukturen zu entwickeln oder bestehende zu verbessern. Beispiele für diesen Bereich des Natural Computing wären neuronale Netzwerke [4], evolutionäre Algorithmen [5], Schwarmintelligenz [6] oder künstliche Immunsysteme [7]. Simulation und Emulation der Natur. Während das durch die Natur inspirierte Rechnen versucht, konkrete Probleme durch die Analyse natürlicher Phänomene zu lösen, beschäftigt sich dieser Bereich des Natural Computing mit der Übertragung natürlicher Vorgänge in den Computer. Dadurch lassen sich unter anderem Theorien anderer Disziplinen wie der Biologie oder Chemie durch Simulation im Computer untermauern oder sogar künstliche Lebensräume im Computer erschaffen.

172 168 M. Henze Berechnungen unter Verwendung natürlicher Materialien. Heute hergestellte Recheneinheiten von Computern beruhen auf Silizium. In diesem Teilbereich des Natural Computing wird erforscht, welche anderen natürlichen Materialien sich als Siliziumersatz einsetzen ließen, um schnellere und noch kleinere Recheneinheiten herstellen zu können. In dieser Arbeit soll auf zwei dieser Teilbereiche näher eingegangen werden, nämlich auf die Simulation und Emulation der Natur durch Computertechnik sowie auf die Berechnung unter Verwendung natürlicher Materialien. Aus jedem dieser Teilbereiche werden zwei Forschungsschwerpunkte vorgestellt. Aus dem Bereich der Simulation und Emulation der Natur werden Systeme der fraktalen Geometrie und deren Bedeutung dargelegt und künstliches Leben im Computer (Artificial Life) anhand einiger Beispiele erläutert. Als Einblick in die Funktion natürlicher Materialien für Berechnungen folgt im zweiten Teil der Arbeit eine kurze Vorstellung der Berechnungen auf DNA-Basis (DNA Computing) sowie das Quantenrechnen (Quantum Computing). 2 Simulation und Emulation der Natur Für die Simulation und Emulation der Natur im Computer wurden Algorithmen und Systeme entwickelt, um das Verhalten von Lebewesen und andere natürliche Phänomene synthetisch oder virtuell nachbilden zu können. Als eine Möglichkeit, derartige Algorithmen und Systeme zu visualisieren, bieten sich die Verfahren der fraktalen Geometrie an, von denen drei im folgenden Abschnitt erläutert werden. Im Anschluss daran trägt eine Beschreibung künstlichen Lebens im Computer dazu bei, die heutigen Möglichkeiten sowie die Bedeutung der Simulation und Emulation von Leben im Computer an einigen Beispielen näher kennenzulernen. 2.1 Fraktale Geometrie Natürlich vorkommende Strukturen lassen sich in einem Großteil der Fälle nicht durch einfache geometrische Formen wie Kreise oder Rechtecke vollständig beschreiben. Dennoch ist bei vielen dieser irregulären Strukturen ein gemeinsames Muster erkennbar. Betrachtet man beispielsweise die Verzweigung der Bronchiolen einer menschlichen Lunge [Wie fraktal ist der Mensch], so lassen sich wiederholt selbstähnliche Muster identifizieren. Die Erfassung dieser selbstähnlichen oder selbstaffinen Muster über mathematische Verfahren ermöglicht die fraktale Geometrie. Einige dieser Verfahren und deren Bedeutung für das Natural Computing sollen im Folgenden vorgestellt werden Zelluläre Automaten Der Mathematiker und Physiker John von Neumann entwarf zu Beginn der 1950er Jahre das System der zellulären Automaten. Diese verwendete er zur Beschreibung und Analyse von Mechanismen der Selbstreproduktion, sodass er erklären konnte, weshalb ein von einem anderen Automaten erstellter Automat komplexer sein kann als der Ursprungsautomat.

173 ALife, DNA Computing, Quantum Computing 169 [http://mayet.som.yale.edu/coopetition/vn.html] Ein zellulärer Automat ist als Ansammlung identischer Zellen in einem gemeinsamen Verbund zu verstehen [Ilachinski, 2001]. Jede Zelle befindet sich in einem bestimmten Zustand, wobei die Gesamtmenge aller möglichen Zustände endlich ist. Eine Zelle kann ihren Zustand verändern, indem sie mit den Zellen in ihrer unmittelbaren Nachbarschaft interagiert. Formal ist ein zellulärer Automat C definiert als C = (S, s0, G, d, f) mit S als endliche Menge von Zuständen, s 0 als ein Startzustand aus S, G als der d-dimensionale Nachbarschaftsraum von C, d als die Dimension des Automaten und f als lokale Transitionsfunktion, über die eine Zelle von einem Zustand in den nächsten wechseln kann. Handelt es sich um einen einheitlichen zellulären Automaten, so ist die Transitionsfunktion f für alle Zellen identisch. Es ist jedoch ebenfalls möglich, dass jede Zelle über ihre eigene Transitionsfunktion verfügt. Zelluläre Automaten werden als universelle Rechenmaschinen zur Modellierung biologischer Systeme wie Insektenschwärmen oder Bakterienkolonien sowie zur Erforschung von Bevölkerungsveränderungen wie beispielweise der Evolution eingesetzt. Ebenso können zelluläre Automaten zur Erschaffung künstlichen Lebens dienen oder für Beweise im Bereich der dynamischen Systemtheorie verwendet werden. Beispielsweise kann mit Hilfe der Software CAFUN [8] die Belousov-Zhabotinsky Reaktion [9] simuliert werden, bei der die Vermischung von organischen und anorganischen Substanzen zu konzentrischen Kreisen führt. In CAFUN berechnete Belousov-Zhabotinsky Reaktion.

174 170 M. Henze L-Systeme Die nach Aristid Lindenmeier benannten Lindenmeier oder L-Systeme [10] eignen sich für die Visualisierung von Landschaften oder des Aufbaus von Pflanzen im Computer, weswegen sie häufig in den Bereich der Wachstumsalgorithmen eingeordnet werden. Die Grundlage der L-Systeme liegt in den formalen Sprachen, wobei die Grammatiken der L-Systeme parallel anstatt sequentiell angewandt werden. Um die gewünschten geometrischen Figuren zu erhalten, werden über Regeln Veränderungen an Wörtern vorgenommen und in eine graphische Darstellung überführt, beispielsweise über so genannte Schildkrötengraphiken. Bei dieser Form der geometrischen Abbildung werden ausgehend von einem Startpunkt in einem kartesischen Koordinatensystem und einem Anfangswinkel über bestimmte Wortfolgen die nachfolgenden Koordination sowie der nächste Winkel ermittelt. Zur Kodierung dieser Bewegungen werden zum Beispiel die Symbole + und - eingesetzt, um zum derzeitigen Winkel eine Gradanzahl hinzuzufügen oder zu entfernen. Zur Darstellung der Verzweigungen von Pflanzen werden in der Regel die beiden Klammersymbole [ und ] verwendet. Damit lässt sich sowohl das Wachstum und die Ausbreitung heute existierender Pflanzen visualisieren als auch Prognosen über zukünftige Wachstumsvarianten von Pflanzen abgeben. Abhängigkeit der Glätte einer fraktalen Brownschen Bewegung vom Hurst-Exponenten H

175 ALife, DNA Computing, Quantum Computing Fraktale Brownsche Bewegung Während L-Systeme insbesondere für die Simulation und Visualisierung von Pflanzen und deren Wachstum eingesetzt werden können, eignet sich die fraktale Brownsche Bewegung für die Darstellung aller Vorgänge, die der Brownschen Bewegung [11] unterliegen. Zu diesen gehören der Verlauf von Flüssen oder Fjorden ebenso wie Bewegungen von Partikeln in Gasen oder Flüssigkeiten. Die von Mandelbrot und Wallis entwickelte fraktale Brownsche Bewegung ist hierbei eine Verallgemeinerung der Brownschen Bewegung und basiert wie diese auf einen Gausschen Prozess mit einer Varianz var(x(t 2 ) X(t 2 )) = t 2 t 1 2H. Der Exponent H wird als Hurst- Exponent bezeichnet und bestimmt die Glätte der Brownschen Bewegung. Die Visualisierungsmöglichkeiten der fraktalen Brownschen Bewegung werden jedoch nicht nur für natürliche Phänomene wie Wasserbewegungen oder Wolken eingesetzt, sondern unter anderem auch für die Immunologie, Materialforschung oder die Simulation von Aktienkursen. 2.2 Artificial Life Mit den Verfahren der fraktalen Geometrie wurden bereits einige Mechanismen vorgestellt, wie sich Phänomene aus der Natur mathematisch erfassen und damit im Computer simulieren lassen. Bereits bei den zellulären Automaten wurde darauf verwiesen, dass sich diese für die Erschaffung künstlichen Lebens eignen. In diesem Abschnitt soll nun näher erläutert werden, was künstliches Leben für die heutige Forschung bedeutet. An einem praktischen Projekt wird erklärt, welche weiteren Verfahren außerhalb der fraktalen Geometrie künstliches Leben hervorbringen können Entstehung der Forschung über künstliches Leben Als Beginn der Forschung an künstlichem Leben wird die Dartmouth Konferenz [12] des Jahres 1956 gesehen, auf der mehrere Wissenschaftler aus den Bereichen der neuronalen Netzwerke und Sprachverarbeitung zunächst den Begriff der künstlichen Intelligenz [13] prägten. Unter künstlicher Intelligenz wird die Fähigkeit eines künstlich erschaffenen Systems verstanden, das in der Lage ist, selbstständig Probleme zu lösen, zu lernen und weitere mentale Fähigkeiten umzusetzen. Dies führte in den ersten Jahren nach der Konferenz zur Erforschung von wissensbasierten und Expertensystemen, die über symbolische Regelsysteme bestimmte Schlussfolgerungen ausgehend von bestehenden Informationen trafen. Später spalteten sich weitere Forschungsbereiche von der Erforschung künstlicher Intelligenz ab, die einen Ansatz von unten nach oben anstatt der bisherigen Vorgehensweise verfolgten. Zu diesen gehören beispielsweise die neuronalen Netzwerke, evolutionäre Algorithmen oder Fuzzy Systeme [14]. Die Erforschung künstlichen Lebens bedient sich nun aus diesen Ergebnissen - insbesondere den späteren bottom-up Verfahren - zur Simulation und Emulation von Leben in der heutigen Form und auch zur Prognose von Leben, wie es sein könnte [3, Seite 391]. Zwei grundsätzliche Richtungen lassen sich bei der Schaffung künstlichen Lebens unterschieden: einerseits die synthetische Erzeugung von Leben aus organischen und anorganischen Stoffen, andererseits die

176 172 M. Henze virtuelle Erschaffung von Leben im Computer. Damit ist eine enge Verbindung zu anderen Wissenschaften, insbesondere der Biologie, aber auch der Physik, Chemie oder Psychologie erkennbar Eigenschaften künstlichen Lebens Durch diese enge Verflechtung mit anderen Wissenschaften und dadurch, dass kein generisches Modell oder spezifische Technologien für die Forschung und Schaffung künstlichen Lebens eingesetzt werden, ist eine allgemeine Definition schwierig. Dennoch ist es möglich, einige Eigenschaften künstlichen Lebens zu identifizieren: Künstliches Leben besteht aus einem Zusammenschluss einfacher Programme, Agenten oder Spezifikationen. Die Programme oder Agenten arbeiten unabhängig voneinander und besitzen keine zentrale Kontrollinstanz. Ebenso gibt es keine globalen Regeln in einem Verbund aus Agenten oder Programmen. Dadurch ist jedes Verhalten eines Agentenverbunds nur auf das aggregierte Verhalten aller einzelnen Programme und Agenten zurückzuführen und damit selbstständig gewachsen. Jeder Agent beziehungsweise jedes Programm bestimmt seine zukünftigen Aktionen ausschließlich ausgehend von lokalen Informationen, das heißt auf Agentenebene verfügbaren Informationen und Informationen aus der unmittelbaren Umgebung des Agenten Nutzen der Forschung nach künstlichem Leben Künstliches Leben wird dafür eingesetzt, um natürliche Prozesse besser verstehen zu können, indem theoretische Modelle, beispielsweise aus der Biologie, im Computer simuliert und mit der Natur verglichen werden. Zugleich bietet die Forschung nach künstlichen Leben die Möglichkeit, neuartiges Leben zu entdecken und die Phänomene der Natur auf neuartige virtuelle oder synthetische Systeme erfolgreich zu übertragen Beispiele für künstliches Leben Um das Verhalten von Schwärmen im Computer zu simulieren, werden insbesondere Algorithmen aus dem Bereich der Schwarmintelligenz verwendet. Dadurch ist es beispielsweise möglich, über einfache, lokale Regeln das Verhalten zur Schwarmbildung von Lebewesen wie Fischen oder Schafen im Computer zu realisieren. So konnte Reynolds lediglich über die drei folgenden Verhaltensregeln die Bewegung eines Partikelschwarms im Computer so beeinflussen, dass sich dieser als zusammenhängende Gruppe auch um Hindernisse herum bewegte [15]: Vermeidung von Kollisionen und Trennung: Jeder Agent soll versuchen, nicht mit seinem Nachbarn zusammenzustoßen. (obere Graphik) Anpassung und Angleichung der Geschwindigkeit: Der Schwarm soll ein gemeinsames Ziel erreichen, indem jeder Agent versucht, sich an die Geschwindigkeit seiner Nachbarn anzupassen und sich genauso auszurichten wie diese (mittlere Graphik)

177 ALife, DNA Computing, Quantum Computing 173 Zusammenhalt und Zentrierung: Zwar sollen die Agenten nicht miteinander kollidieren, aber auch nicht so weit auseinanderdriften, dass der Zusammenhalt des Schwarms gefährdet ist. Daher sind die Agenten angewiesen, ihre Position zu der ihrer Nachbarn zu zentrieren (untere Graphik). Deutlich komplexer als Regelsysteme für Schwärme sind evolutionäre Algorithmen zur Beschreibung der genetischen Veränderungen von Populationen. Dabei ist jeder Agent mit einem genetischen Code ausgestattet, der Informationen über seinen Aufbau, seine Fähigkeiten und Ziele beinhaltet. Dieser Code verändert sich bei der Reproduktion, indem er entweder selbstständig mutiert oder sich mit dem Gencode des Reproduktionspartners vermischt. Das Verhalten eines Agenten ist damit durch den genetischen Code bestimmt. Nach der Theorie von Dietrich Dörner können Emotionen auch als Motivation für Verhaltensänderungen gesehen werden, weshalb das Verhalten eines Agenten auch von diesen mitbestimmt werden kann [16]. Dietrich Dörner definierte vier verschiedene Motivationen für Verhaltensänderungen: Aktivierung: Die Menge an Energie, die zum Erreichen eines Ziels erforderlich ist. Externalität: Zeitraum, der beansprucht wird, um das Ziel zu erreichen. Präzision: Grad an Genauigkeit, der zur Zielerfüllung notwendig ist. Fokus: Für das Erreichen des Ziels notwendige Aufmerksamkeit.

178 174 M. Henze Diese Motivationen konnte Katrin Hille in ihrem virtuellen Agenten Alie in Form der sechs Emotionen Ärger, Erregung, Zufriedenheit, Angst, Furcht und Traurigkeit realisieren, wodurch sich die Auswirkungen von Emotionen auf das Verhalten visualisieren ließ [17]. Aufbau eines Framsticks mit Muskeln (rot) und verschiedenen Rezeptoren Werden vordefinierte Verhaltensweisen und genetische Veränderungen durch Reproduktion kombiniert, so kann wie im Framsticks-Projekt [18] geschehen eine virtuelle Umgebung mit Lebewesen unterschiedlicher Evolutionsstufen entstehen. In diesem Projekt werden in einer simulierten drei-dimensionalen Welt stabförmige Lebewesen auf Grundlage einer endlichen Anzahl von Genotypen erzeugt. Diese Wesen bestehen aus Körperteilen und Gehirnen, die jeweils über unterschiedliche Attribute verfügen können. Die stabartigen Körpersegmente können verschiedene Längen und Größen sowie Gewichte und Härtegrade besitzen. Sie sind über Muskeln verbunden, die so genannten Effektoren, die es dem Framstick ermöglichen, sich in seiner Umwelt über Rotation und Strecken seiner Gliedmaßen zu bewegen. Die Steuerung der Muskeln erfolgt über die Gehirne, die als neuronales Netzwerk ausgelegt sind. Für die Entscheidungen des neuronalen Netzwerks erforderlichen Informationen werden von Rezeptoren geliefert, die sich an den Körperteilen des Framsticks befinden. Sie ermöglichen dem Framstick, sich in seiner Umwelt zu orientieren, Energiequellen aufzuspüren und Berührungen festzustellen. Ein Framstick ist dabei in der Lage, selbstständig auf Energiesuche zu gehen. Dies kann entweder dadurch geschehen, dass er die in der Umwelt vorhandenen Energiequellen berührt oder sogar auf Jagd nach anderen Framsticks geht. Welche Energiegewinnungsmethode ein Framstick wählt, ist dabei durch seine Gene vorgegeben. Auch wurden die physikalischen Gegeben-

179 ALife, DNA Computing, Quantum Computing 175 heiten der jeweiligen Umwelt berücksichtigt, sodass ein Framstick durch Stoßkräfte, Reibung und Deformation in der ihm zur Verfügung stehenden Energie und seinem Aufbau beeinflusst werden kann. Diese Art künstlicher Lebewesen wird jedoch nicht nur im wissenschaftlichen Umfeld genutzt, sondern wurde auch bereits von der Computerspieleindustrie entdeckt. So entstand im Jahr 1996 das Spiel Creatures, in dem sich ein eigenes Volk kleiner Lebewesen im Computer erschaffen ließ. Jedes dieser Lebewesen verfügte über einen veränderbaren genetischen Code in Verbindung mit einem neuronalen Netzwerk, das zusammen mit einem biochemischen System für die Steuerung der Lebewesen sorgte. Mit jeder neuen Generation konnte sich der genetische Code verändern und damit die Fähigkeit der Lebewesen gesteigert oder modifiziert werden. 2.3 Zusammenfassung Zum besseren Verständnis natürlicher Phänomene sowie zur Verbesserung von Computeralgorithmen kann die Simulation und Emulation von natürlichen Vorgängen dienen. Dabei wurden Verfahren aus der fraktalen Geometrie vorgestellt, um die Möglichkeiten der graphischen Visualisierung natürlicher Phänomene im Computer zu demonstrieren. Auch wurde das Thema der Erschaffung künstlichen Lebens mit Hilfe des Computers anhand einiger Beispiele angesprochen, um die heutigen Möglichkeiten der Simulation und Emulation des Verhaltens von Lebewesen und anderen natürlichen Prozessen aufzuzeigen. 3 Berechnungen unter Verwendung natürlicher Materialien Die zuvor beschriebenen Verfahren beschäftigten sich hauptsächlich mit der Simulation und Emulation von natürlichen Phänomenen mit Hilfe des Computers. Wenn in diesem Zusammenhang von Computern die Rede ist, werden hierunter meist Geräte verstanden, deren Recheneinheiten auf Siliziumbasis gefertigt wurden. Das Natural Computing beinhaltet darüber hinaus noch einen weiteren Aspekt, die Natur in die Informatik mit einzubeziehen, nämlich die Berechnung unter Verwendung natürlicher Materialien. Hier sollen natürliche und besonders organische Materialien dazu beitragen, noch kleinere und effizientere Recheneinheiten zu fertigen, als dies aufgrund physikalischer Beschränkungen mit den heutigen Materialien möglich ist [19]. Als zwei Vertreter derartiger Materialien sollen in den folgenden zwei Abschnitten eine Einführung in Berechnungen auf DNA- sowie auf Quantenbasis gegeben werden. 3.1 DNA-Computing Als ein natürliches Miniaturmaterial ist beispielsweise der Einsatz von Desoxyribonukleinsäure(DNA)-Molekülen denkbar, in denen der Aufbau eines Lebewesens hinterlegt ist. DNA erscheint als Material besonders attraktiv, da sich bei

180 176 M. Henze dieser Art von Molekülen Rechenoperationen auf molekularer Ebene durch die hohe Parallelität auf kleinstem Raum sehr schnell und energieeffizient ausführen lassen. Ein DNA-Molekül besteht aus zwei DNA-Strängen, die in Form einer Doppelhelix miteinander verbunden sind. Jeder dieser DNA-Stränge entsteht aus der Verbindung von vier Nukleotiden, die sich in den Basen Adenin, Thymin, Guanin und Cytosin unterscheiden. An jedem Molekül einer solchen Base befindet sich ein Zuckermolekül mit fünf Kohlenstoffatomen zusammen mit einer Phosphatgruppe. Aufgrund der Zählrichtung organischer Verbindungen befindet sich die Hydroxylgruppe am dritten, die Phosphatgruppe am fünften Kohlenstoffatom des Zuckermoleküls. Eine Verbindung zweier Nukleotiden kann entweder zwischen der Phosphat- und der Hydroxylgruppe stattfinden (kovalente Bindung) oder zwischen zwei Hydroxylbindungen (Wasserstoffbrückenbindung). Während die stärkere kovalente Bindung zur Verknüpfung mehrerer Nukleotide eines DNA-Strangs verwendet wird, verbinden die schwächeren Wasserstoffbrücken zwei DNA-Stränge zu der bekannten Helixform. Aufgrund der Watson- Crick-Paarungsregeln treten die Basen Adenin und Thymin sowie Guanin und Cytosin immer komplementär in der Helixstruktur auf. Als Kurzschreibweise für die Beschreibung eines DNA-Strangs hat sich die Verwendung der Anfangsbuchstaben der Basen eingebürgert, wobei durch die Position der Hydroxylgruppe (3) und Phosphatgruppe (5) die Orientierung des DNA-Strangs festgelegt wird. Ein Ausschnitt aus einem DNA-Molekül ließe sich also folgendermaßen beschreiben: 5 T CGAT T GAACC 3 3 AGCT AACT T G 5 Dabei ist zu beachten, dass die Verbindung von DNA-Strängen nicht zwingend lückenlos erfolgen muss, wodurch so genannte klebrige Enden (sticky ends) entstehen können, an denen eine Bindung weiterer DNA-Stränge stattfinden kann. Um nun auf einer solchen Struktur Berechnungen anstellen zu können, müssen Methoden zur Veränderung der DNA vorhanden sein. Bei diesen handelt es sich beispielsweise um die folgenden Verfahren: Trennung von DNA-Strängen (Denaturierung): Die DNA-Probe wird erhitzt, um die Helixstruktur aufzulösen und die DNA-Stränge voneinander zu trennen. Verbindung von DNA-Strängen (Schweissen): Indem die DNA-Probe abgekühlt wird, verbinden sich die zusammengehörenden DNA-Stränge zu neuen Helixformationen. Durch den Einsatz von Ligasen können mehrere DNA- Moleküle zu einem längeren Strang verbunden werden. Auffüllen unvollständiger DNA-Stränge (Polymeraseerweiterung): Mit Hilfe von Enzymen, so genannten Polymerasen, können Nukleotide gezielt über Wasserstoffbrücken an einen bestehenden DNA-Strang als Watson-Crick- Partner angeknüpft werden.

181 ALife, DNA Computing, Quantum Computing 177 Verkürzen von DNA-Strängen (Nuklease Degradation): Exonukleasen können dazu verwendet werden, Nukleotiden an den Enden eines DNA-Stranges zu entfernen, während Endonukleasen eingesetzt werden, einen DNA-Strang an festgelegten Nukleotiden in mehrere Teilstücke zu segmentieren. Vervielfältigung von DNA-Strängen (Polymerasekettenreaktion): Wenn mehrere Kopien eines DNA-Strangsegments benötigt werden, kann die Polymerasekettenreaktion dazu verwendet werden, einen speziell markierten Abschnitt eines DNA-Strangs zu vervielfältigen. Dazu wird eine Lösung mit der zu kopierenden DNA-Sequenz und den Kennzeichnungsmolekülen, den sogenannten Primern vorbereitet. Diese Lösung wird denaturiert, sodass das DNA-Molekül in die beiden DNA-Stränge zerfällt. Durch das Abkühlen dieser Lösung können die Primer an die vorgesehenen Stellen des DNA-Strangs andocken. Abschließend findet eine Polymeraseerweiterung statt, wodurch das DNA-Molekül wieder vervollständigt wird. Messung der Länge von DNA-Molekülen und Trennung dieser nach Länge (Gelelektrophorese): Werden DNA-Moleküle in ein spezielles Gel eingebettet und ein elektrisches Feld angelegt, bewegen sich die Moleküle abhängig von ihrer Größe unterschiedlich schnell in Richtung des Pluspols. Da größere Moleküle mehr Zeit benötigen, um durch das Gel zu wandern, verteilen sich nach einiger Zeit die unterschiedlich langen DNA-Moleküle innerhalb des Gels nach ihrer Größe. Extraktion spezifischer DNA-Moleküle (Filterung): Eine Möglichkeit, bestimmte DNA-Stränge aus einer Lösung auszufiltern, ist, deren Komplement auf ein Filtermedium aufzubringen und dieses in Kontakt mit der Lösung zu bringen. Da sich nur die gesuchten DNA-Stränge an dem Filtermedium anlagern, müssen die auf dem Filtermedium entstandenen DNA-Moleküle nur noch denaturiert werden, um die gesuchten DNA-Stränge zu erhalten. Erzeugung von DNA-Strängen (Synthese): Während die Polymeraseerweiterung für die Bildung von DNA-Molekülen eingesetzt wird, können maschinell einzelne DNA-Stränge erzeugt werden. Dabei wird die Anordnung der Nukleotiden vorgegeben und der Maschine die vier Basen zugeführt, welche diese Basen zu einem DNA-Strang verbindet. Auslesen der Sequenz eines DNA-Moleküls (Sequenzierung): Die Bestimmung der genauen Nukleotidfolge kann über Sequenzierungsverfahren wie der enzymatischen Sequenzierung (Sanger-Coulson-Sequenzierung) oder einer chemischen Spaltung (Maxam-Gilbert-Sequenzierung) erfolgen. Während das erste Verfahren auf einer Anlagerung komplementärer Nukleotidsequenzen basiert, wird bei letzterem eine Verbindung aus radioaktiver Dotierung und gezielter Auftrennung der DNA-Stränge angewandt. Bei beiden Verfahren kommt eine Gelelektrophorese zum Einsatz, um die DNA-Sequenz abschließend zu bestimmen Filtermodelle und formale Modelle Diese Instrumente der Manipulation von DNA lassen sich nun zur Lösung spezifischer Probleme der Informatik anwenden. Dabei lassen sich der Ansatz der Filtermodelle und der formalen Modelle unterscheiden. Die allgemeine Vorgehensweise bei Filtermodellen ist

182 178 M. Henze die Kodierung einer Problemstellung in DNA, Berechnung des Problems durch DNA-Manipulation und Herausfiltern aller DNA-Fragmente, die keine Lösung sein können. Auf diesem Weg konnte beispielsweise Leonard Adleman experimentell das Hamilton-Pfadproblem mit einer geringen Anzahl von Knoten auf DNA-Basis lösen. Der von ihm hierfür gewählte Algorithmus besteht aus fünf Schritten: Erzeuge einen zufälligen Pfad durch den Graphen. Behalte nur Pfade mit Anfangsknoten v i n und Endknoten v o ut. Behalte nur diejenigen Pfade mit einer Länge, die der Anzahl der Knoten des Graphen entspricht. Behalte nur diejenigen Pfade, auf denen alle Knoten des Graphen mindestens einmal erreicht werden. Wenn ein Pfad übrig bleibt, konnte ein Ergebnis erfolgreich bestimmt werden. Die Knoten des Graphen kodierte er dabei als zufällige DNA-Stränge mit einer Länge von 20 Nukleotiden, die Kanten als komplementäre Überlagerung der DNA-Stränge, wobei die Überlagerung jeweils die Hälfte des DNA-Strangs einnimmt (jeweils 10 Nukleotide jedes Knotens). Zur Erzeugung der Pfade wurden die DNA-Stränge mit Ligasen zu einer zufälligen Kette verbunden. Um die Pfade mit speziellen Anfangs- und Endknoten herauszufiltern, wurden mit einer Polymerasekettenreaktion diejenigen Pfade vervielfältigt, die das Komplement der Kodierung der jeweiligen Anfangs- und Endknoten besaßen. Mit Gelektrophorese wurden diejenigen Pfadkodierungen herausgefiltert, die als Länge die Gesamtzahl der Knoten mal 20 Nukleotidpaare besaßen. Um den vorletzten Schritt des Algorithmus zu realisieren, wurden magnetisch dotierte DNA-Stränge in die Lösung gebracht, die dem Komplement der Knoten entsprachen. Indem dieses Verfahren für jeden Knoten wiederholt wurde, konnte abschließend die Lösung des Hamilton-Pfadproblems bestimmt werden. Blieb kein DNA-Strang übrig, so konnte kein Pfad gefunden werden. Wie an obigem Beispiel erkennbar ist, werden bei den Filtermodellen viele oder alle möglichen Lösungen berechnet und die gewünschten Lösungen extrahiert. Dagegen existieren einige formale Modelle, über die eine direkte Bestimmung von Lösungen möglich ist. Bei diesen Modellen handelt es sich beispielsweise um: Sticker Systeme [20]: Bei dieser Art von Modell werden zwei unterschiedliche Arten von DNA-Strängen benötigt. Ein Teil der DNA-Stränge dient als Speicherstränge, der andere als so genannte Stickerstränge. Die Stickerstränge sind dabei Watson-Creek Komplemente von Teilen der Speicherstränge. Wenn ein Nukleotid eines Stickerstrangs an ein Nukleotid eines Speicherstrangs gekoppelt ist, wird dieses Nukleotid auf dem Speicherstrang als ein Bit mit dem Wert 1 angesehen. Ist kein Nukleotid eines Stickerstrangs vorhanden, besitzt ein solches DNA-Bit den Wert 0. Ein Stickersystem wird über die Operationen union, extraction, set, reset und clear gesteuert. Dabei

183 ALife, DNA Computing, Quantum Computing 179 sollen theoretisch keine Enzyme zum Einsatz kommen und die eingesetzten DNA-Stränge wiederverwendbar bleiben. Splicing Systeme [21]: Über Regeln und Axiome wird festgelegt, wie und an welchen Stellen DNA-Stränge zu zerlegen und wieder zusammenzufügen sind. Insertion / Deletion Systeme: Über kontextabhängige Regeln können Wörter aus bestehenden Wörtern entfernt oder in diese eingefügt werden. Abgeleitet aus den Regeln für Wörter formaler Sprachen können im DNA-Kontext Wörter als Folgen von Nukleotiden gesehen werden, die denselben Regeln gehorchen. Das PAM Modell: Ergänzend zu den Splicing- und Insertion / Deletion Systemen beschäftigt sich das PAM Modell [22] von John Reif mit der Formalisierung paralleler Operationen, über das ein Verhalten einer nichtdeterministischen Turingmaschine nachgebildet werden konnte Vor-und Nachteile des DNA-Computing Die Vorteile des DNA- Computings liegen in der hohen Miniaturisierung, dem geringen Energiebedarf und der massiven Parallelisierbarkeit. Durch die Kooperation mit anderen Forschungsgebieten wie der Physik und der Biologie lassen sich Recheneinheiten auf DNA-Basis erzeugen, die ähnlichen Formalismen unterliegen wie bisherige Recheneinheiten auf Siliziumbasis. Ebenso können die Ergebnisse des DNA- Computing auf die anderen Forschungsfelder übertragen werden und damit zum besseren Verständnis der DNA beitragen. Auch wenn die Rechenleistung des DNA-Computers als ein großer Vorteil angesehen wird, so ist die Berechnung an sich eine langwierige und aufwendige Angelegenheit, da die molekularbiologischen Prozesse und deren Vorbereitung durchaus Tage in Anspruch nehmen können. Ein weiteres Problem, das im Zusammenhang mit DNA-Computing auftritt, ist die Dynamik organischer Substanzen. So können DNA-Stränge während der chemischen und mikrobiologischen Vorgänge unvorhersehbar zerfallen oder sich bei Berechnungen über einen längeren Zeitraum selbst auflösen. Zudem kann ein DNA-Computersystem nicht ohne weiteres übertragen werden, da jedes System häufig nur auf die Berechnung eines bestimmten Problems ausgerichtet und danach nicht wiederverwendbar ist. Darüber hinaus ist es nicht mit einfachen Mechanismen möglich, unterschiedliche DNA-Computersysteme miteinander kontrolliert parallel kommunizieren zu lassen, ohne dass eine vollständige Vermischung der Systeme erforderlich wäre. Es wird folglich noch einige Zeit in Anspruch nehmen, bis mit produktiven und flexiblen DNA-Computern zu rechnen ist. 3.2 Quantencomputing Werden Recheneinheiten angestrebt, die noch kleiner sind als DNA-Moleküle, so betritt man mit den Quantenrechnern einen weiteren Bereich, der sich dem Natural Computer zuordnen lässt. Quantenrechner werden nicht mehr durch einen Zusammenschluss von Molekülen gebildet, wie dies bei DNA-Computern der Fall

184 180 M. Henze ist. Stattdessen werden für Quantenrechner so genannte Quantenbits (Qubits) verwendet, die physikalisch beispielsweise in Form von Elektronen, Ionen oder eines Photonenspins existieren. Aufgrund des Einsatzes solch winziger Teilchen müssen die physikalischen Gesetze der Quantenmechanik miteinbezogen werden, beispielsweise die Schrödingergleichung [23] oder die Heisenbergsche Unschärferelation [24]. In der Quantenmechanik sind daher weitere Herausforderungen zu meistern, wie die Tatsache, dass sich nicht alle Eigenschaften eines Quantensystems vollständig messen lassen und die Messergebnisse zufällig nach einer gewissen Wahrscheinlichkeit auftreten. Im Folgenden werden der theoretische Umgang mit Quantenbits und einigen Quantengattern vorgestellt und an einem Beispiel der Transport von Quantenbitinformationen in Form von elektronischen Bits erklärt Quantenbits Da Quantenbits aufgrund der quantenmechanischen Besonderheit der Superposition gleichzeitig die Zustände 1 und 0 eines elektronischen Bits annehmen können, wird ein Quantenbit x als Vektor Zahlen kodiert: x >= c 1 0 > +c 2 1 > Die beiden Vektoren 0 > und 1 > repräsentieren die beiden Basiszustände eines Quantenbits. Bei den Variablen c 1 und c 2 handelt es sich um komplexe Zahlen, wobei c i 2 die Wahrscheinlichkeit angibt, dass entweder der eine oder andere Basiszustand angenommen wird. Die Summe der beiden Wahrscheinlichkeiten ist dabei immer eins. Als geometrische Repräsentation eines Quantenbits wird häufig eine Blochsphäre [25] verwendet, in der die Vektorwerte aufgetragen werden. Sollen mehrere Quantenbits zu einer gemeinsamen Struktur zusammengefügt werden, so bildet das Tensorprodukt aller Quantenbits die Basis der zugehörigen Hilbertraums, beispielsweise >= 0 0, 01 >= 1 0, 10 >= 0 1, 11 >= In der Praxis wird häufig nur mit sehr wenigen Quantenbits gearbeitet. Im Jahr 2005 ist es gelungen, ein zusammenhängendes Quantenbyte herzustellen und dessen Existenz experimentell nachzuweisen [26]. Um auf Quantenbits Rechenoperationen ausführen zu können, sind wie bei herkömmlichen Bits Logikgatter erforderlich Quantengattter Quantengatter dienen dazu, einzelne oder mehrere Quantenbits zu manipulieren. Anders als bei elektrischen Logikgattern sind bei Quantengattern alle Operationen umkehrbar, da die Summe der Wahrscheinlichkeiten aller Basiszustände immer eins sein muss. Ein einfaches Quantengatter ist das NOT-Gatter, welches den Wert eines Quantenbits negiert:

185 ALife, DNA Computing, Quantum Computing 181 [ [ ] [ NOT 0 >= X 0 >= = 1 0] 0 1] [ [ ] [ NOT 1 >= X 1 >= = 1 0] 1 0] Als Erweiterung dieses Gatters kann das kontrollierte NOT-Gatter (CNOT) gesehen werden. Dabei hängt die Umkehrung der Quantenbitwerte von den Werten eines anderen Quantenbits ab. Besitzt das erste Quantenbit den Wert 1 >, wird der Wert des zweiten Quantenbits umgekehrt, ist er 0 >, findet keine Umkehrung statt: CNOT 00 >= 00 > CNOT 01 >= 01 > CNOT 10 >= 11 > CNOT 11 >= 10 > Durch die Anwendung dieses Gatters können Quantenverschränkungen [27] entstehen. Diese auch in den Bell Zuständen [28] erkennbaren Abhängigkeiten von Quantenbits zueinander führen dazu, dass sich auch die Werte von räumlich entfernten Quantenbits voneinander beeinflussen lassen. Diese Eigenschaft lässt sich auch für die Quantenteleportation nutzen, die weiter unten angesprochen wird. Ein drittes wichtiges Gatter ist das Hadamard Gatter, über das sich sämtliche Superpositionen eines Quantenbits erzeugen lassen, das heisst, dass sich alle Werte eines Quantenbits gleichzeitig überlagern können: H = 1 [ ] H 0 >= 1 [ [ ] ] 0 H 0 >= 1 [ ] [ ] = 1 [ ] 1 = 1 ( 0 > + 1 >) = 1 [ ] 1 = 1 ( 0 > 1 >) Die unterschiedlichen Quantengatter lassen sich zu Quantenschaltkreisen verbinden, die sich auch für die Teleportation von Quantenbits einsetzen lassen Quantenteleportation Da sich nicht die gesamte Information eines Quantenbits übertragen lässt, da die zufälligen Bestandteile des Quantenbits bei der Messung des aktuellen Basiswertes verloren gehen, muss ein anderer Weg gefunden werden, Quantenbits zu versenden. Dies kann über die so genannte Quantenteleportation geschehen. Dabei besitzen Sender und Empfänger zunächst ein eigenes Quantenbit, die miteinander verschränkt sind. Derartige

186 182 M. Henze Quantenbits werden auch als EPR-Paar (Einstein, Podolsky, Rosen [29]) bezeichnet. Um nun ein Quantenbit zu teleportieren, verbindet der Sender das zu sendende Quantenbit mit seinem Quantenbit des EPR-Paars und kodiert sie über den folgende Verdichtungsschaltkreis, in dem H für Hadamard-Gatter, CN OT für ein kontrolliertes NOT-Gatter und I für die Identitätsmatrix steht. x 0 repräsentiert in diesem Schaltkreis das Quantenbit des EPR-Paars und x das zu übermittelnde Quantenbit. (H I I)(CNOT I)( x 0 > x >) Den sich ergebenden Wert kann er in Form von zwei klassischen Bits an den Empfänger versenden. Dieser transformiert die empfangenen Bits wieder in ein Quantenbit, indem er abhängig von dem Bitwert eine der folgenden Transformationen auf sein Quantenbit des EPR-Paars anwendet, welches als x 0 aufgeführt ist: Bitwert Transformation 0 (I I) x 0 > 1 (X I) x 0 > 2 (Y I) x 0 > 3 (Z I) x 0 > Die in den Transformationen angegebenen Matrizen I, X, Y, Z besitzen dabei folgenden Aufbau: I = Y = [ ] 1 0 X = 0 1 [ ] [ ] [ ] Z = Auf diesem Weg lässt sich unter Verwendung eines verschränkten Quantenbitpaars und klassischer Bits die vollständige Information eines Quantenbits von einem Sender zu einem Empfänger übermitteln, ohne die Basiswerte des Quantenbit auf Empfängerseite direkt messen zu müssen. 3.3 Zusammenfassung Als Ausprägungen des Rechnens mit natürlichen Materialien wurden für diese Arbeit das DNA-Computing und das Quantenrechnen ausgewählt. Aus dem Bereich des DNA-Computings wurden zunächst unterschiedliche Methoden zur Manipulation und Analyse der DNA erklärt und deren Verwendung in Filtermodellen anhand eines Beispiels erläutert. Zusätzlich wurde auf formale Modelle

187 ALife, DNA Computing, Quantum Computing 183 eingegangen, welche die theoretische Grundlage für mögliche DNA-Computer liefern können. Abschließend wurden die Vor- und Nachteile des DNA-Computings aufgezeigt. Quantencomputer stellen eine noch größere Miniaturisierung dar, als dies mit DNA-Computern möglich wäre. Sie operieren auf Elektronen oder Ionenebene und sind ebenso wie DNA-Computer in der Lage, Informationen auf kleinstem Raum parallel zu verarbeiten. Schwierigkeiten bereiten insbesondere die quantenmechanischen Effekte, die bei dieser Computergröße auftreten. Einige dieser Effekte wurden zusammen mit den Informationseinheiten der Quantencomputer, den Quantenbits, vorgestellt. Anhand von Quantengattern und Quantenschaltkreisen wurde demonstriert, wie Berechnungen in Quantencomputern ablaufen können und der Transport von Quantenbits vollzogen werden kann. 4 Zusammenfassung Bereits in der Vergangenheit haben Menschen versucht, durch die Nachahmung der Natur einen technischen Fortschritt zu erzielen. Das Natur Computing versucht aus den Phänomenen der Natur zu lernen, diese auf den Computer zu übertragen und gleichzeitig die Vorgänge der Natur besser zu verstehen. In dieser Arbeit wurden zwei Bereiche des Natural Computing angesprochen, die Simulation und Emulation natürlicher Vorgänge sowie das Rechnen mit natürlichen Materialien. Dabei wurde auf die Darstellungsmöglichkeiten der fraktalen Geometrie sowie auf künstliches Leben auf virtueller und synthetischer Basis eingegangen. Um den Einsatz natürlicher Materialien für Berechnungen zu demonstrieren, wurde ein Überblick über Verfahren aus dem Rechnen mit DNA und dem Quantenrechnen gegeben. Das Ziel eines Computers auf DNA- oder Quantenbasis erscheint in naher Zukunft zwar unwahrscheinlich, dennoch wird durch die Erkenntnisse des Natural Computing für viele verschiedene Forschungsbereiche ein besseres Verständnis der Natur erreicht und sie fördern die Entwicklung effizienterer technischer, mathematischer und betriebswirtschaftlicher Verfahren. Literatur [1] Der Vögel Flug, Leonardos Traum vom Fliegen, GeoScience Online, Springer Verlag, Heidelberg, detail2&f id=207&rang=9 [2] Natural Computation, Leiden Center for Natural Computing, [3] Fundamentals of Natural Computing, Basic Concepts, Algorithms, and Applications, L. N. de Castro, Catholic University of Santos, Brazil, Informa 2006 [4] Neuronale Netze und Fuzzy Control-Systeme, Wie arbeiten Neuronale Netzwerke, Ein Einführendes Beispiel, J. Sauer, Fachhochschule Regensburg, saj39122/vhb/nn- Script/script/gen/k html [5] Evolutionäre Algorithmen: Chancen für die praxisorientierte Optimierung, J. Wilmms, Fachhochschule Südwestfalen Meschede, 2003

188 184 M. Henze [6] Künstliche Intelligenz in der Schule, Multiagentensysteme, Kollektive Intelligenz, W. Dilger TU Chemnitz, Schule/KI-Schule-04-lehr-2.pdf [7] Immunocomputing: Model of Intrusion Detection, Lecture Notes in Computer Science, Y. Melnikov, A. Taranaov, Springer Verlag, 2003, [8] Website des CAFUN Projektes, [9] Demonstrationsexperimente zum Arbeitsgebiet Nichtlineare Systeme und Strukturbildung, J. Berkemeier, H.-G. Purwins, Westfälische-Wilhems-Universität Münster, Reaktion-de.html [10] Einführung in die Theorie der L-Systeme (Teil 1), H. Noser, P. Stucki, Universität Zürich, noser/courses/lsystemkurs1.pdf [11] Brownsche Bewegung, Wikipedia, Brownsche Bewegung [12] A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, J. McCarthy et al., 1955, [13] What is Artificial Intelligence, J. McCarthy, [14] Neuro-Fuzzy-Systeme, B. Froetschl, 1998, [15] Flocks, Herds, and Schools: A Distributed Behavioral Model, C. W. Reynolds, Computer Graphics, ACM SIGGRAPH 87 Conference Proceedings, Anaheim, California, July 1987 [16] The Dörner Model of Emotion, J. Bach, Workshop Emotion & Computation, KI 2006, Bremen [17] Synthesizing Emotional Behavior in a Simple Animated Character, K. Hille, Artificial Life, MITPress, ?journalCode=artl [18] Website des Framsticks Projektes, [19] Immer kleiner, immer schneller... Wo liegen die Grenzen der heutigen Computerarchitektur? GeoScience Online, Springer Verlag, Heidelberg, detail2&f id=9&rang=4 [20] DNA computing, sticker systems, and universality, L. Kari et al., Acta Informatica, Springer Verlag, Heidelberg, 1998, [21] Formal language theory and DNA: An analysis of the generative capacity of specific recombinant behaviors, T. Head, Bulletin of Mathematical Biology, [22] Parallel molecular computation: Models and simulations. J. Reif, Algorithmica, Special Issue on Computational Biology, 1998 [23] Der Weg zur Schrödingergleichung, Münchner Internetprojekt zur Lehrerfortbildung in Quantenmechanik, milq/kap8/k80p01.html [24] Heisenbergsche Unschärferelation, J. Schulz, [25] Qubit, Wikipedia, [26] Erstes Quantenbyte erzeugt, Heise Online, 2005,

189 ALife, DNA Computing, Quantum Computing 185 [27] Quantum Entanglement and Information, J. Bub, [28] Bell States, Wikipedia, state [29] Generation of an EPR atom pair, J.M. Raimond, 1998

190 186 M. Henze

191 Teil II Grid Computing

192

193 Einführung in Grid Computing Christian Kathan Universität Augsburg Zusammenfassung In meiner Seminararbeit stelle ich die Grundlagen des Grid Computing vor. Dabei gehe ich als erstes auf allgemeine Definition von Grid Computing ein und erzähle auch etwas zur geschichtlichen Entwicklung. Des weiteren erkläre ich was Virtuelle Organisationen sind und wie sie zu Grid Computing passen. In einem weiteren Abschnitt gehe ich auf drei Arten von Grids ein. Zum einen das Computational Grid, das die Ressource Rechenleistung verwaltet, als nächstes auf das Data Grid, das vorallem auf die Speicherung und Verteilung sehr großer Datenmengen ausgelegt ist und bei dem ich kurz das Konzept des Datenzugriffs und der Metadaten erläutere. Bei Service Grids, die statt Ressourcen Dienste als Schnittstelle anbieten und über den beiden anderen Grids liegen, gehe ich im Ansatz auf OGSI und WSRF ein. Ich beschreibe des weiteren das Schichtenmodell, welches eine Grundlage der Architektur in Grids darstellt. Zum Abschluss stell ich noch OGF, OASIS und die Globus Alliance vor, die alle wichtige Beiträge zum Grid Computing liefern und es damit federführend sind. 1 Motivation Trotz steigender Leistung der Computer bleibt der Mangel an Ressourcen, wie Rechenleistung, Speicherkapazität et cetera, ein großes Problem. Berechnungen von physikalischen, chemischen oder klimatischen Vorgängen benötigen mehr Leistung als jeder heutige Großrechner liefern kann. Viele dieser Untersuchungen könnten genauere Ergebnisse liefern, wenn nur die Ressourcen groß genug wären. Jedoch steigen bei Großrechnern die Kosten bei mehr Leistung so sehr an, dass es irgendwann zu teuer wird. Im Widerspruch zum Mangel an Ressourcen steht jedoch, dass in vielen Firmen oder Instituten Computerressourcen jeder Art einfach ungenutzt bleiben. Ich rede hier von den vielen PCs in den Büros der Angestellten oder auch von vielen Geräten, die kleine Computer in sich tragen. Diese werden ungefähr acht Stunden am Tag genutzt, viele von ihnen selbst in der Zeit nicht intensiv, und den Rest der Zeit bleiben sie ungenutzt. Grid Computing soll nun die Lösung dieser beiden Probleme bringen. Grid Computing ermöglicht die Vernetzung heterogener Systeme und die Nutzung der Ressourcen dieser Systeme. Diese Vernetzung kann nicht nur Unternehmensintern erfolgen, sondern auch zwischen Unternehmen und anderer Gruppen. Einige große Grids verbinden heute schon Forschungsinstitute miteinander zum einen

194 190 Chr. Kathan um die Leistung von Großrechnern einfach zu teilen, ohne am Standort dessen zu sein, zum anderen um durch die Vernetzung auch einen Leistungsgewinn zu erzielen. Ziel wird es irgendwann sein Rechenleistung aus der Steckdose zu bekommen. 2 Was ist Grid Computing? 2.1 Grundlagen Der Begriff Grid ist angelehnt an das englische Powergrid [11], übersetzt das Stromnetz. Dies soll widerspiegeln, dass Leistung zum einen nicht dort entstehen muss (Kraftwerk), wo sie gebraucht wird (Haushalt), zum anderen aber auch, dass diese jederzeit, zuverlässig und überall verfügbar ist [3], wie beim Stromnetz. Grid Computing soll genau diese Infrastruktur zur Verfügung stellen nur eben für Computerressourcen. Grid Computing ist nicht einfach eine Art verteiltes System, es ist mehr. Es stellt auf einer höheren Ebene Dienste zur Verfügung, die nicht System- oder Applikationsgebunden sind. Grid Computing muss vielen Ansprüchen genügen. Es ist ein heterogenes Netzwerk und alles in diesem Netzwerk muss zusammenarbeiten können. Es muss eine hohe Skalierbarkeit aufweisen. oftmals fängt es klein an und wächst dann immer weiter. Es kann aber auch geografisch weit verteilt sein, so dass die Anwendungen die das Grid verwenden, eine hohe Toleranz gegenüber Latenzen haben müssen. Es ist dynamisch, da sich ständig die zur Verfügung stehenden Ressourcen ändern können. Gründe dafür können hohe Auslastung oder Ausfälle sein. Gegenüber dies allem muss das Grid und seine Teilnehmer tolerant sein und schnell reagieren können, ohne weitere Probleme nach sich zu ziehen. Eine Grid Middleware soll die Heterogenität des Grids verbergen und den Benutzern und Anwendungen ein homogenes System mit standardiesierten Schnittstellen zu den Diensten präsentieren Definitionen von Grid Computing Erste Überlegungen zu Netzwerken die Leistungen zur Verfügung stellen, wie dem Grid, wurden schon ziemlich früh gemacht, wie zum Beispiel 1969 von Leonard Kleinrock [7]: We will probably see the spread of computer utilities, which,like present electric and telephone utilities, will service individual homes and offices across the country. Jedoch wurde damals noch nicht der Begriff Grid verwendet. Vielmehr ging es allgemein um die zur Verfügungstellung von Rechenleistung. Jedoch ist dies der Grundgedanke bei Grid Computing. Dennoch hat es sehr lange gedauert, bis angefangen wurde, sich mit dem Thema wirklich auseinander zu setzen.

195 Einführung in Grid Computing verfassten Ian Foster und Carl Kesselman in ihrem Buch The Grid: Blueprint for a New Computing Infrastructure [1] die erste ernsthafte Definition von Grid Computing und legten damit einen wichtigen Grundstein des heutigen Grid Computing. A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities. Dies sagt genau das aus was ich bei Grundlagen 2.1 schon beschrieben habe, dass ein Grid eine Möglichkeit bieten soll zuverlässigen, beständigen und überall vorhandenen Zugriff auf Computerressourcen zu ermöglichen hat Foster, Kesselman und Tuecke die Defintion von 1998 noch erweitert [3]: [...] the Grid concept is coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations. Diese Erweiterung der Definition soll darstellen, dass Grids keine starren Netze sind, sondern sich den Umständen anpassen und die Ressourcen zur Verfügung gestellt werden. Diese Ressourcen stellen nicht nur einfachen Datenaustausch dar, sondern kompletten Zugriff auf den Computer und seiner gesamten Leistungen, wie Speicher, Rechenleistung und Software. Das Aufteilen der Leistungen muss daher streng reglementiert und kontrolliert werden, um sicherzustellen welche Leistungen benötigt werden, aber auch um die Sicherheit der Daten zu gewähren. [3] Diese letzte Definition ist heute die gebräuchlichste um ein Grid abstrakt zu definieren hat Ian Foster noch eine Checkliste [4] aufgestellt, um etwas die Abstraktion herauszunehmen und schnell zu klären, was ein Grid ist oder nicht. Um ein Grid zu sein, müssen alle Punkte erfüllt werden. 1. Koordiniert Ressourcen in heterogenen Systemen, die nicht einer zentralen Kontrolle unterliegen. Dies betrifft unter anderem die Bereiche, Sicherheit, Richtlinien, Abrechnung und alles was in diesen Bereich fällt 2. Verwendung von standardiesierten und offenen Protokollen und Schnittstellen. Dies ist wichtig, damit es kein applikationsbezogenes System wird. Die Protokolle sollen grundlegende Bedürfnisse, wie Authentifikation, Authorisation, und Bereitstellung von Ressourcen, regeln. 3. Übertragung von nicht trivialen Diensten. Ein Grid ermöglicht seine Dienste in verschiedener Güte zur Verfügung zu stellen, zum Beispiel je nach Verfügbarkeit oder Richtlinien Virtuelle Organisation (VO)

196 192 Chr. Kathan Eine Virtuelle Organisation ist ein zeitlich begrenzter Zusammenschluss von Interessengruppen, wie Unternehmen, Institute oder auch Einzelpersonen um sich gegenseitig, nach bestimmten Regeln, Ressourcen zur Verfügung zu stellen und ein gemeinsames Ziel zu erreichen (siehe The Anatomy of the Grid [3]). Dabei müssen nicht alle Gruppen die gleichen Rechte und Pflichten besitzen. Jeder der Ressourcen zur Verfügung stellt kann dabei genaue Regeln festlegen wer, wann und wie darauf zugreifen darf. Dabei müssen die Regeln nicht für jeden einzelnen Benutzer festgelegt werden, sondern können für Gruppen bestimmt werden. In VOs müssen die Regeln ständig überwacht werden, da sie keineswegs starre Konstrukte sind, sondern auf dynamische Nutzung ausgelegt sind. Auch muss es möglich sein, vorausgesetzt man hat die Rechte dazu, wenn man in mehreren VOs ist, die Ressourcen jeder VO gleichzeitig zu nutzen. Das Konzept der Virtuellen Organisation ist ein wichtiger Bestandteil des Grid Computing, das die Anforderung der VO ebenfalls voraussetzt (siehe Definition 2.1.1). Abbildung 1. Beispiel zu VOs aus [3] Hier sind die beiden VOs P und Q dargestellt. Die Ellipsen stellen Organistationen dar, wobei die Linke zur VO P gehört, die Rechte zur VO Q und die mitttlere zu beiden. In Klammern stehen die Regeln für den Zugriff auf die Ressourcen der jeweiligen VOs, je nach Gruppe verschieden Geschichte des Grid Computing Die Geschichte des Grid Computing beginnt Anfang der frühen 1990er, als erste Großrechner verbunden wurden. Damals kam dafür der Begriff Metacomputing auf [12][11]. Zwei Projekte zu Metacomputing waren FAFNER[13][12] und I- WAY[12], die die unterschiedlichen Richtungen repräsentieren. FAFNER ist ein Projekt, um RSA130 zu faktorisieren, dass über das HTTP Protokoll Rechenpakete verschickt und zurückbekommt. RSA ist ein bekann-

197 Einführung in Grid Computing 193 tes asymmetrisches Verschlüssungsverfahren, mit einem privaten Schlüssel zum Entschlüsseln und einem öffentlichen Schlüssel zum Verschlüsseln. RSA130 faktorisieren bedeuted, das eine aus 130 Ziffern bestehende Zahl in ihre beiden Faktoren zerlegt wird (siehe für Details [17]). FAFNER ist nicht nur für Großrechner ausgelegt, sondern auch für einfachen PCs. Einzige Voraussetzung ist, das ein Web Server auf dem Computer laufen muss. Jedoch hat es viel menschliche Arbeit benötigt, um die Ergebnisse zu sortieren. FAFNER als Vorläufer von I-WAY, Information Wide Area Year [6], hat ausschliesslich Supercomputer verbunden. Es hat vorhandene Netzwerktechniken verwendet und keine neue hervorgebracht. Globus Alliance[14] hat dann 1997 angefangen sein Globus Toolkit zu entwickeln, das in heterogenen Systemen unterschiedliche Dienste auf höherer Ebene verwalten soll. Weiterentwicklungen machten es zum heutigen Standard Tool für Grid Computing. 2.2 Arten des Grids Ich beschreibe in diesem Abschnitt kurz drei verschiedene Arten von Grids, die nach ihren Objekten unterschieden werden. In einer funktionalen Sicht, werden Computational Grid und Data Grid zu einem sogenanntem Resource Grid zusammengefasst, welches dann für alle Arten von Ressourcen, wie Rechenleistung, Speicherkapazität und sonstige Hard- und Softwareressourcen, steht Computational Grid Computational Grid gab es anfangs als Begriff, um Grids zu beschreiben, die Rechenleistung teilen. Jedoch ist der Begriff wieder verschwunden, da die Definitionen zu Grids sich weiter entwickelt haben (siehe Definitionen2.1.1) und der Begriff Computational Grid heute einfach das Grid im allgemeinen ist, anstatt einer speziellen Art. In The Grid: Blueprint for a Future Computing Infrastructure[1] definieren die Autoren den Begriff Computational Grid folgendermaßen A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities Wie aber schon bei den Definitionen zu lesen, ist diese Definition nur eine frühere Definition von Grid Computing Data Grid Das Data Grid (Quelle zu diesem Abschnitt [2]) bietet die Möglichkeit Teraoder Petabyte große Datenmengen zu speichern und mit sehr hoher Bandbreite an viele Anwender weiterzuleiten, damit diese die Daten erforschen können.

198 194 Chr. Kathan Es gibt zwar schon Systeme, die darauf ausgelegt sind, große Datenmengen zu speichern, jedoch diese nicht effizient weiterleiten können. Es gibt 4 Aspekte in der Architektur von Data Grid die beachtet werden müssen. Wie Daten gespeichert werden, zum Beispiel das genaue Speichersystem, wird durch Schnittstellen gekapselt. (mechanism neutrality) Designentscheidungen, die maßgeblich die Leistung beeinflussen, werden, wenn möglich, dem Anwender gelassen, damit sie einfach mit der Anwendung in Einklang gebracht werden können. Während Datenverschiebungen und Replica Kataloge Basisfunktionen sind, sind Regeln (policy) zum Erstellen von Replica auf höherer Ebene intergriert, so dass sie von Anwendungen überschrieben werden können.(policy neutrality) Die Kompatibilität zu dem allgemeinen Grid und seinen Basisdienste, wie Authentifikation, Ressourcenmanagment und so weiter, muss gewährleistet sein. (compatibility) Es wird der selbe einheitliche Zugriff verwendet, wie dem zugrundeliegenden Grid. (uniformity) Abbildung 2. Hauptkomponenten und die Struktur der Data Grid Architektur aus The Data Grid [2] In Abbildung 2 ist die Architektur des Data Grids dargestellt. Wobei die niedrigste Schicht den hoch performanten Zugriff auf die Basismechanismen darstellt, aber ohne genaue Richtlinien zu erwingen. Dies ist oftmals nötig, damit Anwendungen effizient implementiert werden können. Nach The Data Grid [2] sind die Dienste zum Datenzugriff und dem Metadatenzugriff grundlegend. Daher gehe ich kurz näher auf die beiden ein. Genauere Details kann man in The Data Grid [2] nachlesen, diese würden den Umfang sprengen. Datenzugriff

199 Einführung in Grid Computing 195 Der Dienst des Datenzugriff enthält Aspekte für den Zugriff, Management und Initialiesierung von Datentransfers. Wichtig sind neben Fernzugriffe auch optimierte Methoden um Kopien auf andere Speichersysteme zu übertragen(replica storage services). Obwohl grundlegende Speichersysteme recht einfach sind, kann die Umsetzung in einem Grid, aufgrund der Heterogenität, schnell komplex werden. Es müssen nämlich auch hier die Grundlagen des Grids (siehe 2.1.1) beachtet werden. Datenspeichersysteme müsssen optimal integriert sein, um eine möglichst hohe und stabile Leistung zu gewährleisten und doch allen Sicherheitsregeln genügen. Desweiteren müssen sie sich selbst überwachen können und im Falle eine Fehlers diesen melden oder wenn möglich selber korrigieren. Metadatendienst (metadata service) Der Dienst des Metadatenzugriffs stellt Informationen zum Zugriff und Management der Informationen vom Data Grid. Es gibt verschieden Arten von Metadaten. Anwendungsbezogene Metadaten (application metadata) stellen Informationen zur Verfügung, die für die Anwendung nützlich sind, wie Inhalt oder Herkunft der Daten. Metadaten über Kopien (replica metadata) speichern Informationen über Dateinstanzen und deren Verbleib im Speichersystem des Grids. Metadaten zur Systemkonfiguration (system configuration metadata) beinhalten Informationen zu Fabric des Grids (siehe zu Fabric bei Das Schichtenmodell Paragraph Fabric 2.3.1). Der Dienst zu Metadaten stellt eine einheitliche Schnittstelle für die verschiedenen Arten an Metadaten zur Verfügung, damit die Logik dahinter gekapselt ist und Anwendungen trotz sehr unterschiedlichem Umgang mit verschiedenen Metadaten einfach die Metadaten verwenden können. Damit Anwendungen Dateien finden können, die für sie von Interesse sind, schicken sie eine Anfrage an Metadatendienst. Diese Anfrage ist mit logischen Dateien verknüpft, die einen einzigartigen Namen besitzen. Wurden die logischen Dateien gefunden, kann der Replica Manager (siehe Abschnitt 2.2.2) nun die replica metadata nutzen, um die Datei für den Zugriff zu lokalisieren. Für den Metadatendienst wurde entschieden auf das Lightwight Directory Access Protocol (LDAP) zurückzugreifen, da dies schon in etwas das bietet was man bei Data Grids braucht. Replica Management Kurz möchte ich noch etwas zum Replica Manager sagen, da dies ein wichtiger Teil der Zugriffe im Data Grid darstellt. Er gehört schon zu den höheren Schichten der Data Grid Componenten. Der Replica Manager erstellt oder löscht Kopien von Dateiinstanzen, um eine bessere Leistung beim Zugriff zu erreichen oder Platz für wichtigere Zwecke zu schaffen. Wie schon angedeutet hat der Replica Manager einen Katalog in dem er logische Dateien verwaltet. Eine oder auch mehrere dieser logischen Dateien repräsentieren eine oder mehrere Kopien. Ein Grid kann mehrere Replica Kataloge enthalten und ein Eintrag in einem Katalog kann wieder ein Katalog sein.

200 196 Chr. Kathan Service Grid Service Grids stellen keine Ressourcen zur Verfügung sondern Dienste, die den Resource Grids, wie Computational Grids und Data Grids, übergeordnet sind. Sie bieten nach außen hin Schnittstellen an und kapseln dadurch die Ressourcenverteilung gegenüber dem Anwender. Dieser kann dann die einheitlichen Schnittstellen verwenden ohne sich kümmern zu müssen, welche Ressourcen er den überhaupt benötigt, da dies der angeforderte Dienst übernimmt. Um dies zu erreichen könnte man auf die schon entwickelten Web Services zurückgreifen (siehe [11]). Diese bieten schon einige Konzepte, wie die Web Services Definition Language(WSDL) die man zur Definition von Grid Diensten verwenden könnte, für die Kommunikation zwischen den Diensten könnte man das Simple Object Access Protocol (SOAP) verwenden und für die Sicherheit den Web Services Security Layer. Jedoch gibt es entscheidende Unterschiede, Grid Services sind nicht persistent und besitzen Zustände im Gegensatz zu Web Services. Daraus ergeben sich Unterschiede im Lebenszeitmanagment und dem Umgang mit Zustandsinformationen. Diese beiden bilden jedoch die Grundlage um Dienste im Grid zu realisieren, da ein Grid wie schon angesprochen sehr dynamisch ist. Ich gebe hier nur einen kleinen Einblick in die Open Grid Service Infrastructure (OGSI), mehr kann man zum Beispiel in Dienste und Standards für das Grid Computing [11] nachlesen. Grundsätzlich sind alle Dienste auch in OG- SI Web Services, aber sie unterstützt noch weitere Konzepte. Maschinenlesbare Schnittstellendefinitionen, Lebenszeit (lifetime) und Erweiterbarkeit von Diensten auch das Auffinden und Referenzieren von Diensten (HandleResolver) sind nur einige Konzepte. Bei der Instanziierung von Diensten (Factory) kann man Analogien zu Objektorientierter Programmierung feststellen, die ebenfalls das Factory verwenden und nicht nur dies könnte man analog aus der OOP übertragen, wie Reinefeld es anreißt [11]. Für die Schnittstellen wird WSDL verwendet, da dort schon alles wichtige definiert ist, wie zum Beispiel eine Möglichkeit über ein Netzwerk Dienste anzusprechen. Als Nachfolger von OGSI wird im Moment das Web Services Resource Framework (WSRF) diskutiert. Es bietet zwar die selbe Funktionalität wie OGSI, aber hat einen anderen Ansatz. WSRF ist in 5 Konzepte unterteilt, die auch außerhalb von Diensten ansprechbar sind, gerade bei Zustandsabfragen ist dies im Grid von Vorteil. Damit Dienste im Grid sinnvoll genutzt werden können müssen sie komplett plattformunabhängig sein. Jedoch erhöht dies die Komplexität und damit sinkt deren Geschwindigkeit im Gegensatz zu anderen Verfahren. Dies ist aber auch nicht die Aufgabe von Grid Diensten, sondern viel mehr eine applikationsübergreifende Infrastruktur zu unterstützen, damit Anwendungen besser heterogene Systeme auszunutzen. 2.3 Architektur Das Schichtenmodell

201 Einführung in Grid Computing 197 Ohne tiefer auf die genauen Strukturen einzugehen, kann man den Aufbau des Grids in einem einfach gehaltenen Schichtenmodell darlegen, wie in Abbildung 3 zu sehen ist. Die einzelnen Schichten sind im Buch The Anatomy of the Grid [3] beschrieben, auf welches ich mich im folgenden beziehe. Abbildung 3. Grid Protokoll Architektur [3] ohne Vergleich zum WWW Fabric Layer Die Fabric Schicht stellt die unterschiedlichen lokalen Ressourcen den darüber liegenden Schichten über Schnittstellen zur Verfügung. Dabei sind, wie schon oft angesprochen, die Ressourcen beispielsweise Rechenleistung, Speicher, Datenbanken, Kataloge, Netzwerkressourcen, Sensoren oder auch Software. Aber auch logische Ressourcen, wie das Dateisystem, Cluster oder andere verteilte Systeme. In dieser Schicht werden die Ressourcen spezifische Operationen implementiert. Je mehr Funktionen man implementiert, desto präziser kann man die Ressourcen einsetzen. Aber mit der Anzahl der Funktionen steigt die Komplexität die Ressourcen ins System einzubinden. Einige grundlegende Funktionen sollten allerdings trotzdem implementiert werden, wie Abfragen zur Struktur, dem Status und die Fähigkeiten der Ressourcen und Mechanismen zum Ressourcenmanagment, um die Ressourcen kontrollieren zu können. Connectivity Layer Die Connectivity Schicht stellt Protokolle für die Kommunikation zwischen den einzelnen Ressourcen der Fabric Schicht und Protokolle zur Authentifizierung zur Verfügung. Die Kommunikationsprotokolle beschreiben den Transport, das Routing und die Adressierung. Dafür greift es auf schon existierende Protokolle zurück, wie TCP/IP. Bei der Authentifizierung gibt es Richtlinien, die einzuhalten sind.

202 198 Chr. Kathan Ein Anwender soll sich nur einmal beim System anmelden, danach soll er alle Ressourcen, die er nutzen darf, auch nutzen ohne sich bei jeder einzeln authentifizieren zu müssen. (single sign on) Die Rechte sollen auch an Programme und optional an Unterprogramme vererbt werden können, so dass auch diese die Ressourcen nutzen können. (delegation) Da viele verschieden Sicherheitssysteme vertreten sein können, muss es möglich sein, auf deren Rechtesystem ein Mapping zu machen, wenn schon keine Vollständige Unterstützung möglich ist. Ein Benutzer soll verschieden Provider für eine Aufgabe verwenden können, wenn er die Rechte dazu hat, ohne das eine Rechtebeziehung zwischen diesen Providern stattfinden muss (user-based trust relationship) Resource Layer Die Resource Schicht baut auf den Protokollen der Connectivity Schicht auf, um Protokolle zur sicheren Übertragung, Initialisierung, Überwachung, Benutzerverwaltung und Abrechnung der geteilten Ressourcen zu definieren. Die Implementierung der Protokolle ruft Funktionen der Fabric Schicht auf, zum Zugriff auf die lokalen Ressourcen und deren Verwaltung. Die Anzahl der Protokolle soll dabei möglichst gering gehalten werden, um eine überschaubare Schnittstelle zu haben, sonst kann es passieren, dass die Protokolle zu spezifisch werden. Es gibt zwei wichtige Klassen an Protokollen Informationsprotokolle holen Informationen über die Struktur und den Status einer Ressource ein. (information protocols) Managmentprotokolle stellen erstmal fest, ob die Berechtigung vorliegt, eine bestimmte Ressource zu nutzen. Wenn dafür gültige Rechte vorliegen, koordinieren sie den Zugriff auf einzelne geteilte Ressource und ermöglichen Prozessgenerierung oder Datenzugriff. Die Managmentprotokolle beihnalten auch die Abrechnung, die Überwachung der Prozesse und deren Kontrolle, um eventuell in Abarbeitung der Prozesse einzugreifen, um diese zu beeinflussen oder zu beenden. (managment protocols) Collective Layer Die Collective Schicht beinhaltet Protokolle um eine Sammlung an Ressourcen gemeinsam zu verwalten. Im Gegensatz zur Resource Schicht, die nur mit einer Ressource interagiert. Dies ermöglicht eine effiziente Verteilung der Aufgabe auf die Ressource. Diese Schicht ist nun nicht mehr allgemeingültig, wie die darunter liegenden Schichten, sie kann sich in verschiedenen VOs unterscheiden. In dieser Schicht können eine Vielzahl an Verhalten implementiert werden, ohne neue Vorraussetzungen für die Ressourcen zu erzeugen. Einige möglichen Dienste: VOs Möglichkeiten bieten zum auffinden von bestimmten Ressourcen anhand von gewünschten Kriterien (directory service)

203 Einführung in Grid Computing 199 VOs können für eine bestimmte Aufgabe Resourcen anfragen und die Aufgaben durchplanen (co-allocation, scheduling, brokering service) Ressourcen können nach unterschiedlichen Kriterien überwacht werden. Kriterien können zum Beispiel der Status einer Ressource, die korrekte Funktion oder Angriffe auf Ressourcen von aussen sein (monitoring and diagnostig service) Verwaltung der Datenspeicherung um eine möglichst effiziente Performance zu erreichen. (data replication service) Auswahl der besten Implementierung zur Lösung eines bestimmten Problems (software discovery) Dies war nur eine Auswahl an Diensten. Weitere sind in The Anatomy of the Grid [3] zu finden. Grundsätzlich ist es möglich viele weitere zu implementieren, da einem in dieser Schicht keine Grenzen gesetzt sind. Application Layer Die Application Schicht ist die letzte Schicht. Dies sind nun die Anwendungen in der VO. Mit Anwendungen sind aber nicht nur Endanwendungen gemeint, es können genauso weitere Frameworks, mit weiteren Protokollen, darauf aufbauen. Diese Schicht bietet keine neuen Protokolle oder Dienste, sondern ist der Ausgangspunkt für Programmierer, um auf alle darunter liegenden Schichten zuzugreifen. Die Anwendung ist das einzige, was auf ein spezielles Problem zugeschnitten sein muss. Das System dahinter wird über seine Schnittstellen angesprochen, wie man in Abbildung 3 sehen kann, kann die Anwendungsschicht auf fast alle anderen Schichten zugreifen. Dieser Zugriff wurde in den jeweiligen Schichten durch Protokolle genau definiert, welche den Zugriff der Anwendungsschicht auf die Dienste, wie zum Beispiel Ressourcenmanagment und Datenzugriff, regulieren. 2.4 Organisationen Ich möchte hier näher auf drei Organisationen eingehen, die maßgeblich die Forschung und Entwicklung auf dem Gebiet des Grid Computings voran treiben Organization for the Advancement of Structured Information Standards (OASIS) OASIS wurde 1993 unter dem Namen SGML Open gegründet. Damals hat die Organisation an Richtlinien für Produkte, die die Standard Generalized Markup Language (SGML) unterstützen, gearbeitet änderten sie dann ihren Namen in OASIS, um ihr Expansion auf andere Techniken widerzuspiegeln (siehe OASIS Website [15]). OASIS hat inzwischem mehr als 4,000 Mitglieder die über 600 Organisationen und Personen vertreten. Zusätzlich stellen sie noch Internetseiten zu XML [19] zur Verfügung. Durch enge Kooperation mit anderen Organisationen, die Standards veröffentlichen, sorgt OASIS dafür, das sie nicht

204 200 Chr. Kathan in falsche Richtungen arbeiten und andere Standards respektieren und einbauen können. OASIS ist eine nicht gewinnorientierte Gemeinschaft, die die Entwicklung, Zusammenführung und den Einsatz von E-Business Standards vorantreibt. Dabei ist es OASIS wichtig, nur offene Standards zu entwickeln und anzubieten. Sie entwickeln viele Standards für Web Services, E-Business und Sicherheit in diesen Bereichen. Eine Besonderheit ist, das die Mitglieder den Weg vorgeben und er nicht von der Leitung diktiert wird, wodurch gewährleistet werden soll, das in die Richtung entwickelt wird, die der Markt gerade für wichtig hält. Unterstützt wird dies dadurch, das, bis auf den Präsidenten, alle Mitglieder der höheren Ämter jährlich gewählt werden. Ziele sind, in ihre Organisation möglichst viele aufzunehmen und durch geeignete Plattformen zu unterstützen, die an der Entwicklung von verschiedenen Standards beteiligt sind. Dies soll OASIS helfen möglichst nah am Markt zu entwickeln. Auf dem Gebiet Grid Computing beschäftigt sich OASIS mit dem Nutzen von Grids im Wirtschaftssektor. Business-To-Business (B2B) bezeichnet Beziehungen zwischen zwei Unternehmen auf Ebene der Geschäftsbeziehungen. VOs sind diesem recht ähnlich, nur das es bei Grid Computing um Computerressourcen geht. Wenn zwei Unternehmen sich schon in anderen Bereichen austauschen, liegt es nahe, auch Computerressourcen zu teilen Open Grid Forum (OGF) Geschichte des Open Grid Forums Die Geschichte des Open Grid Forums (siehe die Website des OGF [16]) beginnt 1998, als sich aus Workshops, Konferenzen und ersten Veröffentlichungen zum Thema Grid Computing das Grid Forum bildet. Dies umfasst Entwickler und Anwender von Grids in den USA. Im Jahr 2000 schliesst sich das Grid Forum mit dem European Grid Forum (egrid) und dem Asia-Pacific Grid Forum zusammen und bilden gemeinsam das Global Grid Forum (GGF). Das GGF arbeitet seitdem an Standards und Spezifikationen rund um Grid Computing. Bis dann 2006 das GGF mit der Enterprise Grid Alliance (EGA) fusioniert um das Open Grid Forum zu etablieren. EGA wurde 2004 gegründet mit dem Schwerpunkt auf Umsetzung des Grid Computing innerhalb von einem Unternehmen. Die EGA hat sich ausgiebig mit Sicherheit und Datenspeicherung beschäftigt. Auch hat sie das Marketing fociert, so dass Grid Computing zu einem Begriff wurde, der nicht nur in elitären Fachkreisen bekannt ist. Über das Open Grid Forum Das Open Grid Forum ist eine Community aus Anwendern, Entwicklern und Händlern, die die Standardisierung von Grid Computing vorantreiben. Inzwischen hat die OGF mehrere tausend Mitglieder aus Industrie und Forschung,

205 Einführung in Grid Computing 201 die mehr als 400 Organisationen in 50 Ländern vertreten (Angaben von [16]). OGF ist in verschiedene Gruppen unterteilt, die sich je nach Interesse am Grid, zum Beispiel Forschung, Entwicklung oder Nutzung, austauschen können. Dieser Austausch findet natürlich auch gruppenübergreifend statt. OGF dient dadurch als Plattform für alle an Grid Interessierten. Das Bestreben von OGF als Plattform zum Austausch zu dienen, wird auch durch die Organisation von drei Veranstaltung im Jahr und die Veröffentlichung von Arbeiten über Grid Computing auf ihrer Internetseite verdeutlicht. Als Beispiel von wichtigen Entwicklungen steht die Open Grid Service Architecture (OGSA). Diese wurde von der Working Group des GGF präsentiert und wird nun von OGF weiter entwickelt. OGSA definiert ein Komponentenmodell, das es Benutzern erlaubt, auf Dienste im Grid zuzugreifen. Seine Schwerpunkte liegen dabei auf der Standardisierung von Grid Eigenschaften, wie die Authorisierung sowohl von Anwendern, als auch von Diensten und das Auffinden und Nutzen letzterer. Auch die Verwaltung von VOs werden dort genauer beschrieben. [11]. Für weitere Details zu OGSA, das nicht Thema meiner Arbeit ist, gibt es ausführliche Beschreibungen von GGF und OGF, zum Beispiel [8], [9] und [10] Globus Alliance Die Globus Alliance [14] ist eine Gesellschaft aus Organisationen und Einzelpersonen, welche grundlegende Technologien zu Grid Computing entwickelt hat. Zwei wichtige Führungsmitglieder sind Ian Foster (Argonne National Laboratory, University of Chicago) und Carl Kesselman (University of Southern California Information Sciences Institute), die beide viele Veröffentlichungen zum Thema Grid Computing gemacht haben und durch ihre Definitionen seit 1998 (siehe 2.1.1) viel zum heutigen Grid beigetragen haben. Das wichtigste Ziel der Globus Alliance ist es Opensource Software für Grids zu entwickeln. Mit dem Globus Toolkit haben sie eine Grid Middleware geschaffen, die fast schon einen Standard repräsentiert. Das Globus Toolkit bietet schon eine Vielzahl an den wichtigen Features eines Grids, wie Ressourcemanagment, Sicherheitskonzepte und Informationsstrukturen. Noch weitere sind bei [14] nachzulesen. Es wird kontinuierlich weiterentwickelt um neuen Aspekten des Grids gerecht zu werden. Weitere Ziele der Globus Alliance, aufgeführt auf ihrer Webside [14], sind Entwicklung neuer Technologien um Data Grids zu unterstützen, damit auch sehr große Datenmengen zu verwalten, Grid Projekte zu unterstützen und aus diesen Erfahrungen für die Weiterentwicklung zu gewinnen. Ihre bisherigen Entwicklungen zu verbessern und zum Beispiel regelbasierte Authorisationen zu integrieren. Und natürlich weitere Anwendungsmodelle, Tools, Frameworks und Algorithmen für Grid Computing zu erforschen.

206 202 Chr. Kathan 3 Schluss Grid Computing bietet viele Möglichkeiten, um Ressourcen zu teilen. Zurzeit werden Grids vorallem von Forschungsinstituten genutzt. Unternehmen schreckt die schwierige Installation und Wartung ab. Grid Computing ist erst am Anfang, was auch daran zu sehen ist, dass, bevor ein Standard wirklich voll ausgebaut wird, wie OGSI, schon ein anderer diskutiert wird, wie WSRF. Die meisten Gedanken zu Grid Computing stehen erst auf dem Papier aber sind noch nicht so umgesetzt worden. Es ist auch alles sehr komplex, da der Umgang mit heterogenen Systemen nie einfach ist. Auch sind Robustheit und Sicherheit noch wichtige Themen, die zwar schon in die Theorie aufgenommen wurden, aber auch erst umgesetzt werden müssen und sich in der Praxis beweisen müssen. Um nochmal auf die Motivation (1) zurückzukehren, erspart Grid Computing wirklich die teuren Supercomputer? Ein klares nein. Supercomputer bieten noch immer Vorzüge, die ein Grid nicht erfüllen kann. Die wichtigsten Vorteile sind die sehr hohe Bandbreite zwischen den Ressourcen und die sehr geringe Latenz. Es werden eher sogar noch leistungsfähigere Supercomputer verwendet, da die Kosten in VOs geteilt werden können oder Ressourcen einfacher vermietet werden können, da Grid Computing einen einfachen Zugriff erlaubt. Probleme, die sich nicht faktorisieren lassen und daher keine parallele Ausführung erlauben, sind ebenfalls auf einem Supercomputer besser aufgehoben, der bei allen seriellen Prozessen besser ist. Literatur [1] Ian Foster, Carl Kesselman (Hrsg.). The Grid: Blueprint for a Future Computing Infrastructure. San Mateo (CA/USA): Morgan Kaufmann, (Kapitel 2 gefunden bei [2] Ann Chervenak, Ian Foster, Carl Kesselman, Charles Salisbury, Steven Tuecke. The Data Grid: Towards an Architecture for the Distributed Management and Analysis of Large Scientific Datasets. Journal of Network and Computer Applications, 23: , 2001 (based on conference publication from Proceedings of NetStore Conference 1999). [3] Ian Foster, Carl Kesselman, Steven Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations. International J. Supercomputer Applications, 15(3), [4] Ian Foster. What is the Grid? A Three Point Checklist. GRIDToday, July 20, [5] John Hagel, John Seely Brown. servicegrid.pdf [6] overview.pdf [7] Leonard Kleinrock [8] [9] [10] [11] Alexander Reinefeld, Florian Schintke. Dienste und Standards für das Grid Computing 8. DFN Arbeitstagung über Kommunikationsnetze, Düsseldorf, Lecture Notes in Informatics, In: J. von Knop, W. Haferkamp (Hrsg.), Series

207 Einführung in Grid Computing 203 of the German Informatics Society (GI), vol. P-55, pp , [12] David de Roure, Mark A. Baker, Nicolas R. Jennings and Nigel R. Shadbolt. The evolution of the Grid in Grid Computing: Making the Global Infrastructure a Reality (eds. F. Berman, G. Fox, and A. J. G. Hey) Wiley, [13] FAFNER, [14] Globus Alliance [15] OASIS [16] OGF [17] RSA faktorisieren [18] [19] XML

208 Grid Middleware Ferry Hielscher Universität Augsburg Zusammenfassung Die vorliegende Hausarbeit ist im Rahmen des Seminars Bio-inspired & Grid Computing des Lehrstuhles Softwaretechnik und Programmiersprachen an der Universität Augsburg entstanden. Diese Arbeit behandelt das Thema Middleware für Grid Computing Anwendungen und greift drei etablierte Lösungen heraus. Stellvertretend für die verschiedenen Middleware Lösungen werden die Projekte glite, Globus Toolkit und ausführlich das UNICORE Grid System betrachtet. 1 Einleitung Grids werden in Zeiten immer komplexer werdender Berechnungen und stetig anschwellender Datenmengen zunehmend als Alternativen zu monolitischen Supercomputern interessant. In Anlehnung an das Stromnetz ( power grid ) sollen Grids Resourcen verteilen und an jedem Punkt des Verbundes transparent zugänglich machen. Ein Benutzer soll nicht länger Resourcen von verschiedenen Anbietern erfragen müssen, sondern stellt lediglich eine Anfrage an das Grid, welches die nötigen Resourcen zur Verfügung stellt. Dem User bleibt dabei verschlossen welche Knoten bzw. wie viele letztlich beteiligt sind. Abschnitt 2 erläutert dazu einige Grundbegriffe und stellt die Projekte glite und Globus Toolkit kurz vor. In Abschnitt 3 wird exemplarisch das UNICORE Grid System ausführlicher beschrieben. Ein kurzes Beispiel soll die Arbeitsweise eines Unicore Grids verdeutlichen. 2 Grid Middleware Grundlagen 2.1 Grid Computing Arten des Grids: Abhänging von der Art der zur Verfügung gestellten Resource unterscheidet man im Wesentlich 3 Arten von Grids: Rechen-, Datenund Servicegrids. Rechengrids stellen Rechenleistung zur Verfügung, die in Form verteilter Rechner angeboten wird. Somit lassen sich beispielsweise sehr aufwendige und umfangreiche Berechnungen in einem Grid bei genügend angebotenen Resourcen wesentlich schneller durchführen, als auf einem einzelnen Rechner. Zu diesem Zwecke muß die Aufgabe in Teile zerlegt werden, um parallel auf allen beteiligten Rechnern abgearbeitet werden zu können.

209 Grid Middleware 205 Datengrids stellen statt Rechenleistung Speicherkapazität bereit. Der freie Platz auf vielen verteilten Knoten stellt eine wesentlich größere Gesamtkapazität dar. Eine wichtige Anforderung an das Grid ist die Wahrung der Datenintigrität. Trotz möglicherweise breiter Verteilung des kompletten Datensatzes und möglichem Vorhandensein von Kopien muß stets ein konsistenter Datensatz abrufbar sein. Service Grids bieten eine Vielzahl von Diensten an. Dadurch ist es nicht notwendig beispielsweise einen Server mit allen gewünschten Diensten zu implementieren, sondern eine Vielzahl von Knoten, die jeweils verschiedene Dienste anbieten, offerieren im Verbund das insgesamt gewünschte Spektrum von Services. 2.2 Middleware für Grids Eine Definition von Middleware für verteilte Systeme, im Speziellen Grids, liefert beispielsweise [1]: In a distributed computing system, middleware is defined as the software layer that lies between the operating system and the applications on each site of the system. Als Middleware bezeichnet man also Software sowie Protokolle, die standardisierte Schnittstellen zu heterogenen Systemen und somit einen vereinfachten und vereinheitlichten Zugriff auf Dienste und Services bieten. Dabei versteckt die Middleware die tatsächliche Implementierung und Lokalität der beteiligten Komponenten. Daraus lassen sich wie in [4] die notwendigen Bestandteile einer Middleware identifizieren und in einem Schichtenmodell wie in Abbildung 1 gezeigt, anordnen: Abbildung 1. Gridarchitektur im Vergleich zum Schichtenmodell des Internet(aus [4])

210 206 F. Hielscher Fabric: Diese Schicht stellt die Ressourcen zur Verfügung, auf die Zugriff im Grid angeboten werden sollen. Dies sind z.b. Rechenkapazität, Speichersysteme, Kataloge oder Netzwerkeressourcen. Wie diese Ressourcen im einzelnen System vorliegen, d.h. als physikalische (Platten, CPU, usw.) oder logische Einheiten (RAIDs, Cluster, usw.) ist für das Grid dabei unerheblich, das System muß die notwendigen Dienste und Protokolle zu deren Verwaltung beherrschen. Connectivity: Die Connectivity stellt die Kommunikationskanäle zwischen den Gridkomponenten dar. Dabei sind Authentisierung, Authorisierung sowie sichere Übertragung zentrale Aufgaben dieser Schicht. Resource: Diese Schicht stellt einen abstrahierten bzw. standardisierten Zugriff auf eine bestimmte Ressource bereit. Dies umfasst u.a. Operationen zum Initialisieren, Überwachen und Steuern einer einzelnen Ressource. Collective: Die Collective Schicht koordiniert die Gesamtheit der Ressourcen in einem Grid. Wichtige Aufgaben dabei sind Verzeichnisdienste, Überwachungsdienste, Datenmanagement uvm. Application: Die Anwendungsschicht umfasst die Benutzeranwendungen, die auf die unteren Schichten zugreifen. Die in den folgenden Abschnitten vorgestellten Grid Middleware Lösungen setzen dieses Modell auf unterschiedliche Art und Weise und in variierendem Umfang um. Nicht jede Middleware deckt alle Schichten vollständig ab. 2.3 Vergleich Grid Middleware In den folgenden Abschnitten werden insgesamt drei etablierte Grid Middleware Lösungen betrachtet und verglichen. Dabei wird das UNICORE Grid System in Abschnitt 3 ausführlicher behandelt Globus Toolkit Das Globus Toolkit (GT) der Globus Community ist eine Open-Source Implementierung einer Grid Middlware. Das Toolkit besteht aus einer Vielzahl von Bibliotheken und Programmen für die Erstellung eines Gridsystems. Wichtige Middleware-Dienste wie Resourcen- und Datenmanagement, sowie eine umfassende, auf gängigen Standards beruhende Sicherheitsinfrastruktur sind bereits enthalten. Der Zugriff erfolgt über umfassend dokumentierte Schnittstellen und Komandozeilenprogramme. Zahlreiche Tools unterstützen den Anwender beim Erstellen eigener Systeme. Abbildung 2 stellt die im Toolkit enthaltenen Module und Dienste dar. Ein wichtiges Merkmal des GT ist die Nutzung von Webservices die Komponenten und Schnittstellen. Diese Vorgehensweise bringt zahlreiche Vorteile wie einheitliche Definition und leichte Erweiterbarkeit mit sich. Die grundlegendsten Bestandteile der Architektur des Globus Toolkits sind: Services: hier sind bereits wichtige Dienste für Grid Anwendungen vorhanden Containers: in den jeweiligen Containern können anwendungsspezifische Dienste in C, Python oder Java zusätzlich implementiert werden

211 Grid Middleware 207 Abbildung 2. GT4 Komponenten (Quelle Client libraries: mit Hilfe dieser Bibliotheken können benötigte Client Applikationen erstellt werden, dabei sind Schnittstellen zu grundlegende Diensten wie Transport, Security usw. bereits in den Libraries enthalten Abbildung 3. Globus Toolkit Architektur (aus [5]) Eine zusammenhängende Sicht hierauf gibt Abbildung 3.

212 208 F. Hielscher Die glite Middleware ist Teil des Enabling Grids for E-sciencE (EGEE) Projektes. Ziel ist es, eine low level Middleware zu implementieren. Ähnlich wie das Globus Toolkit basiert glite auf einer serviceorientierte Architektur([6]). Ihre wichstigsten Module sind im folgenden erklärt: Workload Management System(WM): Das WM sorgt für eine effektive und effiziente Ausführung der eingehenden Aufträge. Dies umfasst ein sinnvolles verteilen und verwalten der anfallend Arbeit. Das WM verteilt die eingehenden Jobs an das CE. Computing Element Subsystem(CE): Das CE stellt Rechenleistung zur Verfügung. Benutzer können direkt Jobs an das CE geben oder das Workload Manager System(WM) gibt einen Auftrag an das CE. Letzteres geschieht entweder durch direkten Aufruf des CE durch das WM (push) oder das CE erfragt vom WM einen Auftrag (pull). Data Management Subsystem(DM): Das DM enthält hauptsächlich die Services Storage Element (SE), Catalog Services (CS), Data Scheduling (DS). Das SE behandelt den Zugriff auf Daten (Dateien), der CS erstellt Informationen über die vorhandenen Daten. Accounting: Im Accounting service werden Informationen über die Benutzung der Ressourcen durch User gesammelt. Dies ermöglicht eventuelle Leistungsverrechnung. Logging and Bookeeping: Die Logging&Bookeeping-Komponente zeichnet alle auftretenden Ereignisse, die mit der Ausführung von Aufträgen in Zusammenhang stehen (starte/beende Job), auf. Diese Daten ermöglichen Rückschlüsse auf die Auslastung des Grids bzw. einzelner Komponenten. Information & Monitoring Subsystem: Mittels dieses Moduls können die Komponenten des Grids überwacht und gesteuert werden. Service Discovery Subsystem(SD): Die SD Funktionalität steht sowohl dem Benutzer als auch den anderen Systemdiensten beim Auffinden passender Services zu einer Anforderung zur Verfügung. Security: Mittels der Security Komponente werden Authentifikation und Authorisierung der Benutzer abgewickelt. Zentrales Element des glite Sicherheitskonzepts sind Zertifikate. 3 Das UNICORE Grid System Das Projekt UNICORE (UNIform Interface to COMputing REsources) entstand im Jahr 1997 unter Förderung des Bundesministeriums für Forschung und Bildung. Ziel war es die in Deutschland vorhandenen Supercomputerzentren (u.a. Jülich, Karlsruhe, Konrad-Zuse-Zentrum) in einem Verbund besser auszulasten und einfacher nutzbar zu machen. Dazu gehörte auch die Vereinheitlichung des Ressourcenzugriffs sowie ein adequates Sicherheitskonzept, da sich die lokalen Lösungen in den einzelnen Rechenzentren stark unterschieden. UNICORE ist seitdem weiterentwicklet worden und findet heute weltweit Verwendung, im Forschungs-, wie auch im kommerziellen Bereich.

213 Grid Middleware Grundlegende Konzepte Das Abstract Job Object (AJO) ist eine Beschreibung eines Jobs. Wichtige Eigenschaft dieser Objekte ist die weitestgehende Vermeidung systemabhängiger Teile. Definiert und implementiert sind AJO mit Hilfe einer Java Klassenbibliothek. Ein Job im UNICORE System ist eine hierarchische Struktur, die aus einzelnen Tasks und Jobgruppen besteht. So kann ein Auftrag mehrere Tasks und untergeordnete Jobgruppen enthalten, die wiederum aus weiteren untergeordneten Gruppen und Tasks bestehen. Dabei werden Tasks grundsätzlich nur auf einem logischen Ausführungssystem (welches aber aus mehreren tatsächlichen Ausführungseinheiten bestehen kann, z.b. Cluster) ausgeführt, Subgruppen hingegen können auf mehrere Systeme verteilt werden. Zeitliche Abhängigkeiten zwischen Tasks verschiedener Gruppen werden bei der Ausführung berücksichtigt. Aufträge des Benutzers werden in einem sogenannten USpace ausgeführt, eine Ausführungsumgebung, die zu Beginn eines Jobs angelegt und nach dessen Abschluß wieder entfernt wird. Sämtliche notwendigen Eingabedaten für den Job müssen zu Beginn in den USpace importiert, alle Ausgaben können anschließend exportiert werden. Werden Daten anderer Tasks aus anderen USpaces benötigt, können diese transferiert werden. All diese Aufgaben müssen als Import-, Export bzw. Transferjob zusätzlich zur eigentlichen Aufgabe modelliert werden. Für jeden Job bzw. jede Jobgruppe können Ressourcenanforderungen angegeben werden (Anzahl CPUs, Speicher usw.). Die Klassenbibliothek für AJO Abbildung 4. Ausschnitt aus der AJO Klassenhierarchie besteht im Wesentlichen aus folgenden Teilen: Basis Objekte: sind Klassen wie Auszählungen, Mengen, Listen usw., die von den anderen Objekten benutzt werden Job Komponenten: sind all jenen Klassen, die zur Modellierung von Jobs zur Verfügung stehen. (siehe Abbildung 4) Service Komponenten: dienen der Jobüberwachung im JMC Dem Anwender stehen verschiedene Tasktypen zur Verfügung. Skript-Tasks kapseln die Ausführing von Shell oder Perl Skripten, Compile- und Link-Tasks ereugen aus C/Fortran/Java-Code Objektdateien und Anwendungen. Die bereits

214 210 F. Hielscher erwähnten Import/Export/Transfer-Tasks bewegen Daten in die Jobumgebung hinein bzw. heraus oder bewegen sie zwischen verschiedenen Jobgruppen Der UNICORE Protocol Layer (UPL) setzt oberhalb von SSL auf, womit eine gesicherte Übertragung über das unsichere öffentliche Internet gewährleistet wird. Über UPL werden die AJO und Job Informationen transportiert. 3.2 UNICORE Architekur Das UNICORE System besteht im Wesentlichen aus drei Schichten: user, server und target system. Die ersten beiden Schichten sind als Java Applikationen implementiert, die letzte teilweise auch in Perl. Die folgenden Abschnitte beschreiben die Schichten im Einzelnen. Einen Überblick gibt Abbildung 5. Abbildung 5. Die 3-Schichten UNICORE Architektur (aus [10]) Eine typische UNICORE Infrastruktur (siehe Abbildung 6) gliedert sich in USites. Dies sind jeweils lokal oder organisatorisch zusammenhängende Einheiten (z.b. Rechenzentren, Forschungsverbünde, usw.). Der Zugang zu einer USite erfolgt über ein Gateway, welches für Authentisierung und Authorisierung des Anfragers entscheidet und die Anfrage ggf. an eine VSite weiterleitet. Eine oder mehrere solcher VSites sind in der USite zusammengefasst, wobei eine VSite sowohl ein Einzelrechner sein kann, als auch z.b. ein Rechnercluster. Jede VSite verfügt wiederum über einen Network Job Supervisor (NJS), der vom Gateway übermittelte AJOs analysiert und die lokal ausführbaren Teile bearbeitet. Dazu werden diese Teile des Jobs in vom Zielsystem ausführbare

215 Grid Middleware 211 Abbildung 6. Detaillierte UNICORE Architektur (aus [8]) Programme (Batchjobs) übersetzt und entsprechend den Vorgaben des AJO ausgeführt. Teile, die auf anderen USites laufen sollen, werden entsprechend an die zuständigen Gateways delegiert. Weiterhin veranlasst der NJS alle vorgegebenen Filetransfers und stellt die Informationen über die Ausführung, sowie die Resultate des Jobs bereit Die User Schicht des UNICORE Grid Systems weist unter den hier vorgestellten Middleware Lösungen die Besonderheit auf, dass es dem Benutzer neben definierten Programmierschnittstellen auch ein grafisches Anwendungsprogramm liefert, mit dem auf das Grid zugegriffen werden kann. Das Erstellen von Aufträgen geschieht mit Hilfe des Job Preparation Agents. Der Benutzer generiert Jobs, legt target System, benötigte Resourcen und Ablaufsteuerung fest. Anschließend generiert der JPA daraus ein AJO welches an das Gateway der gewählten USite übermittelt wird. Ein aktivierter Job wird mittels des Job Monitor Controller überwacht. Beide Module sind in einer grafischen Java Applikation zusammengefaßt, die wie in Abbildung 7 gezeigt aussieht Die Serverschicht besteht aus dem Gateway, welches die eingehenden Anfragen der Klienten entgegen nimmt. Das Gateway ist zuständig für die Authentisierung des Clients. Weiterhin ist wie bereits erwähnt der Network Job Supervisor ebenfalls Teil der Serverschicht. Bei der Implementierung wurde auf vorhandene Batch-Systeme wie NQS (Network Queueing System) und CODI- NE zurückgegriffen. Aufgaben des NJS sind Auswählen eines geeigneten Zielsystem in der VSite für einen Auftrag

216 212 F. Hielscher Abbildung 7. UNICORE screenshot Übersetzung eingegangener AJOs in Jobs für das konkrete Zielsystem Übergabe des Jobs an das Target System Interface (TSI, siehe Abschnitt 3.2.3) Üeberwachen der Jobs (d.h. Empfangen der Informationen vom TSI) Erstellung und Übermittlung von Informationen über die Jobs Sichere Übertragung von Jobs, die auf mehreren VSites bearbeitet werden Die Target System Schicht enthält die eigentlichen Implementierungen der Ressourcen sowie deren Verwatungseinheiten. Zentraler Bestandteil ist das Target System Interface (TSI), welches die vermittelnde Schicht zwischen den UNICORE Teilen der Serverschicht und den tatsächlichen ausführenden Teilen des Zielsystems ist. Aufgaben sind: Verwalten der temporären Verzeichnisse für die Ausführung der Aufträge (d.h. Anlegen der USpaces) Übergeben der umgewandelten Jobs an das lokale Batch- bzw. Betriebssystem Das TSI ist abhängig vom Zielsystem implementiert und vermittelt zwischen den Anfragen und Aufträgen des NJS und den tatsächlich vorhandenen Funktionen und Befehlen des Systems. 3.3 Job-Lebenszyklus Um ein besseres Verständnis des Gesamtsystems zu vermitteln, soll nun der Lebenszyklus eines UNICORE Jobs kurz aufgezeigt werden. 1. Der Benutzer erstellt mit dem JPA einen Auftrag, er legt dabei Jobtypen, benötigte Ressourcen und Abhängigkeiten, sowie die gewünschte USite (bzw. VSites für evtl. Subjobs) fest.

217 Grid Middleware Während der Eingabe prüft der JPA bereits den Job auf Vollständigkeit und Richtigkeit. 3. Anschliessend kann der Benutzer den Job (genauer: das erstellte AJO) an die ausgewählte USite übertragen. Dazu baut der Client eine Verbindung zum zuständigen Gateway auf. 4. Das Gateway prüft anhand des Client Zertifikates die Identität und Berechtigung des Benutzers. 5. Hat der anfragende Benutzer die notwendigen Rechte, wird der Job im NJS passend zum Zielsystem übersetzt, d.h. ein ausführbares Programm wird erstellt. 6. Wird im Job eine weitere nicht zum Gateway gehörende VSite angesprochen, kontaktiert der NJS die entsprechenden Gateways und überträgt die notwendigen Daten (Benutzerzertifikat, AJOs, usw.). 7. Dieses Programm wird an das TSI ubergeben. 8. Das TSI legt lokal die nötige Ordnerstruktur an und führt den Job zu gegebener Zeit aus. 9. Während der Ausführung kann der Benutzer über den JMC den Status des Jobs abfragen. 10. Nach der Ausführung werden die Ausgaben an den User zurückgegeben und die lokalen, temporären Dateien und Verzeichnisse gelöscht. Im folgenden Abschnitt soll ein solcher Ablauf mit einem einfachen Beispiel-Job am System demonstriert werden. 3.4 UNICORE an einem Beispiel Das UNICORE Grid Projekt betreibt ein Testgrid, welches zwei Gateways ( Europe und America ) und jeweils 2 VSites pro Gateway umfasst. Zur Demonstration der Möglichkeiten und Funktionsweise des UNICORE Systems soll im Folgenden schrittweise ein Job erstellt werden, der im Testgrid ausführbar ist. Ziel soll es sein, eine auf dem Client gespeicherte Java Quelldatei in einer VSite zu kompilieren und dann das erstellte Programm in einer anderen VSite auszuführen (siehe Abbildung 8). Der Client ist komplett in Java implementiert und setzt somit eine vorhandene Java RE voraus. Die Sicherheitsinfrastruktur des UNICORE Systems basiert auf Zertifikaten. Nach der Installation muss zunächst ein sogenannter certificate store für den User eingerichtet werden. In diesem wird das Benutzerzertifikat hinterlegt, welches zur Authentisierung und Authorisierung an den UNICORE Gateways benutzt wird Der Job Preparation Agent als Teil des UNICORE Clients, wie er bereits in Abschnitt kurz erwähnt wurde, erlaubt sehr einfach selbst umfangreiche Jobs zusammenzustellen. In der Baumansicht des JPA wird die Jobhierarchie aufgebaut, viele elementare Aufgabentypen und Kontrollstrukturen stehen dem User dazu zur Verfügung.

218 214 F. Hielscher Abbildung 8. Ablauf des Beispieljobs Für das Beispiel muß zunächst das zu kompilierende Java Programm in den USpace der VSite übertragen werden, was mittels einer Import Task. In den Einstellung der Task müssen der Ursprungspfad der Datei und der Zielort im USpace angegeben werden. Dies geschieht im rechten Teil des Clientfensters (siehe Abbildung 7, Bereich B). Die in den USpace kopierte Quelldatei kann mittels einer command Task mit dem javac Compiler übersetzt werden. Die nötigen Optionen (classpath, Dateien, usw.) werden wieder im Client angegeben. Tasks und Subjobs werden in UNICORE nur auf einer VSite abgearbeitet, um die Ausführung des Beispielprogramms auf eine andere VSite zu verlegen, müssen dafür ein separater Subjob erzeugt werden. Als Zielsystem wird hier eine Abbildung 9. Baumansicht des JPA

219 Grid Middleware 215 andere VSite hinter einem anderem Gateway ausgewählt. Das fertig übersetzte Java Programm soll nun in den zweiten USpace übertragen werden. Dazu wird in der ersten Subgruppe eine Transfer Task angelegt. Die nötigen Optionen sind wie folgt eingestellt: Source: USpace File at Source: Class Datei(en) Destination Job Group: Subjob Name Destination: USpace File at Destination: Class Datei(en) Abbildung 10. Abhängigkeiten der Jobs und Tasks Da Tasks und Jobs grundsätzlich parallel ablaufen, müssen abschließend alle Abhängigkeiten zwischen allen Aufgaben definiert werden. Dazu werden in allen betroffenen Hierarchiestufen des Jobs die Ausführungsreihenfolge der Tasks und Subgruppen festgelegt. Die geordneten Tasks für die erste Subgruppe zeigt Abbildung Die Ausführung des vorbereiteten Jobs wird mit dessen Übertragung an die gewählte VSite eingeleitet. Danach kann der Status des Jobs bzw. dessen Teile im Job Monitor Controllers (JMC) beobachtet werden. Alle bekannten VSites mit den zugehörigen Gateways werden in einem Baum dargestellt. Aktuelle und alte Jobs werden unter den ausführenden VSites mit dem Zeitpunkt ihrer Übermittlung angezeigt. In der Baumansicht (siehe Abbildung 7, Bereich C) werden die einzelnen Jobteile entsprechend ihres Status gefärbt (grau - nicht ausgeführt, gelb - in Ausführung, lila - Ausührung geplant, grün - erfolgreich, rot - fehlgeschlagen, usw.).

220 216 F. Hielscher Die Auswertung eines gestarteten Jobs erfolgt ebenfalls im JMC. Der Befehl Fetch Output überträgt die aufgezeichneten Ausgaben des Jobs aus dem Zielsystem auf den Client. Diese Ausgaben werden unterteilt nach Standard Output, Standard Error, Details und AJO View im Client dargestellt. Die ersten beiden Kategorien beziehen sich auf die bekannten Unix Streams für Ausgaben und Fehlermeldungen. Die detaillierte Ansicht dagegen zeigt in einem Protokoll zu welcher Zeit jede einzelne Task des Jobs welchen Status (wartend, bereit, ablaufend,ausgeführt, usw.) erreicht hat. Ein solches Protokoll zeigt Abbildung 11. Abbildung 11. Ergebnisse einer Ausführung Die AJO view zeigt den Jobverlauf mit Sicht auf die Abstract Job Objects. In dieser Ansicht ist eine sehr ausführliche Verfolgung der Lebenszyklen der AJOs, von der Ankunft am Network Job Supervisor (NJS, siehe Abschnitt 3.2), über die Umwandlung dort in ausführbare Programme, bis hin zur tatsächlichen Ablauf auf dem Zielsystem. Man erhält an dieser Stelle einen tiefen Einblick in die Arbeit der Middleware, wie z.b. eine recht abstrakte Transfer Task im Zielsystem in Form ganzer Befehlsgruppen umgesetzt wird. Als Beispiel ist im Folgenden auszugsweise die AJO View für die Task zum Ausführen des kompilierten Java Programmes: Task: run_java 00:48:06 04/01 C Arrived at UNIVAC 00:48:06 04/01 T Known to NJS 00:48:06 04/01 S Status is now READY 00:48:06 04/01 T Starting execution 00:48:06 04/01 T Selecting TSI <execution_tsi> 00:48:06 04/01 C ExecuteTask - so no executable. IDB incarnation must supply one. 00:48:06 04/01 C EXECUTED COMMAND:UC_DECISION_FILE= /unicore/installed/uspaces/uspace_dcb07ad6 /.decision_dcb07af4; export UC_DECISION_FILE

221 Grid Middleware :48:06 04/01 C # Incarnation of ExecuteTask, UserTask or ExecuteScriptTask 00:48:06 04/01 C echo "Executing java..."; 00:48:06 04/01 C /opt/j2sdk1.4/bin/java Main 12 00:48:06 04/01 C the_last=$?; echo $the_last > $UC_DECISION_FILE; the_end=1; exit $the_last 00:48:06 04/01 C :48:06 04/01 C Incarnated Resources: nodes <1> processors <1> memory <16.0> 00:48:06 04/01 C Incarnated Resources: Time <300.0> 00:48:06 04/01 C Incarnated Resources: priority <Whenever> 00:48:06 04/01 C 00:48:06 04/01 C #TSI_SWR MakeReturnCodeDecision 00:48:06 04/01 C #TSI_SWR java 00:48:06 04/01 C Selected queue: whenever 00:48:06 04/01 S Incarnation started on BSS with identifier <18377> 00:48:06 04/01 S Status is now EXECUTING 00:48:06 04/01 S Status is now RUNNING 00:48:14 04/01 S Status is now SUCCESSFUL. Message: Script reported no errors Zu erkennen sind die Statuswechsel, die Wahl des TSI und die Übersetzung des Jobs ( Incarnation ) usw. 4 Fazit Der Bedarf an großer Rechenleistung und enormen Speicherkapazitäten in flexiblen und leistungsfähigen Grids hat Bestrebungen zur Abstraktion, Vereinheitlichung des Zugriffs auf die geforderten Resourcen bedingt. Verschiedene Ansätze wurden bei den hier genannten Middlewarestacks verfolgt. Aus einigen Forschungsprojekten haben sich komplexe Systeme entwickelt, die bereits vielfach produktiv im Einsatz sind. Nachdem Grids anfangs hauptsächlich selbst Objekt der Forschung waren oder im wissenschaftlichen Bereich zum Einsatz kamen, wecken diese flexiblen Systeme auch zunehmend das Interesse der Industrie. Viele bereits implementierte Testsysteme und eine noch überschaubare Zahl von kommerziell betriebenen Grids sind erst ein Anfang. Der nächste Schritt in der Entwicklung der Grid Middleware Lösungen ist der Ausbau der Interoperabilität dieser Systeme untereinander. Literatur [1] What is middleware

222 218 F. Hielscher [2] Christian Grimm, Marcus Pattloch, Analyse von AA-Infrastrukturen in Grid- Middleware Analyse-AAI_v1_1.pdf [3] Sepehr Seyedi, Middleware for Grid Computing and the relationship to Middleware at large [4] I. Foster, C. Kesselmann, S. Tuecke, The Anatomy of the Grid: Enabling Scalable Virtual Organizations [5] I. Foster, Globus Toolkit Version 4: Software for Service-Oriented Systems [6] EGEE JRA1 ITeam, glite - Lightweight Middleware for Grid Computing [7] Dr. R. Berlich, Dr. M. Kunze, Dr. K. Schwarz, Grid Computing in Europe: Frome Research to Deployment [8] M.Riedel, D.Mallmann, Standardization Processes of the UNICORE Grid System [9] M.Romberg, The UNICORE Grid Infrastructure [10] M.Romberg, The UNICORE Grid Infrastructure [11] D.Erwin, UNICORE Uniformes Interface für Computer-Ressourcen

223 Service Discovery im Grid Marc Gritsch Universität Augsburg Zusammenfassung Das Grid bietet eine Platform um jede Resource in einem Computernetzwerk, wie Working Stations, Sensoren, Drucker, CPUs usw. miteineander zu verbinden und die Grundlage einer gemeinsamen Kommunikation zu schaffen. Hierfür muss ein Monitoring und Discoveryservice angeboten werden, um diese Ressourcen anbieten und aufrufen zu können. Nachfolgend soll einen mögliche Architektur eines solchen Services dargestellt und dieser anhand des Monitoring und Discovery-Service des Globus Toolkit verdeutlicht werden. 1 Einleitung Nach zehn Jahren World Wide Web erleben wir im Moment eine weitere Internet- Revolution: das Grid Computing. Während das Web mittels Hypertext Verbindungen den einfachsten Zugang zu statischen Informationen ermöglicht, bietet das Grid nun auch den einfachen Zugriff auf die Ressourcen selbst an. [1] Mit Ressourcen sind hier einerseits die Vielzahl von Desktoprechnern gemeint, die durch das Internet ihre Rechenleistung, ihren Speicherplatz, sowie ihrer Daten einander zu Verfügung stellen können. Andererseits die fast grenzenlose Anzahl von Sensoren, Messgeräten, aber auch Services, auf die in einem Grid zugegriffen werden kann. Das Wort Grid (engl.) bedeutet im Deutschen soviel wie Gitter oder auch Versorgungsnetz im Bereich der Elektrizität. Der Begriff ist somit als Analogie zum Stromnetz (engl.: Electric Power Grid ) gewählt, um die Funktionsweise eines Grids zu verdeutlichen. Ein Grid soll so einfach zu Nutzen sein, wie es das Stromnetz ist. Der Nutzer verbindet sich über eine genormte Schnittstelle mit dem Grid. Anschließend kann er seinen Auftrag in das Grid übergeben und muss sich dabei keine Gedanken über die Herkunft der Ressourcen oder mögliche Plattformabhängigkeiten machen.[3] Der Begriff des Grid Computing wurde 1998 von Ian Foster und Carl Kesselmann, in ihrer Veröffentlichung The Grid: Blueprint for a New Computing Infrastructure geprägt. [2] Das Grid Computing ist eine aktuelle, immer wichtiger werdende Basistechnologie zur Nutzung verteilter Rechen-, Speicherressourcen oder Serviceres. Dabei fungiert jeder Computer, jeder Sensor, jedes Messgerät usw. als eine gleichgestellte Einheit. Komplexe Berechnungen, die möglicherweise Tage benötigen würden, können durch einen Verbund von hundertern Computern viel schneller und effizienter erledigt werden. So bietet ein Grid mehr Funktionalitäten, die schneller und billiger bearbeitet werden.[3] Damit ist das Grid-Konzept inzwischen so weit gediehen, dass im Moment in allen Teilen der Welt Grid-Projekte entstehen, mit

224 220 M. Gritsch dem Ziel, zuverlässige Produktionsplattformen (sogenannte Globale Grids und Enterprise Grids) für Wissenschaftler, Ingenieure und kommerzielle Anwender aufzubauen. Am 1. September 2006 wurde das D-Grid-Projekt offiziell gestartet. Das Bundesministerium für Bildung und Forschung fördert mehr als 100 deutsche Forschungseinrichtungen über die nächsten drei Jahre mit etwa 20 Millionen Euro. Ziel ist es, integrierte Netze mit hochleistungsfähigen, verteilten Rechenressourcen und darauf aufbauenden Diensten bereitzustellen. [1] 2 Monitoring and Discovery Service Um aber die oben genannten Vorteile zu bieten, sind folgende zwei Probleme effizient in der Gridumgebung zu lösen. Zum einen müssen die Ressourcen sicher und zuverlässig erreichbar sein, zum Anderen sinnvoll angeboten und zur Verfügung gestellt werden können. Diese Probleme soll ein Monitoring und Discovery Service (MDS) lösen. [4] 2.1 Umfeld eines MDS im Grid Die Situation in der Gridumgebung wird durch folgende Eigenschaften bestimmt. Einerseits ist es möglich, dass tausende Ressourcen angeboten werden, die zudem stark skalieren. Skalieren heißt in diesem Zusammenhang, dass ständig neue Ressourcen dem Grid beitreten, aber es auch wieder verlassen können. Andererseits können diese Ressourcen von zehntausenden Nutzer aufgerufen werden. Eine weitere wichtige Eigenschaft von Ressourcen im Grid ist, dass sie ihren Zustand ändern. So hat beispielsweise ein angebotener WebSpace ständig variierende freie Kapazitäten. Die Ressourceninformationen, die diese Zustände beschreiben, veralten sehr schnell. Meist werden diese Informationen häufiger aktualisiert als aufgerufen. Außerdem reicht es meistens nicht aus, eine Ressource mit nur einem Wert zu charakterisieren, sondern man muss eine dynamische Beschreibung beispielsweise über Verteilung, Inhalt und Lebensdauer veröffentlichen. [5] Anforderungen So sind in der Gridumgebung folgende Herausforderungen zu bewältigen.[5] [6] Geringe Latenz Da die Ressourcen meist nur kurze Zeit für den Nachfrager relevant sind, muss der Informationsfluss schnell erfolgen. Hohe Datenraten : Aufgrund der Menge von Ressourcen und Gridnutzer, kann eine sehr große Nachrichtenzahl in den Netzen und bei den Gridnutzer anfallen. Effizienz Die sich ständig ändernden Ressourcenbeschreibungen müssen effizient gesammelt, verarbeitet und angeboten werden. Skalierbarkeit Im Grid herrschen sich schnell änderne Verhältnisse. Einerseits können ständig neue Dienste und Ressourcen angeboten werden und andererseits schwankt die Zahl der Gridnutzer sehr stark.

225 Service Discovery 221 Aktualität Um den Gridnutzern Dienste und Ressourcen sinnvoll anbieten zu können, müssen ständig die aktuellen Informationen über eine Ressource bereitgestellt werden. So kann ein Gridteilnehmer beispielsweise nur dann Daten in einen Speicher schreiben, wenn dieser auch als frei angeboten wird. Sicherheit Durch die stark Verteilung und die große Anzahl der Gridteilnehmer (Ressourcen und Nutzer) ist auch die Sicherheit eine wichtige Herausforderung. Es muss vertrauenswürdig mit den Angaben des Nutzers umgegangen und die richtigen Ressourcen auf eine Anfrage hin geliefert werden. Selbst der Service, der diese Ressourcenanfragen verarbeitet muss sich als vertrauenswürdig erweisen Aufgaben eines MDS Diese Anforderungen sollen nun von einem MDS effizient gelöst werden. Es übernimmt zwei Aufgaben im Grid. Zum einen soll es die vom Nutzer gewünscht Ressource finden (Discovery). Zum Anderen muss es die Zustände der einzelnen Resourcen, sowie die globalen Zustände überwachen. (Monitoring). In diesem Zusammenhang könnte die Ressource beispielsweise eine CPU sein und ihr Zustand die Auslastung. (Abbildung 1) [4] Abbildung 1. Darstellung eines Grids 2.2 Modell eines MDS Um die in Kapitel beschriebenen Anforderungen zu erfüllen wird das MDS in einem Producer-Consumer-Modell realisiert. Darin ist der Producer der Anbieter einer Ressource und der Consumer der Nachfrager (vergl. Abbildung 2). Der MDS wird als seperater Service angeboten und nimmt damit eine Vermittlerrolle zwischen dem Consumer und dem Producer ein. Er speichert in einem Registry Informationen über die Consumer und die Producer. Das Registry kann

226 222 M. Gritsch als Adressbuch angesehen werden, wo die Adresse der angebotenenressource, sowie Informationen über ihren Inhalt und ihren Zustand gespeichert werden. Diese Informationen bezeichnet man als Metadaten bezeichnet. Somit ist der MDS von der eigentlichen Übermittlung der Daten getrennt. Die Kommunikation mit dem MDS erfolgt ausschließlich über Metadaten, die im Idealfall nur einen Bruchteil der eigentlichen Datenmenge darstellen, die nach einer Vermittlung getrennt vom MDS zwischen Consumer und Producer ausgetauscht werden. Als Beispiel kann folgende Situation dienen: Ein Consumer C sucht nach einer Datenbank um eine große Datenmenge zu speichern. Er frägt beim MDS nach, welcher Producer genügend Speicherplatz bietet und erhält die Adresses eines Anbieters P, der zuvor sein Angebot im MDS veröffentlicht hat. Nun kann C seine Daten an P übertragen, ohne dass der MDS weiter in Anspruch genommen wird. [18] [5] Abbildung 2. MDS in einem Producer-Consumer Modell [5] Zu beachten ist, dass in diesem Modell die Metadaten in einem standartisierten Format dargestellt sein müssen, um von allen Gridteilnehmern aufgerufen und interpretiert werden zu können. Der Consumer kann nur dann anhand dieser Beschreibungen die gewünschten Ressourcen nachfragen.[5] Die Funktionen des MDS Um diese Aufgaben zu erfüllen, muss der MDS folgende Funktionalitäten bieten.[5] Add Mit einer Add-Funktion müssen sich die Producer und die Consumer beim MDS anmelden. Dabei ist wichtig, dass dem MDS die Adressen aller Gridteilnehmer bekannt sind und der Producer eine Beschreibung (Metadaten) von allen seinen angeboten Diensten veröffentlichen kann. [5] Update Des weiteren soll mit einer Update-Funktion die Möglichkeit bestehen, Einträge im MDS zu verändern. Dies nimmt vor allem dann eine zentrale Rolle

227 Service Discovery 223 ein, wenn sich der Zustand einer angebotenen Ressource ändert. Nur so ist zu gewährleisten, dasss der veröffentlichte Zustand einer Ressource konsistent zum realen Zustand der Ressource bleibt. Zusätzlich kann den Metadaten eine Gültigkeitsdauer beigefügt werden, die der Producer immer wieder erneuern muss, um zu gewähreisten, dass die Beschreibung auf dem aktuellen Stand ist. Falls eine Aktualisierung aus bleibt, wird dieses Angebot aus dem MDS entfernt. [5] Remove Die Remove-Funktion hat die Aufgabe die Ressourcen, die entweder abgelaufen sind oder das Grid verlassen haben, aus dem MDS zu entfernen. Damit verhindert man, dass veraltet Informationen das Registry des MDS überlasten. [5] Search Zuletzt muss eine Search-Funktion angeboten werden, die eine Kommunikation zwischen Consumer und Producer überhaupt erst ermöglicht. So kann man in diesem Zusammenhang zwischen zwei Arten unterscheiden. Zum einen die Query and Response : Der Consumer sendet an den MDS eine Anfrage, in der er die von ihm gewünschte Ressource beschreibt. Der MDS vergleicht diese mit den Einträgen in seiner Registry und antwortet, falls existent, mit der Adresse der passenden Ressource. Zum anderen das Publish and Subscribe : Hier meldet sich der Consumer beim MDS an und zeigt Interesse an einem bestimmten Zustand einer Ressource. (z.b. Auslastung einer CPU). Zusätzlich kann der Consumer sich über globale Zustände informieren lassen. (z.b. Auslastung der Netze). Falls der angefragte Zustand erreicht wird, antwortet der MDS dem Consumer. Durch die hier beschriebenen Funktionen werden die Probleme, die eine Gridumgebung (vergleiche Kapitel 2.1.1) an ein MDS stellt, auf Implementierungsebene sinnvoll gelöst. So führt die Trennung von Informationsverwaltung und eigentlicher Datenübertragung zu einem schnellen Informationfluss ( Effizienz/Datenrate/Latenz ). Auch unterstützt ein solches Modell die Skalierbarkeit. Durch das Anmelden, Abmelden und Aktualisieren der einzelnen Ressourcen bleibt die sich ständig ändernden Gridumgebung handhabbar. Einen wesentlich höheren Einfluss auf die Skalierbarkeit hat aber die Architektur, in der das MDS realisiert. [5] Architektur eines MDS Eine Architektur legt die grundlegenden Elemente und die Struktur eines Softwaresystems fest. Eine Definition von Helmut Balzert beschreibt den Begriff als eine strukturierte oder hierarchische Anordnung der Systemkomponenten, sowie die Beschreibung ihrer Beziehungen. [7] Im Zusammenhang des Grids ist die Verteilung der einzelnen Komponenten und ihre Aufgaben von zentraler Bedeutung. So kann prinzipiell zwischen drei verschiedenen architektonischen Ansätz unterschieden werden.[6] Centralized MDS Die einfachste Architektur, um ein MDS zu realisieren, ist ein zentralisiertes MDS auf einem oder mehreren Index Servern. Die Server halten alle Informationen über die angebotene Ressourcen, ihre Provider und die Consumer. Dieser Ansatz bietet ein effiziente Lösung mit geringen Kommunikationskosten. Dadurch dass der Kommunikationspartner stets bekannt ist, müssen

228 224 M. Gritsch keine Suchnachrichten das Netzwerk fluten um die richtige Ressource aufzufinden. Es reicht eine Nachricht an den Index Server aus, um an den richtigen Producer vermittelt zu werden. Daher ist die Nachrichtenzahl im Netzwerk minimal. Das Problem, das aus dieser Art von Architektur entsteht, ist die fehlende Skalierbarkeit und beschränkte Zuverlässigkeit. Durch die Index Server entstehen Single Point of Failure, das heißt bei einem Ausfall eines solchen Servers, sind auch alle gespeicherten Informationen verloren. Zudem entsteht ein Bottleneck, da die gesamte Kommunikation über die Server abgewickelt wird und man Gefahr läuft, dass ein Großteil der angebotenen Ressourcenbeschreibungen nicht schnell genug aktualisiert werden können.[6] Distributed MDS Um obigen Probleme zu vermeiden, wird ein verteiltes MDS Design gewählt. Hierbei werden alle Funktionalitäten vom MDS von den Gridteilnehmern verteilt wahrgenommen. In dieser Architektur sind die Gridteilnehmer gleichgestellte Netzwerkknoten (Peers), die sich nur in ihren Aufgaben unterscheiden. So kann jeder Peer als Provider, Consumer oder MDS dienen. Zusätzlich können die Knoten den Zustand des Request-Routers annehmen. Dieser hat die Aufgabe Nachrichten entgegen zu nehmen und an nachfolgende Knoten weiterzuleiten. Mit Hilfe der Request-Router werden die Nachrichten in einem verteilten System verbreitet. Kurz umrissen, wäre folgende Implementierung eines solchen Systems denkbar: Erhält ein Knoten die Query eines Consumer, so untersucht er die Liste seiner lokalen Ressourcen. Bei Übereinstimmung antwortet er dem Consumer und nimmt selbst den Zustand des Producer an. Besitzt er keine Übereinstimmung, dann leitet er die Anfrage weiter (Request-Router). Um ein unkontrolliertes Flooding des Systems zu vermeiden, werden in solchen Systeme Indikatoren (z.b. Schranken, bestimmte Konditionen) implementiert, bei denen Querys nicht mehr weitergereicht werden. Eine solche Architektur ist sehr robust, zuverlässig und sehr gut skalierbar. Aufgrund dessen dass jeder Knoten jeden Zustand einnehmen kann, existieren weder Bottlenecks noch Single Points of Failure. Trotz allen Beschränkungen ist der Nachteil einer solchen Implementierung die Anzahl der zuübertragenden Nachrichten. Da jeder Knoten Anfragen an eine Vielzahl von Knoten weiterleitet. Damit ist die Menge der übertragenen Anfragen exponentiell.[6] Diese Zahl kann reduziert werden, indem man Routing Strategien aus dem Peer-2-Peer (P2P) verwendet. P2P verfolgt eine sehr ähniche Idee wie das Grid; jeder Peer kann Nachrichten versenden und Informationen und Daten mit anderen Peers teilen. Das bekannteste Beispiel eines P2P-Systems ist das File-Sharing-Tool Napster. Der Unterschied zum Grid besteht darin das P2P nicht eine Vielzahl von unterschiedlichen Ressourcen anbietet kann. Jedoch treten dort ähnliche Probleme beim Weiterleiten der Nachrichten durch das Netzwerk auf. Um ein unkontrolliertes Flooding zu verhindern, wurden mehrere 2.Generation Routing Protokolle entwickelt (z.b. Chord, CAN, Tapestry), die den Nachrichtenaufwand reduzieren. So stellen Artur Andrzejak und Zhichen Xu (Hewlett-Packard Laboratories) in ihrer Arbeit Scalable, Efficient Range Queries for Grid Information Services vor, wie das CAN-Protokoll auch in einer Gridumgebung verwendet werden kann und somit die Nachrichtenzahl reduziert wird [8].

229 Service Discovery 225 Hybrides MDS Ein hybrides MDS versucht die Vorteile der beiden vorhergegangen Ansätze zu nutzen und dabei die Nachteile zu vermeiden. Hier wird das MDS auf einigen Knoten in der Gridumgebung aufgeteilt. Zusätzlich zu den Aufgaben eines verteilten Ressourcensharing (z.b. Routing), sind diese Knoten für das Monitoring und Discovery verantwortlich. Diese Knoten werden als Super Nodes bezeichnet. Producer können sich bei mehreren SuperNodes anmelden und Consumer die Beschreibung der Ressourcen dort nachfragen. Der große Vorteil dieser Architektur ist, dass jeder Knoten jederzeit von einem anderen Knoten ersetzt werden kann und somit der Ausfall eines Knotens zu keinem Crash führt. Zusätzlich wird der Kommunikationaufwand reduziert, da nicht jeder Knoten am Routing von Anfragen teilnimmt. Der hybride MDS bietet eine effektive Kombination zur Erreichung der gewünschten Skalierbarkeit, Zuverlässigkeit und Effizienz.[6] 3 Das Globus Toolkit Anhand des von der Globus Alliance entwickeltem Globus Toolkit 4 (GT4) wird eine hybride MDS-Architektur näher betrachtet. Die Globus Alliance ist das führende Konsortium in der Forschung und Entwicklung von Technologie und Standards in der Gridumgebung. Mitglieder dieser Organisation sind beispielsweise das Argonne National Laboratory, the University of Edinburgh und the Swedish Center of parallel Computing. Diese Organisation produziert Open- Source Software, die als Grundlage für wichtige Gridprodukte der führenden IT Unternehmen dient. Diese Software wird auf einen Wert von etwa einer halbe Milliarde Dollar geschätzt. Sponsoren dieser Organisation sind beispielsweise die NASA und das DOE (US Departement of Energy). Das Globus Toolkit soll eine fundamentale Technologie für eine Gridumgebung sein. Somit enthält dieses Toolkit Frameworks für Security, Informationsinfrastruktur, Ressourcen Management, Data Management, Kommunikation, Fehlererkennung und Portabilität. Es wurde in Komponenten eingeteilt, die entweder einzeln oder kombiniert verwendet werden können. Auf Basis dieser Toolkits soll eine standardisierte Grundlage für alle Gridumgebungen geschaffen werden, um eine nahtlose Zusammenarbeit aller Gridteilnehmer ermöglicht.[9] Von Version 1.0, die 1998 veröffentlicht wurde, über die Version 2.0 des Jahres 2002 hat sich die derzeitige Version 4.0 (GT4) (vergl. Abbildung 3) nach der New York Times zum defacto Standard entwickelt wurde das Toolkit als one of the Ten Technoligies that will change the world von dem MIT Technologie Review betitelt. Die Entwicklung dieses Toolkits wird vor allem durch die Wissenschaft voran getrieben. Zum Beispiel wurde im Zuge der Entwicklung des High Hadron Collider (Teilchenbeschleuniger) bei CERN, nahe Genf, das GT-basierende EU- ROGRID entwickelt. Weitere große E-Science Projekte sind das Network for Earthquake Engineering (NEES), das FusionGrid und das EarthSystem Grid (ESG), die auf dem Globus Toolkit aufsetzen.[10] Im Globus Toolkit 4.0 werden die einzelnen Grid Ressourcen als Dienste angeboten. Das Monitoring und Discovery System (MDS4) des GT4 verfolgt den folgende Ansatz: Alle Grid

230 226 M. Gritsch Abbildung 3. Komponenten des Globus Toolkit [11] Ressourcen sind als Dienste modelliert und können so grundsätzlich auf Basis eines WebService Frameworks realisiert werden.[12] 3.1 Grundlagen des MDS4 Aufgrund dieser Aussage baut sich das GT4 auf den bekannten Webservice Protokollen und Spezifikationen auf sowie entsprechende Erweiterungen auf Webservices Webservices basieren auf den Standardprotocollen UD- DI (Universal Description, Discovery and Integration), SOAP (Simple Object Access Protocol) und WSDL (Web Services Definition Language). [14] Diese bilden die grundlegende Architektur von Webservices und bieten eine sehr ähnliche Funktionalität wie ein MDS (vergleiche Kapitel 2.1.2: Aufgaben eines MDS ). So ist das UDDI ein Registry, um die angebotenen Webservices zu verwalten und aufzufinden. WSDL ist eine XML basierte Sprache, mit deren Hilfe die vom Provider angebotenen Dienste beschrieben werden. SOAP bietet die Möglichkeit Daten zu übertragen und RPC (Remote Procudure Calls) diese auszuführen.(vergl. Abbildung 4 ) Auf den ersten Blick ist kaum ein Unterschied zu einer Gridumgebung festzustellen, jedoch gibt es einen wichtigen Unterschied zwischen Diensten im Grid und Web: Während Web Services immer persistent und zustandslos sind, können Grid-Dienste oft transient und zustandsbehaftet sein (vergl Kapitel 2.1). MDS4 nutzt die Gemeinsamkeiten mit der WebService-Architektur aus und setzt auf dem bewährten Standard WSRF ( Web Service Resource Framework) auf. Um die Probleme der Zustandserkennung zu lösen, erweitert MDS4 dieses Framework um ein WS-Notification, um den Zustand einer Ressource festzustellen. [15]

231 Service Discovery 227 Abbildung 4. Eine Webservice Umgebung [13] Web Service Resource-Framework Das WSRF besteht aus fünf Spezifikationen, die in Abbildung (5) kurz beschrieben werden. Die Kernfunktionalitäten, die hauptsächlich vom MDS4 verwendet werden sind: WS-Ressource Properties und WS-ServiceGroups [15]. WS-ResourceProperties Die WS-ResourceProperties definieren Mechanismen, mit denen die Eigenschaften und Informationen des WebServices beschrieben und veröffentlicht werden können. Dabei besitzt jeder WebService ein Resource Property Document, das in XML geschrieben ist. Der Service Requestor kann den Typ der Ressource feststellen, in dem er mittels WSDL anfrägt (vergleiche Abbildung 4) und das RessourceProperty Document aufrufen, lesen oder ändern kann. WS-ServiceGroup Die WS-ServiceGroup kann verwendet werden, um verschiedene Services zu gruppieren,. Dabei können beispielsweise ähnliche zusammengefasst oder aufeinander aufbauende verknüpft werden. Für solche Verbindungen können Kostanten oder Regeln festgelegt werden. Zusätzlich besteht die Möglichkeit ResourcProperties für die ganze ServiceGroup zu beschreiben. Dadurch können auch spezielle Services, die durch eine Kombination von Gruppenmitglieder entstehen, angeboten werden. WS-Notification Die Erweiterung dieses Frameworks um WS-Notification dient der Zustandserkennung einer Ressource.Darauf basierend wird dem WSRF eine

232 228 M. Gritsch Abbildung 5. Spezifikationen des WSRF [15]. Publish and Subscribe - Methode hinzugefügt. Allgemein heißt das, es wird Nachfragern ermöglicht, dass sie sich asynchron über Veränderungen in den RessourceProperties eines Services informieren lassen können. Dabei unterscheidet man zwischen drei Spezifikationen ( WS-BaseNotification, WS-Topics, WS- BrokerNotification). Im Umfeld der Gridmgebungen wird fast ausschließlich die WS-BaseNotification verwendet. Auf deren Grundlage kann ein Subscriber sein Interesse an einer Benachrichtigung eines Notification Producers veröffentlichen, falls ein bestimmtes Ereignis einterten sollte.(vergleiche Kapitel 2.2.1) [15] Abbildung 6. GT4 Service Container.[4]

233 Service Discovery Implementierung des MDS4 Auf diesem Framework setzt nun GT4 auf. Jeder angebotene Service wird in einem sogenannten GT4-Container eingebettet. (vergl. Abbildung 6) In diesem wird das oben beschriebene Framework dem Service hinzugefügt und schafft die Basis für das Monitoring und Discovery im Globus Toolkit.[4] Abbildung 7. GT4 Aggregator Framework [11] Aggregator Framework Das Aggregator Framework stellt die grundlegende Architektur jedes MDS im GT4 dar. Dabei stehen die folgenden Ansätze im Mittelpunkt. Ressourcen wie beispielsweise ein Programm, ein WebService oder File werden als Information Sources bezeichnet. Diese Information Sources müssen bei einem Aggregator Service registriert sein. Zu beachten ist, dass eine Registrierung immer eine begrenzte Laufzeit hat. Falls sie nicht erneuert wird, löscht der Aggregator Service diese aus seiner Registry. Die Registrierung erfolgt mittels der in WS-ServiceGroup enthaltenen ADD- Operation. Zusätzlich sammelt der Aggregator regelmäßig Informationen über die Zustände der bei ihm registrierten Informationen Sources. Die gesammelten Informationen macht der Aggregator über ein WebService Interface verfügbar.

234 230 M. Gritsch Es kann zwischen zwei Möglichkeiten unterschieden werden, um dieses zu realisieren. Bei einer WSRF-kompatiblen Information Source, muss nur die WS- ResourceProperties veröffentlicht werden und ob es sich um eine Pull-Resource (Query) oder Push-Resource (Subscription) handelt. Bei sonstigen Informationquellen muss ein spezielles Programm (Adapter) der Ressource zugefügt werden, dass regelmäßig die Informationen sammelt und in ein passendes XML-Schema übersetzt und veröffentlicht.[4][12][17] Dieser Prozess wird durch drei spezielle Services vom MDS4 des GT4 abgebildet: der Index Service, der Trigger Service und der Archiver Service Index Service Der Index Service ist die zentrale Komponente des MDS4, der Informationen über die Grid Ressourcen sammelt und erreichbar macht. Es ist identisch zur UDDI Registry in der WebService Umgebung, bis auf den Unterschied, dass der Index Service keine Beschränkungen besitzt und es den letzten Zustand (RessourceProperties) jeder Ressource speichert. Zusätzlich wird dieser periodisch erneuert, um die Performance der Anfragen zu erhöhen. Der Index Service interagiert mit den Ressourcen mittels Mechanismen gemäß WSRF-Spezifikationen: WS-ResourceProperties und WS-BaseNotification. Abbildung 8. MDS4 Index Service [11] Somit kann jede Ressource Informationen über seinen angebotenen Service und dessen Zustand in seinen RessourceProperties erreichbar machen. Jeder GT4 Container hat einen Default Index Service, der die Resource überwacht, die innerhalb des Containers liegen (vergl. Abbildung 8). Handelt es sich um eine WSRF-inkompatibler Service, muss ein vom Serviceanbieter implementiertes Programme bereitgestellt werden, das die Übersetzung der Ressourcenbeschreibung in das richtige XML-Schema übernimmt (vergl. Abbildung 8).[4][12][17] Grundsätzlich sammelt der Index Service die Informationen von potentiell unendlich vielen Quellen und veröffentlicht diese. Um die Verwaltung handhabbar zu machen erfolgt diese mit Hilfe von Servicegroups (WS ServiceGroup).

235 Service Discovery 231 Abbildung 9. MDS4 Index Service Zusätzlich überwachen häufig virtuelle Organisationen alle angebotenen Container, Resourcen und Services mit einem zusäzlichem Index Service. Virtuellen Organistationen ermöglichen es unterschiedlichen Gruppierungen von Organisationen bzw. Individuen, Ressourcen in einer geregelten Art und Weise zu teilen, so dass die Teilnehmer zusammenarbeiten und ein gemeinsames Ziel erreichen können.[16] Somit benötigen die Gridnutzer nur die Adresse des übergeordnetem Index Services, um die die Ressourcen zu erreichen.(vergl. Abbildung 9) WebMDS Damit die angebotenen Ressourcen vom Nutzer der Gridumgebung abgerufen werden können, gibt es das WebMDS (vergl. Abbildung 10). Dies ist eine benutzerfreundliches Front-End zum IndexService. Mit Hilfe dieses Services können dem Gridnutzer die Menge der angebotenen Services in HTML Format präsentiert werden. Auch die ResourceProperties der einzelnen Ressourcen so abgerufbar. Dies erleichert das Auffinden und Nutzen des gewünschten Services Trigger Service Der MDS Trigger Service ist ein weiterer higherlevel Service (vergl. Abbildung 11). Dieser sammelt Informationen mittels WS- Notification und vergleicht diese mit vordefinierten Zuständen. Wird ein solcher vordefinierter Zustand erreicht, wird ein spezielles Programm ausgeführt. Der Trigger Service nimmt eine zentrale Rolle beim Troubleshooting ein, so kann beispielsweise ein Administrator informiert werden, falls ein bestimmter globaler Zustand erreicht wird.[4][12][17] (Speicher eines Servers bedenklich voll)

236 232 M. Gritsch Abbildung 10. MDS4 Trigger Service [11] Abbildung 11. MDS4 Trigger Service [11] Archive Service Der MDS Archive Service speichert alle Werte einer Ressource über einen Zeitraum persistent ab. Somit hat ein Consumer die Möglichkeit die Zustandsänderungen einer Services abzufragen. 3.3 Beispiel einer MDS4 Implementierung In Abbildung 12 wird schematisch dargestellt, wie die Services GRAM (Grid Resource Allocation and Management Service), RFT (Reliable File Transfer Service) und GridFTP (Grid File Transfer Protocol) angeboten werden. [11] Der GRAM Service ist im GT4-Umfeld für das Einreichen, das Monitoring und die Kontrolle von Aufträgen auf einzelne Computer verantwortlich. RFT sorgt für einen zuverlässigen Datenautausch. GridFTP realisiert das Speichern, das Aufrufen und den zuverlässigen Transport von verteilt gespeicherten Daten. Wie zuvor beschrieben, werden die WRSF-kompatiblen Services GRAM

Einführung in die Robotik Einführung. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 23. 10.

Einführung in die Robotik Einführung. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 23. 10. Einführung in die Robotik Einführung Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 23. 10. 2012 Was ist ein Roboter? Was ist ein Roboter? Jeder hat

Mehr

Künstliche Intelligenz Dirk Krechel SS 2009

Künstliche Intelligenz Dirk Krechel SS 2009 Künstliche Intelligenz Dirk Krechel SS 2009 Überblick über das Modul 1. Einführung 2. Symbolische Verfahren Logik Aussagenlogik Prädikatenlogik Horn Logik Prolog 3. Suchen und Bewerten Problemlösen durch

Mehr

Bioinformatik I (Einführung)

Bioinformatik I (Einführung) Kay Diederichs, Sommersemester 2015 Bioinformatik I (Einführung) Algorithmen Sequenzen Strukturen PDFs unter http://strucbio.biologie.unikonstanz.de/~dikay/bioinformatik/ Klausur: Fr 17.7. 10:00-11:00

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Kybernetik Einführung

Kybernetik Einführung Kybernetik Einführung Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 24. 04. 2012 Einführung Was ist Kybernetik? Der Begriff Kybernetik wurde im 1948

Mehr

Kybernetik Das Kybernetische Modell

Kybernetik Das Kybernetische Modell Kybernetik Das Kybernetische Modell Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 05. 06. 2012 Das Modell Das Modell Was ist ein Modell? Ein Modell

Mehr

Das Knowledge Grid. Eine Architektur für verteiltes Data Mining

Das Knowledge Grid. Eine Architektur für verteiltes Data Mining Das Knowledge Grid Eine Architektur für verteiltes Data Mining 1 Gliederung 1. Motivation 2. KDD und PDKD Systeme 3. Knowledge Grid Services 4. TeraGrid Projekt 5. Das Semantic Web 2 Motivation Rapide

Mehr

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08 Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Eine Betrachtung im Kontext der Ausgliederung von Chrysler Daniel Rheinbay Abstract Betriebliche Informationssysteme

Mehr

ShopBot, ein Software-Agent für das Internet

ShopBot, ein Software-Agent für das Internet Software-Agenten p.1/20 ShopBot, ein Software-Agent für das Internet Eine Einführung in (Software-)Agenten Madeleine Theile Software-Agenten p.2/20 Aufbau des Vortrags grundlegende Theorie Definition Autonomy,

Mehr

Sozionik: Programmatik und Anwendungsperspektiven. Dr. Ingo Schulz-Schaeffer TU Hamburg-Harburg

Sozionik: Programmatik und Anwendungsperspektiven. Dr. Ingo Schulz-Schaeffer TU Hamburg-Harburg Sozionik: Programmatik und Anwendungsperspektiven eines neuen Forschungsfeldes Dr. Ingo Schulz-Schaeffer TU Hamburg-Harburg Sozionik: Zielsetzung: Erforschung und Modellierung künstlicher Sozialität Leitidee:

Mehr

Artificial Life und Multiagentensysteme

Artificial Life und Multiagentensysteme Vortrag im Rahmen des Seminars: Artificial Life und Multiagentensysteme Prof. Dr. Winfried Kurth Sommersemester 2003 Prognose von Zeitreihen mit GA/GP Mathias Radicke, Informatikstudent, 10. Semester Gliederung

Mehr

Einführung in die Robotik Steuerungsarchitekturen. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.

Einführung in die Robotik Steuerungsarchitekturen. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm. Einführung in die Robotik Steuerungsarchitekturen Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 29. 01. 2013 Steuerungsarchitekturen - Deliberative

Mehr

Machine Learning - Maschinen besser als das menschliche Gehirn?

Machine Learning - Maschinen besser als das menschliche Gehirn? Machine Learning - Maschinen besser als das menschliche Gehirn? Seminar Big Data Science Tobias Stähle 23. Mai 2014 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

History of Mobility. Sprachniveau: Ca. A2-B2. Stationen im Verkehrshaus

History of Mobility. Sprachniveau: Ca. A2-B2. Stationen im Verkehrshaus History of Mobility Kurzbeschrieb Die zweigeschossige Halle mit einer Ausstellungsfläche von rund 2000 m² beinhaltet ein Schaulager, ein interaktives Autotheater, verschiedenste individuell gestaltete

Mehr

Distributed testing. Demo Video

Distributed testing. Demo Video distributed testing Das intunify Team An der Entwicklung der Testsystem-Software arbeiten wir als Team von Software-Spezialisten und Designern der soft2tec GmbH in Kooperation mit der Universität Osnabrück.

Mehr

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health)

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) 1 Utilitarian Perspectives on Inequality 2 Inequalities matter most in terms of their impact onthelivesthatpeopleseektoliveandthethings,

Mehr

Einführung in die Robotik Autonome Mobile Roboter

Einführung in die Robotik Autonome Mobile Roboter Einführung in die Robotik Autonome Mobile Roboter Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 30. 10. 2012 Klassifikation von Robotern Klassifikation

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

Spezialisierungskatalog

Spezialisierungskatalog Spezialisierungskatalog Inhaltsverzeichnis: 1. Friedrich Schiller Universität 2. TU Ilmenau 3. FH Erfurt 4. FH Jena 5. FH Nordhausen 6. FH Schmalkalden 7. BA Gera 8. BA Eisenach 1. Friedrich-Schiller-Universität

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

TalkIT: Internet Communities Tiroler Zukunftsstiftung Donnerstag, 22. 4. 2010

TalkIT: Internet Communities Tiroler Zukunftsstiftung Donnerstag, 22. 4. 2010 TalkIT: Internet Communities Tiroler Zukunftsstiftung Donnerstag, 22. 4. 2010 Reinhard Bernsteiner MCiT Management, Communication & IT MCI MANAGEMENT CENTER INNSBRUCK Universitätsstraße 15 www.mci.edu

Mehr

Support Technologies based on Bi-Modal Network Analysis. H. Ulrich Hoppe. Virtuelles Arbeiten und Lernen in projektartigen Netzwerken

Support Technologies based on Bi-Modal Network Analysis. H. Ulrich Hoppe. Virtuelles Arbeiten und Lernen in projektartigen Netzwerken Support Technologies based on Bi-Modal Network Analysis H. Agenda 1. Network analysis short introduction 2. Supporting the development of virtual organizations 3. Supporting the development of compentences

Mehr

Field Librarianship in den USA

Field Librarianship in den USA Field Librarianship in den USA Bestandsaufnahme und Zukunftsperspektiven Vorschau subject librarians field librarians in den USA embedded librarians das amerikanische Hochschulwesen Zukunftsperspektiven

Mehr

Wie agil kann Business Analyse sein?

Wie agil kann Business Analyse sein? Wie agil kann Business Analyse sein? Chapter Meeting Michael Leber 2012-01-24 ANECON Software Design und Beratung G.m.b.H. Alser Str. 4/Hof 1 A-1090 Wien Tel.: +43 1 409 58 90 www.anecon.com office@anecon.com

Mehr

Software Engineering verteilter Systeme. Hauptseminar im WS 2011 / 2012

Software Engineering verteilter Systeme. Hauptseminar im WS 2011 / 2012 Software Engineering verteilter Systeme Hauptseminar im WS 2011 / 2012 Model-based Testing(MBT) Christian Saad (1-2 students) Context Models (e.g. State Machines) are used to define a system s behavior

Mehr

Modellfreie numerische Prognosemethoden zur Tragwerksanalyse

Modellfreie numerische Prognosemethoden zur Tragwerksanalyse Modellfreie numerische Prognosemethoden zur Tragwerksanalyse Zur Erlangung des akademischen Grades Doktor-Ingenieur (Dr.-Ing.) an der Fakultät Bauingenieurwesen der Technischen Universität Dresden eingereichte

Mehr

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich? KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen

Mehr

ISO 15504 Reference Model

ISO 15504 Reference Model Prozess Dimension von SPICE/ISO 15504 Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Microservices in der Oracle SOA Suite Baden 10. September 2015 Ihr Ansprechpartner Carsten Wiesbaum Principal Consultant carsten.wiesbaum@esentri.com @CWiesbaum Schwerpunkte:

Mehr

Algorithmische Modelle als neues Paradigma

Algorithmische Modelle als neues Paradigma Algorithmische Modelle als neues Paradigma Axel Schwer Seminar über Philosophische Grundlagen der Statistik, WS 2010/11 Betreuer: Prof. Dr. Thomas Augustin München, den 28. Januar 2011 1 / 29 LEO BREIMAN

Mehr

Semantic Web. Anwendungsbereiche & Entwicklungen. http://www.know-center.at. Dr. Michael Granitzer

Semantic Web. Anwendungsbereiche & Entwicklungen. http://www.know-center.at. Dr. Michael Granitzer Semantic Web Anwendungsbereiche & Entwicklungen Dr. Michael Granitzer - gefördert durch das Kompetenzzentrenprogramm Agenda Die Vision und warum das Semantic Web Sinn macht Grundlagen: Wissensrepräsentation

Mehr

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part II) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Data Mining Approaches for Instrusion Detection Espen Jervidalo WS05/06 KI - WS05/06 - Espen Jervidalo 1 Overview Motivation Ziel IDS (Intrusion Detection System) HIDS NIDS Data

Mehr

Wie schreibt man eine Ausarbeitung?

Wie schreibt man eine Ausarbeitung? Wie schreibt man eine Ausarbeitung? Holger Karl Holger.karl@upb.de Computer Networks Group Universität Paderborn Übersicht Ziel einer Ausarbeitung Struktur Sprache Korrektes Zitieren Weitere Informationen

Mehr

Ablauforganisationsmanagementsysteme

Ablauforganisationsmanagementsysteme Vortrag am 30.5.2011 Christof Sander Ablauforganisationsmanagementsysteme Wie immer geht es um Zeit Gliederung Einführung Anforderungen Simpler Komplexer Erweiterungsmöglichkeiten Quellen 2 Anforderungen

Mehr

Labour law and Consumer protection principles usage in non-state pension system

Labour law and Consumer protection principles usage in non-state pension system Labour law and Consumer protection principles usage in non-state pension system by Prof. Dr. Heinz-Dietrich Steinmeyer General Remarks In private non state pensions systems usually three actors Employer

Mehr

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes.

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes. Prediction Market, 28th July 2012 Information and Instructions S. 1 Welcome, and thanks for your participation Sensational prices are waiting for you 1000 Euro in amazon vouchers: The winner has the chance

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

Cloud Architektur Workshop

Cloud Architektur Workshop Cloud Architektur Workshop Ein Angebot von IBM Software Services for Cloud & Smarter Infrastructure Agenda 1. Überblick Cloud Architektur Workshop 2. In 12 Schritten bis zur Cloud 3. Workshop Vorgehensmodell

Mehr

Large Scale Data Management

Large Scale Data Management Large Scale Data Management Beirat für Informationsgesellschaft / GOING LOCAL Wien, 21. November 2011 Prof. Dr. Wolrad Rommel FTW Forschungszentrum Telekommunikation Wien rommel@ftw.at Gartner's 2011 Hype

Mehr

Schreiben auf Englisch

Schreiben auf Englisch Schreiben auf Englisch Folien zum Tutorium Internationalisierung Go West: Preparing for First Contacts with the Anglo- American Academic World Alexander Borrmann Historisches Institut Lehrstuhl für Spätmittelalter

Mehr

Architekturen und LEGO Was wir von Kindern für Systemarchitekturen lernen können

Architekturen und LEGO Was wir von Kindern für Systemarchitekturen lernen können Architekturen und LEGO Was wir von Kindern für Systemarchitekturen lernen können Wachtberg, 2011/01/24 Dr. Frank Simon Head of SQS Research SQS Software Quality Systems AG Agenda Architekturen: (Komplexe)

Mehr

Künstliches binäres Neuron

Künstliches binäres Neuron Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de

Mehr

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS Master Seminar Empirical Software Engineering Anuradha Ganapathi Rathnachalam Institut für Informatik Software & Systems Engineering Agenda Introduction

Mehr

Seminararbeit zum Thema Genetische Algorithmen

Seminararbeit zum Thema Genetische Algorithmen Seminararbeit zum Thema Genetische Algorithmen Seminar in Intelligent Management Models in Transportation und Logistics am Institut für Informatik-Systeme Lehrstuhl Verkehrsinformatik Univ.-Prof. Dr.-Ing.

Mehr

Critical Chain and Scrum

Critical Chain and Scrum Critical Chain and Scrum classic meets avant-garde (but who is who?) TOC4U 24.03.2012 Darmstadt Photo: Dan Nernay @ YachtPals.com TOC4U 24.03.2012 Darmstadt Wolfram Müller 20 Jahre Erfahrung aus 530 Projekten

Mehr

Parameter-Updatesoftware PF-12 Plus

Parameter-Updatesoftware PF-12 Plus Parameter-Updatesoftware PF-12 Plus Mai / May 2015 Inhalt 1. Durchführung des Parameter-Updates... 2 2. Kontakt... 6 Content 1. Performance of the parameter-update... 4 2. Contact... 6 1. Durchführung

Mehr

CHAMPIONS Communication and Dissemination

CHAMPIONS Communication and Dissemination CHAMPIONS Communication and Dissemination Europa Programm Center Im Freistaat Thüringen In Trägerschaft des TIAW e. V. 1 CENTRAL EUROPE PROGRAMME CENTRAL EUROPE PROGRAMME -ist als größtes Aufbauprogramm

Mehr

Universität Dortmund Integrating Knowledge Discovery into Knowledge Management

Universität Dortmund Integrating Knowledge Discovery into Knowledge Management Integrating Knowledge Discovery into Knowledge Management Katharina Morik, Christian Hüppe, Klaus Unterstein Univ. Dortmund LS8 www-ai.cs.uni-dortmund.de Overview Integrating given data into a knowledge

Mehr

A Practical Approach for Reliable Pre-Project Effort Estimation

A Practical Approach for Reliable Pre-Project Effort Estimation A Practical Approach for Reliable Pre-Project Effort Estimation Carl Friedrich Kreß 1, Oliver Hummel 2, Mahmudul Huq 1 1 Cost Xpert AG, Augsburg, Germany {Carl.Friedrich.Kress,Mahmudul.Huq}@CostXpert.de

Mehr

Extended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14

Extended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14 Etended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14 Gerhard Tutz & Gunther Schauberger Ludwig-Maimilians-Universität München Akademiestraße 1, 80799 München

Mehr

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf.

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf. 1 The zip archives available at http://www.econ.utah.edu/ ~ ehrbar/l2co.zip or http: //marx.econ.utah.edu/das-kapital/ec5080.zip compiled August 26, 2010 have the following content. (they differ in their

Mehr

Kybernetik Intelligent Agents- Decision Making

Kybernetik Intelligent Agents- Decision Making Kybernetik Intelligent Agents- Decision Making Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 03. 07. 2012 Intelligent Agents Environment Agent Intelligent

Mehr

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

Titelbild1 ANSYS. Customer Portal LogIn

Titelbild1 ANSYS. Customer Portal LogIn Titelbild1 ANSYS Customer Portal LogIn 1 Neuanmeldung Neuanmeldung: Bitte Not yet a member anklicken Adressen-Check Adressdaten eintragen Customer No. ist hier bereits erforderlich HERE - Button Hier nochmal

Mehr

nicht wissen macht auch nichts

nicht wissen macht auch nichts Prof. Dr. Hans-Günter Lindner Schmalenbach Institut für W irtschaftswissenschaften Forschungsschwerpunkt W issensmanagement FH Köln hans-guenter.lindner@fh-koeln.de LiNKiT M ittagstisch Köln 2 4. April

Mehr

Individuelles Bachelorstudium. Software Engineering for Physics

Individuelles Bachelorstudium. Software Engineering for Physics Individuelles Bachelorstudium Software Engineering for Physics 1 Qualifikationsprofil Das individuelle Bachelorstudium Software Engineering for Physics vermittelt eine breite, praktische und theoretische

Mehr

EEX Kundeninformation 2007-09-05

EEX Kundeninformation 2007-09-05 EEX Eurex Release 10.0: Dokumentation Windows Server 2003 auf Workstations; Windows Server 2003 Service Pack 2: Information bezüglich Support Sehr geehrte Handelsteilnehmer, Im Rahmen von Eurex Release

Mehr

Einführung in die Wissensverarbeitung und Data Mining

Einführung in die Wissensverarbeitung und Data Mining Einführung in die Wissensverarbeitung und Data Mining Peter Becker FH Bonn-Rhein-Sieg Fachbereich Angewandte Informatik!" $# Vorlesung Wintersemester 2001/02 1. Einführung Vorbemerkungen 1 Einführung Vorbemerkungen

Mehr

Taxonomy of Evolution and Dependability. Integration Engineering SS 2009 Andreas Landerer

Taxonomy of Evolution and Dependability. Integration Engineering SS 2009 Andreas Landerer Taxonomy of Evolution and Dependability Integration Engineering SS 2009 Andreas Landerer Agenda Informationen über Massimo Felici Definition zentraler Begriffe Inhalt des Artikels Kernaussagen des Artikels

Mehr

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining.

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining. Personalisierung Personalisierung Thomas Mandl Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung Klassifikation Die Nutzer werden in vorab bestimmte Klassen/Nutzerprofilen

Mehr

Delivering services in a user-focussed way - The new DFN-CERT Portal -

Delivering services in a user-focussed way - The new DFN-CERT Portal - Delivering services in a user-focussed way - The new DFN-CERT Portal - 29th TF-CSIRT Meeting in Hamburg 25. January 2010 Marcus Pattloch (cert@dfn.de) How do we deal with the ever growing workload? 29th

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Grid Computing. Einführung. Marc Lechtenfeld. Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen

Grid Computing. Einführung. Marc Lechtenfeld. Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen * Grid Computing Einführung Marc Lechtenfeld Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen Übersicht 1 Problematik 2 Systemanforderungen 3 Architektur 4 Implementation 5 Projekte

Mehr

Biologisch motivierter SLAM Algorithmus

Biologisch motivierter SLAM Algorithmus HAW Hamburg 01. Dezember 2011 Gliederung 1 Einführung 2 RatSLAM 3 Aussicht für Master 2 / 23 Einführung Was ist SLAM SLAM bedeutet: Simultaneous Localization and Mapping Erstellung einer Karte durch mobilen

Mehr

Messer und Lochscheiben Knives and Plates

Messer und Lochscheiben Knives and Plates Messer und Lochscheiben Knives and Plates Quality is the difference Seit 1920 Since 1920 Quality is the difference Lumbeck & Wolter Qualität, kontinuierlicher Service und stetige Weiterentwicklung zeichnen

Mehr

Facetten von Designforschung Einblicke in den Stand der Dinge

Facetten von Designforschung Einblicke in den Stand der Dinge Hans Kaspar Hugentobler Designforschung: Vielfalt, Relevanz, Ideologie Facetten von Designforschung Einblicke in den Stand der Dinge Hans Kaspar Hugentobler Master of Design Diplom-Kommunikationswirt Bremen

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Hochschulmarketing im Web: Eine Reise durch die Epochen 0.5 bis 2.0

Hochschulmarketing im Web: Eine Reise durch die Epochen 0.5 bis 2.0 Dr. Hochschulmarketing im Web: Eine Reise durch die Epochen 0.5 bis 2.0 Expertenforum II: Onlinemarketing und Social Media Aktuelle Trends im Hochschulmarketing Dr., Juni 2011 Seite 0 Juni 2011 Hochschulmarketing

Mehr

SOA Service Oriented Architecture

SOA Service Oriented Architecture SOA Service Oriented Architecture (c) Till Hänisch 2006, BA Heidenheim [IBM] [WS] Wir haben: Prog ramm Proxy Proxy K2 K1 Plattformunabhängiger RPC Wir haben: Prog ramm Proxy Proxy K2 K1 Plattformunabhängiger

Mehr

Auswertungsbericht Lehrveranstaltungsbewertung Mobile Communication and Ad Hoc Networks

Auswertungsbericht Lehrveranstaltungsbewertung Mobile Communication and Ad Hoc Networks RWTH Aachen Dez. 6.0 - Abt. 6. Templergraben 06 Aachen Tel.: 0 80 967 E-Mail: verena.thaler@zhv.rwth-aachen.de RWTH Aachen - Dez. 6.0/Abt. 6. Herr Prof. Dr. Peter Martini (PERSÖNLICH) Auswertungsbericht

Mehr

Microsoft Office SharePoint 2007

Microsoft Office SharePoint 2007 Inhalt 1 Erstellen von Workflows für Microsoft Office SharePoint 2007 15 June 2009 Sebastian Gerling Sebastian.gerling@spiritlink.de COPYRIGHT 2003 SPIRIT LINK GMBH. ALL RIGHTS RESERVED Inhalt 1 Dipl.

Mehr

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2008/09 Organisatorisches Vorlesung Di und Do, 11-13 Uhr, HS 101-00-036 Dozent Prof. Dr. Peter

Mehr

Privacy-preserving Ubiquitous Social Mining via Modular and Compositional Virtual Sensors

Privacy-preserving Ubiquitous Social Mining via Modular and Compositional Virtual Sensors Privacy-preserving Ubiquitous Social Mining via Modular and Compositional s Evangelos Pournaras, Iza Moise, Dirk Helbing (Anpassung im Folienmaster: Menü «Ansicht» à «Folienmaster») ((Vorname Nachname))

Mehr

Bayerisches Landesamt für Statistik und Datenverarbeitung Rechenzentrum Süd. z/os Requirements 95. z/os Guide in Lahnstein 13.

Bayerisches Landesamt für Statistik und Datenverarbeitung Rechenzentrum Süd. z/os Requirements 95. z/os Guide in Lahnstein 13. z/os Requirements 95. z/os Guide in Lahnstein 13. März 2009 0 1) LOGROTATE in z/os USS 2) KERBEROS (KRB5) in DFS/SMB 3) GSE Requirements System 1 Requirement Details Description Benefit Time Limit Impact

Mehr

Patentrelevante Aspekte der GPLv2/LGPLv2

Patentrelevante Aspekte der GPLv2/LGPLv2 Patentrelevante Aspekte der GPLv2/LGPLv2 von RA Dr. Till Jaeger OSADL Seminar on Software Patents and Open Source Licensing, Berlin, 6./7. November 2008 Agenda 1. Regelungen der GPLv2 zu Patenten 2. Implizite

Mehr

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3 User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...

Mehr

«Zukunft Bildung Schweiz»

«Zukunft Bildung Schweiz» «Zukunft Bildung Schweiz» Von der Selektion zur Integration Welche Art von Schule wirkt sich positiv auf eine «gute» zukünftige Gesellschaft aus? Eine Schwedische Perspektive. Bern 16-17.06.2011 Referent:

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Silvan Geser Solution Specialist Unified Communications Microsoft Schweiz GmbH

Silvan Geser Solution Specialist Unified Communications Microsoft Schweiz GmbH Silvan Geser Solution Specialist Unified Communications Microsoft Schweiz GmbH - Henry Ford, 1863-1947 Individuelle erreichbarkeit Sicherheit und Regulatorien Verteilte Teams Partner und Kunden Hohe Kosten

Mehr

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung Johannes Schemmel Forschungsgruppe Electronic Vision(s) Lehrstuhl Prof. K. Meier Ruprecht-Karls-Universität Heidelberg Mitarbeiter:

Mehr

(künstliche) Neuronale Netze. (c) Till Hänisch 2003,2015, DHBW Heidenheim

(künstliche) Neuronale Netze. (c) Till Hänisch 2003,2015, DHBW Heidenheim (künstliche) Neuronale Netze (c) Till Hänisch 2003,2015, DHBW Heidenheim Literatur zusätzlich zum Lit. Verz. Michael Negnevitsky, Artificial Intelligence, Addison Wesley 2002 Aufbau des Gehirns Säugetiergehirn,

Mehr

Maschinelles Lernen und Data Mining: Methoden und Anwendungen

Maschinelles Lernen und Data Mining: Methoden und Anwendungen Maschinelles Lernen und Data Mining: Methoden und Anwendungen Eyke Hüllermeier Knowledge Engineering & Bioinformatics Fachbereich Mathematik und Informatik GFFT-Jahrestagung, Wesel, 17. Januar 2008 Knowledge

Mehr

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle Mit Legacy-Systemen in die Zukunft Dr. Roland Schätzle Der Weg zur Entscheidung 2 Situation Geschäftliche und softwaretechnische Qualität der aktuellen Lösung? Lohnen sich weitere Investitionen? Migration??

Mehr

PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC)

PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC) Information Management II / ERP: Microsoft Dynamics NAV 2009 Page 1 of 5 PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC) Event-driven Process Chains are, in simple terms, some kind

Mehr

Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas. Mr. Niemczik, Mr. Koppatz (SuDiLe GbR)

Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas. Mr. Niemczik, Mr. Koppatz (SuDiLe GbR) Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas in cooperation with Mr. Niemczik, Mr. Koppatz (SuDiLe GbR) Our idea: Fachbereich Wirtschaft, Verwaltung und Recht Simple strategies of lifelong

Mehr

Funktionale Sicherheit ISO 26262 Schwerpunkt Requirements Engineering,

Funktionale Sicherheit ISO 26262 Schwerpunkt Requirements Engineering, Funktionale Sicherheit ISO 26262 Schwerpunkt Requirements Engineering, Manfred Broy Lehrstuhl für Software & Systems Engineering Technische Universität München Institut für Informatik ISO 26262 Functional

Mehr

Customer-specific software for autonomous driving and driver assistance (ADAS)

Customer-specific software for autonomous driving and driver assistance (ADAS) This press release is approved for publication. Press Release Chemnitz, February 6 th, 2014 Customer-specific software for autonomous driving and driver assistance (ADAS) With the new product line Baselabs

Mehr

Über dieses Buch. Kapitel 1. 1.1 Einleitung

Über dieses Buch. Kapitel 1. 1.1 Einleitung Kapitel 1 Über dieses Buch 1.1 Einleitung Dieses Buch behandelt das Vorgehensmodell Kanban und seinen Einsatz in Softwareentwicklungsprojekten. Kanban ist ein Vorgehensmodell der schlanken Softwareentwicklung

Mehr

-Which word (lines 47-52) does tell us that Renia s host brother is a pleasant person?

-Which word (lines 47-52) does tell us that Renia s host brother is a pleasant person? Reading tasks passend zu: Open World 1 Unit 4 (student s book) Through a telescope (p. 26/27): -Renia s exchange trip: richtig falsch unkar? richtig falsch unklar: Renia hat sprachliche Verständnisprobleme.

Mehr

Mash-Up Personal Learning Environments. Dr. Hendrik Drachsler

Mash-Up Personal Learning Environments. Dr. Hendrik Drachsler Decision Support for Learners in Mash-Up Personal Learning Environments Dr. Hendrik Drachsler Personal Nowadays Environments Blog Reader More Information Providers Social Bookmarking Various Communities

Mehr

Transparenz 2.0. Passive Nachverfolgung und Filterung von WebApps auf dem Prüfstand

Transparenz 2.0. Passive Nachverfolgung und Filterung von WebApps auf dem Prüfstand Matthias Seul IBM Research & Development GmbH BSI-Sicherheitskongress 2013 Transparenz 2.0 Passive Nachverfolgung und Filterung von WebApps auf dem Prüfstand R1 Rechtliche Hinweise IBM Corporation 2013.

Mehr

Software-Architecture Introduction

Software-Architecture Introduction Software-Architecture Introduction Prof. Dr. Axel Böttcher Summer Term 2011 3. Oktober 2011 Overview 2 hours lecture, 2 hours lab sessions per week. Certificate ( Schein ) is prerequisite for admittanceto

Mehr

XV1100K(C)/XV1100SK(C)

XV1100K(C)/XV1100SK(C) Lexware Financial Office Premium Handwerk XV1100K(C)/XV1100SK(C) All rights reserverd. Any reprinting or unauthorized use wihout the written permission of Lexware Financial Office Premium Handwerk Corporation,

Mehr

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios WS 2011 Prof. Dr. Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Today Heuristische Evaluation vorstellen Aktuellen Stand Software Prototyp

Mehr

Accounting course program for master students. Institute of Accounting and Auditing http://www.wiwi.hu-berlin.de/rewe

Accounting course program for master students. Institute of Accounting and Auditing http://www.wiwi.hu-berlin.de/rewe Accounting course program for master students Institute of Accounting and Auditing http://www.wiwi.hu-berlin.de/rewe 2 Accounting requires institutional knowledge... 3...but it pays: Lehman Bros. Inc.,

Mehr

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena http://www.im.uni-jena.de Contents I. Learning Objectives II. III. IV. Recap

Mehr