Referat zum Thema Expertensysteme

Im Rahmen des Seminars "Künstliche Intelligenz"

bei Prof Dr Sabine Fabo,

SS 2000, Fh Aachen, Fb 04, VisKom

von Helge Barske

 

Zur Themenwahl

Ich habe mich im Rahmen des Seminars Künstliche Intelligenz dazu entschlossen, eine Ausarbeitung zu dem Thema Expertensysteme anzufertigen. Generell ist das recht trockener Stoff, die meisten Artikel hierzu findet man auf unzumutbar gestalteten Websites von Informatikhochschulen. Dennoch sind Expertensysteme themenrelevant, da uns diese Form intelligenter Programmierung heute täglich begegnen, sei es auf Websites, oder, in vereinfachter Form, in Alltagsgegenständen. Desweiteren war mir wichtig, anhand dieser Ausarbeitung exemplarisch auf die uns in unserer technisierten Gesellschaft umgebenden Mechanismen einzugehen.

Expertensysteme

Zu Beginn wird auf die Definition des Begriffes Expertensystem eingegangen. Es wird gezeigt, aus welchen unterschiedlichen Arten das Wissen eines menschlichen Experten besteht und wie dieses in einem Computersystem umgesetzt werden kann. Anschliessend werden die Vor- und Nachteile von Expertensystemen aufgezeigt. Die Anwendungsgebiete werden anhand von kurzen Beispielen vorgestellt. Folgend wird der Entstehungsprozeß eines Expertensystems und die daran beteiligten Personen sowie deren Funktionen erklärt. Am Ende dieses Textes wird auf die Arbeitsweise und den Aufbau eines Expertensystems eingegangen. Dabei wird die Wissensrepräsentation, die zur Anwendung kommt, vorgestellt und auf die Techniken und Methoden eingegangen, in welcher Weise das gespeicherte Wissen verarbeitet und genutzt wird. Die Erforschung und Umsetzung von Expertensystemen stellt eine erfolgreiche und wichtige Teildisziplin der künstlichen Intelligenz dar. Die Grundidee, die Expertensystemen zugrunde liegt, ist, daß Wissen hochspezialisierter Fachleute in einem Computersystem nachgebildet wird. Auf diese Art sollen menschliche Experten bei Routieneaufgaben unterstützt und entlastet werden. Ein weiteres Ziel ist es, das Wissen, das menschliche Experten durch lernen und jahrelange Erfahrung gesammelt haben, automatisiert verarbeitbar gespeichert wird und somit jederzeit reproduziert werden kann. Zusammengefaßt wird dies in der Definition:

"Expertensysteme sind Programme, mit denen das Spezialwissen und die Schlußfolgerungsfähigkeit qualifizierter Fachleute auf eng begrenzten Aufgabengebieten nachgebildet werden soll." (Puppe, Frank: Einführung in Expertensysteme, 2. Aufl., Springer: Heidelberg 1991)

Eine andere, eher technische Definition könnte wie folgt lauten:

"Expertensysteme sind Programme, die sich durch die Trennung der anwendungsspezifischen Methoden in der Wissensbank und der anwendungsunabhänigen Programmsteuerung durch die Inferenzmaschine zum Erzeugen logischer Schlußfolgerungen auszeichnet.

Für Expertensysteme soll dabei die Programmiergrundregel Programm = Algorithmen + Datenstrukturen durch die neue Regel System = Inferenz-Logik + Methoden + Fakten ersetzt werden.

Für Expertensysteme typische Techniken sind dabei:

+ Erschließung von Wissen

+ Verwendung von vagen oder unsicheren Fakten

+ Einbau von "Erklärungskomponenten", um Arbeitsweise und Ergebnis des Programms dem Benutzer auf Rückfrage hin erklären zu können." (Coy und Bonsiepen. Erfahrung und Berechnung - Kritik der Expertensystemtechnik, Band 229 von Informatik - Fachberichte. Springer, 1989)

Hier wird auch schon der schwierigste und wichtigste Faktor für das Erstellen eines Expertensystems angezeigt, nämlich das sog. "Knowledge Engineering":

"Hauptaufgabe beim Aufbau eines Expertensystems ist (...), das Wissen des Experten aus dessen Kopf in die interne Darstellung des Expertensystems zu überführen." (Horn, Knowledge Engineering. In: Expertensysteme. Hg. Gottlob, Frühwirth, Springer: Heidelberg 1990)

Dabei geht man von der Vorstellung aus, daß menschliche Experten ihre Problemlösungen aus Einzelkenntnissen und -erfahrungen zusammensetzten, die sie bei Bedarf auswählen und in passender und in der jeweiligen Situation richtiger Anordnung anwenden. Ein Expertensystem benötigt daher detailierte Einzelkenntnisse über das Aufgabengebiet und Strategien, wie dieses Wissen zur Lösung eines Problems angewendet werden kann. Um ein Expertensystem zu erstellen, muß das Wissen von einem oder mehreren Experten formalisiert und im Computer repräsentiert und manifestiert werden. Diese Aufgabe übernimmt der "Knowledge Engineer". Die Form der Wissensrepräsentation, die sich dafür besonders eignet, ist die der logischen Wissensrepräsentation durch Regeln. Diese Regeln haben die Form "Wenn X, dann Y"; z.B. Wenn die Temperatur zu niedrig ist, dann erhöhe die Heizleistung . Zusätzlich zu dieser Wissensrepräsentation muß es in einem Expertensystem auch Möglichkeiten geben, das Wissen (Fakten und Regeln) zu interpretieren bzw. Schlüsse zu ziehen. Diese Aufgabe übernimmt die Problemlösungskomponente (Inferenzmaschine), die unabhängig vom zu bearbeitenden Wissen ist. Das heißt, das in den Regeln gespeicherte Expertenwissen legt nur fest, was in einer bestimmten Situation getan werden soll, in welcher Reihenfolge die Regeln zu Problemlösung verwendet werden, entscheidet die Inferenzmaschine. Sind nur Wissenseinbringungskomponente, Dialogkomponente, Erklärungskomponente und Inferenzkomponente vorhanden, spricht man von einer (Expertensystem-) Shell. Die Anwender können hier das genaue Wissensgebiet selbst festlegen indem sie die Wissensbank mit dem nötigen Wissen auffüllen. Der Hauptvorteil der Trennung des Systems in Inferenzkomponente und Wissensbank ist der einer leichten Wartung und Änderbarkeit, da diese Systeme typischerweise eben in Gebieten mit sich änderndem und verfeinerndem Wissen eingesetzt werden.

Die Motivation und Zielsetzung beim Erstellen eines Expertensystems können sein: "die Bereitstellung neuer Serviceleistungen, besonders im Dienstleistungsbereich; die Entwicklung eines neuen Produktes, entweder als eigenständiges Softwaresystem oder durch Integration eines Expertensystems in ein Analyse- oder Diagnosegerät; die Verbesserung von Qualität, Sicherheit, Produktivität und Arbeitsbedingungen - Hauptziele im Rahmen der industriellen Produktion; und die Verringerung von Fehleranzahl, Ausschuß und Ressourcenbedarf, d.h. der Versuch, den Produktionsprozeß besser in den Griff zu bekommen. Die Motivation und die Gründe ein Anwendungsprojekt mit Hilfe der Unterstützung eines Expertensystems zu lösen, kann sowohl expertenbezogen als auch produktbezogen gesehen werden. Aus der expertenbezogenen Sichtweise ergeben sich folgende Gründe:

