|
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
|