Programmierkurs Prolog, SS 1998

Ähnliche Dokumente
Einführung in das Programmieren Prolog Sommersemester Teil 2: Arithmetik. Version 1.0

Wissensrepräsentation Vorlesung

R a i n e r N i e u w e n h u i z e n K a p e l l e n s t r G r e v e n T e l / F a x / e

F r e i t a g, 3. J u n i

Programmierkurs Prolog, SS 1998

Programmierkurs Prolog, SS 1998

Introduction to Data and Knowledge Engineering 8. Tutorium: Prolog SS KE TUD 1

Die beiden Regeln des vorangegangenen Beispiels weisen Unterschiede. Die erste Regel entspricht einer logischen Implikation.

Lösungshinweise zu Kapitel 4

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN

Übersicht. Prädikatenlogik höherer Stufe. Syntax der Prädikatenlogik 1. Stufe (mit Gleichheit)

Übersicht. 7. Prädikatenlogik 1. Stufe

Ereignisorientierte Programmierung

Theoretische Informatik SS 03 Übung 3

SONNTAG OFFEN 599. undsparen! LACK LACK HOCH GLANZ HOCH GLANZ. Los je

Formale Sprachen, reguläre und kontextfreie Grammatiken

Prolog 9. Kapitel: Terme

Chapter 1 : þÿ O n l i n e b e t a t h o m e c h a p t e r

Binäre Suchbäume (binary search trees, kurz: bst)

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Logische Programmierung

Crashkurs Kommandozeile

Chapter 1 : þÿ b e t a t h o m e t e l e f o n n u m m e r c h a p t e r

Chapter 1 : þÿ b e t a t h o m e O n l i n e C a s i n o e r f a h r u n g e n c h a p t e r

3. Lernen mit Vorwissen

W i r w ü n s c h e n I h n e n e i n e u n v e r g e ß l i c h e F e i e r m i t d e r B l ü t e d e r K ü c h e

Übersicht Shell-Scripten

Scriptbasierte Testautomatisierung. für Web-Anwendungen

Artificial Intelligence und Wissensrepräsentation

Chapter 1 : þÿ b e t a r a f c h a p t e r

Chapter 1 : þÿ N a c h r i c h t e n b e t a t h o m e c h a p t e r

4. Objektorientierte Programmierung mit C++

Computer & GNU/Linux Einführung Teil 4

Chapter 1 : þÿ W i e e i n z a h l e n a u f b e t a t h o m e c h a p t e r

5) Der Präsident fliegt an Bord Dumbo. 6) Der Präsident lädt Diplomaten zum Essen ein. 8) Wir haben einen Botschafter für Käseland.

Chapter 1 : þÿ b e t a t h o m e g e h t n i c h t c h a p t e r

Christian Nimtz // 1 Das Skeptische Argument und Reaktionen 3 Moores Beweis der Außenwelt, Schritt 2

Chapter 1 : þÿ b e t a t h o m e V e r b i n d u n g s c o d e c h a p t e r

Linux - a bit advanced

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Chapter 1 : þÿ b e t a t h o m e E c k e S t r a t e g i e c h a p t e r

Klausur zur Vorlesung Mathematische Logik

Chapter 1 : þÿ b e t a t h o m e d e u t s c h c h a p t e r

Shell-Programmierung. von Rolf Schmidt für. LUG Frankfurt

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Chapter 1 : þÿ b e t a t h o m e o f f e n e R e c h n u n g c h a p t e r

Chapter 1 : þÿ b e t a t h o m e C o m p u t e r c h a p t e r

The Economics of Higher Education in Germany

Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe

Vorlesung: Künstliche Intelligenz

Einführung in die Kommandozeile

Intelligente Systeme

Chapter 1 : þÿ o f f e n b e t a t h o m e W e b s i t e c h a p t e r

Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Chapter 1 : þÿ b e t a t h o m e a t c h a p t e r