+ der Experte ist mit Aufgaben überlastet, die für ihn Routine sind. Diese Routineaufgaben sollten ihm von einem Expertensystem abgenommen werden, damit er sich den schwierigen Problemen widmen kann;

+ der Experte kann nicht vor Ort sein, etwa bei mangelndem Servicepersonal, oder bei Weltraum- und militärischen Projekten;

+ es gibt nur einen Experten, der in der Zentrale sitzt. Man möchte jedoch sein Wissen auch in den Filialen verfügbar machen;

+ die Anzahl und/oder die Komplexität der Probleme hat so zugenommen, daß der Experte überfordert ist;

+ der Experte geht bald in Pension oder wechselt die Firma, man möchte aber sein Wissen nicht mit seinem Ausscheiden verlieren." Aus der Sicht des zu entwickelnden Produktes ergeben sich folgende Gründe, bei der Realisierung ein Expertensystem zu implementieren:

+ um die Qualität eines Produktes zu erhöhen, liefert man das zugehörige Expertenwissen mit;

+ die Problemstellung hat eine Komplexität, die intelligente Unterstützung bei der Problemlösung erfordert;

+ die Sicherheit in kritischen Situationen wird erhöht;

+ es werden Leistungen an bisher nicht erreichten (oder für Menschen gefährlichen) Orten und/oder Tageszeiten (z.B. Nachts oder am Wochenende) realisiert."

Somit lassen sich auch schon verschiedene Einsatzgebiete von Expertensystemen festhalten:

Analytische Expertensysteme

+ Diagnose

+ Klassifikation

Synthetische Expertensysteme

+ Planung

+ Konfiguration

+ Fertigungssteuerung

Normalerweise existiert bei Expertensystemen eine klare Schnittstelle zwischen dem gespeicherten Wissen und der Problemlösungskomponente. Es ist jedoch nicht zwingend vorgeschrieben, daß Expertensysteme nach diesem Konzept aufgebaut sind. Es wäre auch möglich, daß die Regeln wie bei konventionellen Programmen fix in den Programmzeilen zu codieren. Dies würde aber die Reihenfolge der Abarbeitung der Regeln vorschreiben und die Vorteile der Modularität gehen verloren. Die Hauptaufgabe eines Expertensystems ist es, Wissen zu verarbeiten. Aus diesem Grund nehmen die Wissensbasis und der Inferenzmotor im Aufbau eines Expertensystems eine zentrale Rolle ein (s.Abb. 01); zusätzlich muß das System in der Lage sein, über eine Benutzerschnittstelle mit dem Anwender zu kommunizieren und die Ergebnisse zu präsentieren. Das System sollte auch die Fähigkeit besitzen, den Lösungsweg zu analysieren und Entscheidungen zu begründen und zu erklären. Weiters sollten Expertensysteme Möglichkeiten bereitstellen, die Wissensbasis zu erweitern. Nachfolgend sollen die Aufgaben der Komponenten eines Expertensystems erklärt werden, die in Abb. 01 dargestellt sind. Abb. 01:

Aufbau eines Expertensystems. Die Wissensbasis und die Inferenzmaschine nehmen eine zentrale Rolle ein.

Im Umgang mit Expertensystemen sind drei Personenrollen vorgesehen: Benutzer, Experte und Wissensingenieur (Knowledge Engineer), dazu Abb. 02. Verschiedene Rollen können aber auch in einer Gruppe zusammengefaßt werden, etwa wenn der Experte gleichzeitig der Wissensingenieur ist oder der Experte sein eigenes Expertensystem benutzt. Abb. 02:

 

Wissensbasis

In der Wissensbasis ist das problembezogene Wissen eines Expertensystems gespeichert. Um die Vorteile der expliziten Wissenspeicherung auszunutzen, sollte in keiner anderen Komponente problembezogenes Wissen gespeichert sein. Der Inhalt der Wissensbasis kann grob unterschieden werden in generisches Wissen, das unabhängig vom aktuellen Anwendungsfall gespeichert ist, und dem fallspezifischen Wissen, das zur Lösung des aktuellen Anwendungsfalls notwendig ist. Lernfähige Systeme können fallspezifisches Wissen, nach der Lösung eines Problems, in den generischen Teil der Wissensbasis aufnehmen. Das generische Wissen umfaßt Fakten zum Problembereich, Wissen über deren Zusammenhänge und deren Schlußfolgerungsmechanismen, und Wissen über Strategien, wie das vorhandene Wissen eingesetzt werden kann.

Inferenzmotor

Der Inferenzmotor stellt die zentrale Problemlösungskomponente dar. Hier werden die, aus der Problemstellung extrahierten Fakten entsprechend der Regeln verknüpft und auf neue Fakten geschlossen. Die Reihenfolge in der dies geschieht, wird von der Inferenzmaschine selbst festgelegt. Nach Beendigung des Schlußflogerungsprozesses werden die neugewonnenen Fakten von der Benutzerschnittstelle aufbereitet und als Lösung des Problems dem Anwender präsentiert.

Erklärungskomponente

Die Erklärungskomponente eines Expertensystems liefert Informationen über das Zustandekommen der Lösung. Typische Fragestellungen dabei sind: Wie wurde die Lösung eines Problems gefunden? Warum wird eine bestimmte Information vom System nachgefragt? Warum wurde eine bestimmte Lösung nicht gefunden?

Wissenserwerbskomponente

Die Wissenserwerbskomponente hat die Aufgabe, den Aufbau und die Erweiterung der Wissensbasis zu unterstützen. Sie stellt Funktionen zur Verfügung, die die Konsistenz und Vollständigkeit des gespeicherten Wissens zu überprüfen.

Benutzerschnittstelle

Die Benutzerschnittstelle unterscheidet zwei Arten der Interaktionen mit dem Expertensystem: Die Kommunikation mit dem Anwender, der nach der Lösung eines bestimmen Anwendungsproblems sucht, und der Kommunikation mit dem Knowledge Engineers, also der Person, die die Wissensbasis erstellt und wartet. Zu diesem Zweck werden in beiden Fällen die Fakten über die Problemlösung sprachlich natürlich aufbereitet oder Zusammenhänge graphisch dargestellt. Wie bei der Beschreibung der Wissensbasis angedeutet, benötigt ein Expertensystem, wie auch menschliche Experten Wissen, um eine gegebene Problemstellung zu lösen. Das Wissen läßt sich dabei in vier Kategorien einteilen: [Gottlob1990]

Fakten zu einem Problembereich

sind zumeist in Lehrbüchern enthalten. Sie stellen die Basis dar, auf der das gesamte Teilgebiet aufbaut. Der menschliche Experte eignet sich dieses Wissen in seiner Ausbildung (Studium, Fachausbildung) an, bzw. sucht es bei Bedarf in Wissensspeichern, die meist in gedruckter Form (z.B. Bücher, Manuals, Datenblätter) oder auch elektronisch zur Verfügung stehen. Beispiele für Faktenwissen sind Naturgesetze oder mathematische Gesetze.

