Banner

Fachhochschule Wiesbaden
Fachbereich Informatik

KI


Sven Eric Panitz

Startseite Inhaltsverzeichnis weiter


Kapitel 1 Einführung

\newcommand{\li}{\cntext{立}} \newcommand{\chun}{\cntext{春}} \newcommand{\yu}{\cntext{雨}} \newcommand{\shui}{\cntext{水}} \newcommand{\jing}{\cntext{惊}} \newcommand{\zhe}{\cntext{蛰}} \newcommand{\fen}{\cntext{分}} \newcommand{\qing}{\cntext{清}} \newcommand{\ming}{\cntext{明}} \newcommand{\gu}{\cntext{谷}} Hallo. Guten Tag. Hallo! Haben Sie einen Namen? Wenn Sie mir einen geben. Dann werde ich Sie jetzt Bert nennen. Mein Name ist Bengt. Okay. Bert, wie geht es Erni? Warum wollen Sie das wissen? Macht es Ihnen etwas aus, daß ich das wissen will? Es erscheint mir recht irrelevant. Warum erscheint es Ihnen irrelevant? Ich wollte hier über keinen Erni sprechen, sondern etwas über künstliche Intelligenz lernen. Sind Sie extra hergekommen, um hier etwas über künstliche Intelligenz zu lernen? Ja. Wollen Sie mehr darüber sprechen? Das Fach interessiert mich. Von Haus aus bin ich eigentlich Germanist. Belastet es Sie, das Sie Germanist sind? Nein, wieso sollte es. Sie glauben nicht, daß es sollte? Nein Sind Sie sicher? Ich glaube, man kann nie wirklich sicher sein. Wieso glauben Sie, man kann nie wirklich sicher sein Nun, ist das nicht eine alte Regel? Was bedeuten Regeln für Sie? Regeln können sehr hilfreich sein, sich zu orientieren. Gut, damit Sie sich in dieser Veranstaltung über künstliche Intelligenz besser orientieren können, gebe ich Ihnen eine kleine Regel mit. Überreicht ein Regelblatt mit dem Algorithmus aus Abbildung~. Betrachten Sie die Zeichen einer Aufgabe, die in einer Zeile stehen. Vor manchen Zeichen steht das Symbol $\neg$. Suchen Sie zwei Zeilen, die ein chinesisches Zeichen $x$ gemeinsam haben, so daß in einer Zeile vor diesem Zeichen das Symbol $\neg$ steht und in der anderen Zeile nicht. Schreiben Sie dann eine neue Zeile, in der Sie alle Zeichen aus den zwei gewählten Zeilen kopieren, nur das gemeinsame Zeichen $x$ bzw.~$\neg x$ ist nicht zu kopieren. Taucht ein weiteres Zeichen in der resultierende Zeile einmal mit vorangestellten Symbol $\neg$ und einmal ohne auf, so kann dieses Zeichen inklusiven dem davorstehenden Symbol $\neg$ gelöscht werden. Tritt ansonsten ein Zeichen doppelt auf, so kann das doppelte Auftreten gelöscht werden. Fahren Sie so lange rekursiv mit den Zeilen fort, bis Sie eine leere Zeile erzeugt haben. Markieren Sie diese mit dem Symbol $\Box$. In der Aufgabe sind sieben Zeilen gegeben:\\ \begin{equation}\mbox{\li \chun \yu}\label{e1}\end{equation} \begin{equation}\neg\mbox{\li} \neg\mbox{\chun}\label{e2}\end{equation} \begin{equation}\neg\mbox{\li} \neg\mbox{\yu}\label{e3}\end{equation} \begin{equation}\neg\mbox{\chun} \neg\mbox{\yu}\label{e4}\end{equation} \begin{equation}\mbox{\chun} \neg\mbox{\li}\label{e5}\end{equation} \begin{equation}\mbox{\li} \neg\mbox{\yu}\label{e6}\end{equation} \begin{equation}\neg\mbox{\chun}\label{e7}\end{equation} Es lassen sich die folgenden Zeilen mit den Regeln ableiten:\\ \begin{equation}\neg\mbox{\li}\qquad,\mbox{aus \ref{e2} mit \ref{e5}}\label{e8}\end{equation} \begin{equation}\neg\mbox{\yu}\qquad,\mbox{aus \ref{e3} mit \ref{e6}}\label{e9}\end{equation} \begin{equation}\mbox{\chun \yu}\qquad,\mbox{aus \ref{e1} mit \ref{e8}}\label{e10}\end{equation} \begin{equation}\mbox{\chun}\qquad,\mbox{aus \ref{e9} mit \ref{e10}}\label{e11}\end{equation} \begin{equation}\Box\qquad,\mbox{aus \ref{e7} mit \ref{e11}}\end{equation} ~\\ Die KI ist ein weites Feld, das in viele Spezialdisziplinen zerfällt und dessen Ränder unscharf definiert sind. Es gibt umfangreiche Literatur zu den unterschiedlichen Spizialdisziplinen, die zur KI gehören. Als ein recht umfassendes Lehrbuch über das Gesamtgebiet hat sich Artificial Intelligence: A Modern Approach von Russel und Norvig erwiesen. Ihm wird die Vorlesung weitgehendst folgen und viele Beispiele sind dem Buch entnommen. Ein sehr hilfreiches und umfassendes gut zu lesende Skript ist das Skript von Manfred Schmidt-Schauß an der Universität Frankfurt. Ein etwas älteres einflußreiches Lehrbuch stammt von Winston. Ein reich bebildertes mehr populärwissenschaftliches recht kurzweiliges Werk stammt von Raymond Kurzweil. Mit einigen philosophischen Fragen und Gedankenexperimenten beschäftigt sich ein recht unterhaltsames Buch von Poundstone. In diesem Skript befinden sich mehrere Programme, in denen einige einfache Algorithmen der KI umgesetzt sind. Die Programme sind in der Programmierspache Scala geschrieben. Scala erzeugt als Zielcode Java Byte Code. Um Scalaprogramme auszuführen bedarf es also der Javalaufzeitumgebung. Zusätzlich wird die Standardbibliothek von Scala in Form einer Jar-Datei benötigt. Die Wahl auf Scala fiel, um zum einen geistig ein wenig rege zu bleiben, zum anderen, weil sich in Scala die Programme wesentlich kürzer formulieren lassen als in Java und dadurch die Programme sich mehr auf die wesentliche algorithmische Idee konzentrieren.

1.1 Was ist Künstliche Intelligenz

1.1.1 Rationale Agenten

