• Keine Ergebnisse gefunden

Regeln Wenn <Vorbedingung> dann <Aktion> Zwei Aktionstypen:

N/A
N/A
Protected

Academic year: 2022

Aktie "Regeln Wenn <Vorbedingung> dann <Aktion> Zwei Aktionstypen:"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Regeln

Wenn <Vorbedingung> dann <Aktion>

Zwei Aktionstypen:

• Implikation (Deduktionen): Monotonie-Eigenschaft

• Handlungen: keine Monotonie

Beispiel für Implikationsregel:

wenn (1) Nackensteife und (2) hohes Fieber

und (3) Bewußtseinstrübung dann Verdacht auf Menigites

Beispiel für Handlungsregel:

Operation Absetzen (Klotz1, Klotz2) wenn (1) frei (Klotz1)

und (2) im Greifarm (Klotz2) dann (1) auf (Klotz2, Klotz1)

und (2) frei (Klotz2) und (3) im Greifarm ()

(2)

Kommutative Regelsysteme

Für alle anwendbaren Regeln R1 und R2 gilt:

R1 (R2 (DB)) = R2 (R1 (DB))

Bei kommunikativen Regelsystemen irreversible Kontrollstrategie (ohne Backtracking) ausreichend!

DB

R1 R2

DB'''

R1 R2

DB''

DB'

(3)

Aufbau eines Regelinterpreters

Programmierer legt fest, was getan wird,

die Reihenfolge bestimmt der Regelinterpreter.

Komponenten: Datenbasis Regelbasis

Abarbeitungsstrategien:

• Vorwärtsverkettung (Forward Reasoning)

• Rückwärtsverkettung (Backward Reasoning)

(4)

Vorwärtsverkettung

Komponenten: Datenbasis Regelbasis (1) DATEN Å Ausgangsdatenbasis

(2) Until DATEN erfüllt Terminierungskriterium or keine Regel anwendbar do

(2.1) wähle anwendbare Regel (Vorbedingung durch DATEN erfüllt)

(2.2) DATEN Å Ergebnis der Anwendung von Aktion auf DATEN

Selektionsverfahren in Schritt (2.1) meist in 2 Stufen:

• Vorauswahl (Ermittlung aller anwendbaren Regeln)

• Auswahl (Auswahl einer Regel mit Konfliktlösungsstrategie) Beispiele für Konfliktlösungsstrategien:

• Auswahl nach Reihenfolge, z.B.:

- Erste anwendbare Regel (Trivialstrategie)

- Aktuellste Regel (deren Vorbedingung sich auf möglichst neue Einträge in der Datenbasis bezieht)

• Auswahl nach syntaktischer Struktur der Regel, z.B.:

- Spezifischste Regel (Vorbedingung „A & B & C“ ist spezifischer als „A & C“)

- Die syntaktisch größte Regel ( Vorbedingung mit den meisten Aussagen)

• Auswahl mittels Zusatzwissen, z.B.:

- höchsten Priorität (repräsentiert z.B. als Zahl) - Auswahl durch Meta-Regeln

(5)

Rückwärtsverkettung

Sind weitere Aussagen zu überprüfen?

BESTIMME (Parameter)

Parameter der Aussage

bekannt?

Prozedur (ZIEL)BESTIMME

(ZIEL abgeleitet werden kann),

(Setze REGELLISTE = Liste aller Regeln, deren Aktionsteil ZIEL erfüllt),

(frage ZIEL).

If then

else

until or do(REGELLISTE = leer) (ZIEL hergeleitet)

PRÜFE_REGEL (erste bzw. nächste Regel aus REGELLISTE) und lösche diese Regel aus der REGELLISTE,

(1) (2) (3)

(4)

Prozedur PRÜFE REGEL (REGEL)

ja ja

nein nein

Überprüfe die erste Aussage des Bedingungsteils der REGEL

nein Überprüfe die

nächste Aussage REGEL

ja PARAMETER

der Aussage bekannt?

Aussage wahr?

BESTIMME (PARAMETER)

REGEL nicht ausführbar, ENDE

Führe Aktionsteil der REGEL aus, ENDE

(6)

Komplexität der Vorbedingung

Nachschauen in der Datenbasis

Nachschauen in der Datenbasis und Rechnen

Pattern Matching (und Rechnen) Unifikation

Ist Bauklotz_1 rot?

Ist Bauklotz_1 größer als Bauklotz_2?

Welcher Bauklotz ist der größte rote Bauklotz auf dem Tisch?

f (g (x), a) ?= f (g (a), x) Beispiel Art der Auswertung

Erfassung

zunehmend

komplizierterer

Zusammenhänge Aussagetyp

(7)

Regelstrukturierung

Beispiel (aus MYCIN):

Wenn 1. der Typ der Infektion Meningitis ist, 2. keine Labordaten verfügbar sind, 3. der Typ der Meningitis bakteroid ist, 4. der Patient älter als 15 Jahre ist und 5. der Patient Alkoholiker ist,

dann gibt es Evidenz für E. Coli (0.2) & Dipplococcus (0.3) Verbesserungen:

1. Verschiedene Regeltypen (Aufteilung nach Regelaktion) - Inferenzregel

- Dialogsteuerung

- (Plausibilitätskontrolle, ...)

2. Strukturierung der Regelvorbedingung - Kernbedingung

- Kontext - Ausnahmen

(8)

Objekte / Frames

Frames aus kognitiver Sicht (Minsky 1975):

Frames liefern das Hintergrundwissen, vor dem alltägliche Situationen und Geschichten (Betreten eines Wohnzimmer, Kindergeburtstag usw.) verstanden werden:

1. Frame (Skript) aus Gedächtnis wählen

2. Überprüfen und Adaptieren der Erwartungswerte bzw.

Alternativen

Bedeutung von Frames:

1. Wiedererkennen stereotyper Objekte 2. Handeln bei sterotypen Ereignissen

3. Beantworten von Fragen über stereotype Objekte und Ereignisse (nur letzteres in FRL!)

Objektorientierte Sicht:

• Zusammenfassung aller Daten und Methoden

• Unterscheidung zwischen privaten und öffentlichen Methoden

• Vererbung

• Polymorphismus

• Initialbelegung von Attributen

FRL – Frame Representation Language:

• Zusammenfassung aller Attribute über ein Objekt

• zugeordnete Prozeduren

• Vererbung

• Erwartungswerte (Defaults)

sehr ähnlich: Semantische Netze (graphische Repräsentation) Beschreibungslogik (KL-One-Sprachen):

• Logische Beschreibung von Konzepthierarchien

• Automatische Begriffs-Klassifikation aufgrund von Attributen

(9)

FRL (Frame Representation Language)

Erweiterung von LISP

Struktur: Objekt – Attribut – Facette – Wert

Neu: Aktive Objekte (Reagieren auf Wertänderungen) Vererbungshierarchie mit vordefiniertem Attribut:

AKO (A Kind Of):

Vordefinierte Facetten:

$value : tatsächlicher Wert des Slots,

$require: Wertebereich (zugelassene Werte für $value),

$default: Erwartungswert (gilt, wenn kein Wert für

$value ermittelt werden kann),

$if-added: zugeordnete Prozedur, die ausgeführt wird, wenn ein Wert unter $value eingetragen wird,

$if-removed: zugeordnete Prozedur, die ausgeführt wird, wenn ein Wert unter $value gelöscht wird,

$if-needed: zugeordnete Prozedur, die angibt, wie der Wert unter $value ermittelt werden soll.

Beispiel:

Frame:

Slots:

Expertensystem

AKO: $value Programm Programmierumgebung:

$require:

$default:

$if-needed

LISP, PROLOG,…

LISP

„Referenzen nachlesen“

MYCIN

AKO: $value Expertensystem Frame:

Slots:

Kritik:

• Keine Repräsentation von notwendigen Konzepteigenschaften

• Keine Semantik der Art der Spezialisierung bei AKO

• Keine Unterscheidung zwischen Unterklassen und Instanzen

(10)

Beschreibungslogik (KL-ONE)

• Strikte Konzeptbeschreibung in der T-Box (Terminological Box)

• Optionale Eigenschaften in der A-Box (Assertional Box)

• T-Box: Neues Konzept kann durch „Classifier“ in Hierarchie an richtiger Stelle eingeordnet werden. Komplexität des Classifier sensibel für Sprachumfang (meist exponentiell im worst case)

• T-Box: Konzepte verfeinern andere Konzepte:

- durch Konjunktion von Konzepten

- durch Einschränkung des Wertebereichs von Rollen (Attribute) - durch Einschränkung der Kardinalitäten von Rollen

Beispiel:

MannMann FrauFrau Person

Person hat_Kind

[3, ∞]

N/R

hat_Kind hat_Kind

[1, ∞]

N/R

hat_Kind

hat_Vater [1, 1]

N/R

hat_Vater

hat_Mutter [1, 1]

N/R

hat_Mutter ledige_Person

ledige_Person

Familie Familie

Junggeselle

Junggeselle Kinderreiche_FamilieKinderreiche_Familie

[a, b]

N/R

=

=

=

Konzepte Rollen

Kardinalitätsbeschränkung der Rolle, a = Untergrenze und b = Obergrenze

Beispiel: =

=

mindestens 1 genau 1 [1, 1]

N/R

[1, ∞]

N/R

Konzept-Konzept-Beziehungen Konzept-Rollen-Beziehungen

=

=

(11)

Typische Sprachstrukturen der Beschreibungslogik

1. Definition von Konzepten:

• Konjunktion (Conj-Generic): Konzept ist Vereinigung der Eigenschaften mehrerer Konzepte.

- Bsp.: Junggeselle = Konjunktion (ledige_Person Mann)

• Wert-Beschränkung (VR-Generic): Wertemenge einer Rolle ist im Vergleich zum übergeordneten Konzept eingeschränkt.

- Bsp.: Altstadt = Wert-Beschränkung (Stadtteil hat_Gebäude alte_Häuser)

- „Ein Stadteil, in dem die Gebäude alte Häuser sind.“

• Zahlen-Beschränkung (NR-Generic): Kardinalität einer Rolle ist im Vergleich zum übergeordneten Konzept eingeschränkt.

- Bsp.: Kinderreiche_Familie = Zahl-Beschränkung (Familie hat_Kinder [3,∞])

- „Eine Familie mit mindestens drei Kindern.“

• Spezialisierung (Prim-Generic): Spezialisierung ohne hinreichende Bedingung.

- Bsp.: Mann = Spezialisierung (Person)

- „Ein Mann ist eine Person, aber es wird nicht spezifiziert, welche zusätzlichen Eigenschaften Männer im Vergleich zu Personen haben.“

2. Definition von Rollen:

• Wertdifferenzierung (VR Diffrole): Eine Rolle, deren Wertemenge beschränkt ist.

- Bsp.1: hat_Tochter = Wertdifferenzierung (hat_Kind Frau) - „Ein Kind, das eine Frau ist.“

- Bsp.2: hat_Vater = Wertdifferenzierung (hat_Elter Mann)

• Verkettung (Role Chain): Eine Rolle, die der Verkettung mehrerer Rollen entspricht.

- Bsp.: hat_Enkel = Verkettung (hat_Kind hat_Kind)

• Spezialisierung (Prim-Role): Spezialisierung ohne hinreichende Bedingung.

- Bsp.: hat_technischen_Beruf = Spezialisierung (hat_Beruf)

(12)

Constraints

Repräsentation ungerichteter Relationen zwischen Variablen (Regeln repräsentieren dagegen gerichtete Relationen)

1. Def. Constraint: {Name, Variablen, Definition}

Bsp. für Constraint: {Widerstand, (I, U1, U2), (U1-U2 = I*R)}

Grafische Darstellung:

U1 U

2 I

Widerstand U1 – U

2 = R ∗ I

2. Def. Constraintnetz: Menge von durch gemeinsame Variablen verbundene Constraints.

Bsp. für Constraintnetz (grafische Darstellung):

3. Def. Constraint-Problem: {Constraint-Netz, Variablenbelegung}

Bsp. für Constraintproblem: {Celsius-Fahrenheit-Netz, (F=90)}

4. Lösung eines Constraint-Problems: Widerspruch oder eine oder mehrere vollständige Variablenbelegungen.

Bsp. für Lösung: (F=90, C=32,22)

Add Mult1 Mult2

32 5 9

Temp. in Celsius Temp. in

Fahrenheit

(F - 32) * 5 / 9 = C (C * 9 / 5) + 32 = F

(13)

Darstellung von Constraints

• als Tabelle,

z.B. Vorzeichenmultiplikation A*B=C

* 0 + - 0 0 0 0 + 0 + - - 0 - +

• als Menge von Regeln

z.B. A*B=C

wenn A,B dann C=A*B

wenn A,C und A≠0 dann B=C/A wenn A=0 dann C=0

wenn A=1 dann B=C usw.

• als Programmcode

(14)

Propagierungstypen

(Zwischenwerte von Variablen)

• feste Werte (z.B. X=3)

• Wertemenge (z.B. X ∈ {3,4,5})

• Ungleichungen (z.B. X < 5)

• symbolische Ausdrücke (z.B. X = 2Y)

Einfacher Propagierungsalgorithmus (nur feste Werte und Wertemengen):

Eingabe: Constraint-Problem

Ausgabe: Variablenbelegung(en) oder Widerspruch 1. Weise allen Variablen Anfangsbelegung zu

2. Setze alle Constraints auf Liste AKTIV 3. Solange Constraints in AKTIV

3.1 Wähle ein Constraint C aus und entferne C aus AKTIV 3.2 Berechne für alle Variablen aus C neue Einschränkungen 3.3 Falls Wertemenge für Variable leer, STOP (Widerspruch) 3.4 Setze alle Constraints auf AKTIV, die auf Variablen Bezug

nehmen, für die neue Einschränkungen berechnet wurden 4. Gib aktuelle Variablenbelegung als Ergebnis aus.

Verbesserungen:

• durch Fallunterscheidung (Backtracking) Æ Kontrollproblem

• durch Propagierung von Ungleichungen oder symbolischen Werten Æ Symbolische Algebra

(15)

Beispiel: Kryptarithmetisches Rätsel:

SEND + MORE

MONEY Wertebereiche der disjunkten Variablen:

D, E, N, O, R, Y, M, S ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},

(16)

Formulierung als Constraint-Problem

E

D + E = Y + 1 0 U C 1

1 :

U2 U1

E + O + U

2 = N + 1 0 U C 3

3 : U3

U4 M = U C 4

5 :

Y D

N + R + U 2

1 = E + 1 0 U

C2 : R

N

O

M S + M + U

3 = O + 1 0 U C 4

4 : S

Die Wertebereiche der einzelnen Variablen sind:

D, E, N, O, R, Y ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, M, S ∈ {1, 2, 3, 4, 5, 6, 7, 8, 9}

U1, U2, U3, U4 ∈ {0, 1}

Außerdem gilt: (D, E, N, O, R, Y, M, S) sind disjunkt.

Referenzen

ÄHNLICHE DOKUMENTE

→ Der entstehende Code kann Sprünge aus dem Rumpf einer Funktion in eine andere enthalten ???.. Exkurs 4: Interprozedurale Analyse. Bisher können wir nur jede Funktion

Multiple program statements may appear on a single line, if separated by a (:) colon.. When the user types a left-arrow (under-line or RUBOUT on some

If a single protection domain is not established, then any user who does not have an account on a particular remote machine running TRFS can nonetheless access

These notes describe how to preserve and restore commonly customized system configuration files and directories so that the new system operates as expected.. Note that a

If seQ TCP/IP is not installed, if you already have this maintenance supplement on your system, or if you are not in system maintenance mode, custom tenninates at this

The software repairs in this release are described in the README file included on the tape. Create a directory, cd into it and extract the software from the

n Ähnlich kann man mit remove_method in Ruby eine Methode m C einer Klasse C zur Laufzeit entfernen. Beachte: hat m C jedoch m Sup einer Superklasse Sup überschrieben, dann kann

If two or more containers are used per diet per enclosure, containers shall be presented in pairs (one of bait .and one of field rodent challenge diet),