Wissen über die Zusammenhänge der Fakten

beschreibt festgelegte Verfahrensweisen und deren Auswirkungen. Auch dieses Wissen ist großteils in Lehrbüchern zu finden, z.B. der physikalische Zusammenhang zwischen Luftdruck und Wetter.

Wissen über Schlußfolgerungsmechanismen und Heuristiken

für die Lösung von Problemen, eignet sich der Experte durch langjähriges Arbeiten in einem bestimmten Problembereich an. Dieses Wissen stellt das eigentliche Erfahrungswissen menschlicher Experten dar und beinhaltet auch den Umgang mit unvollständigen Informationen und mit Informationen aus den Randbereichen des Aufgabengebietes. Dieses Wissen ist nicht in Lehrbüchern zu finden, wäre auch schwer darin darzustellen, und macht einen Experten deshalb so wertvoll für ein Unternehmen. Wie im nachfolgenden Abschnitt erarbeitet wird, kann Wissen dieser Art nur sehr bedingt in Expertensystemen umgesetzt werden.

Strategisches Wissen

ist, wie das Wissen über Schlußfolgerungsmechanismen und Heuristiken, Erfahrungswissen, das sich der Experte im Laufe der Zeit aneignet. Es geht dabei darum, wie man ein Problem angeht, um effizient zu einer Lösung zu gelangen.

Die Wissenrepräsentation innerhalb eines Expertensystems hat eine natürliche und effiziente Darstellung des "Wissens" zum Ziel. Unabhänging von der nicht ganz klaren Bedeutung von "natürlich" in diesem Zusammenhang ist klar, daß diese Bedingungen eventuell in einen Konflikt zueinander treten können und einen imensen Arbeitsaufwand erfordern. Der praktische Nutzen eines Expertensystems für die Wirtschaft besteht in der Möglichkeit, Experten bei Routinetätigkeiten zu entlasten bzw. einfache Probleme auch ohne den Einsatz von Experten zu lösen. Durch Expertensysteme wird es möglich, Expertenwissen automatisiert zu verarbeiten und zu duplizieren, z.B. an andere Firmen weiter zu verkaufen. Weiters besteht die Möglichkeit, Wissen über die Dienstzeit des Experten hinaus zu archivieren, wenn ein Experte in Pension geht oder die Firma wechselt. [Gottlob1990]

Im weiteren sollen die Vor- und Nachteile von Expertensystemen erarbeitet werden, in dem die Fähigkeiten von menschlichen Experten denen von Expertensystemen gegenübergestellt werden. Um ein Problem zu lösen, muß ein menschlicher Experte folgende Fähigkeiten besitzen:

+ das Problem verstehen

+ das Problem lösen

+ die Lösung erklären

+ Randgebiete überblicken

+ seine Kompetenzen bei der Problemlösung einschätzen

+ neues Wissen erwerben und strukturieren

Dabei sind menschliche Experten auch dazu in der Lage, intuitiv zu handeln ohne ihre Entscheidungen begründen zu können und Probleme auch unter Verwendung von unvollständigem und unsicherem Wissen zu lösen.

Derzeitige Expertensysteme sind aber nur in der Lage, Probleme zu lösen und die Lösung in begrenzten Umfang zu erklären. Die anderen oben erwähnten Fähigkeiten sind für die Ausübung der Tätigkeit eines Experten im allgemeinen genauso wichtig, können aber von den Expertensystemen zum gegenwärtigen Zeitpunkt nicht erfüllt werden. Würde z.B. ein menschlicher Experte nicht über die Grenzen und Randgebiete seines Spezialgebietes bescheid wissen und nicht in der Lage sein, seine Wissenslücken zu beurteilen, so würde man diesem Experten, nach der ersten darauf beruhenden Fehlentscheidung, nicht mehr vertrauen.

Daher ergibt sich für Expertensysteme im Vergleich zum menschlichen Experten ein relativ begrnztes Aufgabenfeld, das wie folgt umrissen werden könnte:

+ Der Aufgabenbereich sollte deutlich abgrenzbar und nicht zu umfangreich sein.

+ Der Aufgabenbereich sollte bereits einen gewissen Grad wissenschaftlicher Durchdringung und Systematisierung aufweisen (Fachliteratur, Lehrbücher vorhanden)

+ Es sollte mindestens ein anerkannter menschlicher Experte, der sich auf die betreffenden Aufgabenklassen versteht, verfügbar sein.

+ Hauptquelle der außergewöhnlichen Leistungen des Experten sollten Spezialwissen, Erfahrung und geschultes differenziertes Beurteilungsvermögen sein.

+ Der Experte muß bereit und in der Lage sein, sein Spezialwissen und seine Erfahrung (verbal) mitzuteilen.

Die größte Schwierigkeit eines Expertensystems liegt im Verstehen des Problems. Während menschliche Experten über umfassende sensorische und verbale Fähigkeiten verfügen, um aus der Fülle der Daten die problemrelevanten Umstände herauszufiltern, vorzuinterpretieren und auf ihre Glaubwürdigkeit zu testen, erfordern Expertensysteme eine streng formalisierte Eingabe, deren Korrektheit kaum überprüft werden kann, die aber die Qualität der Problemlösung entscheidend mitbestimmen. Daher eignen sich Expertensysteme vor allem zum Einsatz in solchen Gebieten, bei denen die Datenerfassung wenig fehleranfällig ist, das Expertensystem selbst keine endgültigen Entscheidungen trifft, sondern in einen redundanten Entscheidungsprozeß eingebunden ist, und das Wissen des zu implementierenden Fachbereichs sehr schmal ist. In diesem schmalen Bereich kann das Wissen jedoch sehr tief strukturiert sein. Um Expertensystemen nicht die letzte Entscheidung zu überlassen und ihnen somit nicht eine zu große Verantwortung zu übertragen, werden Expertensysteme häufig dazu verwendet, Lösungen von menschlichen Experten auf ihre Richtigkeit zu überprüfen [Gottlob1990].

Aus den oben angeführten Gründen lassen sich Expertensysteme nach der Art der Interaktion mit der Umwelt einteilen. Dabei gliedert man Expertensysteme danach, ob der Austausch von Informationen direkt mit der Umwelt erfolgt oder ob die Interaktion mit der Umwelt über den Umweg eines Menschen stattfindet, der z. B. einer letzten Kontrollinstanz gleichkommt.

Grundsätzlich gilt für Expertensysteme, je autonomer das System, desto sicherer müssen die Entscheidungen sein. Daher sind Steuernde Systeme dazu gezwungen, bei Entscheidungen ihre Systemgrenzen zu überprüfen. Die Erklärungskomponente kann bei solchen Systemen unter Umständen entfallen. Sensorgeführte Systeme müssen in der Lage sein, Datenfehler zu erkennen und zu korrigieren. Bei der Erstellung eines Dialoggeführten Systems muß ein Modell der Benutzergruppe berücksichtigt werden, um damit festzulegen, welche Daten sinnvollerweise vom Benutzer erhoben werden können, bzw. welche Art der Erklärung für die Beratung notwendig ist. Dialoggeführte Beratungssysteme stellen den überwiegenden Teil der Expertensystemanwendungen dar. Nicht zuletzt ist dies darauf zurückzuführen, daß auf der Inputseite der Mensch für die Vorabverarbeitung der Daten sorgen muß, und auf der Outputseite der Expertensystementwickler die letzte Entscheidung und somit auch die Verantwortung dem Menschen überläßt.

Den oben angeführten Nachteilen von Expertensystemen im Vergleich zu menschlichen Experten stehen folgende Vorteile gegenüber, die den Expertensystemen zu wirtschaftlicher Bedeutung verholfen haben:

Urteilsfähigkeit

Die Urteilsfähigkeit eines Expertensystems ist immer gleich, das bedeutet, Expertensysteme kennen keinen Einfluß von Streß oder anderen emotionalen Faktoren. Ermüdung und Langeweile, wie sie bei Menschen bei Überwachungsaufgaben vorkommen, sind für Expertensysteme kein Problem. Ein Expertensystem kann daher auch unter extremen Bedingungen eingesetzt werden.

Wissenstransfer

Bei der Erstellung eines Expertensystems ist es notwendig, daß das Wissen von Experten explizit dargestellt und dokumentiert wird. Dieses Wissen kann somit auch anderen Leuten (Laien) zum Lernen zu Verfügung gestellt werden. Dies kann z.B. durch die Erklärungskomponente des Systems geschehen.

Verbreitung

Expertenwissen kann mit Hilfe eines Expertensystems viel leichter verbreitet werden. Dazu ist nur das Kopieren des Systems auf eine anderen Rechner nötig.

Kosten

Da nur die Entwicklung eines Expertensystems größere Kosten verursacht, ein fertiges Expertensystem praktisch kostenlos dupliziert werden kann, ist der Einsatz von Expertensystemen billiger als die Ausbildung eines menschlichen Experten.

Anwendungsgebiete von Expertensystemen

In der Geschichte der künstlichen Intelligenz wurde der Weg von der Suche nach allgemeinen Problemlösern hin zu stark problemspezifischen Ansätzen beschritten. Es wurde erkannt, daß für unterschiedliche Problemtypen unterschiedliche Lösungsansätze notwendig sind. Expertensysteme sind die Konsequenz aus dieser Entwicklung. Ihr Ziel ist es, Probleme auf einem stark eingeschränkten Anwendungsgebiet zu lösen. Dabei können folgende Problemtypen unterschieden werden:

Interpretation

Ableitung einer Situationsbeschreibung aus Sensordaten. (z.B. Geologie - Aus den Daten von Probebohrungen wird die Struktur der geologischen Formation ermittelt)

Diagnostik

Ableitung von Systemfehlern aus Beobachtungen; Erkennen von Ursachen. (z.B. Erstellen von medizinischen Diagnosen.)

Überwachung

Vergleich von Beobachtungen mit Sollwerten. (z.B. Patient Monitoring in der Medizin. Das System erhält laufend Daten des Patienten und vergleicht diese mit Sollwerten. Bei einer Abweichung schlägt das System Alarm.)

Steuerung

Vergleich von Beobachtungen mit Sollwerten und Veranlassen von Aktionen. (z.B. Patient Monitoring in der Medizin - Ähnlich der Vorgehenswiese bei der Überwachung, jedoch setzt das System selbst Handlungen, um den kritischen Zustand zu beseitigen.)

Design

Konfiguration von Produkten unter bestimmten Voraussetzungen. (z.B. Chemie - Herstellung komplexer organischer Moleküle, integrierte Schaltungen, usw.)

Planung

Entwurf einer Folge von Aktionen zum Erreichen eines Ziels. (z.B. Technik - Zusammenstellung eines Reperaturplanes bei einem Maschinenschaden) In der Produktionsplanung lassen sich dadurch die vorhandenen Ressourcen optimal einsetzen.

Vorhersage

Ableitung von möglichen Konsequenzen gegebener Situationen. (z.B. Wirtschaft - Ausgehend von der derzeitigen geopolitischen Lage wird der zukünftige Bedarf an Rohöl geschätzt)

Es zeigt sich, daß mehrere der obengenannten Problemtypen mit den selben Problemlösungsstrategien gelöst werden können. Somit ist es sinnvoll Expertensysteme nach ihren Strategien einzuteilen und die Problemtypen den Strategien zuzuordnen. Durch diese Einteilung erhält man einen Ansatzpunkt, mit welcher Strategie man an die Lösung eines konkreten Problems herangehen soll. Drei Typen für Problemlösungsstrategien:

Diagnostik

Das Ziel der Diagnose ist es, ein bekanntes Muster, wie z.B. ein Krankheitsbild oder einen Fehler, wieder zuerkennen. Dabei wird die Lösung aus einer vorgegebenen Menge von Alternativen ausgewählt. Dazu habe ich im Web einen interessanten Artikel aus der Notfallmedizin gefunden. Dieser Artikel ist um Jahre aktueller als die anderen, eher theoretisch-erklärenden Quellen dieses Referats:

Diagnose von Vergiftungen mit Methoden der Künstlichen Intelligenz Das schnelle Erkennen und Behandeln von akuten Vergiftungen gehört mit zu den schwierigsten Aufgaben des Arztes im Notfalldienst. Erschwerend kommt hinzu, daß häufig ein Gespräch mit dem Patienten nicht möglich ist. Hier muß der Giftstoff an Hand von Symptomen (z.B. Fieber, Puls, Blutdruck, Pupillengröße) ermittelt werden. Dies ist eine selbst für Experten sehr schwierige Aufgabe. Das erkennt man zum einen daran, daß es sehr wenige wirkliche Experten für Vergiftungen gibt. Zum anderen basiert die Diagnose oft nicht auf klar definierten Regeln, sondern ist das Ergebnis des aus langjähriger Erfahrung gewonnenen medizinischen Gefühls. Genau hier setzen die Arbeiten einer internationalen Forschergruppe mit Informatikern der FH Ravensburg-Weingarten und der TU München sowie einem Vergiftungsexperten von der Uni-Klinik in Grenoble an. Es wird ein Expertensystem gebaut, das an Hand der Symptome des Patienten dem Arzt sofort angibt, mit welcher Wahrscheinlichkeit der Patient welches Gift eingenommen hat. Hierbei wird ein ganz neues Verfahren eingesetzt, das aus einer Datenbank von ca. 500 bisher in Grenoble behandelten Patienten automatisch ein Programm generiert, welches das in den Daten vorhandene Wissen in der richtigen Weise generalisiert und mit dem Wissen des Arztes vereinigt. Wird dieses System dann auf neue Patienten angewendet, so trifft es die aufgrund des Wissens in der Datenbank bestmögliche Entscheidung. Das hier verwendete neue Berechnungsverfahren hat gegenüber anderen Verfahren den großen Vorteil, daß es auch mit unvollständigen Informationen arbeiten kann (was in der Medizin oft vorkommt). In diesem Fall werden dann die fehlenden Teilinformationen ergänzt, ohne ungerechtfertigte ad hoc Annahmen zu machen. Erste Ergebnisse des Projektes deuten darauf hin, daß das verwendete Verfahren in etwa 90 % aller Fälle eine korrekte Diagnose liefert und daher durchaus mit menschlichen Experten konkurrieren kann. Die oben erwähnte Kooperation mit der TU-München sowie der Uni-Klinik Grenoble ist Teil eines EU-Projektes mit dem Titel Modular Integration of Connectionist and Symbolic Processing in Knowledge-Based Systems (MIX, Nr. 9119) im Rahmen des ESPRIT Programms. Einen ersten Prototypen des Expertensystems DiMeTox kann man nun online unter http://wwwjessen.informatik.tu-muenchen.de/~schulz/MIX/dimetox_query.html testen. (http://ti-voyager.fbe.fh-weingarten.de/ertel/medappl.html)

Konstruktion

Bei der Konstruktion wird die Lösung aus kleinen Bausteinen zusammengesetzt. Es gibt jedoch zuviele mögliche Kombinationen, um aus der Menge aller vorgegebener Alternativen auszuwählen. So kann z.B. bei der automatisierten Programmierung nicht aus der Menge aller möglichen Programme ausgewählt werden. Stattdessen sind bestimmte Fakten im System Modulen zugeordnet, die entsprechend kombiniert werden. Das Expertensystem hat somit die Aufgabe gezielt nach Fakten der Aufgabenstellung zu fragen, um die notwendigen Module so zu kombinieren, daß die Aufgabenstellung erfüllt ist.

Simulation

Die Simulation unterscheidet sich von der Diagnose und der Konstruktion dadurch, daß kein vorgegebenes Ziel erreicht werden soll, sondern nur die Auswirkungen von Handlungen und Entscheidungen simuliert werden sollen. Es werden somit von einem Ausgangszustand die möglichen Folgezustände hergeleitet.

Praktische Anwendungen von Expertensystemen

Die Entwicklung von Expertensystemen begann im Jahre 1965. Nach über 10 Jahren der Forschung begannen Expertensysteme ab den 80er Jahren an wirtschaftlicher Bedeutung zu gewinnen. So sind auch folgende Zahlen zu verstehen: Laut Batelleinstitut gab es 1987 weltweit 2000 - 3000 Systeme davon 1000 im Systementwurf, 700 als Prototyp, 200 im Test und nur 100 in routinemäßiger Anwendung. Nach einer Untersuchug, die Mertens (Wirtschaftsinformatiker an der Universität Erlangen - Nürnberg) 1988 durchführte, gab es zu dieser Zeit 935 Systeme auf verschiedenen Realisierungsstufen, davon 445 in USA. 32 Systeme seien in der BRD im betrieblichen Einsatz. Nach einer DGB Studie von 1989 gab es in den USA 80 bis 120 betrieblich eingesetzte Systeme. Nach dem Japanischen Ministerium für Industrie und Handel MITI gab es in Japan 1987 60 Systeme. Bei strengen Maßstäben der Eingeschwungenheit sinkt die Zahl der wirklich im Einsatz befindlichen Systeme auf 5 Stück für die BRD im Jahre 1989. Als eingeschwungen wird ein System bezeichnet, wenn es folgende Bedingungen erfüllt: Es wird schon mehr als ein Jahr vor Ort betrieben , es stellt eine echte Anwendungsentwicklung dar, keine Spielzeug-, Demo-, Messe- oder Ausbildungsentwicklung und es keine größere Rekonfiguration des Systems über die üblichen Wartungsänderungen hinaus gibt. Die Anzahl eingeschwungener oder in der erprobungsphase befindlichen Expertensysteme hat sich heute natürlich deutlich erhöht, genaue Zahlen konnte ich über den gegenwärtigen Stand leider nicht erhalten, es ist aber ein klares Zeichen, dass ich bei meiner Internetrecherche auf zahllose Informatikhochschulseiten gestossen bin, die diesem Thema Grundsatzlehrveranstaltungen widmen. Desweiteren hat die sprunghafte Verbreitung des Internet dazu beigetragen, dass zunehmend mehr Geld für die Entwicklung von Expertensystemen ausgegeben wird. Heute sind viele Grundideen und Ansätze von Expertensystemen in Internetanwendungen implementiert worden, z. B. in der dynamischen Datenbankprogrammierung.

Folgend sind einige Meilensteine in der Geschichte von Expertensystemen angeführt:

DENTRAL wurde als eines der ersten Systeme an der Stanford University, Lindsay entwickelt und ist ein System zur Strukturanalyse organischer Substanzen. Die zu interpretierenden Daten werden aus dem Massenspektrogramm gewonnen. MYCIN wurde ebenfalls an der Stanford University entwickelt und ist ein System zur Diagnose und Therapie von bakteriellen Infektionskrankheiten des Blutes. In MYCIN ist das Wissen in über 450 Regeln gespeichert. MYCIN zeichnet sich zusätzlich durch seine klare Trennung zwischen Wissensrepräsentation und Inferenzmaschine aus. Die Entwicklung dieser Technik machte es möglich, daß in weiterer Folge das medizinische Wissen aus MYCIN entfernt wurde und die Inferenzmaschine unter dem Namen EMYCIN als Grundlage für andere Expertensysteme diente. EMYCIN war somit die erste Expertensystem-Shell. PROSPECTOR ist ein geologisches System zur Interpretation von Meßdaten aus Probebohrungen. Ziel ist es herauszufinden, ob ein bestimmtes Mineral in einer Region vorhanden ist oder nicht. XCON war bei Digital im Einsatz und diente zur Konfiguration von VAX Rechneranlagen. Ausgehend von der Bestellung einer Rechneranlage stellte XCON sicher, daß alle erforderlichen Komponenten vorhanden waren und sorgte für das korrekte Zusammenspiel der Komponenten inklusive der Verkabelung. XCON baute auf mehr als 2000 Regeln auf und war das erste erfolgreiche System dieser Größenordnung.

Entwicklungsstufen eines Expertensystems

Der Wissenserwerb umfaßt die Identifikation, Formalisierung und Wartung des Wissens, das ein Expertensystem benötigt, um Probleme lösen zu können und stellt zur Zeit den Flaschenhals bei der Entwicklung von Expertensystemen dar. Der Erfolg eines Expertensystem hängt entscheidend vom Umfang und der Qualität der Mitarbeit der beteiligten Experten ab, an die hohe Anforderungen gestellt werden. Aufbau und Wartung einer Wissensbasis erfordern, daß sowohl objektive Fakten aus Lehrbüchern als auch subjektives Expertenwissen eingebracht wird. Es sollen möglichst vielfältige Wissensquellen zur guten Abdeckung des Fachbereiches verwendet werden.

Beteiligte Personen am Wissenserwerb

Wie bereits oben erwähnt, sind ein oder mehrere Personen notwendig, um Wissen für den Aufbau eines Expertensystems zur Verfügung zu stellen. Dieses Wissen muß formalisiert und in maschinengerechter Form dargestellt werden. Da die meisten Fachexperten aber keine Informatiker sind, fällt diese Aufgabe dem sogenannten Knowledge Engineer zu. Der Knowledge Engineer stellt somit das Bindeglied zwischen den menschlichen Experten und dem Computer dar. Die Aufgabe des Knowledge Engineer ist es nun, dem Experten sein Wissen möglichst vollständig zu entlocken. Dieses Wissen muß danach strukturiert und formal dargestellt werden. Das Hauptproblem an dieser Vorgangsweise ist es, möglichst viel Wissen zu extrahieren. Für die Befragung der Experten durch den Knowledge Engineer haben sich bestimmte Interviewtechniken herausentwickelt.

Interviewtechniken dienen dem Wissenstransfer vom Experten zum Knowledge Engineer. Das Ergebnis des Interviews sind immer verbale Aufzeichnungen, die anschließend vom Knowledge Engineer interpretiert werden müssen. In weiterer Folge formalisiert der Knowledge Engineer das Wissen und stellt es in maschinengerechter Form dar. Interviewtechniken können nach zwei Kriterien aufgeteilt werden: Nach der Art des Interviews und nach der Art der Testfälle, deren Lösung während des Interviews beobachtet und kommentiert wird. Die wichtigsten Interviewtypen sind:

Unstrukturiertes (traditionelles) Interview

Während der Experte über das Wissen spricht oder Testfälle löst, stellt der Wissensingenieur mehr oder weniger spontane Fragen.

Laut Denken Modell

Der Experte denkt laut, während er ein Problem löst und erläutert die einzelnen Schritte.

Introspektion

Der Experte beschreibt von sich aus wie er einen Fall löst oder welche Problemlösungsstrategie er benutzt. Im Gegensatz zum Laut Denken Modell beschreibt er bei der Introspektion eine Zusammenfassung seines Problemlösungsverhalten, nachdem er einen Fall gelöst hat.

Strukturiertes Interview

Protokolle, die mit einer der anderen Interviewmethoden bereits erstellt wurden, werden von demselben oder von einem anderen Experten kommentiert und eingeschätzt.

Während das unstrukturierte Interview und die Introspektion dem Wissensingenieur helfen, mit dem Problembereich vertraut zu werden, bekommt man mit dem Laut-Denken-Protokoll die zuverlässigsten Aussagen über die Problemlösungsstrategien, die der Experte tatsächlich benutzt. Ein strukturiertes Interview ist zur Validierung gewonnener Daten und zum Auffüllen von Lücken sinnvoll. Ein wichtiges Kriterium von Testfällen, vor allem für Laut-Denken-Protokolle, ist die Ähnlichkeit des Falles mit der realen Problemsituation des Experten. Ein anderes Kriterium ist der Schwierigkeitsgrad des Falles. Daraus ergeben sich folgende Arten von Testfällen:

+ Typische Fälle, die der Experte routinemäßig löst.

+ Fälle mit begrenzter Informationsangabe: Dabei werden dem Experten bestimmte, normalerweise vorhandene Informationen vorenthalten, um die Bedeutung von Einzelinformationen herauszufinden.

+ Fälle mit Beschränkung der Verarbeitungskapazität: Mögliche Beschränkungen sind die Zeit, die dem Experten zur Verfügung gestellt wird, oder bestimmte Fragestellungen, auf die sich der Experte konzentrieren soll.

+ Schwierige Fälle, die der Experte nicht routinemäßig lösen kann: Zu schwierigen Fällen wird man übergehen, wenn die Basisproblemlösungsstrategien bereits identifiziert sind.

Schwierigkeiten beim Wissenserwerb

Obwohl der Begriff Knowledge Engineer, auch Wissensingenieur, nahelegt, daß die Extraktion des Wissens von Experten eine im Prinzip gut verstandene Tätigkeit sei, trifft eher das Gegenteil zu, sodaß man eher von "Wissenskünstlern" sprechen sollte.

Eine der Hauptursachen ist die unvermeidliche Unvollständigkeit der verbalen Daten von Experten sind:

+ Experten vergessen meist viele wichtige Faktoren zu nennen, da sie diese für selbstverständlich halten oder das Wissen nicht durch entsprechende Reize aktiviert wird.

+ Komplexere Wissensbereiche, vor allem bildhaftes Wissen, können verbal kaum adäquat beschrieben werden.

+ Teile des Wissens können unbewußt sein.

+ In der Sprache wird viel Wissen durch Referenz auf als bekannt vorausgesetztes Wissen kommuniziert. Dieses Wissen muß der Knowledge Engineer auf Grund seines Verständnisses des Problembereiches ergänzen. Dieser Vorgang ist sehr problematisch.

+ Experten können aus vielen Gründen nicht dazu bereit sein, ihr Wissen preiszugeben.

+ Viele Experten haben Schwierigkeiten, ihre Vorgehensweise zu erklären. Das ist auch für Laut-Denken-Protokolle kritisch, die nur dann einen Wert haben, wenn durch das laute Denken das Problemlösungsverhalten des Experten nicht wesentlich beeinflußt wird.

Entwicklungsphasen eines Expertensystems

Als beste Vorgangsweise zur Erstellung eines Expertensystems erweist sich eine evolutorische, inkrementelle Entwicklungsstrategie, die von einfachen zu komplexen Problemstellungen führt, wobei die Organisation und Repräsentation des Systems ständig verbessert und erweitert werden. Es wird möglichst rasch ein einfaches, lauffähiges System hergestellt, um durch Experten-Feedback den weiteren Entwicklungsfortgang in geeignete Bahnen zu lenken. Der Entwicklungskreislauf eines Expertensystems ist in Abb. 03 dargestellt. Diese Vorgehensweise nennt man Rapid Prototyping oder Incremental Development.

Abb. 03: Der Entwicklungskreislauf eines Expertensystems. Es wird möglichst schnell ein Prototyp erstellt, der anschließend immer weiter verfeinert und erweitert wird.

Beim Rapid Prototyping ist darauf zu achten, daß am Ende jedes Schritts der Prototyp mit den in der Planung festgelegten Vorgaben übereinstimmt. Falls dies nicht der Fall ist, muß der vorhergegangene Schritt wiederholt werden. Entfällt diese Kontrolle oder wird sie nur ungenügend genau durchgeführt, pflanzen sich Fehler aus vorhergegangenen Schritten eventuell bis hin zum fertigen System fort und es muß eine entsprechend große Anzahl von Schritten im Entwicklungskreislauf zurückgegangen werden. Eine genaue Kontrolle des in Entwicklung befindlichen Systems mit den Vorgaben aus der Planung läßt die Zyklen im Entwicklungskreislauf klein bleiben und hilf somit, die Entwicklung effizient zu halten.

In der nachfolgenden Auflistung werden die Entwicklungsphasen bei der Erstellung eines Expertensystems detailierter betrachtet:

Erstes Design der Wissensbasis

+ Problemidentifikation: Definition von Zielen, Einschränkungen, Ressourcen, der teilnehmenden Personen und ihrer Rollen.

+ Konzeption: Detailierte Beschreibung der Problemstellung und wie sie in Unterprobleme zerlegt werden kann. Beschreibung der Elemente zur Problemlösung in Form von Hypothesen, Fakten und Lösungsstrategien.

+ Formalisierung: Wahl einer Wissensrepräsentation im Computer für die in der Konzeption identifizierten Elemente. Hier kommen zum ersten Mal Implementierungsüberlegungen zum Tragen.

+ Implementation und Test eines Prototyps

