Seminararbeit: Programmierung von Expertensystemen am Beispiel

Werbung
Seminararbeit:
Programmierung von Expertensystemen am
Beispiel von CLIPS
Arbeitsgruppe 4
Lösung von Allokationsproblemen mit wissensbasierten
Verfahren
betreut durch Dipl. Kfm. Tim Stockheim
Dirk Weil
Seminar: Automatisierte Ressourcenallokation
unter der Leitung von Prof. Dr. König
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Programmierung von Expertensystemen am Beispiel von CLIPS
Inhaltsverzeichnis
1
2
3
4
5
6
Einführung ................................................................................................................................... 3
Kurzvorstellung Expertensystem................................................................................................. 4
2.1
Einführung Knowledge Source ............................................................................................ 4
Tools zur Erstellung eines Expertensystems .............................................................................. 6
3.1
CLIPS................................................................................................................................... 6
3.2
JAVA Expert System Shell (JESS) ...................................................................................... 8
3.3
JessTab................................................................................................................................ 9
Programmbeispiel: Produktionsplanungssystem...................................................................... 10
Fazit........................................................................................................................................... 14
Literaturliste............................................................................................................................... 15
2
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
1 Einführung
Expertensysteme galten bis ca. Mitte der 90er Jahre als erfolgversprechender Ansatz der
künstlichen Intelligenz um Probleme zu lösen, bei denen Informationen nur unvollständig
bzw. unsortiert vorlagen. Einen Spezialfall dieser Expertensysteme stellt das im
Folgenden behandelte „hierarchische Blackboard System“ dar. Dieses stellt eine der
Vorstufen zu den heutigen Agentensystemen dar, da bereits diese Blackboardsysteme mit
Einheiten arbeiteten, die heutigen Agenten sehr ähneln, den sogenannten „Knowledge
Sources“.
In der vorliegenden Arbeit soll darauf eingegangen werden, welche Eigenschaften
Knowledge Sources haben sollen, wie die Entscheidungsfindung und –begründung (das
sogenannte „Reasoning“) funktioniert, und wie diese erstellt werden können.
Nach einer Erläuterung der allgemeinen Eigenschaften der Knowledge Sources werden
zwei Tools zur Erstellung von Expertensystemen vorgestellt, zum einen CLIPS und zum
anderen JESS (Java Expert System Shell), eine Programmierumgebung, die mit den
gleichen Befehlen und ebenso mit der Syntax von CLIPS arbeitet, aber dank der
Umsetzung in Java nahezu plattformunabhängig eingesetzt werden kann.
Dies erlaubt es, JESS mit anderen JAVA – basierten Tools zu ergänzen, bzw. mittels
JAVA Schnittstellen zu anderen Tools zu schaffen.
Im Anschluss daran wird noch ein Tool zur Ergänzung von JESS vorgestellt, das genau
diese Erweiterungsfähigkeit des JESS – Systems ausnutzt.
Zum Abschluss dieser Arbeit folgt dann ein Programmbeispiel für ein kleines
Expertensystem zur Produktionsplanung.
3
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
2 Kurzvorstellung Expertensystem
Expertensysteme
dienen
als
Entscheidungsbasis
für
komplexe
Probleme,
die
vielschichtige Strukturen haben und häufig von menschlichen, hochspezialisierten
Experten gelöst werden. Die Beispiele für ihre konkrete Anwendung sind äußerst
vielseitig, die Spannbreite reicht hier von Spracherkennungssystemen über medizinische
Anwendungen bis hin zu Prozesssteuerung und Produktionsplanungssystemen bei denen
es auf eine optimierte Ressourcenallokation ankommt.
Bei den hier betrachteten Blackboardsystemen handelt es sich um einen Spezialfall eines
Expertensystems. Kennzeichnend ist hier, dass versucht wurde, eine menschliche
Expertenrunde
abzubilden,
die
ihre
jeweiligen
Kenntnisse
auf
einer
Tafel
zusammenbringt, diese in Zwischenschritten zu Arbeitsergebnissen formt und zur
weiteren Verwendung durch andere Experten wieder an der Tafel anschreibt, bis ein
gemeinsames Ergebnis gefunden wurde.
Ein Blackboardsystem besteht im wesentlichen aus 3 Elementen: Dem eigentlichen
Blackboard, welches in der Regel aus einer Datenbank besteht, den „Experten“, die hier
als Knowledge Sources bezeichnet werden, sowie einer Verwaltungsinstanz, die
bestimmt, wer wann auf das Blackboard zugreifen darf, so dass Zugriffskonflikte
vermieden werden.
Es findet also eine Modularisierung von Expertise statt, die um beliebige weitere Module
(analog weiterer Experten) ergänzt werden kann. Dies verleiht den Expertensystemen
eine hohe Flexibilität, die zumindest theoretisch eine einfach zu realisierende Optimierung
des Systems erlaubt.
2.1 Einführung Knowledge Source
Kennzeichnend für die Struktur von Blackboardsystemen ist die Entscheidungsfindung
über sogenannte „Knowledge Sources“. Diese repräsentieren „Experten“, d.h. jede von
ihnen verfügt über spezielle Eigenschaften, die verschiedene Aspekte zur Problemlösung
einbringen. Knowledge Sources können:
•
Selbständig Informationen auf dem Blackboard finden und filtern
•
Anstelle eines Benutzers Aktionen selbständig durchführen
•
Im Bedarfsfall mit dem Benutzer kommunizieren um weitere Informationen zu
erhalten, oder den Benutzer über die Resultate ihrer Aktion informieren.
4
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Daniel
D.
Corkill,
Blackboardsysteme,
einer
der
beschreibt
führenden
die
Wissenschaftler
Eigenschaften
von
auf
dem
Gebiet
Knowledge
der
Sources
folgendermaßen1:
•
Jede Knowledge Source (nachfolgend auch „KS“ genannt) ist ein Spezialist zur
Lösung bestimmter Aspekte des Gesamtproblems.
•
Keine KS erfordert andere Knowledge Sources um ihren Beitrag erbringen zu können.
Sobald sie für sie relevante Informationen auf dem Blackboard findet, kommt sie ohne
weitere Unterstützung durch andere KS aus.
•
Weitere Knowledge Sources können in das Gesamtsystem eingebracht werden, ohne
das andere KS geändert werden müssen.
•
KS die sich als wenig effizient erweisen, können ohne Auswirkungen auf die anderen
KS verändert oder aus dem System entfernt werden.
•
KS
führen
relativ
aufwendige
Berechnungen
durch,
verglichen
mit
dem
Rechenaufwand der mit ihrer Implementierung verbunden ist.
Aus dem letzten Punkt ergibt sich ein gewisser Optimierungsbedarf für die KS. Zu Zeiten,
als Rechenkapazität knapp war, wurde versucht, das Problem durch eine Abschätzung
des Ergebnisses anstelle seiner exakten Berechnung zu umgehen. In diesem Falle gibt
die
KS
den
Näherungswert,
den
potentiellen
Lösungsweg
sowie
einen
Wahrscheinlichkeitswert an die Kontrollinstanz des Blackboards weiter. Mit Hilfe dieses
Wahrscheinlichkeitswertes wird bei konkurrierenden Zugriffen auf das Blackboard
entschieden, ob das Ergebnis am Blackboard „angeschrieben“ wird, oder ob es mit einem
anderen Ergebnis verschmolzen oder gar entfernt wird, so dass es möglicherweise
niemals am Blackboard ankommt.
Ein weiteres Charakteristikum der Knowledge Sources ist die Vielzahl an Möglichkeiten
zur Umsetzung. Die Entscheidungsfindung / -begründung (auch Reasoning) kann im
einfachsten Fall eine regelbasierte Lösung sein, es kann sich dabei aber auch um so ein
neuronales Netz oder auch ein sogenanntes „Fuzzy – Logic“ Programm handeln, was
zum Beispiel vom FuzzyJ – Toolkit des National Research Center of Canada (NRC) als
Erweiterung zu JESS unterstützt wird.
1 Aus Daniel D. Corkill: Blackboard Systems, Seite 2
5
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
3 Tools zur Erstellung eines Expertensystems
Erste Tools zur Erstellung eines Expertensystems wurden ab 1977 entwickelt, hier ist vor
allem Penny Nii’s AGE Skeletal Blackboard Framework zu nennen, dass zwischen 1977
und 1982 an der Stanford Universität entwickelt wurde.
Weitere bekannte Tools waren das BB1 von Barbara Hayes-Roth (ebenfalls Stanford
Universität) sowie das UMass GBB framework von Daniel D. Corkill (University of
Massachusetts).2
Im
Folgenden
werden
zwei
Entwicklungstools
beschrieben,
die
den
letzten
Entwicklungsstand repräsentieren; CLIPS und JESS.
3.1 CLIPS
Bei CLIPS handelt es sich um eine ursprünglich von der NASA entwickelte
Entwicklungsumgebung für Expertensysteme. Es ist frei verfügbar für Solaris, Mac OS
und Windows. Obwohl CLIPS in C geschrieben wurde, ist die Syntax an LISP angelehnt,
eine Programmiersprache, die im Bereich der künstlichen Intelligenz als Referenz gilt.
Programmiert wird CLIPS in der Sprache COOL (CLIPS Object Oriented Language). Es
besteht die Möglichkeit, nach dem Start des Systems direkt Fakten und Regeln
einzugeben, mit denen das System arbeiten soll. Alternativ besteht auch die Möglichkeit,
mittels des “(batch)“ – Kommandos Dateien mit COOL – Befehlen einzulesen, die in
einem beliebigen Editor erstellt und im Textformat abgespeichert wurden.
Ein COOL – Programm besteht im Wesentlichen aus zwei Teilen: den Fakten (auch Fact
Knowledge Base) und den Regeln. Diese können jedoch in separaten Dateien enthalten
sein und nacheinander geladen werden.
Bevor das Expertensystem dann gestartet werden kann, müssen die Fakten noch aus der
Knowledge Base in den Arbeitsspeicher übertragen werden, dies geschieht mit dem
„(reset)“
–
Kommando,
welches
gleichzeitig
alte
Fakten
aus
vorhergehenden
Programmläufen aus dem Arbeitsspeicher entfernt.
Erst dann kann mittels des „(run)“ – Kommandos das Expertensystem gestartet werden.
Das System arbeitet solange Fakten vorhanden sind, die auf die bestehenden Regeln
anwendbar sind und damit die mit den Regeln verbundenen Aktionen auslösen. Diese
Aktionen können zum Beispiel auch Fakten ändern, löschen oder neu hinzufügen. (Dies
2 Aus: Daniel D. Corkill, Blackboard Systems, Seite 11
6
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
könnte z. B. die Menge eines Rohstoffs oder der erstellten Produkte in einem
Produktionsplanungssystem sein).
Mittels des „(agenda)“ – Befehls ist eine Anzeige der derzeit aktivierten Regeln möglich.
Die mit diesen Regeln verbundenen Aktionen werden in der Reihenfolge der Ausgabe
ausgeführt. Interessanterweise unterstützen sowohl CLIPS als auch JESS nur das LIFO
und das FIFO – Verfahren zur Kontrolle des Zugriffs auf das Blackboard. Offensichtlich ist
eine effektive Kontrollinstanz, wie unter 2. beschrieben, nur schwer umzusetzen.
Es ist schwer zu sagen, welcher Ansatz der effektivere ist, Maarten Menken schreibt
hierzu3:
„Es ist schwer zu beurteilen, das die eine [Methode] besser ist als die andere, ohne die
spezifische Anwendung zu betrachten. Sogar dann, kann es schwer sein, zu beurteilen,
welche die Beste ist.“
Standardmäßig benutzen CLIPS und auch JESS die LIFO – Einstellung.
Eine Regel besteht aus zwei Seiten, der „Left-Hand-Side“ (LHS) und der „Right-HandSide“ (RHS), die durch „=>“ getrennt sind.
Erstere gibt die zu erfüllende Bedingung an, auf der „Right-Hand-Side“ befindet sich die
Anweisung für den Fall, das die LHS erfüllt wurde.
Im Folgenden ein kleines Beispiel:
(defrule lion-eats
; Regel “lion-eats”
(present lion)
; Wenn eine Löwe vorhanden ist,
(hungry lion)
; der Löwe hungrig ist,
(present student)
; und ein Student anwesend ist,
=>
(assert (eats lion)))
; löse folgendes Ereignis aus: (auch „triggern“)
; Löwe isst (wird den Eigenschaften des Löwen mit
„(assert)“ hinzugefügt)
Was passiert nun, wenn zwei Regeln auslösen, die einander zunächst widersprechen?
Wenn z.B. eine Regel existiert, die besagt, dass der Student flüchten soll, wenn er einen
Löwen sieht?
3
Jess Tutorial, Seite 20
7
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Für diesen Fall gibt es die Möglichkeit, Regeln mit einer Priorität auszustatten. Mit Hilfe
der „(salience)“ – Anweisung kann der Regel ein Wert für die Priorität zugeordnet werden.
Standardmäßig ist dieser Wert bei jeder Regel Null.
Würde die Regel „lion-eats“ mit der Anweisung „(salience 1)“ versehen, ist der Konflikt
gelöst und der Löwe gesättigt.
Ein weiteres wichtiges Kommando ist „(halt)“. Wie bereits erwähnt, läuft das System
solange noch Regeln aktiviert werden. Es kann aber sein, dass das eigentliche Ziel
bereits erreicht wurde (beispielsweise eine oder mehrere Variablen nun einen neuen Wert
haben). Für diesen Fall kann mittels „(halt)“ und „(salience)“ eine Stopregel geschaffen
werden. Diese sollte dann den höchsten Salience – Wert unter allen Regeln haben.
Da im Folgenden lediglich mit regelbasierten KS gearbeitet wird, sei noch einmal darauf
hingewiesen, dass es sich nicht um eine prozedurale Abarbeitung dieser Regeln handelt,
alle Regeln überwachen permanent den Status ihrer LHS.
3.2 JAVA Expert System Shell (JESS)
JESS ist vollständig zu CLIPS kompatibel, jedoch ist es auch als Source Code verfügbar.
Da
JESS
in
JAVA
entwickelt
wurde,
besitzt
es
den
Vorteil
einer
höheren
Plattformunabhängigkeit. Voraussetzung hierfür ist lediglich ein installiertes Java
Development Kit (JDK) ab Version 1.3.1. Derzeit läuft JESS unter den Betriebssystemen
Windows, Linux, Solaris und Mac OS.
Interessant ist JESS jedoch nicht allein wegen seiner JAVA – Implementierung, sondern
wegen der vielen Erweiterungen und Schnittstellen, die im Laufe der Zeit entwickelt
wurden.
Generell kann JESS COOL – Code, der für CLIPS entwickelt wurde, verarbeiten und
verfügt darüber hinaus aber noch über einen erwähnenswerten Unterschied:
Das Kommando „(run-until-halt)“; unter 3.1 wurde ausgesagt, dass das Expertensystem
solange laufen wird, bis entweder keine weiteren Regeln auslösen, oder es mittels des
„(halt)“-Kommandos beendet wurde. Mit dieser neuen Funktion ist es möglich, das
System auf die Eingaben eines Agenten warten zu lassen, die wieder neue Regeln
auslösen können. Damit nimmt JESS eine Sonderstellung in der Entwicklung vom
Expertensystem zu heutigen Agentensystemen ein.
8
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
3.3 JessTab
JessTab ist eine Schnittstelle zwischen dem Ontologie und Knowledge – Base Editor
Protégé-2000 und Jess.
Während der Begriff einer Knowledge – Base noch allgemein bekannt sein dürfte, so
scheint an dieser Stelle ein kleiner Exkurs zum Thema „Ontologie“ angebracht. Was ist
nun also eine Ontologie, und wozu wird sie verwendet?
Natalya F. Noy und Deborah L. McGuinness schrieben dazu4:
„Eine Ontologie definiert ein gemeinsames Vokabular für Forscher, die Informationen
innerhalb einer Domäne austauschen müssen. Sie schließt maschineninterpretierbare
Definitionen der grundlegenden Konzepte in der Domäne sowie die Beziehungen
innerhalb der Domäne mit ein.“
Ontologien ermöglichen somit:
•
Das Teilen einer gemeinsamen Informationsstruktur (innerhalb einer Gruppe von
Menschen oder unter Softwareagenten)
•
Die Wiederverwendbarkeit des Wissens einer Domäne
•
Trennung von Domänenwissen und operationalem Wissen
•
Die Analyse von Domänenwissen
Bei der Entwicklung eines Expertensystems ist die Verwendung einer Ontologie eine
wertvolle Hilfe bei der Strukturierung der zu verarbeitenden bzw. erzeugten Informationen.
JessTab stellt hierzu die folgenden Funktionalitäten bereit:5
•
es implementiert ein Jess Fenster in Protégé
•
es ermöglicht Jess, Knowledge Bases aus Protégé als Fakten in Jess zu übernehmen
•
und Jess – Regeln auf Protégé - Instanzen anzuwenden
Protégé-2000 erlaubt dem Benutzer darüber hinaus, eigene Formulare zur Sammlung von
Fakten zu erstellen, die in der Domäne enthaltenen Daten grafisch aufzubereiten und
Daten aus anderen Anwendungen oder Systemen zu übernehmen, die zu Protégé
kompatibel sind.
4 Aus Natalya F. Noy and Deborah L. McGuinness, Seite 1
5 Aus Henrik Eriksson: „JessTab Manual“
9
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Protégé wird Bestandteil des Vortrages sein, bei dem einige seiner Funktionen am
Beispiel des im Folgenden angesprochenen Produktionsplanungssystems demonstriert
werden sollen.
4 Programmbeispiel: Produktionsplanungssystem
Das Programmbeispiel soll ein regelbasiertes Expertensystem zur Produktionsplanung
veranschaulichen.
Es
sei
angemerkt,
dass
dieses
Beispiel
lediglich
zur
Veranschaulichung der Vorgehensweise bei der Erstellung eines COOL – Projektes dient,
dieses relativ simple System lässt sich durchaus auch einfacher mit herkömmlichen
Programmieransätzen erstellen. Wie Daniel D. Corkill bereits schrieb6:
„Die Vorzüge eines Blackboardsystems zeigen sich nicht bei simplen Problemstellungen,
ihre Anwendung ist lediglich bei komplexen Anwendungen sinnvoll.“
Diese Aussage gilt auch für das verwendete Beispiel.
Problemstellung:
Betrachtet wird eine Firma, die Elektrowerkzeuge produziert, Bohrmaschinen und
Stichsägen. Diese werden in jeweils 3 Ausführungen mit unterschiedlicher Leistung
gefertigt. Die zur Produktion benötigten Teile können zum Teil in Eigenfertigung erstellt
werden bzw. von Zulieferern bezogen werden, teilweise ist nur ein Zukauf bzw.
ausschließlich Eigenfertigung möglich.
Die Firma verfügt über eine Produktionslinie, auf der sowohl die Bohrmaschinen als auch
die Stichsägen gefertigt werden, und über eine Werkstattfertigung zur Eigenproduktion
von Baugruppen.
Es ergeben sich folgende Optimierungsziele:
1. Minimierung von Rüstzeiten auf der Produktionslinie
2. Auslastung der Werkstattfertigung zwischen 90% und 105%
3. Termingerechte Auslieferung
Da die vollständige Umsetzung dieses Systems den Rahmen der vorliegenden Arbeit
sprengen würde, wird anhand eines Ereignisbaumes eine Übersicht über den
6
Aus Blackboard Systems, Seite 7
10
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Lösungsansatz gegeben und skizziert, wie die Fact Knowledge Base und notwendige
Regeln entstehen.
Übersicht
Vorgehensweise
Im wesentlichen lässt sich das weitere Vorgehen in 3 Schritte aufteilen:
1. Erstellung der Fact Knowledge Base
2. Aufstellen der Regeln, denen das System folgen soll bzw. der Aktionen, die durch die
Regeln ausgelöst werden sollen
3. Umsetzung in COOL
11
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
Schritt 1: Erstellung der Fact Knowledge Base
Zunächst müssen alle Fakten gesammelt werden, die das System beeinflussen. Dies sind
hier z.B.: Stücklisten, Fertigungszeiten, Ressourcenverfügbarkeit, Maschinenzeiten etc.
Dann müssen diese Fakten strukturiert werden, und zwar so, dass sich das
Expertensystem später möglichst flexibel skalieren lässt.
Beginnen wir zunächst mit der Betrachtung des Fertigungsprogramms.
Produkt:
Modell:
Bohrmaschine
500W
Gehäuse
Motor
M500W
750W
1000W
GBM
M750W
M1000W
Getriebe
GBM1000W
Bohrfutter
BF1000W
Sägeblattaufnahme
Elektronik
EBM750W
EBM1000W
Stichsäge
500W
650W
M500W
Fertigung
LZ
EF
F
1/2
1
E
1
F
1
F
F
1
1
750W
GST
M650W
M750W
GST750W
SBA750W
EST650W
EST750W
Daraus lässt sich für jedes erstellte Erzeugnis eine eigene Stückliste ableiten. Jedes
Gerät besteht aus 5 Baugruppen, es werden in jeder Produktgruppe ca. 73 % Gleichteile
verwendet. (Der Übersichtlichkeit halber sind die benötigten Stückzahlen immer 1).
Aus der Betrachtung der Spalten Fertigung und LZ (Lieferzeit) ist bereits ein Engpass bei
der Fremdfertigung von Gehäusen zu erkennen, diese Erkenntnis wollen wir jedoch
zunächst zurückstellen.
Um die Stücklisten in unserer Knowledge Base verfügbar zu machen, benutzen wir die
„(deffacts)“ – Funktion. Mit dem folgenden Script können wir unsere Stücklisten anlegen:
(deffacts bm500w
(stkl-bm500w
GBM
M500W
GBM1000W
BF1000W
EBM750W)
)
12
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
(deffacts bm750w
(stkl-bm750w
GBM
M750W
GBM1000W
BF1000W
EBM750W)
)
usw.
Nachdem die Daten mittels des „(reset)“-Befehls in den Arbeitsspeicher geladen wurden,
kann man sich durch Eingabe von „(facts)“ die Stücklisten anzeigen lassen, was etwa so
aussieht:
f-0
(initial fact)
f-1
(stkl-bm500w GBM M500W GBM1000W BF1000W EBM750W)
f-2
(stkl-bm750w GBM M750W GBM1000W BF1000W EBM750W)
usw.
Schritt 2: Aufstellen der Regeln
Hier kann man im Wesentlichen dem oben abgebildeten Entscheidungsbaum folgen.
Als Beispiel für eine einfache Regel könnte eine Abfrage nach der Gültigkeit des
Bestelldatums dienen:
(defrule chk-date
(today > orderdate)
=>
(retract (?order)))
; Regel “Datumscheck”
; Wenn das Bestelldatum vor dem heutigen Tag liegt,
; löse folgendes Ereignis aus
; Entferne Auftrag aus System
Ich habe mich an dieser Stelle auf ein kurzes Beispiel beschränkt, da das System
zusammen mit Protégé während des Vortrages präsentiert werden soll.
13
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
5 Fazit
Expertensysteme dürfen wohl zu recht als Wegbereiter heutiger Agentensysteme
bezeichnet werden. Viele Eigenschaften heutiger Agenten wiesen schon die Knowledge
Sources der Expertensysteme auf, so zum Beispiel die Unabhängigkeit der KS
voneinander und die große Bandbreite der Möglichkeiten, innerhalb einer KS zu
Lösungsansätzen zu kommen.
Klassische Expertensysteme wurden mittlerweile von Agentensystemen abgelöst, die
flexibler sind. Einer der größten Schwachpunkte war die Kommunikation, die bei den
Knowledge Sources immer über eine zentrale Instanz abgewickelt wurde, während
heutige Agenten untereinander kommunizieren können.
JESS darf dank seiner JAVA – bedingten Flexibilität als Meilenstein im Übergang von
Experten- hin zu flexiblen Agentensystemen gesehen werden; hier wurde erstmals die
Implementierung von Agenten vorgesehen. Nicht zuletzt deshalb gibt es immer noch eine
sehr aktive Entwicklergemeinde, die eine große Bandbreite an Tools zur Benutzung mit
JESS entwickelt hat.
14
Seminararbeit zum Thema: Programmierung von Expertensystemen am Beispiel von CLIPS
Dirk Weil
AG 4, betreut durch Dipl. Kfm. Tim Stockheim
Seminar Automatisierte Ressourcenallokation, unter der Leitung von Prof. Dr. König
6
Literaturliste
Corkill, Daniel D.: Blackboard Systems (leider sind weder in der Arbeit noch auf der
Website Daten zur Veröffentlichung zu finden)
http://dancorkill.home.attbi.com/pubs/ai-expert.pdf
Achieving Flexibility, Efficiency, and Generality in Blackboard Architectures, Daniel D.
Corkill, Kevin Q. Gallagher, and Philip M. Johnson. In Proceedings of the National
Conference on Artificial Intelligence (AAAI-87), pages 18-23, Seattle, Washington, July
1987. (Also published in Readings in Distributed Artificial Intelligence, Alan H. Bond and
Les Gasser, editors, pages 451-456, Morgan Kaufmann, 1988.)
http://dancorkill.home.attbi.com/pubs/aaai87.pdf
Functionally Accurate, Cooperative Distributed Systems, Victor R. Lesser and Daniel D.
Corkill. IEEE Transactions on Systems, Man, and Cybernetics, SMC-11(1):81-96, January
1981.
http://dancorkill.home.attbi.com/pubs/smc-fac.pdf
Ontology Development 101: A Guide to Creating Your First Ontology, Natalya F. Noy and
Deborah L. McGuinness Stanford University, Stanford, CA, 94305
http://protege.stanford.edu/publications/ontology_development/ontology101.pdf
Jess Tutorial, Maarten Menken, Vrije Universiteit, Amsterdam, The Netherlands,
July 22, 2002
http://www.cs.vu.nl/~ksprac/doc/tutorial/jess-tutorial.pdf
Clips Reference Manual, Volume I: Basic Programming Guide, Version 6.10,
August 5th 1998
http://www.cs.sun.ac.za/~rdodds/RW262/bpg.pdf
15
Herunterladen