Semantik von Prolog & Unifikation

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Christian Scheideler SS 2009
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
6. Regelbasierte Systeme
Schwierigkeit von Aufgabenstellungen
Frame-Logik Eine Einführung Andreas Glausch.
2. Programmstruktur – Teil 2
3. Kapitel: Komplexität und Komplexitätsklassen
2. Kapitel: Komplexität und Komplexitätsklassen
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Einführung in Berechenbarkeit und Formale Sprachen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Verifizieren versus Berechnen
Christian Schindelhauer
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Listen & Beweisstrategie
Rekursive Listenverarbeitung
Maschinelle Übersetzung I
Prolog und Prädikatenlogik I
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Logische Programmierung: Prolog
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Syntax von Prolog & Familiendatenbasis
Fakten, Regeln und Anfragen
Prolog Grundkurs WS 98/99 Christof Rumpf
Gleichungskalkül und Induktion
Grammatik als Deduktionssystem
Fantasieregel Die Aussagenlogik
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Minimum Spanning Tree: MST
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
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.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
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 Arne Vater Wintersemester 2006/07 26.
Das Traveling Salesman Problem (TSP)
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Grammatik als Deduktionssystem Theorie, Grammatik, Grammatiktheorie Grammatik Sprache Hypothese Sprachtheorie Theorie Erklärung Theoretisches Konstrukt.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Grundsätze der Logikprogrammierung.
 Präsentation transkript:

Semantik von Prolog & Unifikation Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de

GK Prolog - Semantik, Unifikation Syntax & Semantik Die Syntax einer Sprache beschreibt die Menge der wohlgeformten Ausdrücke, die zu dieser Sprache gehören. Die Semantik einer Sprache beschreibt, wie die Ausdrücke der Sprache interpretiert werden sollen. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Semantik von Prolog Die Semantik eines Prolog-Programms wird beschrieben durch die Menge aller beweisbaren Anfragen, die nicht zusammengesetzt sind, d.h. aus einem einfachen Beweisziel bestehen und keine Variablen enthalten (ground goals). 08.11.99 GK Prolog - Semantik, Unifikation

Intention und Realität M sei die Menge aller Abfragen, die ein Programmentwickler gerne abgeleitet hätte. P sei ein Prolog-Programm. M(P) sei die Menge aller Abfragen, die auf Basis von Programm P ableitbar sind. 08.11.99 GK Prolog - Semantik, Unifikation

Korrektheit und Vollständigkeit P ist korrekt: M(P)  M P ist vollständig: M  M(P) P ist vollständig und korrekt: M = M(P) 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Programmentwicklung Programmieren in Prolog ist ein kreativer Prozeß mit dem Ziel M(P) = M. Leider lassen sich Korrektheit und Vollständigkeit von Programmen i.d.R. nur annähernd durch Testen überprüfen. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Berechenbarkeit Ein Problem ist entweder berechenbar oder nicht berechenbar. Ein Problem gilt als berechenbar, wenn es mit einem Berechnungsverfahren (Algorithmus) gelingt, das Problem in endlich vielen Schritten zu lösen. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Churchsche Hypothese Die Klasse der intuitiv berechenbaren Funktionen stimmt genau mit der Klasse der Funktionen überein, die durch eine Turing-Maschine berechnet werden können. (sinngemäß nach Alonzo Church, 30er Jahre) 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Turing-Maschine Schreib- unendliches Band Lesekopf ... x y z # 0 1 1 0 ... endliche Kontrolleinheit 08.11.99 GK Prolog - Semantik, Unifikation

