• Keine Ergebnisse gefunden

Methoden der KŸnstlichen Intelligenz

N/A
N/A
Protected

Academic year: 2022

Aktie "Methoden der KŸnstlichen Intelligenz"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

2 Modellierung und Programmierung

6. Vorlesung: KI-Programmierung. Lisp, PROLOG.

Regelbasiertes Programmieren

Methoden der KŸnstlichen Intelligenz

Ipke Wachsmuth ÊWS 2000/2001

6. Vorlesung Methoden der KŸnstlichen Intelligenz 2

Programmierstile

– Prozeduraler Programmierstil

Schrittweise ausgeführte Folgen von Anweisungen (Prozeduren) modifizieren Daten in einem Speicher – Funktionaler Programmierstil

Berechnung durch Auswertung von Funktionen (Abbildung von Definitionsbereich in Wertebereich)

– Logikorientierter Programmierstil

Deklarative Notierung von Problem und Lösungs"wissen" als logische Formeln, Berechnung durch Theorembeweisen – Objektorientierter Programmierstil

Berechnung durch Kommunikation: Austausch von Nachrichten zwischen aktiven unabhängigen Objekten – Regelbasierter Programmierstil

Berechnung durch Regelanwendung und deren Vorwärts- oder Rückwärtsverkettung

Die zugrundeliegenden Verarbeitungsmodelle (Programmiersprache + ausführende Maschine) sind sehr verschieden.

UniversitŠt Bielefeld

Programmierung in der KI

Typische Anwendungen für KI-Methoden:

– Verarbeitung natürlicher Sprache – Bildverarbeitung

– Konstruktion (teil-)autonomer Systeme (z.B. Roboter) – maschinelles Problemlösen

– Entscheidungsunterstützung/Expertensysteme

Aufgaben i.a. sehr komplex und auf abstraktem Niveau

Lösungsansätze basieren häufig auf kognitiven Modellen Klassen von Problemen führen zu

problemspezifischen Verarbeitungsmodellen

(auf höherer Ebene als programmiersprachliche

Verarbeitungsmodelle)

UniversitŠt Bielefeld

KI-Programmierung Ð Aufgaben

• Entwurf, formale Spezifikation und Implementierung problemspezifischer Verarbeitungsmodelle

• Programmierung in diesen Modellen Voraussetzung:

angemessene Programmiersprachen mit mächtigen Mitteln zum Aufbau und zur Verarbeitung komplexer symbolischer Daten Frage nicht: Welches ist die grundsätzlich bessere

KI-Programmiersprache?

sondern:

Welche Sprache ist zur Implementierung

eines Verarbeitungsmodells für eine bestimmte

Problemklasse besser geeignet?

(2)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 5

Warum Lisp Bedeutung erlangte

frühe Basissprache für viele KI-Systeme

Flexibilität

bestens geeignet (erfunden) für Symbolmanipulation und Zuordnung von Information zu Symbolen

einfache Konstruktion neuer Datenstrukturen

Befreiung von expliziter Speicherverwaltung (garbage collection)

uniforme Behandlung von Daten und Programmen

Lisp ist

eine mathematische formale Sprache mit präziser formaler Beschreibung, die einen funktionalen Programmierstil unterstützt

die Grundlage etlicher

"höherer" Sprachen und KI- Entwicklungswerkzeuge

6. Vorlesung Methoden der KŸnstlichen Intelligenz 6

Entwicklung von Lisp

JOHN McCARTHY Asst. Professor of Mathematics in Dartmouth 1 9 5 8 McCarthy (MIT) formuliert die Eigenschaften von LISP

1 9 5 9 McCarthy schafft die theoretische Grundlage („Recursive Functions of Symbolic Expressions and their Computation by Machine“) 1 9 6 0 / 6 2 LISP1 / LISP 1.5 (MIT), lange ein Quasistandard

1 9 6 6 BBN LISP (Bolt, Beranek & Newman), MAC LISP (Project MAC am MIT), 1973 BBN LISP in InterLISP-10 umbenannt

1 9 7 5 LISP Machine LISP, Scheme (MIT), FranzLISP (MAC LISP auf Unix, Berkeley), UCI-LISP 1 9 7 7 LISP-Maschinen-Entwicklung beginnt am MIT

1 9 7 8 NIL für kommerzielle timesharing-Systeme

