Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Semantik von Prolog & Unifikation Prolog Grundkurs WS 99/00 Christof Rumpf

Ähnliche Präsentationen


Präsentation zum Thema: "Semantik von Prolog & Unifikation Prolog Grundkurs WS 99/00 Christof Rumpf"—  Präsentation transkript:

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

2 08.11.99GK Prolog - Semantik, Unifikation2 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.

3 08.11.99GK Prolog - Semantik, Unifikation3 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).

4 08.11.99GK Prolog - Semantik, Unifikation4 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.

5 08.11.99GK Prolog - Semantik, Unifikation5 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)

6 08.11.99GK Prolog - Semantik, Unifikation6 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.

7 08.11.99GK Prolog - Semantik, Unifikation7 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.

8 08.11.99GK Prolog - Semantik, Unifikation8 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)

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

10 08.11.99GK Prolog - Semantik, Unifikation10 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.

11 08.11.99GK Prolog - Semantik, Unifikation11 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).

12 08.11.99GK Prolog - Semantik, Unifikation12 Komplexitätsklassen Problem: Sortieren einer Liste mit n Elementen. Komplexität (Wachstum): nlineargeht nicht n log nlogarithmischsehr gut n 2 quadratischgut 2 n exponentiellschlecht

13 08.11.99GK Prolog - Semantik, Unifikation13 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: a k n k + a k-1 n k-1 +... + a 1 n + a 0, a i, n, k N

14 08.11.99GK Prolog - Semantik, Unifikation14 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).

15 08.11.99GK Prolog - Semantik, Unifikation15 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.

16 08.11.99GK Prolog - Semantik, Unifikation16 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).

17 08.11.99GK Prolog - Semantik, Unifikation17 Substitution Eine Substitution ist eine endliche Menge von Paaren x i = t j, wobei gilt: –x i sind Variablen –t i sind Terme –x i x j für alle i j (eindeutige Belegung) –x i kommt nicht in t j vor, für jedes i und j (zyklische Terme, Occur-check)

18 08.11.99GK Prolog - Semantik, Unifikation18 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.

19 08.11.99GK Prolog - Semantik, Unifikation19 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}

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

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

22 08.11.99GK Prolog - Semantik, Unifikation22 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.

23 08.11.99GK Prolog - Semantik, Unifikation23 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)

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


Herunterladen ppt "Semantik von Prolog & Unifikation Prolog Grundkurs WS 99/00 Christof Rumpf"

Ähnliche Präsentationen


Google-Anzeigen