Ist einmal eine geeignete Wissensrepräsentation gewählt, kann mit der Implementierung eines Prototyps begonnen werden, der einen Teilbereich des endgültigen Systems umfaßt. Die richtige Auswahl des Bereiches ist von großer Bedeutung. Dieser muß Repräsentativ für das Gesamtsystem, aber einfach zu testen sein. Sobald der Prototyp akzeptable Ergebnisse produziert, kann er auf detailliertere Varianten des Zentralproblems erweitert und mit komplexen Fällen getestet werden.

Verfeinerung und Generalisierung der Wissensbasis

Diese Phase kann sehr viel Zeit beanspruchen, bis das gewünschte Expertenniveau erreicht ist. Die Grundstrukturen liegen hier bereits fest, es wird eigentlich ,,nur'' mehr das System mit detailliertem, verfeinertem Wissen erweitert.

Implementierung der Mensch-Maschine Schnittstelle

In dieser Phase wird eine dem Problem entsprechende komfortable Benutzerschnittstelle entwickelt. Die bisher verwendete Benutzerschnittstelle diente dem Knowledge Engineer zu Testzwecken und ist deshalb in viele Fällen nur sehr sporadisch ausgeführt. Weiters erfolgt in dieser Phase, die Erstellung der Dokumentation, der Wartungs- und Schulungsunterlagen.

Einführung des Systems in das Unternehmen

Das Expertensystem wird in dieser Phase in die vorhandene Informations-Technologie (IT) des Unternehmen eingebunden. Dazu zählt nicht nur die Installation auf den Arbeitsplatzrechnern, sondern auch die Schulung der zukünftigen Benutzer. Erfahrungen und Hinweise der Benutzer sollen aufgezeichnet werden und bei der laufenden Verbesserung und Verfeinerung des Expertensystems berücksichtigt werden.

Wie generell bei der Einführung von neuer Informations Technologie in einem Unternehmen muß auch bei der Einführung eines Expertensystems der zukünftige Benutzer frühzeitig in den Entwicklungsprozeß miteingebunden werden. Dies gilt speziell für die Einführung eines Expertensystems, da viele der zukünftigen Benutzer keine Vorstellung von dem Begriff "Expertensystem" haben und somit eine große Hemmschwelle vor dem System besitzen, mit dem sie in Zukunft arbeiten sollen. Eine frühe Integration des Anwenders in den Entwicklungsprozeß hilft dabei diese Hemmschwellen abzubauen. Zudem kann der Knowledge Engineer dadurch wertvolle Hinweise über die Problemsichtweise des Anwenders gewinnen.

Wissensverarbeitung in Expertensystemen

Hier soll erklärt werden, in welcher Form Wissen in Expertensystemen gespeichert wird und wie das gespeicherte Wissen verknüpft wird, um auf neues Wissen zu schließen. Anhand von Beispielen werden dabei zwei grundlegende Methoden der Wissensverarbeitung in Expertensystemen, die Vorwärtsverkettung und die Rückwärtsverkettung, vorgestellt.

Wissensspeicherung

Da Experten Wissen oft in Form von Regeln formulieren, wird in Expertensystemen meist eine logische Wissensrepräsentation durch Fakten und Regeln verwendet. Regeln bestehen aus einer Vorbedingung und einer Aktion. Vorbedingungen bestehen wiederum aus der Verknüpfung von ein oder mehreren Fakten. Nachfolgend sind zwei Beispiele für Regeln angegeben:

Regel 1

Wenn Nackensteife und hohes Fieber und Bewußtseinstrübung zutreffen Dann besteht der Verdacht auf Meningitis

Regel 2

Wenn Verdacht aud Meningitis besteht Dann Nimm sofort Antibiotika

In Regel 1 sind "Nackensteife", "hohes Fieber" und "Bewußtseinstrübung" die verknüpften Fakten und "besteht der Verdacht auf Meningitis" die Aktion.

Wenn man die Aktionen der beiden Beispielregeln betrachtet, stellt man fest, daß es sich dabei um zwei unterschiedliche Arten von Aktionen handelt. Bei "besteht der Verdacht auf Meningitis" handelt es sich um eine Hypothese, die dann wahr ist, wenn alle Fakten zutreffen. Man spricht von Implikation oder Deduktion.In Regel 2 entspricht die Aktion "Nimm sofort Antibiotika" einer Handlung.

Zusammenfassend kann man sagen, die Regeln eines Expertensystems bestehen aus: Vorbedingungen (engl. antecedents), die aus der Verknüpfung ein oder mehrerer Fakten zusammengesetzt sind, und aus ein oder mehreren Aktionen (engl. conclusions). Bei den Aktionen unterscheidet man zwei Arten: Implikationen oder Deduktionen, mit denen der Wahrheitsgehalt einer Hypothese hergeleitet wird; z.B. Regel 1. Expertensysteme deren Aktionen Implikationen oder Deduktionen sind, nennt man Deduction Systems. Handlungen, mit denen ein Zustand verändert wird; z.B. Regel 2. Expertensysteme deren Aktionen Handlungen sind, nennt man Reaction Systems.

Die Aufteilung des Wissens in möglichst kleine "Wissensstücke", den Regeln, macht eine Wissensbasis modular und damit relativ einfach veränderbar. Es ist auch relativ leicht möglich, diesen Grundaufbau der Regeln für anwendungsspezifische Notwendigkeiten zu erweitern. So ist es z.B. möglich, Regeln zur Darstellung von unsicherem oder unvollständigem Wissen um Unsicherheitsangaben oder Ausnahmen zu erweitern. Um die Strukturierung und die Überschaubarkeit der Wissensbasis zu erhöhen, ist es zumeist möglich zusammengehörende Regeln, das sind Regeln, die einen bestimmten Teil des Problems behandeln, zu sogenannten Wissensinseln zusammenzufassen, das heißt, ein Teilproblem wird von einer Wissensinsel gelöst und kann unter Umständen andere Wissensinseln dabei aktivieren oder von anderen Wissensinseln aus aktiviert werden. Oft ist es auch möglich, die Wissensinseln in eigene Teil-Wissensbasen zu legen, die nur dann in den Computer geladen werden, wenn das zugehörige Teilproblem gerade behandelt wird. Diese Strukturierung reduziert die im Computer aktuell zu untersuchenden Regeln und steigert so die Performance eines Expertensystems.

Nach der Betrachtung der Wissensspeicherung soll nun betrachtet werden, wie diese Regeln intern abgearbeitet werden, um mit den vorhandenen Fakten zu neuen Schlußfolgerungen zu kommen. Es gibt zwei prinzipielle Arten der Regelverarbeitung: Die Vorwärtsverkettung und die Rückwärtsverkettung.

Wissensverarbeitung

Vorwärtsverkettung

Bei der Vorwärtsverkettung (forward chaining) leitet der Regelinterpreter alle Schlußfolgerungen her, die aus den, dem Expertensystem bekannten Fakten, herleitbar sind, das heißt, das System prüft alle Regeln, deren Vorbedingungen erfüllt sind und arbeitet diese Regeln ab. Zu einer Regel die abgearbeitet wird und deren Vorbedingung erfüllt ist, sagt man auch die Regel "feuert". Danach prüft das System wieder, welche Regeln abgearbeitet werden können. Dies soll anhand eines Beispiels, das in Abb. 04 (Abb. eines Regelsystems) dargestellt ist, veranschaulicht werden (s. folgende Seite).