1 9 8 0 ZetaLISP ( Symbolics), LM LISP (LMI), InterLISP-D (Xerox), SPICE LISP (CMU) 1 9 8 1 LISP-Maschinen kommen auf den Markt, LeLISP

1 9 8 2 S1 LISP für Supercomputer mit MultiProcessing (CMU, MIT, Lawrence Livermore Lab) CommonLISP (viele Firmen und Institutionen)

...

1 9 9 0 + EuLISP, ISO LISP AutoLISP für AutoCAD-Systeme ...

UniversitŠt Bielefeld

Wie funktioniert Lisp?

Lisp ist (in erster Linie) eine interpretierte Sprache.

Ein Lisp-System stellt eine Programmierumgebung zur Verfügung.

Lisp-Ausdrücke werden gelesen, evaluiert, das Resultat gedruckt (read-eval-print loop).

lisp –> 5 5 –> -2.71 -2.71 –> (+ 3 4) 7

–> (* 2 3 -1) -6

–> (/ (+ 81 12) 3) 31

–> (* 2 (_ 15 8))

Error: eval: Undefined function _

<1>: (return '-) 14

–> (exit)

UniversitŠt Bielefeld

Programmieren in Lisp (Basics)

–> (defun square (num) (* num num)) square

–> (square 9) 81

–> (defun in-order (first second third)) (cond ((> first second)(> second third)))) in-order

–> (in-order 3 2 1) t

–> (in-order 1 2 3) nil

Alle Programme sind Funktionen, d.h.

erwarten 0 oder mehr Argumente

geben genau einen Wert aus

sind entweder vordefiniert oder nach Wunsch geschrieben

Konsequenz:

Programmieren =

Funktionen schreiben

Einführung weiterer Sprachkonstrukte (setq, car, cdr etc): -> angegebene Literatur

(3)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 9

Idee logischer Programmierung

– Probleme werden als logische Aussagen formuliert (Theoreme, die man "anfragt").

– Das zur Lösung eines Problems benötigte Wissen wird ebenfalls in Form logischer Aussagen formuliert (Axiome, die man "assertiert").

– Die Lösung eines Problems besteht im Finden eines logischen Beweises für das angefragte Theorem.

Idee: Das Finden des Beweises wird einem automatischen Theorembeweiser übertragen, der den Beweis (sofern existent) konstruieren kann.

Damit reduziert sich das Problemlösen auf ein Formulierungsproblem.

(Idealvorstellung; nicht in vollem Umfang erreicht!)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 10

Theorembeweiser

u Grundlage logikorientierter Programmierung

u basieren in vielen Fällen auf dem Resolutionsverfahren:

l

allgemeineres Schlußverfahren als Modus ponens

l

arbeitet auf Formeln in Klauseldarstellung

u Resolutionsbeweiser sind zwar allgemein langsam, für Hornklauseln in der Aussagenlogik jedoch sehr effizient u sind auf Klauseln der Prädikatenlogik (PL) erweiterbar und

haben dort für Hornklauseln immer noch Effizienzvorteile PROLOG

UniversitŠt Bielefeld

Von PL-Klauseln zu ãRegelnÒ

x1... xs (L1

...

Lm)

x1... xs (A1

...

Ak

¬ C1

...

¬ Cn)

x1... xs (A1

...

Ak

C1

...

Cn)

( A1

...

Ak

C1

...

Cn)

Kurzschreibweise als „Regel“:

L j: Literale

(Atome oder negierte Atome)

Disjunktion von Atomen Konjunktion von Atomen

UniversitŠt Bielefeld

PROLOG: Hornklauseln!

x1...

xs ( A

¬ C 1

...

¬ Cn)

x1...

xs ( A

C1

...

Cn)

( A

C1

...

Cn)

Beschränkung auf Klauseln mit höchstens einem nicht-negierten Atom:

Prozedurale Semantik: Um A zu zeigen, müssen die Cj gezeigt werden.

(4)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 13 Eine Definition von "Großvater":

Für alle x, für alle y, für alle z gilt:

x ist Großvater von y, wenn x Vater von z ist und z Vater von y.

oder ganz formal:

x y z (grossvater x y)

(vater x z)(vater z y)

Die entsprechende Definition

"über die Mutter":

x y z (grossvater x y) (vater x z)(mutter z y)

In PROLOG gelten alle Variablen als implizit all- quantifiziert (die prozedurale Semantik erlaubt Ersetzungen durch beliebige in der Wissensbasis vorh. Terme); Quantoren werden weggelassen:

(grossvater x y)

(vater x z),(vater z y) (grossvater x y)

(vater x z),(mutter z y)

Seien jetzt diese beiden Implikationen (Regeln) assertiert, zusammen mit folgenden Fakten:

(vater fritz hans) (vater fritz klara) (mutter klara peter)

Zeige: Ist Fritz der Großvater von jemand?

>(grossvater fritz u)?

Axiome formulieren in PROLOG

* "klassische" Clocksin/Mellish–Syntax:

grossvater(X Y)

vater(X Z),vater(Z Y) >(grossvater fritz peter)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 14

Regelbasiertes Programmieren

einer der Hauptansätze für die Erstellung größerer Systeme zur Lösung von Spezialaufgaben

angebracht, wo Wissen über die Zusammenhänge zwischen Aufgabensituation und Aufgabenlösungen verfügbar ist

Grundidee: jede Regel entspricht einem Stück Wissen des Typs If <circumstances> then <do action, or conclude something>

"Was ist zu tun, wenn ..." "Was ist anzunehmen, wenn ..."

mustergesteuerte Inferenzsysteme

UniversitŠt Bielefeld

u Bestandteile „mustergesteuerter Inferenzsysteme“

1. Eine Kollektion relativ unabhängiger Module, die durch aktuelle Daten, die auf ihr „trigger pattern“ passen, aktivierbar sind 2. eine oder mehrere dynamische Datenstrukturen, die durch ein

aktives Modul inspiziert und verändert werden können

3. ein Interpreter, der die Auswahl und Aktivierung von Modulen auf zyklischer Basis steuert

u Module: z.B. logische Klauseln (wie in PROLOG) oder Produktionsregeln (OPS5; CLIPS)

Eine abstraktere Sicht ...

UniversitŠt Bielefeld

Produktionsregeln

C 1 C 2 ... C n A 1 A 2 ... A m

Wenn C 1 und C 2 ... und C n gelten, dann führe A 1 und A 2 ... und A m aus.

„führe aus“:

• nimm an, daß gilt (Implikation)

• ändere „Weltzustand“ (Aktion)

ãCondition-Action StatementsÒ

(5)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 17

Perceive-Reason-Act-Schleife

„PERCEIVE“: Wahrnehmung von Problemmerkmalen

„REASON“: Interne Verarbeitung und Problemlösung

„ACT“: Umsetzen der Problem- lösung in der Welt

6. Vorlesung Methoden der KŸnstlichen Intelligenz 18

Recognize-Act-Cycle in OPS5

1. „MATCH“: Prüfen sämtlicher Produktionsregeln gegen Working Memory Elements --> Konfliktmenge

2. „CONFLICT RESOLUTION“: Wähle eine Produktions- regel mit erfüllter Bedingungsseite aus. Bei leerer Konfliktmenge: Kontrolle an den Benutzer

3. „ACT“: Alle Aktionen der ausgewählten Produktionsregel ausführen

4. Falls HALT-Aktion: Kontrolle an den Benutzer; sonst:

gehe zu 1.

(analog in CLIPS)

UniversitŠt Bielefeld

Aufbau eines Produktionssystems

Inferenzmaschine Erkennung

Konfliktmenge von möglichen Regeln

Aktion evaluiere die ausgewählte Regel Regelinterpreter Erkennung

Konfliktmenge von möglichen Regeln

Aktion evaluiere die ausgewählte Regel

Inferenzmaschine

Erkennung

Konfliktmenge von möglichen Regeln

Aktion evaluiere die ausgewählte Regel

Regelinterpreter

Erkennung

Konfliktmenge von möglichen Regeln

Aktion evaluiere die ausgewählte Regel

Produktions- regeln Regeln sind modular

leichte Modifizierung einzelner Regeln möglich

Aufbau der Regeln entspricht einzelnen Wissenselementen der Domäne („Regelwissen“)

Arbeits- speicher

UniversitŠt Bielefeld

Arbeits- speicher

X,Y,Z Arbeits-

speicher

X,Y

S S,Z

T S,Y

A Y,T

B X,T

C

Regelbasierte Problemlšsung

u Abstrakt gesprochen besteht eine Problemlösung darin, durch Anwendung der Regeln ein bestimmtes Symbol (oder mehrere) in einem Arbeitsspeicher zu erzeugen.

u Beispiel. Sei gegeben:

Arbeitsspeicher Regelwissensbasis