Das Ziel der KI ist es einen rational und autonom agierenden Agenten zu entwickeln. Unter einen solchen Agenten wird eine autonome Einheit verstanden, die Rezeptoren für ihre Umwelt hat und mit Aktionen auf die Umwelt reagieren kann. Das Verhalten des Agenten soll dabei weitestgehendst rational und zielgerichtet sein. Als Perzept wird eine einzelne Eingabe an den Agenten bezeichnet. Als Perzeptfolge wird die Gesamtheit aller nacheinander für einen Agenten eintreffenden Perzepte bezeichnet. Die Reaktion (Antwort) eines Agenten auf alle möglichen Perzeptfolgen kann als mathematische Funktion beschrieben werden, in der jede Folge von Ereignissen, die der Agent wahrnimmt, zu genau einer Ausgabereaktion führt. Das Programm des Agenten ist eine Implementierung dieser Funktion. Eine simple Implementierung könnte versuchen, in Form einer Tabelle zu arbeiten: für jede Perzeptfolge gäbe es dann einen Tabelleneintrag, in dem die Antwort des Agenten auf diese Folge gespeichert ist. Schwieriger zu definieren ist, wann ein Agent rational ist. Hierzu Bedarf es zunächst einer möglichsten objektiven Leistungsbewertung des Agenten. Diese Leistungsbewertung kann nur von dem Entwickler oder dem Kunden eines Agenten entworfen werden. Sie sollte möglichst an dem Ergebnis, das der Agent erzielen soll, gemessen werden. Handelt es sich um eine Agenten, der ein automatischer Staubsauger ist, sollte in die Leistungsbewertung sicherlich einfließen, daß der zu säuberen Raum auch jeweils keinen Staub mehr enthält (und ansonsten durch Einfluß des Agenten kein zusätzlicher Schaden entstanden ist). Die Rationalität des Verhaltens eines Agenten hängt insgesamt von vier Faktoren ab:

  • der Leistungsbewertung, die das Kriterium des Erfolgs mißt.
  • das fest eingebaute Wissen eines Agenten über seine Umwelt.
  • die Aktionen, die ein Agent ausführen kann.
  • die bisher gemachten Erfahrungen des Agenten in Form der Perzeptfolge.
Aus diesen vier Faktoren läßt sich folgende Definition für die Rationalität eines Agenten bilden:Für jede mögliche Perzeptfolge, selektiert ein rationaler Agent eine Aktion, von der auszugehen ist, daß sie die Funktion zur Leistungsbewertung maximiert unter Berücksichtigung der bisher erfahrenen Perzeptfolge und dem vorhandenen eingebauten Wissen über die Umwelt.

Das Problemfeld

Mit der bisherigen Definition eines Agenten haben wir uns sehr allgemein gehalten. Das Problemfeld, in dem ein Agent agiert kann sehr unterschiedlich aussehen: ein automatischer Staubsauger ist eventuell mit der Hauskatze konfrontiert, und auch die Vorstellung von sauber mag recht unterschiedlich sein, ein Agent, der hingegen mathematische Formeln beweist, hat mit weniger unklaren Tücken zu kämpfen und es trotzdem nicht leichter. Man kann versuchen das Problemfeld eines Agenten nach ein paar unterschiedlichen Kriterien zu erfassen:
ganz oder partiell erfassbar
Ein Problemfeld ist ganz erfassbar, wenn der Agent zu jeder Zeit den genauen Zustand seiner Umwelt kennt. Ein Agent, der Rubic's Cube lösen soll, kann den aktuellen Zustand des Würfels in der Regel erfassen, ein Agent der die Wohnung staubsaugen soll, kann in der Regel nicht durch die Wände ins Nebenzimmer schauen, ob dort eventuell auch noch Schmutz zu finden ist.
deterministisch oder stochastisch
In einen deterministischen Problemfeld kann der Agent immer genau voraussagen, wie die Umwelt nach einer bestimmten Aktion aussieht. Das ist z.B. bei einem Agenten der Rubic's Cube löst der Fall. Wenn er eine Ebene des Würfels dreht, weiß er, wie der Würfel anschließend aussieht, hingegen der Staubsaugerautomat kann nicht unbedingt davon ausgehen. Manchmal verteilt die Hauskatze gerade wieder neuen Schmutz, oder aber die Saugleistung war nicht stark genug um den Dreck wirklich aufzusaugen.
episodisch oder sequentiell
In episodischen Problemfeldern interessieren im großen und ganzen die zu früheren Zeitpunkten gemachten Aktionen nicht. Jede Entscheidung wird unabhängig von den vorangegangen Entscheidungen getroffen. Ein Agent der schadhafte Teile auf einem Fließband erkennt ist in diesem Sinne episodisch. Der Staubsaugerautomat ist hingegen sequentiell. Hat er direkt zuvor ein bestimmtes Areal aufgesaugt, sollte er jetzt besser ein anderes Areal saugen.
statisch oder dynamisch
Statische Problemfelder ändern sich nicht von sich aus. Kreuzworträtzel oder eben Rubic's Cube sind statisch. Dynamische Problemfelder können sich mit der Zeit verändern. Es fällt einfach immer wieder neuer Staub an, der von Zeit zu Zeit wieder aufzusaugen ist.
diskret oder oder stetig
Dikret oder stetig in Bezug auf die Zeit können Problemfelder unterschieden werden. Ein Agent, der aus eingehenden Emails Spammail aussortiert, hat es mit diskreten Ereignissen über die Zeit zu tun, der Staubsaugerautomat mit stetigen.
ein oder mehrere Agenten
Befinden sich in einem Problemfeld mehrere oder nur ein Agent. Und verhalten sich die anderen Agenten kooperativ oder in Konkurrenz? Ein zweiter Staubsaugerautomat verfolgt dasselbe Ziel, und obliegt der gleichen Leistungsbewertung. Es ist nicht zu erwarten, daß er die Arbeit des Agenten sabotiert, hingegen ein Gegner beim Schachspiel verfolgt das entgegengesetzte Ziel, nämlich die andere Farbe gewinnen zu lassen. Die wirklich harten Problemfelder sind demnach partiell erfassbar, stochastisch, sequentiell, dynamisch, stetig und haben mehrere konkurrierende Agenten.

1.1.2 Künstliche und natürliche Intelligenz

Bevor wir im nächsten Kapitel uns den ersten Problemfeldern widmen und Agenten für diese Problemfelder implementieren wollen wir uns zunächst noch ein Paar Gedanken darüber machen, was Intelligenz denn eigentlich ausmacht und ob ein sehr guter rationaler Agent mit der menschlichen Intelligenz mithalten könnte.

Turing Test

Einer der ersten, die sich Gedanken darüber machte, ob eine Maschine intelligent agieren kann und wie sich das messen lassen könnte, war Alan Turing. Er entwarf ein Szenario, das an heute übliche Chaträume im Internet erinnert. In diesem Szenario kommunizieren zwei Agenten über eine Leitung nur durch Texteingabe. Sie wissen sonst nichts weiter voneinander. Dieses ist das gängige Szenario, das heute täglich millionenfach im Internet praktiziert wird. Turing stellte zunächst die Frage, die sich wahrscheinlich auch heute millionenfach Chatter fragen: Wer ist da am anderenAlan Mathison Turing ($\ast$23. Juni 1912 in London; $\dagger$7. Juni 1954 in Wilmslow) war ein britischer Logiker, Mathematiker und Kryptoanalytiker und einer der Urväter des Computers. Turing gilt heute als einer der einflussreichsten Theoretiker der frühen Computerentwicklung und Informatik. Die von ihm entwickelte Turingmaschine ist die Grundlage der theoretischen Informatik. Während des Zweiten Weltkrieges war er maßgeblich an der Entschlüsselung der mit der Enigma verschlüsselten deutschen Funksprüche beteiligt. Der Großteil seiner Arbeiten blieb nach Kriegsende jedoch unter Verschluss. Turing entwickelte 1953 eines der ersten Schachprogramme, dessen Berechnungen er mangels Hardware selbst durchführte. Nach ihm benannt ist der Turing-Preis, die bedeutendste Auszeichnung in der Informatik, sowie der Turing-Test zum Nachweis künstlicher Intelligenz.\ Ende der Leitung? Ist es ein Mann oder eine Frau? Kann ich das im Laufe des Gesprächs sicher entscheiden? Einen Schritt weiter ist die Frage: könnte mein Gesprächspartner eventuell eine Maschine sein und kein Mensch. Und was ist, wenn ich das im Gespräch nicht unterscheiden kann. Dann verhält sich mein Gespächspartner nicht unterscheidbar von einem Menschen. Dann kann ich ihm kaum absprechen in einer gewissen Form intelligent zu sein. Der Text im folgenen Abschnitt ist von dem Autor Bert Bresgen. Der Text darf freundlicher Weise in diesem Skript verwendet werden, und beleuchtet ein wenig den tragischen Menschen hinter dem Wissenschaftler Turing.

