Informatik · Klasse 13 · aktualisiert
Inferenzmaschine: Fakten und Regeln Schritt für Schritt verknüpfen
Du lernst, wie eine Inferenzmaschine aus Fakten und Regeln neue Aussagen ableitet und warum eine Anfrage manchmal keine Lösung findet.
0 von 11 Aufgaben gelöst
Kurz gesagt
Eine Inferenzmaschine ist Software, die aus dem Wissen einer Wissensbasis neue Aussagen ableitet. Vorwärts geht sie von Fakten aus, rückwärts vom Ziel. Fehlt ein nötiger Fakt, bleibt die Anfrage ohne Lösung.
Du stellst eine Frage, und ein Programm antwortet, obwohl die Antwort nirgends fertig gespeichert ist. Genau das leistet eine Inferenzmaschine: Sie kombiniert gespeichertes Wissen zu neuen Aussagen. Hier lernst du, wie das abläuft und was passiert, wenn ein Fakt fehlt.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Ein wissensbasiertes System hat zwei zentrale Teile. Der erste Teil ist die Wissensbasis. Sie enthält das Fachwissen des Systems. In welcher Form das Wissen vorliegt, ist nicht festgelegt. Eine Möglichkeit sind Wenn-dann-Beziehungen, mit denen Zusammenhänge in der Welt für Computer verständlich werden. Meist pflegen Experten diese Wissensbasis.
Der zweite Teil ist die Inferenzmaschine. Das ist eine Software. Sie arbeitet mit dem Wissen der Wissensbasis und leitet daraus neue Aussagen ab. Ein Expertensystem gibt also nicht nur wieder, was gespeichert ist. Es kommt auf dieser Grundlage zu weiteren Schlussfolgerungen.
Dabei wendet die Inferenzmaschine Inferenzregeln an. Eine oft benutzte Regel ist der Modus ponens: Aus „Wenn A, dann B“ und „A“ folgt B.
Definition
Inferenzmaschine
Software, die das Wissen der Wissensbasis verarbeitet und daraus neue Aussagen ableitet. Andere Namen sind Regelinterpreter und Schlußfolgerungsmaschine.
Beispiel: Osterglocken und Frühling
- 1Regel in der Wissensbasis: Wenn die Osterglocken blühen, ist es Frühling.
- 2Fakt in der Wissensbasis: Die Osterglocken blühen.
- 3Die Inferenzmaschine wendet den Modus ponens an.
- 4Neue Aussage: Es ist Frühling. Sie steht nicht fertig in der Wissensbasis, sondern wird abgeleitet.
Merke: Die Wissensbasis enthält das Wissen. Die Inferenzmaschine verarbeitet es und leitet daraus neue Aussagen ab.
Teste dich
Fakten, Regeln und Anfragen sind drei verschiedene Dinge. Das siehst du gut an Prolog. Prolog-Programme bestehen aus einer Datenbasis, die Fakten und Regeln umfasst. Der Benutzer formuliert dazu Anfragen. Der Prolog-Interpreter benutzt Fakten und Regeln, um systematisch eine Antwort zu finden.
Ein Fakt ist ein einzelner Eintrag, zum Beispiel mensch(gregor). Eine Regel hat die Form WENN … DANN …. Der WENN-Teil heißt Prämisse, der DANN-Teil Konklusion. Ein Beispiel: WENN Herdplatte heiß UND kein Topf auf Herd DANN schalte Herd aus. In Prolog sieht eine Regel so aus: ist_Mutter(Mutter) :- weiblich(Mutter), ist_Elternteil_von(Mutter,_). Hinter :- stehen die Bedingungen. Das Komma zwischen ihnen steht für UND.
Eine Anfrage stellst du an die Datenbasis, zum Beispiel ?- mensch(Name). Fakten und Prädikate beginnen mit Kleinbuchstaben. Variablen beginnen mit einem Großbuchstaben oder mit einem Unterstrich. Eine Variable hat zunächst keinen Wert. Das System gibt ihr während der Verarbeitung einen Wert. Das nennt man Bindung.
Definition
Regel
Eine Regel verknüpft Bedingungen mit einer Folgerung nach dem Muster WENN … DANN …. Der WENN-Teil heißt Prämisse, der DANN-Teil Konklusion.
Beispiel: Datenbasis und Anfrage in Prolog
- 1Datenbasis mit zwei Fakten: mensch(gregor). mensch(stefan).
- 2Anfrage: ?- mensch(Name).
- 3Name ist eine Variable, denn sie beginnt mit einem Großbuchstaben.
- 4Antworten: Name = gregor; Name = stefan; No.
- 5Das No. am Ende zeigt: Es gibt keine weitere Lösung.
Teste dich
Eine Inferenzmaschine kann Regeln verketten. Dann nutzt sie die Folgerung einer Regel als Grundlage für die nächste. Es gibt zwei Richtungen.
Die Vorwärtsverkettung ist datengetrieben. Du startest bei bekannten Fakten. Eine Regel „WENN Fakt DANN …“ passt, und ihre Folgerung ist ein neuer Fakt. Dieser Fakt kann die Prämisse der nächsten Regel sein, und so geht es Schritt für Schritt weiter. Damit versucht man, auf Grundlage von Fakten zu einem meist noch unbekannten Ziel zu kommen.
Die Rückwärtsverkettung ist zielgetrieben. Du startest beim Ziel, das du beweisen willst. Du prüfst nur die Regeln, die dieses Ziel in der Konklusion haben. Ist in ihrer Prämisse etwas unbekannt, wird es zum Teilziel. Das System versucht dann, es aus anderen Regeln herzuleiten. Gelingt das nicht, wird der Wert vom Benutzer erfragt.
Im Beispiel unten steht der Arbeitsspeicher für die Symbole, die gerade als bekannt gelten. Beide Verfahren verlangen, dass die Aussagen als Horn-Klauseln vorliegen. Eine Horn-Klausel ist eine ODER-Verknüpfung von Literalen, von denen höchstens eines nicht verneint ist.
Beispiel: Fünf Regeln, einmal vorwärts, einmal rückwärts
- 1Regeln: 1. X, Y → S · 2. S, Z → T · 3. S, Y → A · 4. Y, T → B · 5. X, T → C
- 2Arbeitsspeicher am Anfang: X, Y, Z. Regeln werden in ihrer Reihenfolge geprüft. Regeln, die nichts Neues bringen, werden ignoriert.
- 3Vorwärts, Schritt 1: Regel 1 passt. Neu: S.
- 4Vorwärts, Schritt 2: Regel 2 passt. Neu: T.
- 5Vorwärts, Schritte 3 bis 5: Regel 3 bringt A, Regel 4 bringt B, Regel 5 bringt C. Das Ziel ist erreicht.
- 6Rückwärts mit Ziel C: Regel 5 hat C in der Konklusion. X ist da, Teilziel ist T.
- 7T steht in Regel 2. Teilziel ist S. S steht in Regel 1, und X, Y sind da. Von unten nach oben gelesen: S, dann T, dann C.
Merke: Vorwärts: vom Fakt zur Folgerung, bis das Ziel erreicht ist. Rückwärts: vom Ziel zu den Fakten, die es beweisen.
Teste dich
Manchmal antwortet Prolog auf eine Anfrage mit „No.“. Das heißt: Aus den Fakten und Regeln der Datenbasis lässt sich keine Lösung beweisen. Prolog durchsucht die Datenbasis von oben nach unten und versucht, die Anfrage mit findbaren Fakten zu beweisen. Findet es keinen, gibt es No. zurück.
Ein Fall aus einer Datenbasis mit Verwandten: In ihr stehen unter anderem weiblich(claudia). und kind(claudia,jana). Bei kind steht der Elternteil vorne, jana ist also Kind von claudia. Die Anfrage ?- neffe(claudia,A). liefert trotzdem No. Die Datenbasis enthält keinen Fakt der Form kind(X,claudia). Claudia hat also keinen eingetragenen Elternteil. Die Regel neffe braucht aber die Bedingung vollgeschwister, und die kann für Claudia nicht gelten.
Eine Regel mit Kommas gilt nur, wenn alle ihre Bedingungen erfüllt sind. Fehlt für eine Bedingung der Fakt, scheitert die Regel. Auch bei einer Anfrage mit Komma müssen beide Teile zur selben Bindung passen. In ?- ist_nachbar_von(schmidt, Nachbar), ist_nachbar_von(Nachbar,mueller). passt Nachbar = meier, weil die Fakten ist_nachbar_von(schmidt,meier) und ist_nachbar_von(meier,mueller) in der Datenbasis stehen.
Das System arbeitet mit dem, was in seiner Wissensbasis steht. Ein Expertensystem hat nur einen begrenzten Datenumfang. Meistens bekommt es nur Daten aus der direkten Umgebung des Problems. Ein Schokoriegel, der unbemerkt in einen Benzintank rutscht, ist für das Expertensystem Tankstelle kein programmierbarer Wert. Deshalb ist dieser Fall für das System nicht denkbar.
Die Abhilfe: Ergänze den fehlenden Fakt und stelle die Anfrage noch einmal. Rechne dabei nach, ob danach wirklich alle Bedingungen erfüllt sind.
Beispiel: Anfrage ohne Treffer reparieren (ausgedachtes Beispiel)
- 1Ausgedachte Datenbasis: wohnt_in(vogel,hauptstrasse).
- 2Anfrage: ?- wohnt_in(lang,Strasse).
- 3Es gibt keinen Fakt mit lang an erster Stelle. Antwort: No.
- 4Fehlender Fakt, ergänzt: wohnt_in(lang,bahnhofstrasse).
- 5Dieselbe Anfrage liefert jetzt: Strasse = bahnhofstrasse; No.
Merke: Ein No heißt nur: Mit den vorhandenen Fakten und Regeln lässt sich die Anfrage nicht beweisen. Oft hilft dann ein fehlender Fakt.
Teste dich
Alles auf einen Blick
Inferenzmaschine
Wissensbasis
Sie enthält das Fachwissen des Systems.
Inferenzmaschine
Software, die aus diesem Wissen neue Aussagen ableitet.
Fakt, Regel, Anfrage
Fakten sind Einträge, Regeln folgen dem Muster WENN … DANN …, Anfragen stellt der Benutzer.
Vorwärtsverkettung
Sie startet bei den Fakten und verkettet Regeln bis zum Ziel.
Rückwärtsverkettung
Sie startet beim Ziel und prüft die Regeln, die es in der Konklusion haben.
Keine Lösung
Das No heißt, dass die Datenbasis die Anfrage nicht beweist. Oft fehlt ein Fakt.
Musteraufgabe · Schritt für Schritt
Ausgedachtes Beispiel: Von A, B, E zum Ziel G
- 1Ausgedachte Regeln: 1. A, B → D · 2. D, E → F · 3. F → G · 4. B, E → H
- 2Arbeitsspeicher am Anfang: A, B, E. Ziel: G. Regeln werden in ihrer Reihenfolge geprüft.
- 3Vorwärts, Schritt 1: Regel 1 passt, denn A und B sind da. Neu: D.
- 4Vorwärts, Schritt 2: Regel 1 bringt nichts Neues mehr. Regel 2 passt, denn D und E sind da. Neu: F.
- 5Vorwärts, Schritt 3: Regel 3 passt. Neu: G. Das Ziel ist erreicht.
- 6Rückwärts: G steht in der Konklusion von Regel 3. Teilziel ist F.
- 7F steht in Regel 2. Teilziele sind D und E. E ist da, D steht in Regel 1.
- 8Regel 1 braucht A und B, beide sind da. Von unten nach oben gelesen: D, dann F, dann G.
- 9Regel 4 wird in beiden Wegen nicht gebraucht.
Fehler finden
Prüfe die Aussagen zu einer Anfrage ohne Treffer (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 4Das No sagt nur, dass sich die Anfrage aus der Datenbasis nicht beweisen lässt. Richtig: Mit den vorhandenen Fakten ist mara nicht als Mutter nachweisbar. Erst weiblich(mara) und ein Fakt ist_Elternteil_von(mara,…) ändern das.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Die enthält das Fachwissen des Systems. Die Rückwärtsverkettung geht vom aus. Das Komma zwischen zwei Prädikaten bedeutet .
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback