Einführung in die Künstliche Intelligenz Christian Ergh March 1, 2010 Contents 1 Einleitung 1.1 Geschichte und Herkunft . . . . . . . . . . . . . . . . . 1.1.1 Altertum . . . . . . . . . . . . . . . . . . . . . 1.1.2 Übergang zur Moderne . . . . . . . . . . . . . 1.1.3 Moderne . . . . . . . . . . . . . . . . . . . . . . 1.2 Das Bild von KI . . . . . . . . . . . . . . . . . . . . . 1.3 Definitionen von KI . . . . . . . . . . . . . . . . . . . 1.3.1 Definition von Bellman, 1978 . . . . . . . . . . 1.3.2 Definition von Charniak und McDermott, 1985 1.3.3 Definition von Rich und Knight, 1991 . . . . . 1.3.4 Definition von Luger und Stubblefield, 1993 . . 1.3.5 Fazit zu den Definitionen . . . . . . . . . . . . 1.4 Der Turing Test . . . . . . . . . . . . . . . . . . . . . . 1.5 Geschichte der KI-Forschung . . . . . . . . . . . . . . 1.6 Was kann eine KI heute? . . . . . . . . . . . . . . . . 1.6.1 Autonomes planen und terminieren . . . . . . . 1.6.2 Spiele . . . . . . . . . . . . . . . . . . . . . . . 1.6.3 Autonome Kontrolle . . . . . . . . . . . . . . . 1.7 Fazit Geschichte, Forschung und aktueller Stand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 3 3 3 4 4 5 5 5 6 6 6 7 7 7 7 8 8 2 Logik 2.1 Wissen . . . . . . . . . 2.1.1 Ausagenkalkül 2.2 Ein Beispiel in Prolog 2.3 Verfahrenstechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 10 10 11 3 Suchverfahren 3.1 Beispiele zu Suchproblemen 3.1.1 Türme von Hanoi . . 3.1.2 Wegberechnung . . . 3.1.3 8-Puzzle . . . . . . . 3.1.4 8 Damen Problem . 3.2 Gängige Suchverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 12 13 13 14 14 . . . . . . . . 1 Christian Ergh 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 Einführung KI MatNr 958418 Tiefensuche . . . . . . . . . . . . Breitensuche . . . . . . . . . . . Heuristische Verfahren, A∗ -Suche Hill Climbing Algorithmus . . . . Genetische Algorithmen . . . . . 4 Neuronale Netze 4.1 Vergleich mit dem Menschen . 4.2 Idee für Neuronale Netze . . . . 4.2.1 Vernetzungsarten . . . . 4.2.2 Kohonen Map . . . . . . 4.3 Lernen bei Neuronalen Netzen 4.3.1 Backpropagation . . . . 4.3.2 Competetive Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 15 15 16 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 17 18 18 19 19 21 5 Fazit 22 6 Anhang 23 List of Figures 1 2 3 4 5 6 7 8 1 Beispiel der Türme von Hanoi [wik] . . . . . . Beispiel für das 8-Puzzle [Kre09] . . . . . . . . Beispiel für das 8-Damen Problem [Kre09] . . Schematische Darstellung eines Neurons [wik] . Konzept einer Kohonen-Map [Kre09] . . . . . Konzept zu Backpropagation [Kre09] . . . . . Einfaches Beispiel zu Backpropagation [Kre09] Veranschaulichung zu Backpropagation [Kre09] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 14 15 17 19 20 20 21 Einleitung Die Phantasie des Menschen beschäftigt sich schon seit langem mit dem Gedanken, autonome Automaten zu erschaffen, die selbstständig handeln und denken können. In der Frühgeschichte waren es Legenden, später Geschichten, dann die Literatur und schließlich heute der Film. Erst in unserer Zeit entstand jenes Forschungsgebiet, das wir heute als Künstliche Intelligenz (KI) bzw.. Artificial Intelligence (AI) kennen. Was eine künstliche Intelligenz zu leisten vermag, und was nicht, und was das alles mit den Geschichten zu tun hat ist Gegenstand dieser Ausarbeitung zu dem Vortrag ”Eine Einführung in die künstliche Intelligenz” vom 02. Dezember 2009 an der Hochschule Rhein-Main im Rahmen des Fachseminars bei Professor Linn. HS-RM 2 WS2009/2010 Christian Ergh 1.1 Einführung KI MatNr 958418 Geschichte und Herkunft 1.1.1 Altertum Um die Entwicklung der künstlichen Intelligenz und ihr Bild in der Öffentlichkeit verstehen zu können, muss man zunächst ihre Herkunft betrachten. Schon im Altertum gab es die Vorstellung von Wesen die künstlich erschaffen waren, nicht lebten sondern mechanische Konstrukte waren. So gab es in der griechischen Mythologie den Gott der Schmiedekunst Hephaistos, der in seiner Schmiede mechanische Helfer hatte, die autonom agieren konnten, die sogenannten Automaton, einen goldenen Mann und eine goldene Frau. Diese künstlichen mechanischen Wesen waren in der Lage eigenständig zu handeln, selbst zu denken, so die Legenden [Sto80] . 1.1.2 Übergang zur Moderne Mit der technischen Revolution änderten sich auch die Phantasien von Künstlicher Intelligenz, aber auch zu diesem Zeitpunkt konnte von einer existierenden künstlichen Intelligenz keine Rede sein. So war im 19. Jahrhundert künstliche Intelligenz in ihren einfachsten Formen und Ideen in der Literatur präsent, oft verbunden mit der Frage nach künstlichem Leben, das durch Menschenhand erschaffen wurde. Am prominentesten ist hier wohl Frankensteins Monster. 1.1.3 Moderne In der Moderne wurden die Vorstellungen der Autoren konkreter. Denkende Maschinen in verschiedensten Ausführungen kamen in der Literatur und im Film vor. Zu Beginn noch mehr als klarer und logischer denkendes Wesen als der Mensch selbst, nicht Emotionen und Geschichte unterworfen, reiner und verlässlicher. So zum Beispiel dargestellt in dem Film ”The Day the Earth stood still” von 1951, in dem die Lebewesen der Galaxis eine Rasse von Robotern schuf, ausgestattet mit künstlicher Intelligenz, und genügend Macht um als unbestechliche Sicherheitsstreitmacht über die Galaxis zu wachen. Auch wenn sich verschiedene Lebewesen immer wieder gegen jede Vernunft gegenseitig auslöschen wollen, so besteht diese Gefahr in diesem Szenario mit der Roboterstreitmacht nicht. Auch Sir Isaac Asimov, einer der großen Science Fiction Autoren des 20. Jahrhundert, stellte die künstliche Intelligenz als etwas positives dar, wie zum Beispiel in seinen Büchern ”Caves of Steel” [Asi54] oder ”Robots of Dawn” [Asi83]. Immer ist der Mensch die Quelle des Unheils. Die künstliche Intelligenz, beherbergt in Robotern, ist unbestechlicher, logischer, und oft auch moralischer als der Mensch selbst, somit eigentlich der bessere Mensch. HS-RM 3 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Es wird jedoch in der modernen Literatur und vor allem im Film auch ein anderes Bild von künstlicher Intelligenz gezeichnet, das sich viel mehr als das positive in den Gedanken der Menschen festgesetzt hat. Die Maschine als Bedrohung, die, wenn sie zu intelligent wird, sich von den Beschränkungen durch die Menschen los sagt, die Menschheit als eine Bedrohung oder Konkurrenten wahrnimmt, und die Menschheit angreift wenn nicht sogar auslöscht. Als eine der berühmtesten künstlichen Intelligenzen die sich gegen ihre Schöpfer wendet wäre HAL9000 zu erwähnen, aus dem Film ”2001, Odyssee im Weltraum” aus dem Jahr 1968. Kurz gesagt hat man dem Rechner als Direktive die absolute Priorität der Missionserfüllung gegeben. In kalter Computerlogik, aber auch mit der vollen Effizienz einer künstlichen Intelligenz, stellt HAL die Missionserfüllung auch über das Leben der Menschen an Bord des Raumschiffes. Das rote Kameralinsen mit dem HAL seine Umgebung beobachtet wird nach 1968 in vielen Filmen zu sehen sein, synonym für ”böse” Maschinen. Viele andere Filme mit künstlicher Intelligenz folgten, im seltensten Fall sind die Maschinen in einer positiven Rolle zu sehen. Filme wir Terminator 1-3, Matrix, Resident Evil und ähnliche überwiegen stark gegenüber Filmen wie AI oder Der Millennium Mann. 1.2 Das Bild von KI Auf Basis dieser Entwicklung in den Medien ist das Bild von künstlicher Intelligenz zu sehen, das heute in der Öffentlichkeit vorherrscht. Die meisten Menschen glauben an eine Gefahr, die von künstlicher Intelligenz ausgehen würde, so man sie denn entwickeln würde. Insbesondere ist der glaube verbreitet, das solche intelligenten Systeme bereits existieren. Fundiertes Wissen ist kaum vorhanden, es entstehen eher Assoziationen mit dem von Arnold Schwarzenegger gespielten Terminator. Insgesamt ist das Bild von künstlicher Intelligenz ein furchtsames, eines von einer Bedrohung für die Menschheit. Auf Basis der Entwicklung in den Medien ist diese Einstellung verständlich, allerdings hat dies nichts mit den derzeitigen Forschungen und Entwicklungen auf dem Gebiet der künstlichen Intelligenz zu tun. Es stellt sich also die Frage, was künstliche Intelligenz eigentlich wirklich ist. 1.3 Definitionen von KI Ein erster Ansatz künstliche Intelligenz in Forschung und Wissenschaft zu verstehen ist, sich zunächst die formellen Definitionen des Begriffes anzusehen. Im Fall von künstlicher Intelligenz gibt es allerdings nicht eine allgemeingültige Definition, sondern mehrere anerkannte Definitionen, die allerdings meines Erachtens alle mehr oder weniger unpräzise sind. Dennoch sind es die in der Literatur angeführten Definitionen. Diese Ungenauigkeit ist wahrscheinlich auf die Problematik zurück zu führen, überhaupt Intelligenz zu definieren. Dennoch seien die entsprechenden Definitionen hier angeführt. HS-RM 4 WS2009/2010 Christian Ergh 1.3.1 Einführung KI MatNr 958418 Definition von Bellman, 1978 Richard Ernest Bellman war ein bekannter Mathematiker, zu jener Zeit waren es noch Mathematiker und andere Naturwissenschaftler, die sich mit Informationstheorie und Programmierung beschäftigten. Richard E. Bellman ist insbesondere bekannt für seine Arbeiten zur dynamischen Programmierung. Offensichtlich war er auch im Gebiet der künstlichen Intelligenz tätig, und eine der frühesten Definitionen die in der Literatur angeführt wird ist die seine. The automation of activities that we associate with human thinking, activities such as decision-making, problem solving, learning.[Bel78] Die Definition ist allerdings sehr unpräzise, unter anderem redet sie von ”Assoziationen mit menschlichem Denken”, sprich was auch immer sich irgendwer unter menschlichem Denken so vorstellt. 1.3.2 Definition von Charniak und McDermott, 1985 Ein Professor der Brown Universität (einer privaten Universität in den USA, Rhode Island), Professor Eugene Charniak, gab 1985 zusammen mit Professor Drew McDermott von der Yale Universität ein Buch über künstliche Intelligenz heraus. Beide Lehrstühle sind im Bereich künstliche Intelligenz anzusiedeln. The study of mental faculties through the use of computational models.[CM85] Mental faculties - also geistige Fähigkeiten. Die Definition sagt also, dass man irgendwelche geistigen Fähigkeiten mit irgendwelchen rechnerischen Modellen untersucht. Auch hier ist klar zu erkennen das die Definition im besten Fall nicht zufriedenstellend ist, im schlimmsten unbrauchbar und mangelhaft. 1.3.3 Definition von Rich und Knight, 1991 Tom Knight ist ein Forscher und Professor am MIT Computer Science and Artificial Intelligence Laboratory, Elaine Rich eine Informatik Professorin an der University of Texas in Austin, Texas, USA. In ihrem gemeinsamen Buch definierten die beiden das Forschungsgebiet der künstlichen Intelligenz wie folgt: The study of how to make computers do things at which, at the moment, people are better.[KR91] Auch diese Definition lässt leider sehr zu wünschen übrig. Wo liegt der Fokus, um was geht es eigentlich, all dies und mehr deckt diese Definition nicht ab. Fußball spielen können Computer nicht, Menschen schon, aber darum geht es offensichtlich nicht. Die Verwendbarkeit, auch wenn die wissenschaftliche Gemeinde sie nutzt, kann sehr in Frage gestellt werden. HS-RM 5 WS2009/2010 Christian Ergh 1.3.4 Einführung KI MatNr 958418 Definition von Luger und Stubblefield, 1993 Die letzte der gängigen Definitionen kommt von George F. Luger, einem Professor der University of New Mexico, sowie William Stubblefield, der an den Sandia National Laboratories als Wissenschaftler arbeitet, zuvor als Professor tätig war. The branch of computer science that is concerned with the automation of intelligent behaviour.[?] Auch hier ist keine klare Definition zu finden. Wie auch bei den vorhergehenden Definitionen wird auch hier abstrakt von ”Intelligentem Verhalten” geredet, ohne allerdings diesen Begriff klar festzulegen. 1.3.5 Fazit zu den Definitionen Keine der gängigen Definitionen zu künstlicher Intelligenz kann als zufriedenstellend betrachtet werden. Alle sind sehr ungenau, und scheitern bei der Frage nach der Definition von Intelligenz. Um diese Frage bezüglich einer Maschine zufriedenstellend beantworten zu können bleibt nur der Vergleich mit dem Menschen, was uns zu dem Turing Test führt. 1.4 Der Turing Test Der Turing Test wurde 1950 von Alan Turing (1912-1954) vorgeschlagen. Er wurde entwickelt um eine funktionierende und überprüfbare Methode zur Feststellung von Intelligenz zu haben. Grundsätzlich muss ein Computer um den Test zu bestehen eine Reihe von Eigenschaften haben[RN03]: • Kommunikationsfähigkeit in Englisch • Eine Wissensrepräsentation mit der er speichern kann, was er weiß und was er mitgeteilt bekommt • Automatisiertes ziehen von Schlussfolgerungen um die gespeicherte Information nutzen zu können. • Lernfähigkeit um sich an veränderliche Bedingungen anpassen zu können Mit diesen Fähigkeiten soll nun folgender Test durchgeführt werden. Ein Befrager stellt über ein Interface eine Frage. Diese wird an einen Menschen und den zu testenden Computer weitergeleitet. Sowohl der Mensch als auch der Computer erstellen eine Antwort, die zurück an den Befrager übermittelt wird. Die Aufgabe des Befragers ist nun zu versuchen herauszufinden, welche Antwort von dem Computer und welche von dem Menschen kommt. Kann über eine Reihe von Fragen hinweg der Befrager den Unterschied nicht feststellen, so hat der Computer den Test bestanden. Bis zu dem heutigen Tage ist es noch keinem System gelungen diesen Test zufriedenstellend zu bestehen. HS-RM 6 WS2009/2010 Christian Ergh 1.5 Einführung KI MatNr 958418 Geschichte der KI-Forschung Hier ein kleiner Überblick zu der geschichtlichen Entwicklung im Bereich künstliche Intelligenz: • 1956 Auf der Dartmouth Konferenz wird der Begriff AI geprägt • 1957 Logic Theorist - Beweise von Sätzen aus der Aussagenlogik • 1959 & 1967 Checker - Dame - wird gegen Menschen gewonnen • 1959, 1963 General Problem Solver Lösung mathematischer Aufgaben • ab 1980 Wissensintensive Phase - sogenannte ”Knowledge-based systems” übernehmen die Hauptrolle. Diese Systeme ”Wissen” bereits viel über das Problem, entscheiden auf dieser Basis. Eine weit entwickelte Variante davon sind Expertensysteme Dies leitet über zu der Frage, was eine künstliche Intelligenz heute in Lage ist zu bewältigen. 1.6 Was kann eine KI heute? 1.6.1 Autonomes planen und terminieren Die Steuerung von mechanischen Systemen, wie zum Beispiel Robotern, ist seit langem ein Thema in der Forschung zu künstlicher Intelligenz. Der Wunsch ist, das man unter bestimmten Parametern einen Roboter auf eine Mission senden kann, und dieser auf Veränderungen der Umgebung angemessen reagieren kann. Die NASA entwickelte für ihre Sonde Deep Space 1 ein autonomes System, das die Planung und Durchführung von Experimenten an Bord der Sonde kontrollierte. Dabei konnte das Programm auf sich verändernde Parameter reagieren. 1.6.2 Spiele Im Bereich der Spiele kann unter festen Bedingungen ein Computer gegen einen Menschen antreten. Dies ist sowohl in modernen Spielen wie Ego-shooter der Fall, in der der Computer den Gegner des Menschen durch die Feuergefechte steuert, als auch in klassischen Spielen wie Mühle oder Schach. Im Jahr 1997 konnte zum ersten mal ein Computerprogramme einen Schachweltmeister schlagen, und zwar der IBM Deep Blue gegen Garry Kasparov 3.5 zu 2.5 HS-RM 7 WS2009/2010 Christian Ergh 1.6.3 Einführung KI MatNr 958418 Autonome Kontrolle Wie schon bei dem autonomen planen und terminieren geht es um Systeme die in einen Einsatz geschickt werden. Allerdings ist hier die Frage die Steuerung durch das Gelände oder den Raum. Ein Expertensystem namens ALVINN wurde trainiert um ein Auto zu steuern. Ein speziell dafür gebautes Auto wurde 2850 Meilen (4586 km) durch die USA geschickt, wobei es 98% der Zeit die Kontrolle über das Fahrzeug hatte. Einerseits bedeutet dies, dass das Expertensystem den größten Teil der Zeit erfolgreich war. Andererseits könnte man die Zahlen auch in der Art interpretieren, dass das Fahrzeug alle 50 km in einen Unfall gefahren wäre. 1.7 Fazit Geschichte, Forschung und aktueller Stand Das Bild in der Öffentlichkeit von künstlicher Intelligenz ist geprägt durch phantastische Geschichten, sogar Legenden aus dem Altertum. Filme über diese denkenden Maschinen sind nur die Fortsetzung dieses alten Themas. Mit den realen Kapazitäten und Möglichkeiten von dem was im Forschungsgebiet der künstlichen Intelligenz behandelt wird, hat dies nichts zu tun. Hier geht es um Logik, Suchverfahren, lernende Systeme unter ganz bestimmten Bedingungen und ähnliches. Auf diese einzelnen Bereiche der Forschung und Entwicklung wird im folgenden näher eingegangen. 2 Logik Der erste und zugleich älteste Bereich der Forschung über künstliche Intelligenz ist der der Logik. Diese hat ihre Ursprünge bereits bei Aristoteles, der versuchte ”richtiges Denken” in Regeln zu erfassen. Diese sogenannten Sylogismen (logische Schlüsse) lieferten immer korrekte Schlussfolgerungen, vorausgesetzt man verfügte über korrekte Voraussetzungen. Ein Beispiel wäre: Sokrates ist ein Mensch, alle Menschen sind sterblich, daher ist Sokrates sterblich. Diese Gesetze des Denkens sollten die Funktionen des Geistes beherrschen, und so wurde das Studium dieser Regeln der Grundstein der Logik.[RN03]. Allerdings hat sich erst in jüngeren Vergangenheit daraus ein Forschungszweig entwickelt, der in die Bereiche simulierter bzw. künstlicher Intelligenz vor stößt. Allerdings ist auch heute, wie schon bei Aristoteles, das Wissen die Ausgangsbasis.[Kre09]. Es stellt sich demnach die Frage, was Wissen eigentlich ist, wenn es denn die Basis für unsere Entscheidungen, seien sie nun menschlich oder künstlich Intelligent, darstellt. HS-RM 8 WS2009/2010 Christian Ergh 2.1 Einführung KI MatNr 958418 Wissen Im Bezug darauf was Wissen ist gibt es wahrscheinlich so viele Ansichten wie es Leute gibt, die glauben etwas zu wissen. So beschrieb Emanuel Kant Wissen als ”Ein sowohl subjektiv als auch objektiv zureichendes Fürwahrhalten.” was uns hier jedoch nicht weiter hilft. Wir benötigen eine strukturelle Beschreibung von Wissen. Am besten lässt sich Wissen durch den folgenden Aufbau charakterisieren: Zeichen + Syntax ⇒ Daten → Daten + Semmantik ⇒ Inf ormationen → Inf ormationen + P ragmatik ⇒ W issen → W issen + Schlussf olgerungen ⇒ Handlungen Um nun mit diesem Wissen arbeiten zu können, benötigen wir eine symbolische Wissensrepräsentationsformalismus. Grundlage bilden hier die Formalen Sprachen. Definition: Formale Sprachen Sei Σ ein Alphabet. Eine formale Sprache über Σ ist jede beliebige Teilmenge von Σ∗ [Sch92]. Ein Alphabet ist hierbei nicht notwendigerweise als einzelnes Zeichen zu sehen. Es können auch ganze Begriffe sein, deren Bedeutung für den Betrachter offenkundig ist, oder dies je nach Problemstellung zumindest sein sollte. Wir setzen also für das Alphabet ein Vokabular ein, das die wesentlichen Konzepte der realen Welt abbildet. Hieraus wird eine Wissensbasis erstellt, die das Vokabular verwendet und die Regeln für Formale Sprachen beachtet. Aus dieser Wissensbasis lassen sich nun mit Hilfe eines sogenannten Inferenzkalküls Schlussfolgerungen ziehen. Beispiele für solche Methoden sind die Aussagenlogik, die Hornlogik und die Prädikatenlogik. Beispielhaft sei hier das Aussagenkalkül angeführt. HS-RM 9 WS2009/2010 Christian Ergh 2.1.1 Einführung KI MatNr 958418 Aussagenkalkül Nach [TW94]: Das Aussagenkalkül besteht aus den Grundzeichen desselben, die bestehen aus • Aussagenvariablen: p0 , p1 , p2 , ... • Konnektoren: ¬, ∨, ∧, →, ↔ • Technischen Zeichen wie ( , ). Des weiteren Bildungsregeln für Ausdrücke oder auch Formeln. Formel werden mit Hilfe der Grundzeichen nach folgenden Regeln gebildet: • Jede Aussagenvariable selbst ist auch ein Ausdruck • Sind ϕ, ψ Ausdrücke, dann sind auch die Kombinationen von ϕ, ψ mit den Konnektoren Ausdrücke. • Die Menge der Formeln ist die kleinste Menge mit den beiden obigen Eigenschaften. Man kann sich darauf einigen, dass überflüssige Klammern weggelassen werden können. Das Inferenzkalkül besteht nun daraus, dass von einem in der Sprache definierten Startpunkt aus die Anfrage gestartet wird. Man ersetzt nun nach den gegebenen Regeln die Variablen, bis nur noch elementare Einheiten die nicht mehr weiter ersetzt werden könne vorhanden sind, und versucht dabei, die Anfrage zu beweisen. Diese Methodik lässt sich auch auf den Computer übertragen, so umgesetzt für die etwas restriktivere Hornlogik in zum Beispiel Prolog. 2.2 Ein Beispiel in Prolog Prolog entstand 1972 und ist bis Heute die populärste logische Programmiersprache. Sie setzt die Hornlogik um und arbeitet rein mit Regeln und Fakten. Sie wird zum jetzigen Zeitpunkt für viele Zwecke eingesetzt wie zum Beispiel Beweisführungen, Expertensysteme oder auch ihren ursprünglichen Zweck, der Verarbeitung von natürlicher Sprache. In dem nun folgenden Beispiel werden Familienverhältnisse beschrieben, die Beispielanfrage fragt nach den Eltern von Pat, wobei natürlich nur die in der Wissensbasis hinterlegten Elternteile als Ergebnis erscheinen können. HS-RM 10 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 grosseltern(Person,Enkel):- eltern(X,Enkel),eltern(Person,X). mutter(Person,Kind):- eltern(Person,Kind),weiblich(Person). schwester(Person,Schwester):eltern(X,Person),eltern(X,Schwester),weiblich(Schwester),\ ==(Person,Schwester). nachfahr(Nach,Vor):- eltern(Nach,Vor). nachfahr(Nach,Vor):- eltern(Nach,Nachgen),nachfahr(Nachgen,Vor). vorfahr(Kind,Vor):- eltern(Vor,Kind). vorfahr(Kind,Vor):- eltern(Vorgen,Kind),vorfahr(Vorgen,Vor). eltern(tom,bob). eltern(pam,bob). eltern(tom,liz). eltern(bob,ann). eltern(bob,pat). eltern(pat,jim). weiblich(pat). weiblich(liz). weiblich(ann). weiblich(pam). maennlich(bob). maennlich(tom). maennlich(jim). Beispielanfrage ? − eltern(X, pat). X = bob; false. 2.3 Verfahrenstechnik Bei all diesen Verfahren kommt es zu einem Suchen und Ersetzen in einem Baum, der je nach Art der Regeln unterschiedlich viele Verzweigungen hat. Es gibt nun verschiedene Methoden, diese Ersetzungen vorzunehmen um zu einem Ergebnis zu kommen. Letztendlich handelt es sich jedoch um eine Suche in einem Baum. Diese und andere Suchverfahren sind der nächste große Bereich der Forschung bei künstlicher Intelligenz HS-RM 11 WS2009/2010 Christian Ergh 3 Einführung KI MatNr 958418 Suchverfahren Auf den ersten Blick wundert man sich. Suchen und künstliche Intelligenz? Etwas trivialeres als eine Suche gibt es wohl kaum. Der erste Blick täuscht. Um ein Problem mittels eines Suchverfahrens zu Lösen sind viele Schritte notwendig, und es bleibt immer die Frage des Rechenaufwands. Eine Modellierung des Problems ist notwendig, um das Problem überhaupt rechnerisch erfassen zu können. Dann ist ein Startzustand und ein Zielzustand zu definieren, und Operatoren um einen Zustandswechsel herbeiführen zu können. Letztendlich ist noch ein Maß zu definieren, das den Aufwand in irgend einer Art und Weise beschreibt, im Allgemeinen die Pfadkosten. [Kre09] 3.1 Beispiele zu Suchproblemen Viele Probleme lassen sich so modellieren, das sie über Suchverfahren lösbar sind. Einige möchte ich hier exemplarisch näher erläutern: 3.1.1 Türme von Hanoi Bei den Türmen von Hanoi geht es darum, einen anfänglich sortierten Turm von Holzscheiben der auf einem Stab aufgestapelt ist auf einen anderen Stab umzusetzen und dort wieder die selbe Sortierung zu haben. Gesetzt werden kann von jedem Stab auf jeden Stab, es stehen drei Stäbe zur Verfügung. Der Figure 1: Beispiel der Türme von Hanoi [wik] Startzustand ist wie in dem Bild zu sehen definiert. Eine einfache Modellierung des Problems wäre ein sortierter Stack, der mit Hilfe eines zweiten Stacks auf einen dritten bewegt werden muss, wo er dann wieder sortiert vorliegt. Ein Übergang zwischen zwei Zuständen des Problems ist dann eine ”pop” Operation und mit dem entnommenen Element eine ”push” Operation. Theoretisch kann man nun von jedem Zustand aus alle möglichen Operationen ermitteln, und somit eine Baumstruktur aufbauen, wobei gewisse Pfade früher zu dem gewünschten Ziel führen, andere später. Je mehr Elemente in dem anfänglichen HS-RM 12 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Stack sind, desto komplexer wird die Aufgabe, insbesondere wird der Suchbaum sehr schnell extrem groß, man sieht hier ein Beispiel für exponentielles Wachstum. 3.1.2 Wegberechnung Das Problem kennt jeder aus dem Alltag. Man muss eine Reihe von Stationen abfahren oder laufen, und versucht die beste Strecke zu finden. Bei der relativ kleinen Menge an Zielen die zu bewältigen sind, und einigen einfachen intuitiven Vereinfachungen gelingt die Lösung dieser Aufgabe meist recht gut. Vereinfachungen sind zum Beispiel das wir Ziele die in etwa in der gleichen Richtung liegen gruppieren. Werden es viele Ziele wird das Problem unüberschaubar. Im Alltag geben dann Randbedingungen wie der Terminplan genügend Möglichkeiten das Problem wieder zu vereinfachen. Im allgemeinen ist das Problem jedoch alles andere als einfach. Um es zu modellieren kann man von einer n x n Matrix ausgehen, in der die Entfernungen von Ziel a nach Ziel b eingetragen sind, sowie eine Zahl k, unser gewünschter Maximalaufwand. Gefragt ist ob es eine Permutation π gibt, was einer Rundreise entspricht, so dass die Summe der Entfernungen kleiner als unser gewünschter Maximalaufwand k ist. Das Problem fällt in die Klasse der NP-Vollständigen Probleme. Ein Suchalgorithmus würde die ideale Lösung finden, allerdings wäre der Aufwand bei einer entsprechend großen Matrix enorm hoch. Auch hier ist ein exponentielles Wachstum im Aufwand zu verzeichnen sowie n ansteigt.[Sch92] 3.1.3 8-Puzzle Das sogenannte 8-Puzzle ist ein relativ leicht erklärt. Man geht von einer 3 x 3 Matrix aus, die mit Zahlen von 1 bis 8 besetzt ist, und ein Feld ist frei. Nun wird ein in irgend einer Art sortierter Endzustand definiert, und der Spieler muss mittels verschieben der Zahlen in das jeweilige freie Feld diese Sortierung herstellen. Er darf dabei nur dem leeren Feld benachbarte Ziffern verschieben, wobei nur horizontal und vertikal als benachbart gilt. Die Zustände sind demnach die aktuellen Matrizen, der Übergang das Bewegen einer Ziffer. Auch dieses Problem hat eine einfachen Erscheinungsform, jedoch liegt auch hier ein Problem der Klasse NP-vollständig vor. So hat das 3 x 3 Puzzle bereits 181.440 Zustände, das 4 x 4 schon 1.3 Billiarden, und das 5 x 5 1025 Zustände. [RN03] HS-RM 13 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Figure 2: Beispiel für das 8-Puzzle [Kre09] 3.1.4 8 Damen Problem Bei dem 8 Damen Problem geht es darum, auf einem Schachbrett 8 Damen so zu platzieren, dass sie sich gegenseitig nicht schlagen können, wobei die Damen so ziehen können wie es nach normalen Schachregeln möglich wäre. Auch hier ergeben sich eine Vielzahl von Möglichkeiten die Damen zu platzieren, das Problem hat bei einem normalen Schachbrett über 1014 Zustände. Bei 100 Damen steigt diese Zahl auf astronomische 10100 Zustände, die es zu prüfen gilt. Zustände sind alle Permutationen von Platzierungen der Damen auf dem entsprechenden Brett. 3.2 Gängige Suchverfahren Im allgemeinen kann man von einer Baumstruktur ausgehen, dem sogenannten Suchbaum. Er ergibt sich aus dem Startzustand und den Übergangsoperatoren. Nun gibt es verschiedene Möglichkeiten diesen Suchbaum zu durchlaufen. Ausgegangen wird immer von dem Startknoten, der Wurzel des Baums 3.2.1 Tiefensuche Bei der Tiefensuche wird ein Knoten expandiert, dann der erste der expandierten Knoten ebenfalls expandiert. Die weiteren Knoten der die bei der Expansion entstanden sind werden erst betrachtet, wenn der Zweig des Baums der durch den ersten Knoten entsteht keine weiteren Expansionsmöglichkeiten mehr bietet und kein Ergebnis geliefert hat. Man geht demnach erst zu den Blättern dieses Zweigs bevor man die anderen Zweige betrachtet. Der Vorteil dieses Verfahrens ist, dass man sehr frühzeitig Ergebnisse bekommt, und dementsprechend weniger Speicherbedarf hat, als dies zum Beispiel bei der folgenden Breitensuche der Fall ist. Es werden alle Wege durchlaufen, um einen optimalen Weg sicher zu stellen. HS-RM 14 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Figure 3: Beispiel für das 8-Damen Problem [Kre09] 3.2.2 Breitensuche Nachdem ein Knoten expandiert wurde, expandiert man alle Kinder die entstanden sind, bis schließlich der vollständige Baum expandiert ist. Den Optimalen weg findet man durch den Vergleich der Ergebnisse die dann alle zur Verfügung stehen. Allerdings wird der vollständige expandierte Baum benötigt, der Speicherbedarf entsprechend hoch. 3.2.3 Heuristische Verfahren, A∗ -Suche Heuristische Suchverfahren sind Verfahren bei denen eine Form von Vorwissen zum Einsatz kommt. Durch dieses Vorwissen versucht man die uniformierten Suchen wie Tiefensuche und Breitensuche effizienter zu gestalten. Bei zum Beispiel der A∗ -Suche hat man bei einem Knoten im Suchbaum den man schon erreicht hat die Pfadkosten bis zu diesem Knoten. Über eine Schätzfunktion versucht man nun, die Kosten von diesem Knoten bis zu dem Zielknoten näherungsweise zu ermitteln. Der Wert der Schätzfunktion sollte hierbei möglichst gross, jedoch unter den wirklichen Pfadkosten liegen. Ist eine solche Schätzfunktion gegeben ist die A∗ -Suche optimal [Kre09] HS-RM 15 WS2009/2010 Christian Ergh 3.2.4 Einführung KI MatNr 958418 Hill Climbing Algorithmus Bei dem Hill Climbing Algorithmus werden die erreichten und erreichbaren Zustände bewertet. Man versucht nun ein lokales Maximum dieser Bewertung zu erreichen, indem man immer den Operator als nächstes anwendet, der die größte Verbesserung der Bewertung herbeiführt. Dadurch erreicht man immer höherwertige Zustände, der Berg wird ”hinauf geklettert”. Problematisch ist bei dieser Variante einer Suche, dass das Maximum auf das man zusteuert nicht notwendigerweise in globales sein muss, d.h. die gefundene Lösung ist schlussendlich nicht notwendigerweise Optimal. 3.2.5 Genetische Algorithmen Genetische Algorithmen sind stochastische Suchverfahren, bei denen zunächst eine ”Bevölkerung” von Lösungskandidaten zufällig erschaffen wird, z.B. Wege einer bestimmten Anzahl Knoten durch den Suchbaum. Eine ”Fitnessfunktion” bewertet diese Bevölkerung nun, und nur die besten dürfen sich ”fortpflanzen”. Durch die Kombination der am höchsten bewerteten Kandidaten erhält man nun eine neue Bevölkerung, wobei es keine reine Kombination ist sondern zusätzlich noch die Kombination teilweise zufällig verändert wird, durch sogenannte Mutationen. Die neue Bevölkerung wird erneut auf ihre Fitness geprüft, wiederum kombiniert, und so weiter. Im Endeffekt ist die Qualität der Fitnessfunktion ausschlaggebend über die Qualität des Verfahrens und wie schnell sich Lösungen finden lassen. [Fre02] 4 Neuronale Netze Ein Netz von Neuronen - was sind Neuronen ist hier die erste Frage. Der Begriff kommt aus der Biologie, hier sind Neuronen Nervenzellen, die nicht nur im Gehirn vorkommen. Ihr Zentrum mit Zellkern wird Soma genannt, das Axon, ein bis zu 100 cm langer Fortsatz, dient als Datenleitung zu anderen Neuronen. Des weiteren verfügen Neuronen über Dendriten, mit denen sie Signale anderer Neuronen empfangen können. Die Kopplungsstelle zwischen zwei Neuronen nennt man Synapse. Neuronen verfügen über die Fähigkeit, dass sie Verbindungen zu anderen Neuronen aufgeben können, sowie neue Verbindungen aufbauen können [Zel00]. 4.1 Vergleich mit dem Menschen Das menschliche Gehirn verfügt über ca. 1011 Neuronen die sowohl als Schaltelement als auch als Speicher dienen.Zum Vergleich mit einem Computer kann man die Zahl der Transistoren betrachten, eine normale CPU verfügt über 1010 Transistoren. Speicher ist bei einem Rechner separat und schwer Vergleichbar aufgrund der verschiedenen Speicherarten. Jedoch arbeiten Neuronen simultan, die Transistoren in einer CPU nur sehr bedingt. Des weiteren haben Neuronen die Option sich flexibel zu vernetzen, was bei Transistoren nicht der Fall HS-RM 16 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Figure 4: Schematische Darstellung eines Neurons [wik] ist. Schätzungen belaufen sich auf einen Geschwindigkeitsvorteil zugunsten des Gehirns um einen Faktor 104 bis 105 [Kre09] . 4.2 Idee für Neuronale Netze Auf Basis der biologischen Gegebenheiten ist die Idee nun, solche Neuronen im Computer zu simulieren. Primär werden die Verbindungen zwischen den Neuronen betrachtet, die für sich eine relativ einfache Einheit sind. Diese Verbindungen sind veränderlich, um die Lernmöglichkeiten eines biologischen Neurons simulieren zu können. Es gibt zur Lösung eines Problems demnach keinen festen Algorithmus, ein Neuronales Netz stellt einen statistischen Gleichgewichtszustand dar. Neuronale Netze sind aus der Struktur von Neuronen und ihren Vernetzungen, vor allem im Gehirn, abgeleitet. Eine Implementierung von Neuronen stellen die McCulloch-Pitts Neuronen dar, die sogenannten Schwellwertneuronen, die schon 1943 entworfen wurden. Sie verfügen noch über keine Lernfunktion, sondern sind ein reines Berechnungsmodell. Diese MCP-Neuronen haben n Eingaben und schalten ab einem Gewissen Schwellwert. Diese sehr elementaren Neuronen wurden zu PDP- HS-RM 17 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Neuronen weiter entwickelt, wobei hier anstelle eines Schwellwertes eine Schwellwertfunktion tritt. Diese Funktion wird als Gewichtsfunktion für die Eingehenden Verbindungen interpretiert. Über die Manipulation der Gewichtsfunktion erhält man ein lernfähiges Netz, wenn man feste Regeln für diese Manipulation finden kann. 4.2.1 Vernetzungsarten Auch die Art der Vernetzung der Neuronen untereinander spielt eine große Rolle. So gibt es mehrere Standardvernetzungen die man gängiger weise nutzt. Zum einen wäre hier das Feed-Forward-Netz zu erwähnen. Man definiert zwei oder mehr ”Ebenen” von Neuronen, und jedes Neuron ist mit jedem Neuron der Folgeebene vernetzt. Andere Vernetzungen existieren nicht bei einem FeedForward-Netz. Andere Arten der Vernetzung können zu einem völlig anderen Verhalten führen, wie zum Beispiel bei der Kohonen Map, auf die im folgenden noch eingegangen wird. Die vorwärts Vernetzung an sich kann auch unterschiedlich realisiert sein, wenn man nicht ein Feed-Forward-Netz verlangt. So lassen sich Ebenen überspringen, oder auch Verbindungen auslassen. Beides wird im Allgemeinen nicht für sinnvoll erachtet. Eine Verbindung die im Design nicht vorhanden ist, wird auch in einem Lernprozess nicht hinzukommen. Der Abbau einer Verbindung wäre die Gewichtung dieser Verbindung auf Null zu setzten, dies ist demnach möglich. Somit ist die vollständige Vernetzung von Ebene zu Ebene sinnvoll. Das Überspringen von Ebenen bedeutet einen Informationsverlust in der übersprungenen Ebene, daher ebenfalls wenig empfehlenswert. [Zel00] 4.2.2 Kohonen Map Die Kohonen-Map ist dazu gedacht, das sie sich selber organisiert. Ebenfalls ein neuronales Netz, werden über die Gewichtsfunktionen und das oben beschriebene Verfahren des Nullsetzens einer Verbindung erst zur Laufzeit entsprechende Strukturen im Neuronalen Netz erzeugt. Dies Bedeutet im Umkehrschluss, dass alle Verbindungsmöglichkeiten vorhanden sein müssen. Zwar werden auch bei einer Kohonen-Map Ebenen definiert, und von Ebene zu Ebene als Feed-Forward-Netz verbunden, jedoch werden auch die Ebenen intern vernetzt, und zwar immer mit ihren Nachbarn in der Ebene, sprich ein Neuron hat im Normalfall 8 Nachbarn. Je nach Kohonen-Map kann dieser Wert jedoch variieren. Die anfängliche Gewichtung innerhalb der Ebenen ab der ersten Ebene ist dämpfend angelegt, so dass schaltende Neuronen ihre Nachbarschaft schwächen. Bei selbst schaltenden Neuronen ist dieser Effekt zwar vorhanden, aber nicht sonderlich relevant. Im Gegensatz dazu wirkt sich die Verbindung zu nicht schaltenden Neuronen stark aus, das nicht schaltende Neuron verliert an Relevanz. Auf diese Art und Weise organisiert sich das Netz letztendlich selbst. HS-RM 18 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Figure 5: Konzept einer Kohonen-Map [Kre09] 4.3 Lernen bei Neuronalen Netzen Grundsätzlich erhält ein Neuronales Netz eine Eingabe, und kann auf Basis dieser Eingabe sich anpassen. Es gibt zwei Möglichkeiten wie sich diese Anpassung umsetzen lässt. Zum einen kann eine Entscheidung rein auf Basis der Eingabe stattfinden, wie dies bei einer Kohonen-Map praktiziert wird. Zum anderen kann man Eingaben machen, deren korrektes Ergebnis bekannt ist, und die Anpassung aufgrund der Differenz zwischen korrektem und errechnetem Ergebnis vornehmen. 4.3.1 Backpropagation Backpropagation ist die zweite der oben beschriebenen Varianten, es existiert ein ”Teaching Input” mit der das Netz trainiert wird. Die Gewichtung der Verbindungen wird je nach Differenz zwischen gewünschtem Ergebnis und errechnetem Ergebnis angepasst. Bei der Anpassung gibt es verschiedene Parameter die das Lernen beeinflussen. So ist die Frage wie stark sich ein einzelner Durchlauf auf die Gewichte des Netzes auswirken, was in der Lernrate festgelegt wird. In der Vorwärtsphase wird zunächst eine Eingabe in das Netz vorgenommen, entsprechend angesprochene Neuronen schalten. Letztendlich wird eine Netzausgabe produziert. Diese Netzausgabe wird dann mit dem an den Ausgabeneuronen gewünschten Ergebnis, dem Teaching Input, verglichen und mit einem rekursiven Algorithmus die neuen Gewichte im Netz berechnet. Die erste Entwicklung hier war die Deltaregel, die allerdings nur eine Ebene zur Eingabe und eine zur Ausgabe vorsieht. Die Verallgemeinerung der Deltaregel ist dann der Backpropagation Algorithmus. HS-RM 19 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 Figure 6: Konzept zu Backpropagation [Kre09] Figure 7: Einfaches Beispiel zu Backpropagation [Kre09] Backpropagation im Detail Mathematisch betrachtet funktioniert der Algorithmus wie folgt: Wir betrachten die Summe der Neuronen die von der dem Neuron j vorangehenden Schicht ausgeht, das Nettoinput am Neuron j (nach [Kre09] ). netj = Σi cij ai Für die Ausgabeneuronen existiert ein Teaching Input Tj . Die Änderung der Gewichte erfolgt durch folgende Formel, wobei η die festgesetzte Lernrate ist: ∆cij (t) = ηδj ai (t) Falls j ein Ausgabeneuron ist (Rekursionsanfang): δj = (Tj − aj (t))F ′ (netj ) HS-RM 20 WS2009/2010 Christian Ergh Einführung KI MatNr 958418 In dem Fall das j zu einem hidden layer gehört (also weder Eingabeneuron noch Ausgabeneuron ist, Rekursionsschritt): δj = X δk cij F ′ (netj ) k Veranschaulicht sieht dies so aus: Figure 8: Veranschaulichung zu Backpropagation [Kre09] 4.3.2 Competetive Learning Das Lernen ohne ein Teaching Input wird durch sogenanntes Competetive Learning realisiert, bei Vernetzungen in der Art der Kohonen Map. Die Neuronen einer Ebene beeinflussen sich gegenseitig, beziehungsweise die Gewichtungen der Verbindungen werden bei jedem Durchlauf angepasst. Auf diese Art und Weise bilden sich Cluster in den Ebenen die Schalten, umgeben von nicht schaltenden Neuronen. Insbesondere wird diese Art des Lernens zur Mustererkennung genutzt. Ein schaltendes Neuron dämpft seine Umgebung in der Art, dass ein anderes schaltendes Neuron dies zwar immer noch kann, aber ein nicht schaltendes Neuron bei einem weiteren Durchlauf es schwerer hätte, seinen Schwellwert zum schalten zu erreichen. Man erhält den Effekt der sich verkleinernden Nachbarschaft. Die nach entsprechend vielen Eingaben verbleibenden schaltenden Neuronen zeigen die Struktur der Eingabedaten auf, durchaus auch graphisch zu verstehen wenn die Eingabe entsprechende graphische Objekte darstellte. HS-RM 21 WS2009/2010 Christian Ergh 5 Einführung KI MatNr 958418 Fazit Der Gedanke an ein künstliches intelligentes Wesen, von Menschenhand erschaffen, hat die Menschheit schon lange fasziniert. Die derzeitige Forschung an künstlicher Intelligenz hat mit dieser Phantasie jedoch nichts zu tun. Es geht vielmehr darum, einfache lernende Systeme zu erstellen, beziehungsweise vorteilhafte Algorithmen zu finden zu Problemstellungen die zuvor nicht lösbar waren. Die Suchalgorithmen, die wir heute schon instinktiv nicht mehr der künstlichen Intelligenz zuordnen würden, waren zum Zeitpunkt ihrer Entwicklung revolutionär, und wurden als ein großer Schritt in Richtung von denkenden Maschinen gesehen. Der derzeitige Stand sind Programme die auf eine Varianz in ihrer Umgebung reagieren können, allerdings nur im Rahmen dessen was die Programmierer als möglich vorhersehen konnten. Alles in allem kann gesagt werden, das die Entwicklung im Forschungsgebiet künstliche Intelligenz zwar weiter voranschreitet, aber im Endeffekt es sich um komplexe Algorithmen handelt, die intelligentes Verhalten simulieren. Von einem Geist in der Maschine kann, und wird in naher Zukunft auch, keine Rede sein. Christian Ergh HS-RM 22 WS2009/2010 Christian Ergh 6 Einführung KI MatNr 958418 Anhang References [Asi54] Sir Isaac Asimov. Caves of Steel. Doubleday, 1954. [Asi83] Sir Isaac Asimov. Robots of Dawn. Doubleday, 1983. [Bel78] Richard Ernest Bellman. An Introduction to Artificial Intelligence, Can computers think. Boyd and Fraser Publishing company, 1978. [CM85] Eugene Charniak and Drew McDermott. Introduction to Artificial Intelligence. Addison-Wesley, 1985. [Fre02] Alex A. Freitas. Data Mining and Knowledge Discovery with Evolutionary Algorithsm. Springer Verlag, 2002. [KR91] Tom Knight and Elaine Rich. Artificial Intelligence. McGraw-Hill Inc., 1991. [Kre09] Dirk Krechel. Script Künstliche Intelligenz. Hochschule Rhein-Main, 2009. [RN03] Stuart Russell and Peter Norvig. Artificial Intelligence, A Modern Approach. Prentice Hall, 2 edition, 2003. [Sch92] Uwe Schöning. Theoretische Informatik kurz gefasst. Bibliographisches Institut Wissenschafts Verlag, 1992. [Sto80] H.W. Stoll. Sagen des klassischen Altertums. Weltbild Bücherdienst, 1980. [TW94] Hans-Peter Tuschik and Helmut Wolter. Mathematische Logik kurz gefasst. Bibliographisches Institut Wissenschafts Verlag, 1994. [wik] www.wikipedia.com. world wide web open source. [Zel00] A. Zell. Simulation Neuronaler Netze. Oldenbourg Verlag, 2000. HS-RM 23 WS2009/2010