Bert Bresgen: Der Spezialist für einsame Zahlen

Es gibt ein Lied von Aimee Man, das mit der Textzeile beginnt: One is the loneliest number that you ever do.

Im folgenden geht es um einen Spezialisten für einsame Zahlen. Alan Turing, der 24 jährige Sohn eines Kolonialbeamten, schreibt 1935 einen Aufsatz: On Computable Numbers with an Application to the Entscheidungsproblem in den Proceedings of the London mathematical society. Das Entscheidungsproblem, von dem da die Rede ist, betrifft die Frage, wie man mit einem endlichen Aufwand herauskriegen kann, ob ein Satz aus einem formalen System abgeleitet werden kann oder nicht. Als Hilfsmittel entwickelte Turing in einem Absatz das Konzept einer Universalmaschine. Sie hat ein unendlich langes Lochband, unterteilt in diskrete Abschnitte, auf denen jeweils nur ein Zeichen eines Alphabets inclusive Leerzeichen eingetragen sein kann. Ein leerer Abschnitt gilt mit dem Leerzeichen als beschrieben. Ohne uns in die Feinheiten der sogenannten TuringMaschine hineinzubegeben, lässt sich sagen: Turing baute in seinem Geist einen Computer, den ersten im modernen Sinn. One ist mittlerweile wirklich die einsamste aller Zahlen geworden. Sie hat in ihrem Ruhm alle übrigen Zahlen, die berechenbaren, und nichtberechenbaren, die rationalen und irrationalen, die mystischen Zahlen der Kabbala und die alten Glücks- und Unglückszahlen, hinter sich gelassen. Keine Zahl lässt sich mehr neben der Eins blicken, nur das Leerzeichen, die Null steht ihr und uns allen bei. Aber wer möchte schon mit einem Leerzeichen auf der Strasse gesehen werden? Das populäre Misstrauen gegenüber der Null ist nach wie vor groß. Mancher sagt: das sind die Gene unserer Vorfahren, die Roulette gespielt haben. Und obwohl eine Telefonsexanbieter im Fernsehen bis vor kurzem mit dem Slogan. ``0190 vierundzwanzig Stunden voll in Null!'' versucht hat, Vorurteile abzubauen, ist dies bislang nicht voll gelungen. Alan Turing, der erste Theoretiker von Eins und Null, blieb nicht bei der reinen Theorie, sondern trat im 2. Weltkrieg ein in den englischen Codeknackerpool von Bletchley Park. Der englische Geheimdienst und die Welt verdanken ihm und einem Haufen weltfremder Oxford- und Cambridgedozenten, Mathematiker, Linguisten, Philologen, sowie dem kompletten Team der englischen Schach-Nationalmannschaft im etc. das Knacken des legendären Verschlüsselungscodes der Deutschen: Enigma. In den 40er Jahren decodierte Turing mit Hilfe des von ihm entwickelten Röhrencomputers Colossus die Verschlüsselung der Kriegsmarine und machte die gefürchteten deutschen U-Boote so gut wie wirkungslos. Der Krieg wurde durch die Arbeit der Entschlüsselungs-Experten um geschätzte 2 Jahre verkürzt. Es heißt, das Churchill durch Bletchley Park vom verheerenden Luft-Angriff auf Coventry informiert worden war, aber keine Warnung an die Stadt herausgab, um bei den Deutschen nicht den Verdacht aufkommen zu lassen, dass Enigma entschlüsselt ist. Der angebliche Überraschungsangriff auf Coventry war Blaupause und Rechtfertigung für die Terrorangriffe der Alliierten auf Dresden, Hamburg, Köln und andere Städte am Ende des Krieges. Für Alan Turing war dies eine glückliche Zeit. Er fuhr auf dem Fahrrad mit einer Gasmaske angetan durch den kleinen englischen Ort, um sich wegen seines Heuschnupfens vor Pollen zu schützen. Jeden Tag half er Funksprüche zu entschlüsseln, von dem das Leben Tausender abhing. Er traf in den USA Claude Shannon, einen Begründer der Signalübertragungslehre, der BITS, der Differenz zwischen Ein und Aus. 1950 stellt er in einem Aufsatz Computing Machinery and Intelligence die Frage Können Maschinen denken? und schlägt zu ihrer Beantwortung ein Spiel vor: Ein Spieler versucht per Fernschreiber durch Fragen herauszufinden, wer von den beiden anderen der Mensch und wer die Maschine ist. Turing prophezeit, bis zum Ende des Jahrhunderts würden Maschinen in der Lage sein, den Frager zu täuschen. Dies ist der sogenannte Turing-Test. Seit 1991 schreibt ein Amerikanischer Millionär jährlich den nach ihn benannten Loebner Preis aus. 100.000 Dollar bekommt jenes Programm, das den Turing Test besteht und den Juroren glaubwürdig vormachen kann, es sei ein Mensch. Auszahlen musste Loebner die 100.000 Dollar bisher noch nie, auch wenn die Programme von Jahr zu Jahr besser werden. Wenn die Juroren z.B. über Liebe reden wollten, versagten die Programme bisher. Ein Beispiel aus einem Juroren-Gespräch: Hast Du einen Namen? Wenn Du mir einen gibst, ja. Du bist Fred. Egal. Fred, wie geht es Wilma? Warum willst Du das wissen? Ich liebe Wilma und würde für sie sterben. Wenn Du ihr weh tust, dann werde ich Dich zur Verantwortung ziehen. Ich weiß keine Antwort. Turing selbst war auch keine ideale Turing-Maschine. Er liebte Wilma nicht. Er wusste im entscheidenden Moment keine Antwort auf die Fragen, die ihm gestellt wurden. Turing war schwul, was im England der 50er Jahre des 20. Jahrhunderts nach wie vor als Verbrechen galt. Als er der britischen Polizei einen Diebstahl meldete, fand die Polizei heraus, dass er mit dem Arbeiter Arnold Murray zusammen lebte. 1952 wurde er in Manchester vor Gericht gestellt. Niemand dort wusste von Bletchley Park, denn die Aktivitäten von Bletchley Park blieben bis Mitte der 70er Jahre streng geheim. Die Regierungsbehörden, die es besser wussten, unterstützten Turing nicht, sondern stuften ihn aufgrund des Prozesses als nicht mehr zuverlässigen Geheimnisträger ein. Turing wurde von dem Gericht vor die Alternative gestellt wegen erwiesener Homosexualität ins Gefängnis zu gehen oder sich einer einjährigen Hormonkur mit Östrogen zur Unterdrückung des Sexualtriebes zu unterziehen. Er wählte die Hormonkur. Ein Jahr später starb er an einem Apfel , den er mit Zyankali vergiftet hatte, ein Ende, das einem seiner Lieblingsfilme, Walt Disneys Schneewittchen nachgebildet war. Aber Turing wurde nicht in einem gläsernen Sarg beigesetzt, kein Prinz erschien, der ihn wieder hätte aufwecken können.Joseph Weizenbaum ($\ast$ 8. Januar 1923 in Berlin) ist ein deutsch-US-amerikanischer Informatiker sowie Computer- und Medienkritiker mit jüdischer Abstammung. Weizenbaum bezeichnet sich selbst als Dissident und Ketzer der Computerwissenschaft. Sein Bruder Henry F. Sherwood war ebenfalls Computerpionier. Weizenbaums Vater war der Kürschnermeister Jechiel Weizenbaum. 1936 emigrierte die Familie in die USA. Dort studierte Weizenbaum zunächst Mathematik. Das Studium an der Wayne-University in Detroit (Michigan, USA) -- unterbrochen während des Krieges durch Dienst in der meteorologischen Abteilung der Luftwaffe beendete er mit den Abschlüssen BS (1948) und MS (1950), danach wurde er Mitarbeiter bei einem Computer-Projekt. Von 1955 bis 1963 arbeitete Joseph Weizenbaum als Systems Engineer im Computer Development Laboratory der General Electric Corporation und war dort u.a. an der Konzeption des ersten Computer-Banksystems beteiligt. 1963 begann er seine Tätigkeit am Massachusetts Institute of Technology (MIT), zunächst als Associate Professor, ab 1970 als Professor für Computer Science. 1966 veröffentliche Weizenbaum das Computer-Programm ELIZA, mit dem er die Verarbeitung natürlicher Sprache durch einen Computer demonstrieren wollte; Eliza wurde als Meilenstein der ``künstlichen Intelligenz'' gefeiert und sollte menschliche Psychologen bald ablösen. Weizenbaum war entsetzt über die Wirkung seines relativ einfachen Programms, das nie zum Ersetzen eines Therapeuten konzipiert gewesen war, und wurde durch dieses Schlüsselerlebnis zum Computer- und Medienkritiker. Noch heute gilt Eliza als Prototyp für moderne Chatbots. Seit dieser Zeit mahnt Weizenbaum den kritischen Umgang mit Computern und die Verantwortung des Wissenschaftlers für sein Tun an. Er ist Mitbegründer der Computer Professionals for Social Responsibility in den USA und des Forums InformatikerInnen für Frieden und gesellschaftliche Verantwortung (FIfF) in Deutschland. Weizenbaum ist Vorsitzender des Wissenschaftlichen Rates am Institute of Electronic Business in Berlin. 2002 verlieh ihm die Gesellschaft für Informatik die Ehrenmitgliedschaft. Er ist Träger des Großen Bundesverdienstkreuz und hält vier Ehrendoktor Auszeichnung (Unter anderem von der Uni Hamburg und der Uni Bremen sowohl ein Doctor of Humane Literature vom Webster College (USA)). In dem vor 2 Jahren produzierten Hollywood Film Enigma ist aus Turing ein ziemlich zupackendes Genie namens Tom Jericho geworden, dessen Entschlüsselungsarbeit darunter leidet, eine Frau nicht vergessen zu können, die sich als Agentin der Deutschen entpuppt hat. Am Ende kommt er darüber hinweg, wendet sich Kate Winslett zu und macht ihr ein Kind. Seit Sommer 2003 erinnert ein bronzenes Denkmal in Manchester an Alan Turing. Aufgestellt vom Alan Turing Memorial Fund und unterstützt von der British society for the history of Mathematics zeigt die Statue Trung auf einer Bank sitzend in einem kleinen Park zwischen der Universität und dem schwulen Viertel um die Canal street. Keiner Computerfirma und keine englische Regierungsstelle unterstützte die Aufstellung der Statue.