In Abb. 04 ist ein Regelbaum dargestellt, der aus fünf Regeln besteht. Mittels der gegebenen Fakten L und M wird nun im Forward Chaining Verfahren versucht, etwas zu beweisen. Das System hat kein vorgegebenes Ziel, sondern sieht sich alle Regeln durch und schaut nach, welche abgearbeitet werden können. In dem Beispiel kann nur eine einzige Regel feuern, nämlich, wenn L und M erfüllt sind, dann schließe Q. Das heißt, Q wird als neues Faktum erschlossen und zu den gegebenen Fakten L und M hinzugefügt. Danach kann keine weitere Regel ausgeführt werden, was dazu führt, daß die Vorwärtsverkettung aufhört zu arbeiten.

 

Rückwärtsverkettung

Während man mit der Vorwärtsverkettung nur Schlußfolgerungen aus einer vorgegebenen Faktenmenge beziehen kann, eignet sich ein rückwärtsverkettender Regelinterpreter (Backward Chaining) auch zum gezielten Erfragen noch unbekannter Fakten. Ein Backward Chaining Regelinterpreter startet mit einem vorgegebenen Ziel. Wenn das Ziel nicht in der Menge der bekannten Fakten vorkommt, entscheidet der Regelinterpreter zunächst, ob es abgeleitet werden kann oder ob es erfragt werden muß. Ein Faktum kann dann abgeleitet werden, wenn zumindest eine Regel existiert, in der das Faktum auf der rechten Seite, der Seite der Aktion, vorkommt. Existiert keine solche Regel, bleibt dem System nur die Möglichkeit, dieses Faktum vom Anwender zu erfragen. Im Falle der Ableitung werden alle Regeln abgearbeitet, in deren Aktionsteil das Ziel enthalten ist. Wenn bei der Überprüfung der Vorbedingungen einer Regel ein Parameter unbekannt ist, wird ein Unterziel zur Bestimmung dieses Parameters generiert und der Backward Chaining Mechanismus zur Bestimmung dieses Unterziels rekursiv herangezogen. Das Endergebnis ist die Bestimmung eines Wertes für das vorgegebene Ziel und für alle Unterziele, die Evaluierung der relevanten Regeln und das Stellen der notwendigen Fragen. Die Rückwärtsverkettung enthält implizit eine Dialogsteuerung, wobei die Reihenfolge der gestellten Fragen von der Reigenfolge der Regeln zur Herleitung eines Parameters und von der Reihenfolge der Aussagen in der Vorbedingung einer Regel abhängt. Je präziser das Ziel, desto kleiner der Suchbaum von zu überprüfenden Regeln und zu stellenden Fragen. Als Beispiel für die Veranschaulichung dient wieder das Regelsystem aus Abb. 04.

Beim Backward Chaining wird ein vorgegebenes Ziel aktiv bewiesen. In unserem Fall soll es das Faktum X sein. Es existieren zwei Wege zum Beweisen von X. Der eine führt von X über R nach S, T und U. Der zweite führt von X nach P und Q und dann nach K bzw. L und M. Nehmen wir an, daß der Regelinterpreter zuerst den ersten Weg zum Beweisen von X durchsucht. Es gibt eine Regel, die X beweisen kann, nämlich "Wenn R dann X". R ist nicht in der Menge der bekannten Fakten, deshalb wird als neues Ziel R etabliert und der Backward Chaining Mechanismus auf R angewendet. Auch für R existiert eine Regel, nämlich "Wenn S und T und U, dann R". Weder S, T noch U sind in der Menge der bekannten Fakten, deshalb muß der Regelinterpreter S,T und U ermitteln. Da aber für diese Fakten keine Regeln zu deren Ermittlung zur Verfügung stehen, muß der Regelinterpreter diese Fakten vom Benutzer erfragen. Werden alle Fakten S ,T und U vom Benutzer als gegeben eingegeben, so wird R zu wahr und in letzter Konsequenz auch X zu wahr. Damit ist X bewiesen und der Regelinterpreter kann aufhören zu arbeiten, da er das vorgegebene Ziel beweisen konnte. Wird nun eine der Fakten S, T oder U vom Benutzter als nicht bekannt eingegeben, kann R nicht bewiesen werden und aus dem ersten Suchweg auch X nicht als wahr bewiesen. Somit muß der Regelinterpreter auch noch den zweiten Weg über P, Q und K, L und M zum Beweisen des Faktums X durchlaufen. Dies geschieht in derselben Weise wie dies beim ersten Weg gezeigt wurde. Das heißt, zum Beweisen von X müssen P und Q bekannt sein. Q kann aus den gegebenen Fakten L und M (sind schon in der Menge der gegebenen Fakten) zu wahr ermittelt werden. P wird durch Erfragen des Faktums K vom Benutzer ermittelt. Wird das Faktum K als gegebenes Faktum vom Benutzer angegeben, so wird P zu wahr. Aus den Fakten P und Q kann somit X zu wahr bewiesen und in die Menge der bewiesenen Fakten aufgenommen werden.

Vorwärtsverkettung versus Rückwärtsverkettung

Während in Reaction Systems immer die Vorwärtsverkettung verwendet wird, kann ein Deduction System entweder mit Vorwärtsverkettung oder Rückwärtsverkettung arbeiten. Welche Art der Verkettung nun tatsächlich verwendet wird, hängt von der Art der Anwendung ab. Für die Vorwärtsverkettung wird man sich entscheiden, wenn viele Fakten sehr wenigen Regeln gegenüber stehen, oder alle möglichen Fakten vorgegeben sind und man alle daraus ableitbaren Schlußfolgerungen wissen möchte.

Wenn die gegebenen oder eruierbaren Fakten zu einer großen Anzahl von Schlüssen führen, aber die Anzahl der Wege zum gewünschten Ziel klein ist, sollte man auf Rückwärtsverkettung zurückgreifen. Würde man Vorwärtsverkettung anwenden, würden viele Regeln abgearbeitet, deren Ergebnis schlußendlich nicht weiter benötigt wird. Ein Anwendungsfall für Rückwärtsverkettung ist, wenn keine oder wenige Fakten bekannt sind und man ein oder mehrere Hypothesen beweisen möchte.

In den meisten Texten, die ich zu diesem Thema gefunden habe, werden die Ausführungen ab dieser Thementiefe zu mathematisch und theoretisch und sind für eine grundsätzliche Einführung weniger relevant. Deshalb möchte ich an dieser Stelle aufhören. Soweit also zu meinem Referatsthema. Ich hoffe, es war nicht allzu langweilig und trocken, einen schönen Tag wünsche ich. Helge Barske, 2001

Quellen:

+ www.google.de

+ www.clickfish.de

+ http://ti-voyager.fbe.fh-weingarten.de/ertel/medappl.html

+ diverse Hochschulseiten

+ Puppe, Frank: Einführung in Expertensysteme, 2. Aufl., Springer: Heidelberg 1991

+ Coy und Bonsiepen. Erfahrung und Berechnung - Kritik der Expertensystemtechnik, Band 229 von Informatik - Fachberichte. Springer, 1989

+ Horn, Knowledge Engineering. In: Expertensysteme. Hg. Gottlob, Frühwirth, Springer: Heidelberg 1990