Ziel:

Arbeits-

speicher

enthält C

(6)

6. Vorlesung Methoden der KŸnstlichen Intelligenz 21

VorwŠrtsverkettender Interpreter

Komponenten:

u Datenbasis/Arbeitsspeicher u Produktionsregeln

(1) DATA Ausgangsdatenbasis

(2) Until DATA erfüllt Terminierungskriterium do (3) Begin

(4) Wähle eine anwendbare Regel R (deren Bedingungsteil durch DATA erfüllt ist)

(5) DATA Ergebnis der Anwendung des R-Aktionsteils auf DATA (6) End

6. Vorlesung Methoden der KŸnstlichen Intelligenz 22

Lšsung mit VorwŠrtsverkettung

Voraussetzung über die Konfliktresolution:

u Ignoriere Regeln, die bereits im Arbeitsspeicher stehende Symbole nochmals eintragen würden

u Berücksichtige Regeln gemäß ihrer Reihenfolge im Regelspeicher Arbeitsspeicher angewendete Regel

X,Y,Z X,Y

S

X,Y,Z,S S,Z

T

X,Y,Z,S,T S,Y

A X,Y,Z,S,T,A Y,T

B X,Y,Z,S,T,A,B X,T

C X,Y,Z,S,T,A,B,C

UniversitŠt Bielefeld

Lšsung mit RŸckwŠrtsverkettung

u nur solche Regeln werden ausgewählt, die das gesuchte Symbol in den Arbeitsspeicher (AS) schreiben

u sind sie (noch) nicht anwendbar

Teilziel: anwendbar machen Arbeitsspeicher Ziel: C

X,Y,Z Regel: X,T

C

X,Y,Z Teilziel 1: X (schon im AS)

X,Y,Z Teilziel 2: T

X,Y,Z Regel: S,Z

T

X,Y,Z Teilziel 1: S

X,Y,Z Regel: X,Y

S

X,Y,Z Teilziel 1: X (im AS)

X,Y,Z,S Teilziel 2: Y (im AS) X,Y,Z,S,T,C Teilziel 2: Z (im AS)

UniversitŠt Bielefeld

Programmierstile im Vergleich

Anweisungsbasierter Stil

l

Programm = Sequenz von Befehlen und Abfragen

l

Programmierer legt fest, was getan wird und in welcher Reihenfolge

l

Kontrollfluß übersichtlich, aber starr

Regelbasierter Stil

l

Programm = Menge von Regeln und Regelinterpreter

l

festgelegt nur, was in einer Situation zu tun ist; Regel- interpreter bestimmt Abfolge

l

Kontrollfluß flexibel, aber evtl. unübersichtlicher

Lesen, speziell zu Lisp:

u Charniak & McDermott, Kapitel 2, Seite 33-48

zu KI-Programmierung:

u Görz, 2. Auflage:

Kapitel 9.1 (nach Bedarf)

Referenzen

ÄHNLICHE DOKUMENTE

Universelle Einsetzung (deduktiv) Gegeben daß (forall(x) (Px)) gilt schließe, daß (Pa) für jede Konstante a gilt. Legaler Schluß in der Logik, schließt vom Allgemeinen auf

(inst catch-22 catch-object) (catcher catch-22 jack-2) (caught catch-22 ball-5) (inst catch-23 catch-object) (catcher catch-23 petra-1) (caught catch-23 keule-3). Zweck:

l Suchraum: Menge aller Zustände, die man durch Anwendung einer Folge von Operatoren erreichen kann. u

Menge von Constraints, die durch gemein- same Variablen verbunden sind.. Anfangsbelegung von

UniversitŠt Bielefeld Eine Maschine verändert die Welt, Teil 4: 53:00 min.. Künstliche Intelligenz - zu schwer

• Autonomie: Agenten operieren ohne direkten Eingriff durch Benutzer- oder andere Steuerung und haben Kontrolle über ihre Aktionen und inneren Zustände. • Soziale Fähigkeiten:

u In der klassischen Logik kann nur ausgedrückt werden, daß eine Aussage wahr oder falsch ist, jedoch nicht, daß man eine Aussage für wahrscheinlich hält oder über ihr Zutreffen

TEAM-Agenten sind [...] kooperativ in dem Sinne, daß ein Agent gewillt ist, sein Wissen und seine Lösungen an andere Agenten abzugeben, wenn erforderlich, und auch (Gesamt-) Lösungen