Eliza

Joseph Weizenbaum stellte 1966 ein Programm vor, das zumindest den Anschein erweckte, als sei es bestens dazu geeignet, den Turing-Test zu bestehen. Er nannte das Programm Eliza, nach der Figur Eliza Doolittle aus dem in den 60-er Jahren sehr populären Musical My Fair Lady, welches wiederum auf das Theaterstück Pygmalion von George Barnhard Shaw basiert. Die Namensgebung war darin motiviert, daß die Eliza des Theaterstücks von einem Herrn Higgins lernt, so zu sprechen, wie die feine Gesellschaft; hauptsächlich dadurch, daß Sie ihm nachspricht. Das Programm Eliza von Weizenbaum simuliert einen Psychotherapeuten. Aus der Beobachtung heraus, daß in der Psychoanalyse der Therapeut lediglich die Aussagen des Patienten benutzt um weiter nachzufragen, führt das Programm einen Dialog, indem es in den Benutzereingabe versucht typische Satzfragmente zu erkennen, oder auch nur auf einzelne Wörter zu reagieren. Mehr oder weniger auf jedem Linuxrechner ist heute eine Version des Programms enthalten. Hierzu starte man einmal den Texteditor emacs. Hierin ist ein Programm doctor enthalten. Es läßt sich starten durch Drücken der Escape-Taste gefolgt von x und Eingabe des Worts doctor. Erstaunlicher Weise ist das Programm Eliza in seiner Basisversion so leicht zu programmieren, daß wir es hier zum Spaß einmal tun können. Die meisten weniger interessanten Programmteile befinden sich im Anhang. Das Programm zerteilt den Eingabestring in eine Liste von Wörtern. In dieser Liste wird nach typischen Satzanfängen, wie ich fühle mich oder ich glaube, daß gesucht. Wenn ein solcher typischer Satzanfang gefunden wurde, so wird in einer Tabelle nach möglichen Antworten für dieses Satzfragment nachgeschlagen. Für verschiedene Satzanfänge gibt es mehrere alternative Antwortarten, die in unserem Programm rotiert benutzt werden. Zur Generierung der Antwort wird der Teil des Satzes, der nach dem Satzanfang folgt benutzt. Es wird so auf dem Satz Ich fühle mich eine Antwort der Form Warum fühlen Sie sich erzeugt. Als auf den Satz Ich fühle mich müde. wird mit Warum fühlen Sie sich müde geantwortet. Eventuell enthält das Satzfragment Nebensätze. Dann ist es notwendig für die Antwort ein wenig den Satz zu konjugieren. Auf den Satz ich fühle mich müde und ich habe keine Lust zu arbeiten wird dann als Antwort generiert: Warum fühlen Sie sich müde und haben Sie keine Lust zu arbeiten. Die Funktionsweise ist also denkbar einfach und es kommt darauf an eine möglichst große Tabelle von vorgefertigten Satzfragmenten für mögliche Aussagen zu haben. Zusätzlich zu den Satzfragmenten, kann auch nur auf einige Substantive in allgemeiner Weise reagiert werden. Es folgt unsere kleine Implementierung der Eliza. Sie ist einer Implementierung von Mark P.~Jones in der Programmiersprache Gofer genommen und in Scala umgesetzt worden. Wir schreiben eine Klasse Eliza:

