Künstliche Intelligenz ist kein "Reich der Mystik":

Kl-Systeme sind wirtschaftlich einsetzbar

15.09.1989

Schlagworte verunsichern die Anwender: Künstliche Intelligenz, Expertensysteme, Wissensbasen oder Problemlösungsverfahren werden ebenso oft gepriesen, wie kritisiert. Günther Thoma* versucht, das Begriffschaos zu ordnen und zeigt, daß die Kopplung bestehender Anwendungen mit wissensbasierten Systemen keine Zukunftsmusik mehr sein muß.

Schlagworte wie künstliche Intelligenz (KI), Expertensysteme sowie wissensbasierte Systeme werden in der Presse ausführlichst diskutiert und strapaziert. Diverse Fachzeitschriften sind voll von Projektberichten, Produktbeschreibungen und Beratungsangeboten. Es stellt sich die Frage, ob diese Flut an Information überhaupt aufgenommen werden kann; vom Großteil der Entwickler, Anwender und Manager der kommerziellen DV sicher nicht.

Meine Erfahrungen zeigen, daß die Möglichkeiten dieser neuen Technologie nicht immer klar dargestellt werden. Eine Beurteilung, welche Chancen sich dem Unternehmen bieten, ist dann nicht möglich. Darüber hinaus bestehen oft gänzlich falsche, fast mystische Vorstellungen über das Gebiet der KI, was zwangsläufig zu Enttäuschungen führen muß.

Tatsache ist, daß der Umsatz mit KI-basierten Produkten gewaltig wächst und noch schneller wachsen könnte, wenn nur genügend qualifizierte Fachleute vorhanden wären. Im Zuge dieser neuen Technologie werden Methoden und Werkzeuge angeboten, die auch in der kommerziellen DV sehr vorteilhaft einsetzbar sind (vergleiche Abbildung).

Für ein Verständnis der wissensbasierten Systeme sollen zunächst die prinzipiellen Unterschiede zwischen den herkömmlichen Programmiersprachen (prozeduralen Sprachen) und den nichtprozeduralen Sprachen diskutiert werden. Dies erscheint mir als eine grundlegende Voraussetzung für das Verständnis der wissensbasierten Systeme.

Als prozedurale Sprachen gelten unter anderem Fortran, Cobol, Pascal, C, während Prolog und Lisp als nichtprozedural bezeichnet werden. Diese Sprachen werden meist als Implementierungssprachen für KI-Anwendungen (Werkzeuge für Expertensysteme, natürlichsprachliche Systeme, Bilderkennung) verwendet. Sie bieten wesentlich bessere Möglichkeiten, die Struktur und Arbeitsweise eines Computers zu abstrahieren. Dadurch ist es möglich, mehr Konzentration auf das reale Problem mit seinen Objekten und Beziehungen zu richten.

Bei der Problemlösung mit prozeduralen Sprachen muß dem Computer explizit mitgeteilt werden, wie und in welchen sequentiellen Einzelschritten ein Problem zu lösen ist. Dabei entfernt sich der Programmierer oft erheblich von einer der realen Welt naheliegenden Struktur. Er muß sich der Arbeitsweise des noch immer gängigen "von Neumann"- Rechnermodells anpassen. Mit nichtprozeduralen Sprachen sind die Anweisungen nicht ablauforientiert. Sie gestatten viel eher eine Beschreibung des Was und überlassen das Wie dem Computer.

Bei den nichtprozeduralen Sprachen gibt es im wesentlichen drei Klassen: Die funktionalen Sprachen (Programmieren mit Funktionen, zum Beispiel Lisp, ML oder Miranda), die objektorientierten Sprachen (reale Welt wird durch Objekte, die mit Nachrichten kommunizieren, simuliert, zum Beispiel Smalltalk) und die logikorientierten Sprachen (logische Beschreibung des Problems, zum Beispiel Prolog).

Prolog gehört zu den wichtigsten Ki-Sprachen

Prolog, einer der wichtigsten Vertreter der "KI-Sprachen", soll hier kurz vorgestellt werden. Mit Prolog können Anwendungen implementiert werden, indem das gesamte Wissen des Problembereichs in Form von Fakten und Regeln beschrieben wird. Dabei sind Fakten als Relationen dargestellt, die Beziehungen zwischen Objekten ausdrucken. Mit Regeln können aus Fakten neue Fakten hergeleitet werden.

Ein Prolog-Programm wird durch Fragen an das gespeicherte Wissen in Gang gesetzt. Die Aussage "Adam liebt Eva" kann formal als Prolog-Faktum mit "liebt (adam, eva)" dargestellt werden. Allgemein läßt sich sagen, daß durch das Prädikat (Name vor der Klammer) eine Beziehung und durch die Argumente (Namen innerhalb der Klammer) Objekte angegeben werden.

Wie bereits erwähnt, können durch die abstrakte Darstellung des Wissens mit Hilfe nichtprozeduraler Programmiersprachen beachtliche Produktivitätssteigerungen erlangt werden. Durch die Einführung einer weiteren Abstraktionsebene, der wissensbasierten Systeme oder Expertensysteme, kann dies sogar noch einmal gesteigert werden.

Für verschiedene typische Anwendungen, wie Diagnose, Planung, Beratung, Lehr- und Lernsysteme, lassen sich bestimmte Problemlösungsmechanismen herausarbeiten. Dadurch wird eine Trennung des Problemlösungsalgorithmus vom reinen Anwendungswissen möglich. Aus dieser Zweiteilung ist auch der Begriff "wissensbasiertes System" hervorgegangen.

Je höher die Abstraktion zugunsten einer natürlichen Wissensdarstellung realisiert ist, desto spezialisierter und eingeschränkter läßt sich das System einsetzen. In der Praxis bedeutet dies, daß ein Kompromiß zwischen maximaler Produktivität und maximaler Flexibilität gefunden werden muß.

Wissensbasierte Methoden haben vor allem bei den sogenannten Expertensystemen fruchtbaren Boden gefunden. Sie kommen dem Experten oder Wissensingenieur bei der Erfassung des Expertenwissens entgegen, erlauben die Handhabung von Systemen, die, um Größenordnungen komplexen als herkömmliche Systeme sind, und verhalten sich bei Änderungen und Anpassungen des Wissensbereichs relativ unkompliziert.

Wissensbasierte Systeme gewinnen an Akzeptanz

Wissensbasierte Systeme haben sich in den vergangenen Jahren nur schleppend in der Industrie durchgesetzt. Dies lag im wesentlichen daran, daß diese Systeme oft nur auf spezieller Hardware ablauffähig waren. Wenn sie auf herkömmlichen Rechnern zur Verfügung standen, gab es kaum Schnittstellen zu anderen Programmiersprachen und Datenbanken.

Die Hersteller haben dies erkannt und ihre Entwicklungskapazitäten auf die Erstellung von integrierten Lösungen verlagert. Für die meisten Anwender dürfte deshalb erst jetzt der Einsatz von KI-Werkzeugen interessant geworden sein, da nun die Möglichkeit zur Kopplung bestehender konventioneller Anwendungen mit wissensbasierten Systemen besteht.

Durch den Einsatz mächtiger nichtprozeduraler Sprachen werden neue Formen für den Softwareentwicklungs-Zyklus möglich. Die Phaseneinteilung Entwurf, Implementierung und Test kann zugunsten einer mehr evolutionären Etappeneinteilung, die an Entwicklungs- und Aufbaustufen orientiert ist, zurücktreten.

Entwickler und Anwender kamen bisher nur in der Spezifikationsphase und der Fertigstellung zusammen. Nicht selten sind die Vorstellungen über das Projekt im Laufe der Entwicklung auseinander gelaufen. Durch Prototyping hatten beide Seiten einen frühen Einblick in die Gestalt des Zielsystems. Bei der Entwicklung eines Expertensystems ist eine frühe Rückmeldung durch einen Prototypen besonders wichtig. Nur so läßt sich feststellen, ob die gewählte Form der Wissensdarstellung geeignet ist, und ob der Experte sein Wissen in diese Form umsetzen kann.

Nicht selten waren Expertensystemprojekte zum Scheitern verurteilt, weil die gewählte Form der Wissensrepräsentation (zum Beispiel Regeln) auf die Problemlösungsmethoden des Experten nicht gepaßt haben. Ein menschlicher Experte weiß leider nicht immer, wie er ein Problem löst. Es fällt ihm schwer, seine intuitiven Entscheidungen als sogenannte "Daumenregeln" zu formalisieren.

Methoden aus dem Bereich der wissensbasierten Systeme können auch als eine Erweiterung der Software-Engineering-Methoden betrachtet werden. Es lassen sich durch diese Werkzeuge komplexere Systeme implementieren, da Details des Wie außer acht gelassen werden können (Abstraktion). Die Produktivität wird enorm gesteigert.

Natürlich muß dies in vielen Fällen mit einer nachteiligen Laufzeiteffizienz erkauft werden, aber kritische Teile können später reimplementiert werden (Rapid prototyping). Für Anwendungen mit einem nicht algorithmisierbaren Anteil an Problemlösungswissen (unsicheres Wissen; Größen wie: vielleicht, wahrscheinlich, zu 80 Prozent; fallorientiertes Problemlösen) empfiehlt es sich besonders, eine Architektur wie bei wissensbasierten Systemen zu wählen.

Systemfunktionen, wie "Erklärung der Problemlösung" für den Benutzer, sind bei komplexen Systemen unumgängliche Voraussetzung für einen zuverlässigen Einsatz des Systems. Die Korrektheit solcher Systeme, noch dazu, wenn mit unsicherem Wissen gehandhabt wird, läßt sich niemals sicherstellen, und es muß deshalb jede Entscheidung und jedes Ergebnis des Systems klar nachvollziehbar sein. Große Vorteile bieten wissensbasierte Systeme auch bei Anwendungen, wo sich die Wissensdomäne schnell ändert (zum Beispiel Steuerberatung durch neue Gesetze).

Bei all den Vorteilen muß auch berücksichtigt werden, daß sich bei der Einführung neuer Technologien auch Infrastrukturen eines Projektes ändern. Mitarbeiter müssen geschult werden, Projektvorgehensmodelle müssen angepaßt werden, die Integration in die vorhandene DV-Landschaft muß analysiert werden. Schließlich muß dem Management dieser Schritt als strategischer Schritt in die Zukunft klar werden.

*Der Informatiker Günther Thoma ist bei der Pass-EDV-Beratung in Aschaffenburg als Berater tätig.

Zentrale Begriffe aus dem KI-Lexikon

KI:

Da sich der Begriff Intelligenz nicht definieren läßt, ist auch eine Definition des Begriffs "Künstliche Intelligenz" umstritten. Im allgemeinen werden Systeme als KI-Systeme bezeichnet, wenn sie Fähigkeiten besitzen, die auch vom Menschen nur mit sogenannter Intelligenz verrichtet werden können, etwa die Gestaltwahrnehmung.

Expertensystem:

Ein Expertensystem ist ein System, welches das Wissen eines Experten modelliert und benutzt, um komplexe Probleme eines bestimmten Gebietes zu lösen. Es dient dazu, hochspezialisiertes Fachwissen zu verteilen und verfügbar zu machen.

Wissensbasiertes System:

Wissensbasierte Systeme verfügen über eine Wissensbasis und eine Problemlösungskomponente. Die Wissensbasis ist eine explizite, deskriptive (nichtprozedurale) Repräsentation des Wissens, das zur Bewältigung von Problemen eines bestimmten Gebietes benötigt wird. Die Problemlösungskomponente stellt die Mechanismen zur Anwendung des Wissens bereit.

Knowledge Engineering:

Unter Knowledge Engineering wird das Modellieren des Expertenwissens verstanden, so daß es in einer für das Expertensystem verständlichen Repräsentationsform vorliegt.