Intelligente Systeme
(Logik Einführung Kapitel 3)
Was müssen wir also tun und welche formalen Konzepte gehören dazu, sollten wir eine Problemstellung definiert haben, und zu dem Schluss gekommen sein, dass eine theoretische Herangehensweise für ein intelligentes System von Nöten ist?
Wir brauchen ein System, das imstande ist, benötigtes Wissen über die Welt zu repräsentieren und aus diesem Wissen mittels Regeln korrekte Schlüsse zu ziehen, also neues Wissen zu generieren.
Das bedeutet für unser Endprodukt, dass es, grob gesprochen, auf 3 Ebenen basiert:
- der Wissens-Ebene
- der Logik-Ebene
- der Implementations-Ebene
Die Wissensebene
Das Wissen kann z.B. eingegeben, über diverse Lernverfahren generiert, oder zur Laufzeit über Sensorinformationen dynamisch zur Verfügung gestellt werden.
Es kann in beliebigen Strukturen, wie z.B. einer Datenbank, vorhanden sein.
Beispiel – Wissensbasis Wumpus-Welt
Grundlage ist die mögliche Wumpus-Welt aus der Spiel-Spezifikation.Grundsätzlich kennen wir die Regeln des Spieles – also z.B.
- Wenn auf einem Feld kein Gestank wahrnehmbar ist, so kann sich der Wumpus weder am Feld selber noch auf den direkt benachbarten Feldern befinden
- Wenn auf einem Feld ein Gestank wahrnehmbar ist, so muss sich der Wumpus entweder am Feld selber oder auf einem der direkt benachbarten Feldern befinden
und verstehen die Bedeutung der Wahrnehmungs-Quintupel – also z.B.
- [Ja, Ja, Nein, Nein, Nein] bedeutet ein Gestank und ein Luftzug sind wahrnehmbar
Zur Laufzeit wissen wir, auf welchen Feldern wir bereits waren, und welche Zustände dort geherrscht haben – also z.B.
- auf Feld [A,1] ist kein Gestank wahrnehmbar
- auf Feld [B,1] ist kein Gestank wahrnehmbar
- auf Feld [A,2] ist ein Gestank wahrnehmbar
- auf Feld [B,1] ist ein Luftzug wahrnehmbar
- auf Feld [A,2] ist kein Luftzug wahrnehmbar
Die Logikebene
D.h. mittels einer Logik wollen wir Problemstellungen formalisieren und automatisch aus einer Menge an Wissen korrekte Schlüsse ziehen.
Hierfür benötigen wir, grob gesprochen,
- eine Sprache um unser Wissen und unsere Schlüsse darstellen zu können
- Wissen über die Bedeutung der Sätze in dieser Sprache
- Regeln die bestimmen wie wir aus bestehendem Wissen neues generieren können
Auf diese Ebene und ihre grundsätzlichen Anforderungen und Konzepte wollen wir in weiterer Folge näher eingehen.
Beispiel – Logik-Ebene Wumpus-Welt
Formal könnten wir die, im Beispiel „Wissensbasis Wumpus-Welt“ aus dem Kapitel „Die Wissens-Ebene“ genannten, Regeln wie folgt darstellen (wobei a und b Variablen sind):
R1 WENN (NICHT Gestank(a,b))
DANN (NICHT Wumpus(a,b)
UND NICHT Wumpus(a-,b)
UND NICHT Wumpus(a+,b)
UND NICHT Wumpus(a,b-)
UND NICHT Wumpus(a,b+))R2 WENN (Gestank(a,b))
DANN (Wumpus(a,b)
ODER Wumpus(a-,b)
ODER Wumpus(a+,b)
ODER Wumpus(a,b-)
ODER Wumpus(a,b+))Die Wahrnehmungs-Quintupel können wir folgendermaßen übersetzen
Befinden wir uns
- auf Feld (a,b)
und erhalten wir die Information
- [Ja, Nein, Nein, Nein, Nein],
so erhalten wir die Sätze
- Gestank(a,b)
- NICHT Luftzug(a,b)
- NICHT Glitzern(a,b)
- NICHT Wand(a,b)
- NICHT Schrei(a,b)
Haben wir also bereits eine Zeit lang gespielt, könnte unser Wissen wie folgt aussehen
W1 NICHT Gestank(A,1) W2 NICHT Gestank(B,1) W3 Gestank(A,2) W4 Luftzug(B,1) W5 NICHT Luftzug(A,2)
Aus W1 können wir mittels R1 schließen
W6 NICHT Wumpus(A,1) W7 NICHT Wumpus(A,2) W8 NICHT Wumpus(B,1) Aus W2 können wir mittels R1 schließen
W9 NICHT Wumpus(B,1) W10 NICHT Wumpus(A,1) W11 NICHT Wumpus(C,1) W12 NICHT Wumpus(B,2) Aus W3 können wir mittels R2 schließen
W13 Wumpus(A,1) ODER
Wumpus(A,2) ODER
Wumpus(A,3) ODER
Wumpus(B,2)Da wir bereits W6, W7 und W12 generiert haben, können wir schließen, dass
- Wumpus(A,3)
also dass sich der Wumpus auf Feld [A,3] befinden muss.
Die Implementationsebene
(Logik Einführung Kapitel 3.3)
- Logik Einführung: Die Wissensebene
- Logik Einführung: Die Logikebene
Diese Seite nimmt Bezug auf(Seite parallel anzeigen)
Die Wahl der Methoden (sie könnten z.B. auf Arrays, Pointerstrukturen oder Strings zugreifen) und Sprachen (z.B. C, Lisp oder Prolog) ist zwar ein essenzielles Kriterium für die Leistung des Programms, hat jedoch keinen Einfluss auf die Wissens-Ebene oder die Logik-Ebene.