Eliza.scala
package name.panitz.eliza;
class Eliza {

Ein paar Hilfsfunktionen, die im Anhang zu finden sind werden importiert, die Datenbasis mit Satzfragment-Antwortfragment-Paaren wird instanziiert und eine Variabel vorgesehen, die den letzten Satz des Gesprächspartners speichert.

Eliza.scala
  import Util.{_}
  val data=new Data()
  var prev = ""

Der Eingabesatz wird von Satzzeichen gesäubert, komplett in Großbuchstaben umgewandelt, und unnötige Leerzeichen an Anfang und Ende werde beseitigt. Wenn es sich um den gleichen Satz handelt, der zuvor schon gefragt wurde, wird eine Antwort für wiederholte Sätze aus der Datenbasis gesucht, ansonsten der Satz in Wörter gesplittet und mit dieser Liste von Wörtern nach Satzfragmenten gesucht:

Eliza.scala
  def eval(s1:String):String={
    val s=stripPunctuation(s1.trim()).toUpperCase()
    var result = ""
    if (s==prev) {
      result = data.repeatMsgs.x.head
      rotate(data.repeatMsgs)
    }else result = ans(words(s))
    prev = s
    result
  }

Die folgende Funktions bekommt die Liste der Wörter des Eingabesatzes. Es wird in allen Satzfragment-Antwort-Paaren der Datenbasis geschaut, ein Satzfragment in der Wortliste irgendwo vorkommt. Hierzu werden alle Teilsätze (die tails) des Eingabesatzes betrachtet und geschaut, ob sie mit einem in der Datenbasis als Schlüssel markierten Satzfragment startet. Wenn ja wird aus den Satzfragmenten eine Antwort generiert.

Eliza.scala
  def ans(qs:List[String] )={
    val responses =
     for (val Pair(key,resp)<-data.responses
         ;val q<-tails(qs)
         ;isPrefix(key,q) )
       yield Pair(resp,makeResponse(resp.x.head
                                   ,conjug(resp.x,q.drop(key.length))))
    rotate(responses.head._1)
    responses.head._2
  }

Es folgen drei kurze Funktionen, die aus den Satzfragmenten eine Antwort zusammenbauen und dabei eventuell ein paar Wörter von der ersten Person in die zweite Person umwandel.

Eliza.scala
  def conjug(q:List[String],xs:List[String])
   =unwords(for (val y<-if(xs.isEmpty) q else xs) yield conj(y))

  def conj(s:String)
   =try {data.CONJUGATES(s)}catch {case e:Throwable => s}

  def makeResponse( cs:String, us:String)=
    if (cs.charAt(0)=='?') cs.substring(1)+" "+us.toLowerCase()+"?"
    else if(cs.charAt(0)=='.')cs.substring(1)+" "+us.toLowerCase+"."
    else cs
}

Schließlich eine kleine Applikation, die es erlaubt mit dem Programm über die Kommandozeile einen kleinen Dialog zu führen:

Main.scala
package name.panitz.eliza
object Main extends Application{
  Console.println("Welcome to Eliza, your personal psycho therapist")
  val elli=new Eliza()
  while (true)Console.println(elli.eval(Console.readLine))
}

So simpel und eingeschränkt die Datenbasis ist, so läßt sich doch der folgende kleine Dialog mit unserem Programm führen:
Welcome to Eliza, your personal psycho therapist
hello
How do you...please state your problem.
my name is bert
Names don't interest me.
sorry
Please don't apologise!
I have a problem
Is this really a poblem?
i think it is a big problem
Don't you see any solution to this?
i am afraid I do not see a solution
Did you come to me because you are afraid you do not see a solution?
yes
You seem quite positive.
I cannot solve my programming assignment
How do you know you can't solve your programming assignment?
I tried to solve ist in plain C
I'm not sure I understand you fully.
I want to solve my assignment in plain C
Why do you want to solve your assignment in plain c?
because it is the only programming language I learnt so far
Is that the real reason?
I think I am too lazy to learn a new language
How long have you been too lazy to learn a new language?
I think I have been lazy for all of my life
Do you really think so?
yes
Are you Sure?
i am sure that i am too lazy
Do you believe it is normal to be sure that you are too lazy?
i don't know if it is normal
Don't you really know if it is normal?
Maybe I should try to learn a new programming language
You don't seem quite certain.
I am always afraid before I start something new
Do you enjoy being always afraid before you start something new?
no
Are you saying no just to be negative?
no, I am really afraid
Did you come to me because you are really afraid?
are you programed in plain C?
Why are you interested in whether or not I am programed in plain c??
because programming a psycho therapist is my programming assignment
Don't any other reasons come to mind?
no
You are being a bit negative.
no
Why did you repeat yourself?
well, maybe you are right
What makes you think I am right?
i should try to solve the assignment in another language
Can you elaborate on that?
I think I try to learn scala
But you are not sure you you try to learn scala?
I could also consider ruby
Say, do you have any psychological problems?
no not at all. good bye
Weizenbaum schrieb sein Programm Eliza, um zu zeigen, daß auf diesen Weg keine wirkliche Intelligenz zu erzielen ist und war ein wenig schockiert über die Resonanz, die sein Programm erhielt. Vielfach wurde es tatsächlich als sinnvolles therapeutisches Programm verstanden. Die Idee von Eliza hat heute auch tatsächliche Anwendungen gefunden. Sogenannte Chat-Bots sind nach diesem Prinzip programmiert und erlauben Datenanfragen in einer natürlichen Sprache und versuchen aus den natürlichsprachlichen Eingabe aus typischen Satzfragmenten zu extrahieren, was der Benutzer genau wissen möchte. Es wäre interessant ein Eliza-Programm zu schreiben, das in einem Chat-Room zu einem bestimmten Thema Dialoge führen kann. Die arglosen Chatpartner wüßten nicht, daß sie mit einem Programm kommunizieren. Ob und wie schnell es als Programm entlarvt wäre Seien Sie also immer auf der Hut, wenn eine Eliza, Lisa, Elli oder jemand ähnliches sich in einem Chat-Room einloggt.

Das Chinesische Zimmer