Halteproblem, Entscheidbarkeit Es gibt kein allgemeines Verfahren, das für eine gegebene Turing-Maschine entscheidet, ob sie bei der Berechnung des Problems hält. Prolog ist äquivalent zur Turing-Maschine. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Komplexität Die berechenbaren Probleme lassen sich abhängig vom verwendeten Algorithmus in verschiedene Komplexitätsklassen einteilen. Das Maß für die Komplexität ist die Anzahl benötigter Berechnungsschritte abhängig von der Eingabegröße (Anzahl der involvierten Objekte). 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Komplexitätsklassen Problem: Sortieren einer Liste mit n Elementen. Komplexität (Wachstum): n linear geht nicht n log n logarithmisch sehr gut n2 quadratisch gut 2n exponentiell schlecht 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Effizienz Die Klasse P der Verfahren, deren Komplexität durch ein Polynom beschränkt ist, gelten als effizient. Die ineffizienten Verfahren liegen in der Klasse NP. Polynom: aknk + ak-1nk-1 + ... + a1n + a0, ai, n, k  N 08.11.99 GK Prolog - Semantik, Unifikation

Effizienz in der Praxis Von manchen (enscheidbaren) Problemen sagt man, daß es keine effizienten Verfahren zu ihrer Lösung gibt (z.B. SAT, TSP). Andererseits kann man Probleme, für die es effiziente Verfahren gibt, auch ineffizient lösen. Solche Verfahren nennt man naive Verfahren (z.B. Permutationssortieren). 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Die (Term-)Unifikation ist eine Operation auf Termen. : T  T  T  T Entweder gelingt die Unifikation mit dem Ergebnis, daß die beiden Terme dann gleich sind, oder sie scheitert. 08.11.99 GK Prolog - Semantik, Unifikation

Unifikationsoperator Anfragen ?- p(a,X) = p(Y,b). X = b Y = a yes ?- p(a,X) = p(b,Y). no Prolog hat ein eingebautes Prädikat =/2, das dann beweisbar ist, wenn die Unifikation der Terme gelingt. Variablen werden substituiert (instantiiert). 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Substitution Eine Substitution ist eine endliche Menge von Paaren xi = tj, wobei gilt: xi sind Variablen ti sind Terme xi  xj für alle i  j (eindeutige Belegung) xi kommt nicht in tj vor, für jedes i und j (zyklische Terme, Occur-check) 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Unifikator Ein Unifikator zweier Terme ist eine Substitution, die die beiden Terme identisch macht. Der allgemeinste Unifikator (MGU) enthält nur die Paare in der Substitution, deren Elemente aus den beiden Termen kommen. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Instanz Ein Term A ist eine Instanz von Term B, wenn es eine Substitution  gibt, so daß A = B  z.B. A = vater(abraham, isaac) B = vater(X , Y )  = {X=abraham, Y=isaac} 08.11.99 GK Prolog - Semantik, Unifikation

Unifikation von Variablen Prolog-Variablen sind mit beliebigen Termen unifizierbar, also mit Variablen Atomen Zahlen Strukturen 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Atome und Zahlen Atome und Zahlen sind jeweils nur mit syntaktisch identischen Atomen und Zahlen (sowie mit Variablen) unifizierbar. a = a yes isaac = isaac yes isaac = isaaac no 1 = 1 no 2.4 = 2.4 yes 1 = 1.0 no 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Strukturen Strukturen sind unter den folgenden Bedingungen miteinander unifizierbar: Die Namen der Funktoren sind identisch. Die Argumentanzahl ist identisch. Das i-te Argument der einen Struktur ist mit dem i-ten Argument der anderen Struktur unifizierbar. 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Beispiele I _ = X X = Y a(X,Y,Z) = a(Q,U) a(X,Y,Z) = a(W,P,t) a(b(C)) = b(a(C)) f1(f2(f3,f4),f5(f6,X,Y),g)= f1(A,f5(B,f7,f8),H) 08.11.99 GK Prolog - Semantik, Unifikation

GK Prolog - Semantik, Unifikation Beispiele II X = X X = f(X) X = f(Y), X = Y X = a, X = b X = a; X = b 08.11.99 GK Prolog - Semantik, Unifikation