Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs...

26
Rule-Based Programming Georg Kotschy

Transcript of Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs...

Page 1: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Programming

Georg Kotschy

Page 2: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Überblick

Grundlagen (4)– KI, CBR, ES

Procedural vs declarative programming (5)– Vergleich, Eigenschaften von RBPs

Rule-based systems (8)– Regeln, Architektur

Jess (7)– Installation, Anwendungsgebiete, Performance

Page 3: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Grundlagen (1/4)- Einführung

Systeme die rule-based programming verwenden sind auch bekannt als Experten Systeme

Experten Systeme sind ein Teilbereich des Case Based Reasoning

Case Based Reasoning ist ein kleiner Teilbereich der künstlichen Intelligenz

Page 4: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Grundlagen (2/4)- Künstliche Intelligenz

Künstliche Intelligenz will als ultimatives Ziel menschliches Denken nachahmen

Probleme sollen nur durch die Prinzipien der Logik gelöst werden

kein vorausgehendes Wissen über den Bereich des Problems oder Lösungen zu ähnlichen Problemen soll erforderlich sein

Page 5: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Grundlagen (3/4)- Case Based Reasoning

Case Based Reasoning versucht ungelöste Probleme mithilfe von bestehenden Lösungen für ähnliche Probleme zu lösen

Basiert auf menschlicher Fähigkeit Lösungen aus vorheriger Erfahrung mit ähnlichen Problemen abzuleiten

Zusätzlich werden zu einem kleinen Anteil die Prinzipien der Logik genutzt

Page 6: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Grundlagen (4/4)- Experten Systeme

Experten Systeme deduzieren eine Lösung für ein Problem in einem bestimmten, abgegrenzten Bereich

Die rules repräsentieren das Fachwissen eines human expert

Die facts repräsentiert den aktuellen Zustand des Problembereichs

Page 7: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Procedural vs Declarative (1/5)- Traditionelle Programme

linear, vorhersehbar, deterministisch Jeder mögliche Fall im Problembereich muß

mit Schleifen und IF-THEN-ELSE Bedingungen modelliert werden

Mit jeder Problemvariation wächst der Aufwand der bedingten Logik

Nachträgliche Änderungen beeinflussen Integrität der bereits existierenden bedingten Logik

Page 8: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Procedural vs Declarative (2/5) - Rule-based Programs

nicht-linear, unvorhersehbar, komplex Unabhängige IF-THEN Regeln werden

automatisch in eine einzige, effiziente bedingte Logik integriert

Diese Logik bleibt unverändert auch wenn Regeln verändert, hinzugefügt oder entfernt werden

RBPs erfordern ein runtime environment daß diese Logik zur Verfügung stellt

Page 9: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Procedural vs Declarative (3/5)- Funktionelle Eigenschaften von RBPs

„...a computer program that behaves like a human expert in some useful ways“

– Winston & Prendergast, 1984, S.6

„...solve problems efficiently and effectively in a narrow problem area.“

– Waterman, 1986, S.17

„...programs that mimic the adive-giving capabilities of human experts.“

– Brule, 1986, S.6

Page 10: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Procedural vs Declarative (4/5)- Strukturelle Eigenschaften von RBPs

„The knowledge of an expert system consists of facts and heuristics. The facts constitute a body of information that is widely shared, publicly available, and generally agreed upon by experts in the field.“

– Edward Feigenbaum in Harmon & King, 1985, S.5

„[separation of knowledge and control] make domain knowledge explicit and separate from the rest of the system“

– Waterman, 1986, S.18

Page 11: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Procedural vs Declarative (5/5) - Zusammenfassung

RBPs sind kein Allheilmittel Prozedurale Programme beinhalten was sie

tun, wie sie es tun und in welcher Reihenfolge sie es tun– zB mathematische Gleichung, Grafik

Deklarative Programme beinhalten was sie tun, aber nicht wie oder in welcher Reihenfolge sie es tun– zB Agenten KI, ERP

Page 12: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (1/8)- Regeln

left-hand side (LHS) IF Behauptung Bedingung

right-hand side (RHS) THEN Schlussfolgerung Handlung

Page 13: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (2/8)- Architektur

Page 14: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (3/8)- Rule Base (Knowledge Base)

procedural knowledge Enthält alle dem System bekannten Regeln Die ursprüngliche Textform wird zur

effizienteren Verarbeitung kompiliert Dabei können Regeln hinzugefügt oder

neugeordnet werden Kann in einer externen oder integriert sein Jess verwendet ein integriertes Rete

Netzwerk

Page 15: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (4/8)- Working Memory (Fact Base)

declarative knowledge Enthält alle Informationen über den

aktuellen Zustand des Problembereichs Kann sowohl Behauptungen als auch

Schlußfolgerungen enthalten Mögliche Objekttypen von rule engine zu rule

engine unterschiedlich Indizierung für Suche ähnelt relationalen

Datenbanken

Page 16: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (5/8)- Inference Engine

Kernstück einer rule engine Kontrolliert die Anwendung der rule base

auf das working memory1. Der pattern matcher erstellt conflict set

bestehend aus ungeordneter Liste von zu aktivierenden Regeln

2. Durch conflict resolution wird geordnete agenda erstellt

3. Die erste Regel in der agenda wird gefeuert, rinse and repeat

Page 17: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (6/8)- Pattern Matcher

Entscheidet welche Regeln wann gefeuert werden

Meistens der aufwendigste Prozeß einer rule engine da sämtliche Kombinationen von Fakten untersucht werden müssen, ob sie die Regeln erfüllen

Hauptauschlaggebend für Effizienz der rule engine und des Programmierprozesses

Page 18: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (7/8)- Agenda

Enthält die Reihenfolge in der die ausgewählten Regeln gefeuert werden

Entscheidend ist die spezifische conflict strategy der rule engine

Einflußfaktoren sind zB Genauigkeit, Komplexität, relatives Alter im working memory oder spezifische Priorität

„A Robot may not injure a human being or, through inaction, allow a human being to come to harm.“

– The first law of Robot

Page 19: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Rule-Based Systems (8/8)- Execution Engine

Führt assoziierte Handlungen für gefeuerte Regeln aus

Kann in klassischen rule engines auf das ändern, hinzufügen oder entfernen von Fakten beschränkt sein

Moderne rule engines wie Jess stellen eine komplette Programmiersprache bereit

Page 20: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (1/7)- Einführung

Jess ist rule engine und scripting environment

geschrieben von Ernest Friedman-Hill (Sandia National Laboratories)

basiert stark auf CLIPS ermöglicht Software deduktives Denken zu

beherrschen

Page 21: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (2/7)- Installation

Testversion erhältlich auf http://herzberg.ca.sandia.gov/jess

Kommerzielle und akademische Lizenzen erhältlich auf Anfrage

Erfordert Java2 Platform jess.jar zum CLASSPATH hinzufügen

Page 22: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (3/7)- Ausführung

code ausführen> java jess.Main test.clp

command prompt> java jess.Main

Jess Konsole> java jess.Console

JessWinfrei verfügbares GUI von Bill Wheeler

Page 23: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (4/7)- als rule engine

typisches Anwendungsgebiet Regeln repräsentieren Fachkenntnisse eines

human experts Fakten repräsentiert den aktuellen Zustand

einer Situation Beliebige Funktionen können ausgeführt

werden wenn Regeln feuern

Page 24: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (5/7)- als scripting environment

alternatives Anwendungsgebiet kann auf alle Java Klassen und

Bibliotheken zugreifen muss vor dem Ausführen nicht kompiliert

werden kann durch neue in Jess oder Java

geschriebene Funktionen für spezialisierte Anwendungen angepaßt werden

Page 25: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (6/7)- Performance

Benchmark Test durch Ernest Friedman-Hill im März 2000

Problemstellung: Sitzarrangement

männlich/weiblich alternierend

1-3 Hobbies zusammen

Jess überholt CLIPS ab 25 Objekten

Page 26: Rule-Based Programming Georg Kotschy. Überblick Grundlagen (4) – KI, CBR, ES Procedural vs declarative programming (5) – Vergleich, Eigenschaften von.

Jess (7/7)- Jess in Action

das Referenzwerk zu Jess

© 2003 by Ernest Friedman-Hill

erhältlich auf www.manning.com oder beim Buchhändler ihres Vertrauens