Angenommen, es besteht ein Programm den Turing-Test. Egal auf welche Art das Programm geschrieben ist, ob es ein grammatisches Modell a la Chomsky benutzt oder nur simuliert, es würde etwas verstehen, wie bei Eliza. Was bedeutet das dann. Wurde damit ein intelligentes Wesen geschaffen? John Rogers Searle ($\ast$31. Juli 1932 in Denver, Colorado) ist ein amerikanischer Philosoph. Er studierte zunächst in Wisconsin und später in Oxford bei J. L. Austin und P. F. Strawson. Neben diesen beiden Philosophen wurde sein Denken wesentlich durch die Werke Gottlob Freges und Ludwig Wittgensteins beeinflusst. Er ist jetzt Professor an der Universität von Kalifornien in Berkeley. 2000 wurde er mit dem Jean Nicod Preis ausgezeichnet. Er arbeitet vor allem auf dem Gebiet der Sprachphilosophie sowie im Bereich der Philosophie des Geistes. Insbesondere entwickelte mit seinem Werk ``Speech acts'' von 1969 die Sprechakttheorie von Austin weiter. Von Searle stammt das im Rahmen der Diskussion zur Künstlichen Intelligenz bekannt gewordene Gedankenexperiment vom Chinesischen Zimmer, mit welchem er sich gegen die These wandte, dass Computer jemals ein (Sprach-)Verständnis entwickeln könnten, das dem des Menschen ähnelt. \ Ein Wesen mit einem Bewußtsein für das, was es tut? Hierzu hat der Philosoph John Searle sich folgendes Gedankenexperiment ausgedacht. Angenommen ein Mensch ist in einem engen Raum eingeschlossen. Dort befindet sich nichts außer ein dickes Buch. Das Buch trägt den Titel: Was mache ich, wenn mir ein Zettel nur mit chinesischen Buchstaben ins Zimmer gereicht wird? Da dem Menschen langweilig wird, fängt er an dieses Buch zu lesen. Es besteht aus lauter Regeln, wie die Buchstaben aus dem Zettel zu kopieren und schließlich ein Blatt mit solchen Buchstaben vollzuschreiben. Das Buch stellt also den komplexen Algorithmus des Programms dar, das den Turing-Test auf chinesisch bestanden hat. Irgendwann kommt es dazu, daß ein Zettel mit chinesischen Buchstaben in den Raum gereicht wird. Die Versuchsperson führt -- es ist ja sonst nichts zu tun -- den Algorithmus aus und reicht einen Zettel wieder heraus. Tatsächlich stand auf den reingereichten Zettel eine kleine Geschichte und zum Schluß eine Verständnisfrage zu dieser Geschichte. In dem großen Buch war ein Algorithmus vermerkt, der in der Lage war, Fragen zu kleinen Geschichten zu beantworten. Auf dem schließlich herausgereichten Zettel stand also die korrekte Antwort in chinesisch auf die Frage der in chinesisch hereingereichten Geschichte. Niemand, so argumentiert Searle, würde ernsthaft annehmen, daß die Person in den Zimmer nun tatsächlich ein Verständnis dafür hat, was sie da gerade getan hat. Sie hat nichts von der Geschichte verstanden und kann schon gar nicht in irgendeiner Weise chinesisch verstehen. Die Person hätte zwar in gewisser Weise den Turing-Test bestanden, aber kein Verständnis für das, was sie tut. Anders als der Turing-Test, der den Agenten als eine Black-Box betrachtet, und dem die Tatsache ausreicht, daß er von außen nicht mehr von einem Menschen zu unterscheiden ist, betrachtet Searles Gedankenexperiment den Algorithmus, der zu dem Eingabe- Ausgabeverhalten führt, und spricht diesem Algorithmus, der lediglich eine syntaktische Manipulation vornimmt, jegliches Verständnis für das, was es tut, ab. Man könnte also sagen: Turing sitzt außerhalb des Zimmers und ruft begeistert: es ist intelligent. Searle sitzt im Zimmer und sagt, der Typ hier drin versteht doch kein Wort Chinesisch. Die Fragestellung, wie mit einem künstlichen Agenten, der den Turing-Test bestanden hat, zu verfahren ist, wird wahrscheinlich auf Jahrhunderte hinaus noch weiterhin recht pathologisch sein, denn es ist fraglich, ob ein Agent in absehbarer Zeit einen Turing-Test auf Dauer besteht. Hingegen ist es ein beliebtes Thema in Literatur und Film. Zum Abschluß dieses Kapitels folgt ein kleiner Ausschnitt aus dem Roman Die abschaltbare Frau von Gerhard Mensching, in dem dem Held der Geschichte eine Androidin untergeschmuggelt wurde, die mit ihm in ihrem französischen Akzent folgenden kleinen Dialog hat:
``Das heißt also: Geist ist künstlich zu erzeugen.''
``Ja. -- Das hast du doch schon die ganze Zeit an mir gese-en. Oder willst du beaupten, isch ätte keinen Geist?''
``Das werde ich wohl lasssen. Aber eine Persönlichkeit bist du nicht. Das täuschst du nur vor.''
``Das tust du ja auch. Oder weißt du, wer du bist? Du ast dir was zusammengesucht, und das spielst du jetzt. Und weil du das schon so lange spielst, glaubst du, du mußt so sein und nischt anders. Und das nennst du dann deine Persönlichkeit.''
``Liebst du mich eigentlich?'' frage er unvermittelt, den Blick gegen die Decke gerichtet.
``Natürlich liebe isch disch. Warum fragst du das?''
``Weil das gar nicht so natürlich ist. Oder doch? [] Du kannst doch gar nicht wissen, was Liebe ist.''

1.2 Geschichte der KI

1.2.1 Einflußreiche Gebiete für die KI

Die KI ist als Wissenschaft nicht aus dem Nichts entstanden, sondern greift viele Aspekte und vorgehensweisen anderer oft auch sehr alter Disziplinen auf, um sie für ihre Ziele zu verwenden. Stichwortartig seinen ein paar dieser Disziplinen in den nächsten Abschnitten aufgelistet.

Philosophie

In der Philosophie war eine sehr frühe Fragestellung: wie kann man formal folgerichtige Schlußfolgerungen aus einer Menge von Annahmen ziehen. Hierzu hat bereits Aristoteles($\ast 384-\dagger 322$ v.Chr.) ein System von Schlußregeln aufgestellt und damit ein Forschungsvorhaben gestartet, das, wie wir sehen werden, 1965 in der KI zu einen vorläufigen Ende kommen sollte. Viele KI-Ansätze basieren auf Regeln der formalen Logik, die ursprünglich in der Philosophie entwickelt wurde.

Mathematik

Die Beiträge der Mathematik zu einzelnen Fragen der KI sind, wie nicht anders zu erwarten vielfältig. Exemplarisch seien Boole und Frege mit ihren Beiträgen zur Aussagenlogik und Prädikatenlogik genannt. Die Entwicklung des Begriffs Algorithmus und erster spezieller Algorithmen fällt in die Mathematik. Als einer der ersten nichttrivialen Algorithmen sei Euklids Verfahren zur Bestimmung eines größten gemeinsamen Teilers genannt. Grundlegende Fragen der Komplexität und die definition der NP-Vollständigkeit. Gödels Unvollständigkeitssatz und Turings Maschinenmodell.

Ökonomie

Optimierungsfragen, die in unserem Curriculum in der Vorlesung OR-Verfahren vorgestellt werden, ähneln in weiten Fragestellungen denen, die rationale Agenten der KI zu lösen haben.

Neurobiologie

Aufbau und Funktion eines Gehirns bietet ein interessantes Modell, welches die KI in Grundzügen in neuronalen Netzwerken versucht nachzubauen.

Psychologie

Der Zweig der Kognitionswissenschaft versucht zu erforschen, wie bestimmte Leistungen im Gehirn vollbracht werden. Wie arbeitet das Gehirn?

Technische Informatik

Robotik und Bilderkennung, sofern sie nicht schon der KI zuerkannt sind, stellen wichtige Disziplinen für die Entwicklung von Agenten, die auch physisch autonom sind, dar.

Steuerungs- und Regeltechnik

Selbst schon ein simples Thermostat kann als ein rationaler Agent betrachtet werden.

Linguistik

Ein formales Modell für Sprache finden ist der Ausgangspunkt der Linguistik in den 50-er Jahren des letzten Jahrhunderts. Die von Chomsky entwickelten Grammatiken hatten großen Einfluß auf die Informatik im Compilerbau, dienten aber auch der KI als Modell beim Versuch Programme zum Verstehen von natürlicher Sprache zu entwickeln. Was unterscheidet die KI von all diesen Disziplinen? Die KI ist immer darauf aus, die Konzepte und Theorien direkt auf einer Hardware zu implementieren und somit einen rationalen Agenten zu bauen. Während es einen Linguisten genügen mag, zu beschreiben, wie Sprache formal beschrieben werden kann, entwickelt der KI-ler ein Programm, daß dieses Modell umsetzt, also einen Parser, der das geparste versucht zu verstehen. Die KI bekennt sich ganz offen zu Maschinen als Mittel Ihrer Wahl, um rationale Agente zu bauen.