4.1 Definition. Gegeben: Relation f X Y f heißt Funktion (Abbildung) von X nach Y, wenn. = y 1. = y 2. xfy 1. xfy 2

De Morgan sche Regeln

Fuzzy-Inferenz. Fuzzy-Inferenz. Fuzzy-Inferenz. Fuzzy-Inferenz. Klassische Logik. Aussagenlogische Regel: a b

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser

Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen

PONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: ENGLISCH LERNEN MIT JUSTUS, PETER UND BOB

Seminar Scala SS2010, Einführung. R. Schiedermeier Fakultät 07 für Informatik und Mathematik

Chapter 1 : þÿ w w w b e t a t h o m e c o m L o g i n - P a s s w ö r t e r c h a p t e r

Logik für Informatiker

Chapter 1 : þÿ b e t a m i n u s z e r f a l l p o t e n t i a l t o p f c h a p t e r

Was ist Logische Programmierung?

Grundlagen von Decision Support und Expertensystemen

Intelligente Systeme

anbieten Wohnungen Straße finden Tipps wohnen Freunde WG Wohnungssuche Glück Besichtigungen Monaten Methoden Internet

Chapter 1 : þÿ b e t a t h o m e P f e r d e r e n n e n A b d e c k u n g W e t t e c h a p t e r

Chapter 1 : þÿ b e t a t h o m e d e s k t o p c h a p t e r

Berechnungsschemata: Funktion als Parameter abstrahiert Operation im Schema, wird bei Aufruf des Schemas konkretisiert

Seminarvortrag zum Thema maschinelles Lernen I - Entscheidungsbäume. von Lars-Peter Meyer. im Seminar Methoden wissensbasierter Systeme

Chapter 1 : þÿ e i n z a h l b o n u s b e t a t h o m e c h a p t e r

Vorlesung Unix-Praktikum

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Arbeiten mit der Shell Teil 1

Correspondence Bias & Actor-Observer Bias

Chapter 1 : þÿ b e t a t h o m e w pb a t a c h a p t e r

Arbeiten mit der Shell Teil 1

Mathematik-Vorkurs für Informatiker (Wintersemester 2012/13) Übungsblatt 8 (Relationen und Funktionen)

Chapter 1 : þÿ b e t a t h o m e F u ß b a l l L i v e c h a p t e r


Chapter 1 : þÿ b e t a t h o m e k o d b o n u s u c h a p t e r

Chapter 1 : þÿ b e t a t h o m e J o b s A u s t r a l i e n c h a p t e r

anbei unsere Erklärung zur Unterscheidung von Windgutachten und Windprognose:

Multimedia Technologie II

DVD MAKER USB2.0 Installation Anleitung

Das neue Volume-Flag S (Scannen erforderlich)

Antwort: h = 5.70 bit Erklärung: Wahrscheinlichkeit p = 1/52, Informationsgehalt h = ld(1/p) => h = ld(52) = 5.70 bit

Wozu dient ein Logikanalysator?

Seminar Business Intelligence Teil II. Data Mining & Knowledge Discovery

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

7 Gültigkeit und logische Form von Argumenten

17 Grundbegriffe der Logik der Sprache PL

Extracting Business Rules from PL/SQL-Code

Arbeiten mit dem Stack

Transkript:

Programmierkurs Prolog SS 1998 Universität Dortmund LS VIII - Prof. K. Morik

Uebersicht Aufbau von Expertensystemen Produktionenregeln Backward-Chaining Forward-Chaining Erklärungen Unsicheres Wissen Interaktive XPS-Shell

Produktionsregeln if flur_nass and bad_trocken then problem_in_kueche. if kueche_trocken and flur_nass then bad_undicht. if kuechenfenster_zu or kein_regen then kein_wasser_von_draussen. if problem_in_kueche and kein_wasser_von_draussen then kueche_undicht. fakt(flur_nass). fakt(bad_trocken). fakt(kuechenfenster_zu).

