Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS 2002 1 Grundsätze der Logikprogrammierung.

Slides:



Advertisements
Ähnliche Präsentationen
Resolution und Prädikatenlogik erster Stufe
Advertisements

Algorithmen für das Erfüllbarkeitsproblem SAT
Christian Scheideler SS 2009
Vorlesung Compilertechnik Sommersemester 2008
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
6. Regelbasierte Systeme
Domänenwissen: Wissen über das Anwendungsgebiet
Schwierigkeit von Aufgabenstellungen
Schnelle Matrizenoperationen von Christian Büttner
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
4. Logik – und ihre Bedeutung für WBS
Default Logiken Zhao Li
Organisatorisches Klausur für Übungsschein (Anfang Januar)
8. Formale Sprachen und Grammatiken
10. Grundlagen imperativer Programmiersprachen
Finale Semantik und beobachtbares Verhalten
Planares 3 SAT ist NP-vollständig
Syntax der Aussagenlogik
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Verifizieren versus Berechnen
Algorithmen und Komplexität
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Prolog und Prädikatenlogik I
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
Logische Programmierung: Prolog
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Java- Syntax.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Semantik von Prolog & Unifikation
Fakten, Regeln und Anfragen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Beispiele für Ausdrucksalgebren
Grammatik als Deduktionssystem
Christian Schindelhauer
Algorithmus zur Zerlegung in 3NF (1)
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Algorithmen für das Erfüllbarkeitsproblem SAT
7. Formale Sprachen und Grammatiken
Grammatik als Deduktionssystem Theorie, Grammatik, Grammatiktheorie Grammatik Sprache Hypothese Sprachtheorie Theorie Erklärung Theoretisches Konstrukt.
Technische Informatik I Vorlesung 4: Vereinfachung von Schaltfunktionen Mirco Hilbert Universität Bielefeld Technische Fakultät.
The Programming Language Pascal
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Sortigkeit oder Arität
Gliederung der Vorlesung
Dr. Wolfram Amme, Verifikation imperativer Programme, Informatik II, FSU Jena, SS Verifikation von imperativen Programmen.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Dr. Wolfram Amme, Funktionale Programmierung, Informatik II, FSU Jena, SS Funktionale Programmierung.
Web-Mining Agents Planning
 Präsentation transkript:

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Grundsätze der Logikprogrammierung

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Logische Programmierung ein Prologprogramm besteht aus Fakten, mit denen Eigenschaften von Objekten und Beziehungen zwischen diesen relational beschrieben werden „wenn-dann“ Regeln, mit denen logische Verhältnisse zwischen den Eigenschaften und Beziehungen beschrieben werden Prolog-Interpreter sucht nach Antworten und Lösungen für vom Benutzer eingegebene Anfragen Prolog-Interpreter setzt beim Scheitern eines Lösungsweges die Berechnungen zurück und führt den Suchvorgang an anderer Stelle fort in der deklarativen Sprache Prolog wird beschrieben, was das Problem ist. Das Wie der Lösung geschieht automatisch ohne Zutun des Programmierers

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Imperatives Programm REPEAT WRITE(´Number; ´); READLN(value); IF ((value > 0) AND (value < 3) OR (value > 5) AND (value < 10)) THEN WRITELN(´Valid value!´); ELSE WRITELN(´No valid value!´); WRITE(´More numbers? Type yes or no: ´); READLN(answer); UNTIL answer = no;

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Prolog-Programm possible_slot(0,3). possible_slot(5,10). valid_value(X) :- possible_slot(Low,High), X > Low, X < High. Mögliche Abfragen: | ?- valid_value(2) Yes | ?- valid_value(4) No

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Interferenzsysteme in der Logikprogrammierung für ein gegebenes Prolog-Programm P und einer Abfrage A 1,...,A n versucht man die existentielle Formel P  x A 1  …  A n zu beweisen es gilt: P  x A 1  …  A n gdw. P   x  (A 1  …  A n ) widersprüchlich ist Das von Prolog verwendete Resolutionskalkül basiert auf nur einer korrekten Interferenzregel ist nur auf einer speziellen syntaktischen Form, der Klauselform, anwendbar

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Klausellogik die Klausellogik verwendet zur Beschreibung der Formeln eine Normalform, in der logische Verknüpfungen auf die elementaren Operatoren ,  und  reduziert sind alle Quantoren entfernt sind ein Literal ist entweder eine atomare Formel (positives Literal) oder eine negierte atomare Formel (negatives Literal) eine Formel heißt in Klauselform, wenn Präfix eine Sequenz von All-Quantifizierungen und Matrix eine quantorenfreie Konjunktion von Formeln, die wiederum nur aus Disjunktionen von Literalen zusammengesetzt sind

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Klauselform  x  y (likes(chris,x)  ¬likes(x,logic))  likes(chris,logic)  likes(bob,logic)  (likes(x,y)  ¬likes(x,y)) Darstellung als Menge von Klauseln: {{likes(chris,x),¬likes(x,logic)}, {likes(chris,logic)}, {likes(bob,logic)}, {likes(x,y),¬likes(x,y)}}

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Klauselform eine Klausel ist Menge von disjunktiv verknüpften Literalen eine definite Klausel ist eine Klausel, die genau ein positives und beliebig viele negative Literale enthält A  ¬B 1 ...  ¬B n Eine definite Klausel ohne negative Literale heißt Einheitsklausel A eine negative Klausel enthält beliebig viele negative Literale und kein positives Literal ¬B 1 ...  ¬B n die leere Klausel  ist jene Klausel, die keine Literale enthält eine Hornformel ist eine definite oder negative Klausel

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Klauselform und Logikprogrammierung ein Logikprogramm P ist eine Menge von definiten Klauseln ein Fakt A in P steht für eine Einheitsklausel A eine Regel A :- B 1,..., B n in P steht für A  B 1 ...  B n  A  ¬B 1 ...  ¬B n da zum Beweis einer Anfrage A 1,..., A n ein Widerspruch gefunden werden muss, handelt es sich bei einer Anfrage um eine negative Klausel  x  (A 1 ...  A n )  ¬A 1 ...  ¬A n für ein Logikprogramm P und eine Abfrage A muss man zeigen, dass die Klauselmenge P  A widersprüchlich ist

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Aussagenlogische Resolution Sei p ein Literal und A und B jeweils eine Klausel: Amit p  A Bmit ¬p  B (A  B) – {p, ¬p} (A  B) – {p, ¬p} heißt Resolvente der Klauseln A und B bzgl. des Literals p wegen der Korrektheit und Widerlegungsvollständigkeit der Schnittregel gilt in der Aussagenlogik für eine Formel F: X F gdw. X  {¬ F} ist widersprüchlich gdw. X  {¬ F} S

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Resolutionsgraph {p} {¬p,q} {¬q,r} {¬r} {r} {r} {} {¬p} {¬p} {q} {  q} {  p,r}

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Unifikation eine Substitution  ist eine Abbildung, die endlich vielen Variablen x 1,...,x n (evtl. variablenbehaftete) Terme t 1,...,t n zuordnet:  = {x 1  t 1,..., x n  t n } eine Substitution  heißt Unifikator zweier Ausdrücke E 1 und E 2, falls E 1  E 2  existiert ein Unifikator für E 1 und E 2, so heißen E 1 und E 2 unifizierbar ein Unifikator  für E 1 und E 2 heißt allgemeinster Unifikator (mgu), falls für jeden anderen Unifikator  von E 1 und E 2 eine Substitution p existiert, derart dass gilt  p

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Unifikationsalgorithmus (MGU zweier Ausdrücke)  :=  ; S := t 1  t 2.NIL; failure := false; while S  (t 1  t 2.S´) != NIL begin S := S´; case t 1  VAR: if t 1 = t 2 then goto label else if t 1  var(t 2 ) then S := S {t 1  t 2 };  :=  {t 1  t 2 }; else failure := true; goto label2; end; case t 2  VAR: if t 2  var(t 1 ) then S := S {t 2  t 1 };  :=  {t 2  t 1 }; else failure := true; goto label2; end; case t 1 = t 2  Konst: goto label; case t 1 = f(u 1,..., u n ); t 2 = f(v 1,..., v n ): S := (u 1  v 2,..., u n  v n ).S; otherwise: failure := true goto label 2; label: end; label2: if failure = true then return error else return  ;

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Unifikation zweier Terme t 1 = f(Y,h(g(X,X),k(Y))) und t 2 = f(g(U,V),h(Z,k(Z)))

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Prädikatenlogische Resolution Sei p ein Literal und A und B jeweils eine Klausel: Amit p  A Bmit ¬q  B und p  q  ((A  B) – {p, ¬p})  mit dem allgemeinsten Unifikator  Regel darf nur auf Klauseln angewendet werden, die keine Variablen gemeinsam haben (eventuell Umbenennung nötig) Beispiel: 1. {P(X),Q(X,Y)} 2. {¬P(a),R(b,Z)} 3. {Q(a,Y),R(b,Z)} 1,2 mit der Substitution X  a.

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Resolutionsprozedur die prädikatenlogische Resolutionsregel ist syntaktisch korrekt und widerlegungsvollständig Widerlegungsvollständigkeit der Resolutionsregel: Eine Menge von Klauseln ist unerfüllbar, wenn aus ihr vermöge Resolution die leere Klausel  ableitbar ist. um also zu zeigen, dass ein vorgegebener Sachverhalt F logische Konsequenz einer konsistenten Klauselmenge F´ ist, sucht man nach einer Widerlegung der Komplementaussage ¬F. Vorgehensweise: man bringt ¬ F in Skolem-Normalform Sk( ¬ F) und versucht dann mit Resolution aus F´  Sk( ¬ F) die Klausel  abzuleiten

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Resolution auf Logikprogrammen Anfragen an ein Logikprogramm von der Form |? - A 1  A n werden interpretiert als Zielklauseln:  x A 1  A n für ein gegebenes Logikprogramm P versucht man mittels Resolution zu zeigen: P  {  x A 1  A n }  (**) Korrekt berechnete Antworten: Jede erfolgreiche Abarbeitung der Anfrage A 1  A n an das Logikprogramm P liefert eine Substitution  * mit: P  x((A 1  A n )  *) Die Antwortsubstitution  * wird durch Komposition der Unifikatoren in der Ableitung zu (**) konstruiert.

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Resolution auf Logikprogrammen Logikprogramm P C1: append(nil, W, W). C2:append(cons(U,X), Y, cons(U,Z)) :- append(X,Y,Z). Anfrage: ? append(t 1,t 2,t 3 ), wobei t 1,..., t 3 beliebige Terme seien enthalten die Terme t 1,..., t 3 keine Variablen, so ist die Abfrage äquivalent zu ¬ append(t 1,t 2,t 3 ) enthalten t 1,..., t 3 die Variablen X 1,..., X n, so gilt  X 1...  X n ¬ append(t 1,t 2,t 3 )  ¬  X 1...  X n append(t 1,t 2,t 3 )

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Resolutionsgraph Anfrage: Q1: ? append(cons(V,L1),L2,cons(V,cons(a,nil))) Q1C2 C1Q2C2 Q3:? append(X2,L2,nil)C1 

Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Beispiel: Antwortsubstitution  Q3:? append(X2,L2,nil)  Q1: ? append(cons(V,L1),L2,cons(V,cons(a,nil))) Q2: ? append(L1,L2,,cons(a,nil)) s1 = {U1  V, X1  L1, Y1  L2, Z1  cons(a,nil)} s2 = {L1  nil, L2  cons(a,nil)}s3 = {L1  cons(U2,X2), Y2  L2, U2  a, Z2  nil} s4 = {X2  nil, L2  nil} P  append(cons(V,L1),L2,cons(V,cons(a,nil)))  * mit  * = s1  s3  s4