1.2.2 Die Geburt der KI

Die Geburt der Künstlichen Intelligenz als Forschungsfeld läßt sich sehr genau datieren. Im Sommer 1956 organisierte John McCarthy einen zweimonatigen Workshop. 10 Teilnehmer, die sich mit neuronalen Netzen, Automatentheorie oder allgemein mit Intelligenz beschäftigten -- unter Ihnen z.B.~Marvin Minsky und Claude Shannon -- fanden hierJohn McCarthy ($\ast$ 4. September 1927 in Boston, Massachusetts) ist ein Logiker und Informatiker, dem seine großen Beiträge im Feld der Künstlichen Intelligenz den Turing Award von 1971 einbrachten. Tatsächlich war es McCarthy, der den Begriff Künstliche Intelligenz 1955 auf der Dartmouth-Konferenz prägte. McCarthy ist der Erfinder der Programmiersprache Lisp, deren Design er im Communications of the ACM (1960) vorstellte. Lisp war eine der ersten Implementierungen eines Logikkalküls auf einem Computer. Außerdem wird ihm die Erfindung des Alpha-Beta-Algorithmus zugeschrieben, der entscheidend zur Spielstärke von Schachprogrammen beigetragen hat, sowie der erste mark-sweep Algorithmus zur automatischen Speicherbereinigung (Garbage Collection). McCarthy erhielt 1948 den Bachelor of Science im Fach Mathematik vom California Institute of Technology. Den Doktortitel erwarb er drei Jahre später an der Princeton University. Er ist jetzt im Ruhestand, als Professor Emeritus der Stanford University. John McCarthy kommentiert das Weltgeschehen oft in Internetforen aus einer mathematisch-wissenschaftlichen Perspektive.\ zusammen. Der Workshop selbst brachte keine neuen bahnbrechenden Erkenntnisse. Die Teilnehmer aber sollten die nächsten zwanzig Jahre das neue Feld der Künstlichen Intelligenz dominieren. Als wichtigste Entscheidung des Workshops einigte man sich auf einen Namen für das neue Feld: artificial intelligence. Der Alternativorschlag computational rationality konnte sich nicht durchsetzen.

1.2.3 das erste Jahrzehnt

In der Folge war das Feld von einer starken anfänglichen Euphorie geprägt. Frühe Erfolge ließen darauf hoffen, schon in Kürze Programme zu entwickeln, die besser Schach spielen als ein Großmeister oder Sprache verstehen können. Man glaubte den komplexen Anforderungen der Sprachübersetzung durch simples Manipulieren von Zeichen und durch Nachschlagen einzelner Wörter in einem Wörterbuch Herr zu werden. In den ersten 10 Jahren der KI sind als besondere Leistungen hervorzuheben: die Entwicklung der Programmiersprache Lisp mit dem Konzept der garbage collection durch McCarthy. Eine Leistung, die heute kein Javaprogrammierer mehr missen möchte. Die Entwicklung eines automatischen Beweiskalküls der Prädikatenlogik durch Robinson. Die Idee der Mikrowelten, eingeschränkte Umgebungen, die auf wenige Parameter einer Realwelt basieren von Minsky. Eine der bekanntesten dieser Mikrowelten ist die blocks world, die aus farbigen geometrischen Körpern besteht und in der Planungsaufgaben zu bewerkstelligen sind. Die stark symbolisch und logikbasierten Ansätze des ersten Jahrzehnts führten zu einer genaueren Analyse der Wissenrepräsentation. Mitte der 60er Jahre mußte die anfängliche Euphorie schnell herbe Niederschläge hinnehmen. Tatsächlich sollte es noch weitere 30 Jahre dauern, bis ein Schachcomputer erstmals einen Großmeister schlagen konnte. Auch die naiven Ansätze zur automatischen Sprachübersetzung führten nicht zu den erhofften Ergebnissen. Besonders nett ist die Anekdote der automatischen Übersetzung des Satzes the spririt is willing but the flesh is weak zu the vodka is good but the meat is rotten. Der in den Mikrowelten versuchte Ansatz durch einfache Suche und Kombination auf Lösungen zu kommen, scheiterte sehr schnell an Fragen der Komplexität, ebenso wie die Hoffnung alle Probleme nur prädikatenlogisch formulieren zu müssen, um sie dann durch einen allgemeinen Beweiser für prädikatenlogische Formeln lösen zu lassen.

1.2.4 Die 70er Jahre

In den 70er Jahren setzte man mehr auf anwendungsspezifische wissensbasierte Systeme. In diese Zeit fällt die Entwicklung von Expertensystemen. ExpertenMarvin Lee Minsky ($\ast$ 9. August 1927 in New York) ist ein US-amerikanischer Forscher auf dem Gebiet der künstlichen Intelligenz. Er war Mitbegründer des Labors für Künstliche Intelligenz am Massachusetts Institute of Technology. Er hat zahlreiche Texte zu diesem Fachgebiet sowie über verwandte Themen der Philosophie veröffentlicht und gilt als Erfinder der konfokalen Raster (Scanning) Mikroskopie. Marvin Minsky besuchte die Fieldston School und die Bronx High School of Science in New York. Später studierte er auf der Phillips Academy in Andover, Massachusetts. Er leistete 1944-45 seinen Wehrdienst in der US-Navy. In Harvard erwarb er 1950 einen Bachelor in Mathematik. Im selben Fach erlangte er in Princeton im Jahr 1954 seinen Doktortitel. Mitglied des MIT ist er seit 1958 - dort forscht und lehrt er auch heute noch. Im Laufe seines Forscherlebens wurde Minsky vielfach ausgezeichnet. Er ist Mitglied der amerikanischen National Academy of Engineering sowie der National Academy of Sciences. 1969 gewann er den Turing-Preis, 1990 den Japan-Preis und 2001 die Benjamin-Franklin-Medaille. Kritiker Minskys bezweifeln die Seriosität vieler seiner Prognosen, wie z.B. der, wir wären bald in der Lage, Emotionen in eine Maschine hinein zu programmieren. \ stellten Regeln für ein bestimmtes Fachgebiet zusammen. Diese Regeln sind in einfache Wenn-Dann-Form zu fassen. Es sollte sich bei diesen Regeln um aus langer Erfahrung gewonnene Faustregeln von Experten handeln. Das somit modellierte Expertenwissen konnte benutzt werden, um Diagnosen zu stellen. Am bekanntesten sind dabei Expertensysteme für medizinische Diagnosen geworden. Wenn bestimmte Symptome vorliegen, so lassen diese auf eventuelle gemeinsame Ursachen schließen, die wiederum durch andere Ursachen bedingt sind. So können die Regeln rückwärts verfolgt werden, um auf das eigentliche Problem zurückzuschließen und eine Diagnose aufzustellen. In diese Zeit fällt auch die Entwicklung der Programmiersprache Prolog, die als eine abgespeckte Version der Prädikatenlogik zu verstehen ist.

1.2.5 ab 1980