Operatordefinitionen op(+precedence, +Assoc, +Name) Praeferenz Bindung (0 bis 1200) Assoc ---------------------------- xfx infix xfy infix yfx infix fx prefix fy prefix xf postfix yf postfix x steht fuer ein Argument mit echt kleinerer Praeferenz y steht fuer ein Argument mit gleicher oder kleinerer Praeferenz

Backward-Chaining meta_bc(goal) :- fakt(goal). meta_bc(goal) :- If Praem then Goal, meta_bc(praem). meta_bc(goal1 and Goal2) :- meta_bc(goal1), meta_bc(goal2). meta_bc(goal1 or Goal2) :- meta_bc(goal1) ; meta_bc(goal2).

Forward-Chaining meta_fc :- neuer_fakt(p),!, write( Derived: ),write(p),nl, assert(fakt(p)), meta_fc ; write( Done. ). neuer_fakt(goal) :- if Praem then Goal, not(fakt(concl)), composed_fakt(praem). composed_fakt(goal) :- fakt(goal). composed_fakt(goal1 and Goal2) :- composed_fakt(goal1), composed_fakt(goal2). composed_fakt(goal1 or Goal2) :- composed_fakt(goal1) ; composed_fakt(goal2).

Forward vs. Backward Produktionenregeln schliesen von Eingabeinformation --> abgeleitete Information Beispiele: Daten --> Zielen Hinweisen --> Hypothesen Beobachtungen --> Diagnosen Forward: Data driven Backward: Goal driven Was ist besser? viele Daten, wenige Ziele viele Ziele, wenige Daten

Wie-Erklärungen Wie (how) wurde die Antwort abgeleitet? Wird nach der Diagnose gefragt. Beispiel: Die Küche ist undicht, da das Problem in der Küche liegt und kein Wasser von draußen gekommen ist. Das Problem ist in der Küche, da der Flur nass ist aber das Bad trocken ist. Das Wasser ist nicht von draußen gekommen, da das Fenster geschlossen ist.

Backward-Chaining II Erstellen des Beweisbaumes meta_bc(goal,goal) :- fakt(goal). meta_bc(goal, Goal <= PraemP) :- If Praem then Goal, meta_bc(praem). meta_bc(g1 and G2, P1 and P2) :- meta_bc(g1,p1), meta_bc(g2,p2). meta_bc(g1 or G2, P) :- meta_bc(g1,p) ; meta_bc(g2,p).

Warum-Erklärungen Warum (why) soll ein Fakt eingegeben werden? Wird während der Konsultation gefragt. Beispiel: Ziel: Küche undicht? Frage: Ist das Bad trocken? Benutzer: Warum die Frage? Antwort: Weil der Flur nass ist und wenn das Bad trocken ist, dann ist das Problem in der Küche. Wenn das Problem in der Küche ist und kein Wasser von draußen gekommen ist, dann ist die Küche undicht.

Unsicheres Wissen Erweiterung der Produktionenregeln und Fakten durch Sicherheitsfaktoren fakt(aussage,sicherheit) if Prämissen then Konclusion : Sicherheit Beispiel: fakt(kein_regen,0.8). if then flur_nass and bad_trocken problem_in_kueche : 0.9.

Verrechnung der Unsicherheitsfaktoren Eine einfache Möglichkeit: c(p1 and P2) = min(c(p1), c(p2)) c(p1 or P2) = max(c(p1), c(p2)) c(if P1 then P2 : C) => c(p2) = c(p1) * C Zusatzbedingung: Keine zwei Regeln haben die gleiche Konklusion.

Backward-Chaining III Schließen unter Unsicherheit meta_bc(goal,c) :- fakt(goal,c). meta_bc(goal, C) :- If Praem then Goal : C1, meta_bc(praem,c2), C is C1 * C2. meta_bc(g1 and G2, C) :- meta_bc(g1,p1,c1), meta_bc(g2,p2,c2), minimum(c1,c2,c). meta_bc(g1 or G2, C) :- meta_bc(g1,c1), meta_bc(g2,c2), maximum(c1,c2).