Zum Inhalt springen

Intelligente Systeme Logik Einführung Kapitel 3

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 ist die Wissensbasis über die Welt.

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

(Logik Einführung Kapitel 3.2)
Die Logik-Ebene ist die theoretische Ebene, auf der die Übersetzung des Wissens in formale Sätze und das Schließen auf neue Sätze (und somit neues Wissen) passiert.
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 W6W7 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)

Dies ist das lauffähige Programm, das die Konzepte der Logik-Ebene implementiert.

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.