Seit den 80er Jahren spielt die KI auch eine industrielle Rolle als Wirtschaftsfaktor. 1981 proklamierte Japan das sogenannte fifth generation project, einen Plan, um innerhalb von 10 Jahren auf Prolog basierende Computer zu entwickeln. Auch wenn das Ziel als solches nicht erreicht wurde, so zeigt es doch auf, wieviel kommerzielles Potential von nun an in den Techniken der KI gesehen wurde. Insbesondere in Planungsaufgaben konnte die KI verschiedenen Firmen Millionen einsparen. Fluggesellschften hatten von nun an große KI-Abteilungen, die den Einsatz von Material und Personal auf solche Weise optimieren sollte, daß möglichst wenig Kosten für die Gesellschaft entstanden. Dabei handelt es sich nicht mehr um Optimierungsaufgaben die mit klassischen OR-Verfahren zufriedenstellend zu lösen gewesen wären. Die Randbedingungen sind dabei dermaßen komplex und schwer zu modellieren. Seit den 80er Jahren werden auch verstärkt Ansätze jenseits den logischen Modellierungen wieder aufgegriffen. Hierzu zählen insbesondere neuronale Netze, um die es zwei Jahrzehnte recht still geworden war, die sogenannte Fuzzy-Logik und genetische Algorithmen. Beim logischen Ansatz wird vermehrt nach Konzepten jenseits der klassischen Prädikatenlogik gesucht, um mehr natürliches Verhalten mit unsicheren oder falsifizierbaren Wissen zu arbeiten.

1.2.6 Historische Notizen

Wir ließen die Geschichte der KI im Jahre 1956 beginnen. Natürlich hat die Menschen seit jeher entsprechend der technischen Möglichkeiten, die Idee fasziniert, eine künstliche Intelligenz zu schaffen. Es gab auch immer Versuche und Ansätze einen rationalen Agenten zu konstruieren. Einer der ersten sehr beeindruckenden solchen Maschinen war ein Schachautomat im 18.~Jahrhundert. Dieser Schachautomat war zwar in unserem Sinne ein Betrug, weil als eigentliche Software ein kleinwüchsiger Mensch, der sich in ihm versteckt hielt diente. Trotzdem muß die Mechanik dieses Schachautomaten bewundernswert gewesen sein. Ein sehr schönes Beispiel für künstliche Intelligenz in der Literatur ist die schaurige Novelle Der Sandmann von E.T.A.~Hoffmann.Schachtürke ist die umgangssprachliche Bezeichnung für einen Schachroboter, der 1769 von dem österreichischen Mechaniker Wolfgang von Kempelen konstruiert und gebaut wurde. Der Erbauer dieser Maschine, in der sich ein versteckter Mensch befand, gaukelte den Schachspielern und Zuschauern damit vor, dass dieses Gerät selbständig Schach spielen kann. Die Schachmaschine bestand aus einer in türkische Tracht gekleideten Figur eines Mannes, der vor einem Tisch, auf dem sich ein Schachbrett befand, saß. Die Figur hat mit den bekanntesten Schachspielern der damaligen Zeit gespielt und meistens gewonnen. Der Türke begann immer die Partie, hob den linken Arm, bewegte die Schachfigur und legte den Arm dann wieder auf ein Polster zurück. Bei jedem Zug des Gegners blickte er auf dem Brett umher. War der Zug falsch, schüttelte er den Kopf und korrigierte die Position der Figur. Beim Schach der Königin nickte er zweimal, beim Schach des Königs dreimal mit dem Kopf. Alle Bewegungen waren von einem Geräusch ähnlich dem eines ablaufenden Uhrwerks begleitet. Kempelen, der Erfinder, der jedem, der es sehen wollte, das Innere der Maschine und ihre Mechanik gerne zeigte, stand während des Spiels etwas abseits und blickte in einen kleinen Kasten, der auf einem Tisch stand. Diese Schachmaschine erregte zur damaligen Zeit großes Aufsehen, da sie der erste Automat war, der Schach spielen konnte. Ihr Erfinder Kempelen konnte sich der vielen Besucher nur erwehren, indem er später verkündete, er habe diesmall Maschine zerstört. Nach einigen Jahren führte er die Maschine aber in Wien Kaiser Joseph und dem Großfürsten Paul von Russland vor und unternahm Reisen nach Paris und London, wo er wiederum großes Aufsehen erregte. In Berlin spielte der Türke gegen Friedrich den Großen und besiegte ihn. Friedrich bot Kempelen für die Aufdeckung des Geheimnisses eine große Geldsumme und war, nachdem das geschehen war, außerordentlich enttäuscht. Seitdem stand der Türke unbeachtet in einer Abstellkammer im Potsdamer Schloss, bis Napoleon 1809 kam und sich seiner erinnerte. Auch er spielte gegen den Automaten und verlor. Später kam der Automat in den Besitz des Wiener Mechanikers Johann Nepomuk Mälzel, der größere Reisen damit unternahm. Er gelangte 1819 nach London und 1820 in die USA. In London wies Robert Willis aufgrund von Zeichnungen zuerst nach, dass in dem Automaten ein Mensch versteckt sein könne. Seine Entdeckung beschrieb er in dem Artikel The attempt to analyse the automaton chess player im The Edinburgh Philosophical Journal. Aber erst 1838 teilte Thournay in der Revue mensuelle des echécs, Bd. 1, mit, dass wirklich Menschen darin versteckt gewesen sind. Wer diese Helfer Kempelens gewesen sind, ist unbekannt. Mälzel hatte zu diesem Zweck den Deutschen Johann Baptist Allgaier, in Paris die Franzosen Boncourt und Jacques François Mouret, in London den Schotten William Lewis und später den Elsässer Wilhelm Schlumberger angenommen. Auch der amerikanische Schriftsteller Edgar Allan Poe analysierte das Geheimnis des Automaten und veröffentlichte eine mögliche Lösung in seinem Essay Maelzel's chess player. Andere Quellen berichten, dass das Geheimnis erstmals gelüftet wurde, als bei einer Vorführung auf einem Jahrmarkt ein Zuschauer Feuer, Feuer rief. Mälzel öffnete daraufhin den Kasten, um den Spieler heraus zu lassen. Nach dem Tod von Johann Nepomuk Mälzel gelangte der Schachtürke über einen Zwischenhändler in den Besitz des schachbegeisterten Physikers John K. Mitchell. Dieser schenkte den Automaten, nach einigen privaten Vorführungen, im Jahr 1840 dem Peale's Museum in Philadelphia. Nach vierzehn Jahren als Ausstellungsstück verbrannte der türkische Schachspieler am 5. Juli 1854 bei einem Feuer im Museum. Von Walter Benjamin wird der Schachtürke in seinen Thesen zur Geschichte als Allegorie auf das Verhältnis zwischen Marxismus und Theologie genommen: (...) Gewinnen soll immer die Puppe, die man historischen Materialismus nennt. Sie kann es ohne weiteres mit jedem aufnehmen, wenn sie die Theologie in ihren Dienst nimmt, die heute bekanntlich klein und häßlich ist und sich ohnehin nicht darf blicken lassen (Gesammelte Schriften I.2, S.693). Eine der etymologischen Herleitungen des Ausdrucks etwas türken oder einen Türken bauen im Sinne von etwas nur vorspiegeln, etwas fingieren bezieht sich auf den Schachtürken.