Logische Programmierung Einführende Beispiele

Größe: px
Ab Seite anzeigen:

Download "Logische Programmierung Einführende Beispiele"

Transkript

1 Logische Programmierung Einführende Beispiele Verwandschaftsbeziehungen in Prolog vater(peter,maria). mutter(susanne,maria). vater(peter,monika). mutter(susanne,monika). vater(karl, peter). mutter(elisabeth, peter). vater(karl, pia). mutter(elisabeth, pia). vater(karl, paul). mutter(elisabeth, paul). KI, SS 07, F ol7, Seite 1, 26. Juni2007

2 frau(maria). frau(elisabeth). frau(susanne). frau(monika). frau(pia). mann(peter). mann(karl). mann(paul). Logische Programmierung Einführende Beispiele KI, SS 07, F ol7, Seite 2, 26. Juni2007

3 Prolog: einführendes Beispiel eltern(x,y) :- eltern(x,y) :- vater(x,y). mutter(x,y). %%%%% einfach aber nicht terminierend vorfahrtrans(x,y) :- eltern(x,y). vorfahrtrans(x,z) :- vorfahrtrans(x,y),vorfahrtrans(y,z). %%%%% einfach und terminierend vorfahr(x,y) :- eltern(x,y). vorfahr(x,z) :- eltern(x,y),vorfahr(y,z). bruder(x,y) :- mann(x),vater(z,x),vater(z,y), not(x == Y), mutter(m,x),mutter(m,y). schwester(x,y) :- frau(x),vater(z,x),vater(z,y), not(x == Y),mutter(M,X),mutter(M,Y). geschwister(x,y) :- vater(z,x),vater(z,y), not(x == Y),mutter(M,X),mutter(M,Y). KI, SS 07, F ol7, Seite 3, 26. Juni2007

4 Prolog: Graph-Beispiel ungerichteter Graph. a b e f c d g kante(a,b). kante(a,c). kante(c,d). kante(d,b). kante(b,e). kante(f,g). KI, SS 07, F ol7, Seite 4, 26. Juni2007

5 Prolog: Graph-Beispiel verbunden(x,y) :- kante(x,y). verbunden(x,y) :- kante(y,x). verbunden(x,z) :- kante(x,y),verbunden(y,z). verbunden(x,z) :- kante(y,x),verbunden(y,z). %%% verbunden2 terminiert verbunden2(x,y) :- verb(x,y,[]). ungkante(x,y) :- kante(x,y). ungkante(x,y) :- kante(y,x). verb(x,y,_) :- ungkante(x,y). verb(x,z,l) :- ungkante(x,y), not(member(y,l)), verb(y,z,[y L]). member(x,[x _]). member(x,[_ L]) :- member(x,l). KI, SS 07, F ol7, Seite 5, 26. Juni2007

6 Prolog: Listen und Mengen member(x,[x _]). member(x,[_ Y]) :- member(x,y). append([],x,x). append([x R],Y,[X Z]) :- append(r,y,z). listtoset([],[]). listtoset([x R],[X S]) :- remove(x,r,s1),listtoset(s1,s). remove(e,[],[]). remove(e,[e R],S):- remove(e,r,s). remove(e,[x R],[X S]):- not(e == X), remove(e,r,s). KI, SS 07, F ol7, Seite 6, 26. Juni2007

7 Prolog: Listen und Mengen union(x,y,z) :- append(x,y,xy), listtoset(xy,z). intersect([],x,[]). intersect([x R],S,[X T]) :- member(x,s),intersect(r,s,t1), listtoset(t1,t). intersect([x R],S,T) :- not(member(x,s)),intersect(r,s,t1), listtoset(t1,t). reverse([],[]). reverse([x R],Y) :- reverse(r,rr), append(rr,[x],y). reversea(x,y) :- reverseah(x,[],y). reverseah([x Xs],Acc,Y):- reverseah(xs,[x Acc],Y). reverseah([],y,y). KI, SS 07, F ol7, Seite 7, 26. Juni2007

8 Grundlagen der logischen Programmierung: deklarative Programmierung Theoretische Basis von Prolog: Prädikatenlogik erster Stufe Ausführung der Programme: Spezialisierung der Resolution. logischen Programme sind spezielle Klauseln: Horn-Klauseln KI, SS 07, F ol7, Seite 8, 26. Juni2007

9 Grundlagen der logischen Programmierung Eine Hornklausel ist eine Klausel mit maximal einem positiven Literal Eine definite Klausel ist eine Klausel mit genau einem positiven Literal. D.h. A B 1... B m oder in Notation der logischen Programmierung: A B 1,..., B m bzw. A :- B 1,..., B m Man nennt A den Kopf, {B 1,..., B m } den Rumpf der Klausel. KI, SS 07, F ol7, Seite 9, 26. Juni2007

10 Grundlagen der logischen Programmierung Eine Klausel ohne positive Literale nennt man definites Ziel (Anfrage,Query,goal). Notation: B 1,..., B n Die B i werden Unterziele (Subgoals) genannt. Eine Unit-Klausel (oder Fakt) ist eine definite Klausel mit leerem Rumpf. Notation: A. KI, SS 07, F ol7, Seite 10, 26. Juni2007

11 Grundlagen der logischen Programmierung Ein definites Programm ist eine Menge von definiten Klauseln. Die Menge aller Klauseln, deren Kopfliteral das Prädikat Q hat, nennen wir Definition von Q. KI, SS 07, F ol7, Seite 11, 26. Juni2007

12 Beispiele und Negationen Folgende Literale der Beispiele passen nicht zur Definition eines definiten Programms: not(x == Y) not(member(y,l)) not(e == X) not(member(x,s)) (wird noch besprochen) KI, SS 07, F ol7, Seite 12, 26. Juni2007

13 Modell-Eigenschaft der Definiten Programme Es gilt: Zu jedem definiten Programm P gibt es ein eindeutiges kleinstes Modell M P. M P besteht aus allen mit Resolution und Instanziierung herleitbaren Grund-Fakten. M P entspricht allen Atomen, die das Programm mit JA beantwortet. KI, SS 07, F ol7, Seite 13, 26. Juni2007

14 Anfragen an Prolog-Programme Das definite Ziel x 1,..., x n : B 1... B n ist äquivalent zu: x 1,..., x n : B 1... B n Die Anfrage ist: x 1,..., x n : B 1... B n KI, SS 07, F ol7, Seite 14, 26. Juni2007

15 Anfragen an Prolog-Programme Es gilt: für die Resolution auf Hornklausel-Mengen: im Falle der Herleitung der leeren Klausel werden die existierenden Objekte ausgerechnet D.h. Resolution berechnet Substitutionen, die Antworten auf die Anfrage sind. KI, SS 07, F ol7, Seite 15, 26. Juni2007

16 Anfragen an Prolog-Programme: Beispiel Für nicht-hornklauselmengen berechnet Resolution nicht immer eine (eindeutige) Antwort: Formel: Q(a) Q(b). Anfrage: x.q(x). Die Klauselmenge dazu ist : {{Q(a) Q(b)}, { Q(x)}} Resolution ergibt die leere Klausel. {x a}, {x b} werden beide verwendet! Q(a) Q(b) hat kein eindeutiges kleinstes Modell! KI, SS 07, F ol7, Seite 16, 26. Juni2007

17 SLD-Resolution SLD-Resolution ist eine spezielle Resolutionsstrategie ist die (operationale) prozedurale Semantik von definiten Programmen. definiert die Ausführung von logischen Programmen: S: Selektions-Funktion L: Lineare Resolution D: Definite Klauseln KI, SS 07, F ol7, Seite 17, 26. Juni2007

18 SLD-Resolution Definition G = A 1,..., A m,..., A k sei definites Ziel C = A B 1,..., B q eine definite Klausel. Resolutions-Herleitung eines neuen definiten Ziels G : A m ist das selektierte Atom des definiten Ziels G. θ ist ein allgemeinster Unifikator von A m und A, dem Kopf von C. G ist das neue Ziel: θ(a 1,..., A m 1, B 1,..., B q, A m+1,..., A k ). G ist eine Resolvente von G und C. Ableitungsrelation G P,C,m G KI, SS 07, F ol7, Seite 18, 26. Juni2007

19 Beispiel Definites Ziel: eltern(x, Y ). Klausel dazu: eltern(x, Y ) Programmklausel eltern(x, Y ) : mutter(x, Y ) Klauselschreibweise eltern(x 1, Y 1 ) mutter(x 1, Y 1 ) allg., Unifikator: X = X 1, Y = Y 1 Resolvente (neues Ziel) mutter(x, Y ) KI, SS 07, F ol7, Seite 19, 26. Juni2007

20 SLD-Resolution und SLD-Ableitung Definition Sei P ein definites Programm und G ein definites Ziel. Eine SLD-Ableitung von P {G} ist eine Folge G C1,m 1 G 1 C2,m 2 G 2... von SLD-Schritten wobei C i jeweils eine umbenannte Klausel aus P ist Die SLD-Ableitung ist eine SLD-Widerlegung, wenn sie mit einer leeren Klausel endet. C i nennt man auch die Eingabe-Klauseln. KI, SS 07, F ol7, Seite 20, 26. Juni2007

21 SLD-Resolution und SLD-Ableitung erfolgreiche SLD-Ableitung: Wenn es eine SLD-Widerlegung ist. fehlgeschlagene SLD-Ableitung: Wenn diese nicht fortsetzbar ist. unendliche SLD-Ableitung KI, SS 07, F ol7, Seite 21, 26. Juni2007

22 SLD-Ableitung Sei P ein definites Programm und G ein definites Ziel. Eine korrekte Antwort ist eine Substitution θ, so dass P = θ( G) gilt. Eine berechnete Antwort θ für P {G} ist eine Substitution: Einschränkung von θ n... θ 1 auf die Variablen von G, wobei θ 1... θ n die allgemeinsten Unifikatoren (in dieser Reihenfolge) zu einer SLD-Widerlegung von G sind. KI, SS 07, F ol7, Seite 22, 26. Juni2007

23 Beispiel Definites Ziel: eltern(x, Y ). Klausel dazu: eltern(x, Y ) Programmklausel eltern(x, Y ) : mutter(x, Y ) Klauselschreibweise eltern(x 1, Y 1 ) mutter(x 1, Y 1 ) allg., Unifikator θ 1 X = X 1, Y = Y 1 Resolvente (neues Ziel) mutter(x 1, Y 1 ) Programmklausel mutter(susanne, maria). allg., Unifikator θ 2 X 1 = susanne, Y 1 = maria Antwort: θ 2 θ 1 : X = susanne, Y = maria KI, SS 07, F ol7, Seite 23, 26. Juni2007

24 SLD-Ableitung: Korrektheit Es gilt: Korrektheit (Soundness) der SLD-Resolution Sei P ein definites Programm und G ein definites Ziel. Dann ist jede berechnete Antwort θ auch korrekt. D.h. P = θ( G) KI, SS 07, F ol7, Seite 24, 26. Juni2007

25 Vollständigkeit der SLD-Resolution Wir betrachten verschiedene Vollständigkeitsaussagen für die SLD- Resolution. Satz (Widerlegungsvollständigkeit) Sei P ein definites Programm und G ein definites Ziel. Wenn P {G} unerfüllbar ist, dann gibt es eine SLD-Widerlegung von P {G}. KI, SS 07, F ol7, Seite 25, 26. Juni2007

26 Vollständigkeit der SLD-Resolution Es gilt ein stärkerer Satz über die Vollständigkeit der berechneten Antworten: zu jeder Antwortsubstitution gibt es eine allgemeinere berechnete Antwort Satz (Vollständigkeit der SLD-Resolution) Sei P ein definites Programm und G ein definites Ziel. Zu jeder korrekten Antwort θ gibt es eine berechnete Antwort σ für P {G} und eine Substitution γ so dass x F V (G): γσ(x) = θ(x). KI, SS 07, F ol7, Seite 26, 26. Juni2007

27 Strategien zur Berechnung der Antworten Breitensuche: 1. Gegeben Programm P und ein Ziel A 1,..., A n : (a) Probiere alle Möglichkeiten aus, ein Unterziel A aus A 1,..., A n auszuwählen (b) Probiere alle Möglichkeiten aus, eine Resolution von A mit einem Kopf einer Programmklausel durchzuführen. 2. Erzeuge neues Ziel B: Löschen von A, Instanziieren des restlichen Ziels, Hinzufügen des Rumpfs der Klausel. 3. Wenn B =, dann gebe die Antwort aus. Sonst: mache weiter mit 1. mit dem Ziel B. KI, SS 07, F ol7, Seite 27, 26. Juni2007

28 Strategien zur Berechnung der Antworten Breitensuche hat zwei Verzweigungspunkte pro Resolutionsschritt: Die Auswahl eines Atoms aus der Anfrage Die Auswahl einer Klausel zum Resolvieren Es gilt: die Auswahl des Atoms ist don t care Die Suche bleibt vollständig, wenn man die Alternativen weglässt. Z.B. leicht zu lösende Atome kann man zuerst auswählen Umstellung kann aber unendlich tiefe Suchpfade einführen KI, SS 07, F ol7, Seite 28, 26. Juni2007

29 Strategien Eine vollständige Suchstrategie: Breitensuche über die Resolutionsmöglichkeiten Anfrage als Stack von Atomen Reihenfolge der Atome wie in definiten Klauseln KI, SS 07, F ol7, Seite 29, 26. Juni2007

30 Strategien in Prolog-Implementierung Tiefensuche, d.h. noch deterministischer: Anfrage als Stack Die Programmklauseln werden in der Reihenfolge abgesucht, in der sie im Programm stehen. Prolog benutzt die Tiefensuche Rechts-Links-Ordnung ist definiert durch die Reihenfolge der Klauseln im Programm und die Reihenfolge der Literale in den Rümpfen KI, SS 07, F ol7, Seite 30, 26. Juni2007

31 Prolog-Implementierung Weitere Veränderungen gegenüber der theoretischen Fundierung sind: Der occurs-check wird i.a. nicht durchgeführt. CUT- Operatoren zum Beeinflussen des Backtracking zb nur erste Sub-Antwort statt aller Lösungen Assert/Retract: Damit können Programmklauseln zum Programm hinzugefügt bzw. gelöscht werden. I.a, betrifft dies nur Fakten. Negation: Negation wird definiert als Fehlschlagen der Suche. Typinformation zu Programmen hinzugefügt. moded Argumente von Prädikaten haben Markierung I bzw. O : Input, Output Prädikat als Funktionen, wenn deterministisch. KI, SS 07, F ol7, Seite 31, 26. Juni2007

32 Prolog-Implementierung Vergleich der theoretischen Eigenschaften mit der Implementierung. Pures Prolog nichtpures Prolog nichtpur, Definite Programme Cut, Negation, ohne occurs-check Klauselreihenfolge fest SLD: korrekt SLD: korrekt SLD: i.a. nicht korrekt vollständig unvollständig unvollständig KI, SS 07, F ol7, Seite 32, 26. Juni2007

33 Implementierung: Beispiele für Unvollständigkeit bei festgelegten Reihenfolge der Klauseln: P(a,b). P(c,b). P(X,Y) :- P(Y,X). P(X,Z) :- P(X,Y), P(Y,Z). Die symmetrisch-transitive Hülle kann nicht berechnet werden, da das Programm in eine Schleifen gerät. Aber eine SLD-Widerlegung existiert, da diese nicht-deterministisch vorgehen darf, und insbesondere sich eine Programmklausel aussuchen darf. KI, SS 07, F ol7, Seite 33, 26. Juni2007

34 Beispielprogramme und Prolog-Ausführung likes (maria, essen). likes(maria,wein). likes(peter, maria). likes(peter,wein). Einfache Anfragen: >?- likes(peter,maria) yes Konjunktive Anfragen (mit logischem und verknüpfte) >?- likes(peter,maria), likes(maria,peter) no KI, SS 07, F ol7, Seite 34, 26. Juni2007

35 Zuerst wird das erste Unterziel bearbeitet: Antwort:. ja, Dann zweite: nein. Konjunktive Anfragen mit Instanziierung. >?- likes(peter, X), likes(maria,x) Abarbeitung: 1. X = maria, likes(maria,maria): no 2. X = wein: likes(maria,wein). yes X = wein Backtracking ist notwendig (Zurücksetzen) zum Finden weiterer Lösungen.

36 Beispielprogramm und Prolog-Ausführung vater(peter,maria). mutter(susanne,maria). vater(karl, peter). mutter(elisabeth, peter).... vorfahr(x,y) :- vater(x,y). vorfahr(x,y) :- mutter(x,y). vorfahr(x,z) :- vorfahr(x,y),vorfahr(y,z). KI, SS 07, F ol7, Seite 36, 26. Juni2007

37 Prolog-Abarbeitung: Anfragen:?- vorfahr(elisabeth,maria) Abarbeitung : 1. vorfahr(elisabeth,maria) 1.1 vater(elisabeth,maria). nein 1.2 mutter(elisabeth,maria): nein 1.3 vorfahr(elisabeth, X0), vorfahr(x0,maria) vater(elisabeth, X0), vorfahr(x0,maria): nein mutter(elisabeth, X0), vorfahr(x0,maria): X0 = peter vorfahr(peter,maria): vater(peter,maria): ja usw. KI, SS 07, F ol7, Seite 37, 26. Juni2007

38 Syntaxkonventionen von Prolog Namen Aus Großbuchstaben, Kleinbuchstaben, Ziffern und (Unterstrich) oder nur aus Sonderzeichen Konstanten: Variablen: erstes Zeichen ist Kleinbuchstabe erstes Zeichen ist Großbuchstabe oder oder nur: (wildcard, joker, Leerstelle) Terme Funktor(component 1,...,component n ) Stelligkeit von Prädikaten/ Funktionen ist nicht variabel. gleicher Funktorname mit verschiedener Stelligkeit ergibt anderen Funktor z.b. Schreibweise: vater/2 KI, SS 07, F ol7, Seite 38, 26. Juni2007

39 arithmetische Ausdrücke: Die Operatoren +,,, / und die Vergleichsoperatoren <=,... sind erlaubt. Infix usw. ist teilweise möglich: z.b. a b + c steht für den Term +( (a, b), c). Zahlen sind abhängig von der Implementierung. KI, SS 07, F ol7, Seite 39, 26. Juni2007

40 Gleichheit Spezialprädikat = (Gleichheit) kann definiert werden durch X = X. Z.B.?- besitzt(peter, X) = besitzt(peter,buch(lloyd,prolog)) yes; X = buch(lloyd,prolog) Gleichheitsabarbeitung benutzt Unifikation KI, SS 07, F ol7, Seite 40, 26. Juni2007

41 Arithmetische Vergleiche erlaubte Operatoren: =, \=, <, >, =<, >=, =\=, =:= Beachte: die Operanden müssen als Zahl ausgewertet sein vor Auswertung des Ausdrucks = 7 ergibt: no =:= 7 ergibt yes D.h., es gibt einen Unterschied zwischen Term und Wert. KI, SS 07, F ol7, Seite 41, 26. Juni2007

42 Zuweisung und Auswertung Zuweisung mit gleichzeitiger Auswertung kann man mit is durchführen: X is danach: X 8 X = danach X KI, SS 07, F ol7, Seite 42, 26. Juni2007

43 Datenstrukturen und Unifikation in Prolog Term-Gleichungen werden durch Instanziierung der Variablen gelöst: d.h. durch Unifikation k(x, a) = k(b, Y ) ergibt X = b, Y = a Auch Unterstrukturen können Wert von Variablen sein: k(x, h(a, Z)) = k(b, Y ) ergibt X = b, Y = h(a, Z) KI, SS 07, F ol7, Seite 43, 26. Juni2007

44 Datenstrukturen und Unifikation in Prolog: Beispiel k(x, h(a, Z), X) = k(h(y, b), U, U) ergibt zunächst: X = h(y, b), U = h(a, Z), X = U Endergebnis: X = h(a, b), U = h(a, b), Y = a, Z = b KI, SS 07, F ol7, Seite 44, 26. Juni2007

45 Beispiel Unifikation Dieses Ergebnis kann man z.b. im Prolog Interpreter direkt verifizieren. k(x,h(a,z),x) = k(h(y,b),u,u). X = h(a,b) Z = b Y = a U = h(a,b) yes KI, SS 07, F ol7, Seite 45, 26. Juni2007

46 Behandlung des occurs-check k(x, X) = k(y, h(y )) erfordert Unifikation von X = h(x). Es gibt eine Lösung in unendlichen Bäume: X = h(h(h(...))). h Prolog-Implementierungen vermeiden den occurs-check. Oft abgeschaltet: ist nicht korrekt bzgl. P L 1 -Semantik Teilweise Elimination durch statische Analyse eliminiert. KI, SS 07, F ol7, Seite 46, 26. Juni2007

47 Listen in Prolog Prolog benutzt eine abkürzende Syntax: [1, 2, 3] entspricht cons(1,cons(2,cons(3,nil))) [] entspricht nil KI, SS 07, F ol7, Seite 47, 26. Juni2007

48 Listen in Prolog: member Element-Test mittels member member(x,[x _]). member(x,[_ Y]) :- member(x,y). Terminiert member in allen möglichen Situationen? member(s,t): wenn t keine Variablen enthält. dann wird t nächsten mal kleiner. beim KI, SS 07, F ol7, Seite 48, 26. Juni2007

49 member. Terminierung? member(y,y): Die erste Klausel unifiziert nicht (aber unifiziert, wenn occurs-check aus ist: Antwort: ja) Die zweite Klausel ergibt: member(x_1,[_ Y_1]) :- X_1 = Y = [_ Y_1] member(x_1,y_1). Die neue Anfrage ist: member([_ Y_1],Y_1) Nächste Unifikation ebenfalls mit zweiter Klausel member(x_2,[_ Y_2]) :- member(x_2,y_2) X_2 = [_ Y_1], Y_1 = [_ Y_2] usw. Man sieht: das terminiert nicht. KI, SS 07, F ol7, Seite 49, 26. Juni2007

50 Listen in Prolog: islist islist([_ X]) :- islist(x). islist([]). Diese Funktion terminiert ebenfalls für Listen ohne Variablen aber nicht für islist(x). Eine Umstellung der Klauseln ergibt: islist([]). islist([_ X]) :- islist(x). Dieses Programm terminiert für die Anfrage islist(x). Antwort: X = [], falls die Eingabe eine Liste ist. Antwort ist dann ja. KI, SS 07, F ol7, Seite 50, 26. Juni2007

51 Listen in Prolog: length laenge([],0). laenge([_ X],N) :- laenge(x,n_1), N is N_ Damit kann man folgende Beispiele rechnen:?- laenge([1,2,3], N). N = 3.?- laenge(x,2). Antwort X = [ 1, 2]. Aber: terminiert in manchen Implementierungen nicht KI, SS 07, F ol7, Seite 51, 26. Juni2007

52 Sortiere Listen von Zahlen: sortiert([]). sortiert([x]). sortiert([x [Y Z]]) :- X <= Y, sortiert([y Z]). sortiert_einfuegen(x,[],[x]). sortiert_einfuegen(x,[y Z], [X [Y Z]]) :- X =< Y. sortiert_einfuegen (X,[Y Z], [Y U]) :- Y < X, sortiert_einfuegen(x,z,u). ins_sortiere(x,x) :- sortiert(x). ins_sortiere([x Y], Z) :- ins_sortiere(y,u), sortiert_einfuegen(x,u,z). KI, SS 07, F ol7, Seite 52, 26. Juni2007

53 Programmierung von append: in Prolog: append([],x,x). append([x Y],U,[X Z]) :- append(y,u,z). KI, SS 07, F ol7, Seite 53, 26. Juni2007

Auswahl von Klauseln und Atomen in Prolog

Auswahl von Klauseln und Atomen in Prolog 5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten

Mehr

Einiges zu Resolutionen anhand der Aufgaben 6 und 7

Einiges zu Resolutionen anhand der Aufgaben 6 und 7 Einiges zu Resolutionen anhand der Aufgaben 6 und 7 Es gibt eine Fülle von verschiedenen Resolutionen. Die bis jetzt behandelten möchte ich hier noch ein Mal kurz erläutern. Ferner möchte ich noch auf

Mehr

Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik

Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik Grundzeichen Aussagenlogik Aussagenvariablen P, Q, R,... Junktoren nicht und oder Runde Klammern (, ) Formeln Aussagenlogik Formeln sind spezielle Zeichenreihen aus Grundzeichen, und zwar 1 Jede Aussagenvariable

Mehr

Normalformen der Prädikatenlogik

Normalformen der Prädikatenlogik Normalformen der Prädikatenlogik prädikatenlogische Ausdrücke können in äquivalente Ausdrücke umgeformt werden Beispiel "X (mensch(x) Æ sterblich(x)) "X (ÿ mensch(x) sterblich(x)) "X (ÿ (mensch(x) Ÿ ÿ

Mehr

Übersicht. 9. Schließen in der Prädikatenlogik 1. Stufe

Übersicht. 9. Schließen in der Prädikatenlogik 1. Stufe Übersicht I Künstliche Intelligenz II Problemlösen III Wissen und Schlußfolgern 6. Logisch schließende Agenten 7. Prädikatenlogik 1. Stufe 8. Entwicklung einer Wissensbasis 9. Schließen in der Prädikatenlogik

Mehr

Logische Programmierung

Logische Programmierung Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren) Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)

Mehr

Unifikation (1) Allgemeines: Mechanismus zur Parameter-Übergabe. Zuweisung an Variablen (einmalig, symmetrisch). Pattern-Matching (Muster-Vergleich).

Unifikation (1) Allgemeines: Mechanismus zur Parameter-Übergabe. Zuweisung an Variablen (einmalig, symmetrisch). Pattern-Matching (Muster-Vergleich). 4. Prolog Ausführung 4-1 Unifikation (1) Allgemeines: Mechanismus zur Parameter-Übergabe. Zuweisung an Variablen (einmalig, symmetrisch). Pattern-Matching (Muster-Vergleich). Substitution: Abbildung von

Mehr

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren? Attribut-Werte-Paare Eine Eigenschaft kann beschrieben werden durch ein Paar [a,w]. Dabei bezeichnet a das Attribut und w den konkreten Wert aus dem Wertebereich W a des Attributs. Die Eigenschaften eines

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 6 14.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Syntax der Aussagenlogik: Definition der Menge

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen Gliederung Programmierparadigmen Programmieren in Prolog D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 26. April

Mehr

5 Logische Programmierung

5 Logische Programmierung 5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien

Mehr

LISTEN. Programmierkurs Prolog p.1

LISTEN. Programmierkurs Prolog p.1 LISTEN Programmierkurs Prolog p.1 Liste Listen sind rekursive Datenstrukturen, die dazu dienen geordnete Mengen von Elementen zu beschreiben. Man kann sich Listen in Prolog als Behälter vorstellen, die

Mehr

Zusammenfassung des Stoffes zur Vorlesung Formale Systeme

Zusammenfassung des Stoffes zur Vorlesung Formale Systeme Zusammenfassung des Stoffes zur Vorlesung Formale Systeme Max Kramer 13. Februar 2009 Diese Zusammenfassung entstand als persönliche Vorbereitung auf die Klausur zur Vorlesung Formale Systeme von Prof.

Mehr

Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Winter-Semester 2003/04. Wissensrepräsentation: Resolution (im PK1)

Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Winter-Semester 2003/04. Wissensrepräsentation: Resolution (im PK1) Einführung in die KI Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Wissensrepräsentation: Resolution (im PK1) 2. Resolution Vorbild für Formalismus : exakt, präzise, (theoretisch) beherrscht Aufbau: Zeichen

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik FH Wedel Prof. Dr. Sebastian Iwanowski GTI22 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 2: Logik, Teil 2.2: Prädikatenlogik FH Wedel Prof. Dr. Sebastian Iwanowski

Mehr

Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0

Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0 Einführung in das Programmieren Prolog Sommersemester 2006 Teil 2: Arithmetik Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln, Unifikation,

Mehr

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners

Mehr

6.1 Syntax und Semantik von Constraint-Logikprogrammen

6.1 Syntax und Semantik von Constraint-Logikprogrammen Kapitel 6 Logikprogrammierung mit Constraints Nachdem wir nun sowohl die reine Logikprogrammierung als auch ihre Implementierung in der Sprache Prolog betrachtet haben, wollen wir uns zum Schluss mit einer

Mehr

PROLOG. Tutorium zur Vorlesung Datenbanken und Wissensrepräsentation (Prof. Dr. G. Büchel)

PROLOG. Tutorium zur Vorlesung Datenbanken und Wissensrepräsentation (Prof. Dr. G. Büchel) PROLOG Tutorium zur Vorlesung Datenbanken und Wissensrepräsentation (Prof. Dr. G. Büchel) Stand: April 2010 Verfasser: Dipl.-Ing. (FH) Andreas W. Lockermann Vorwort Der Name PROLOG leitet sich aus den

Mehr

Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen

Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen Prädikatenlogik 1. Stufe (kurz: PL1) Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen notwendig: Existenz- und Allaussagen Beispiel: 54 Syntax der Prädikatenlogik erster Stufe (in der

Mehr

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

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln

Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln Vorlesung Letz WS 2002/2003 TU München: Logikbasierte Entscheidungsverfahren Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln INHALTE Die Bernays-Schönfinkel-Klasse bzw. Datenlogik-Formeln

Mehr

Prolog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene

Prolog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene Prolog Vertiefungsmodul Programmiersprachen VM Programmiersprachen - Prolog Florian Kleene Entstehung und Geschichte Aufbau von Prolog Programmen Fakten Regeln Anfragen Funktionsweise des Interpreters

Mehr

Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells

Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Effiziente Entscheidung der Erfüllbarkeit von Horn-Klauseln Effiziente Berechnung des kleinsten Herbrand-Modells M P Naive

Mehr

Logikprogrammierung. gehalten von Prof Dr. Jürgen Giesl im Sommersemester 2006 an der RWTH Aachen

Logikprogrammierung. gehalten von Prof Dr. Jürgen Giesl im Sommersemester 2006 an der RWTH Aachen Logikprogrammierung gehalten von Prof Dr. Jürgen Giesl im Sommersemester 2006 an der RWTH Aachen eine studentische Mitschrift von Florian Heller florian@heller-web.net Diese Mitschrift erhebt keinen Anspruch

Mehr

8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht

8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht 8. Logische Programmierung GPS-8-1 Übersicht zur logischen Programmierung GPS-8-2 Themen dieses Kapitels: Deklaratives Programmieren: Problem beschreiben statt Algorithmus implementieren (idealisiert).

Mehr

Mathematik für Informatiker I

Mathematik für Informatiker I Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft

Mehr

Logic in a Nutshell. Christian Liguda

Logic in a Nutshell. Christian Liguda Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung

Mehr

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen Prolog Syntax Liste, Variable [ Term Liste ] Listenelemente: Trennung durch Komma [1, pferd, klaus] Kopf und Rest einer Liste (head and tail): Trennung durch [K R] = [1, pferd, klaus] (K = 1, R = [pferd,

Mehr

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen Algorithmen für OBDD s 1. Reduziere 2. Boole sche Operationen 1 1. Reduziere siehe auch M.Huth und M.Ryan: Logic in Computer Science - Modelling and Reasoning about Systems, Cambridge Univ.Press, 2000

Mehr

Logik-Programme. Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat

Logik-Programme. Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat Logik-Programme Definition: Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat die Form {P }. Eine Prozedurklausel ist eine Klausel der Form {P, Q 1, Q 2,..., Q k } mit k 1. P

Mehr

3. Logik-Programmierung

3. Logik-Programmierung 3. Logik-Programmierung 3.1. Vorbemerkungen Idee: Ausführen eines Logik-Programms entspricht Herleitung leerer Klausel. Zusätzliche Verwendung einer Antworterzeugungskomponente (liefert Rechenergebnis).

Mehr

Prüfungsprotokoll Kurs 1825 Logik für Informatiker. Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015

Prüfungsprotokoll Kurs 1825 Logik für Informatiker. Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015 Prüfungsprotokoll Kurs 1825 Logik für Informatiker Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015 1. Aussagenlogik Alphabet und AS gegeben, wie sind die Aussagenlogischen

Mehr

Fakten, Regeln und Anfragen

Fakten, Regeln und Anfragen Fakten, Regeln und Anfragen Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de 18.10.99 GK Prolog - Fakten, Regeln und Anfragen 1 Programmieren = Problemlösen Prolog ist eine deklarative

Mehr

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,

Mehr

Einführung in die Constraint-Programmierung

Einführung in die Constraint-Programmierung examen.press Einführung in die Constraint-Programmierung Grundlagen, Methoden, Sprachen, Anwendungen Bearbeitet von Petra Hofstedt, Armin Wolf 1. Auflage 2007. Taschenbuch. xii, 388 S. Paperback ISBN 978

Mehr

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010 SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................

Mehr

Teil 8. Resolution und Prädikatenlogik erster Stufe

Teil 8. Resolution und Prädikatenlogik erster Stufe Teil 8 Resolution und Prädikatenlogik erster Stufe Widerlegungsbeweise Grundidee Widerlegungsbeweise: Wir wollen beweisen, dass aus einer gegebenen Formelmenge Φ eine Behauptung (Formel) φ semantisch folgt.

Mehr

Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74)

Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Logikprogrammierung Historie: Philosophie / Mathematik Künstliche Intelligenz Praktische Programmiersprache: Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Grundidee: Ein Programm ist

Mehr

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

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

1 Aussagenlogische Formeln

1 Aussagenlogische Formeln 1 Aussagenlogische Formeln Aufgabe 1.1 Transformieren Sie die Formel in disjunktive Normalform (DNF). ((:A! :B) ^ D)! ((A _ C) $ (:B ^ D)) Lösung 1.1 Schrittweise Transformation: Schritt 1: ((:A! :B) ^

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14

Mehr

Logik Vorlesung 6: Resolution

Logik Vorlesung 6: Resolution Logik Vorlesung 6: Resolution Andreas Maletti 28. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen Weitere Eigenschaften

Mehr

Übung 4: Aussagenlogik II

Übung 4: Aussagenlogik II Übung 4: Aussagenlogik II Diskrete Strukturen im Wintersemester 2013/2014 Markus Kaiser 8. Januar 2014 1/10 Äquivalenzregeln Identität F true F Dominanz F true true Idempotenz F F F Doppelte Negation F

Mehr

Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3

Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3 Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3 Aufgabe 1 (20 Punkte) Dialogische Logik a) Was isteine formal wahrebehauptung? Welche Aussageschematasindallgemeingültig? b) Überprüfen

Mehr

Prolog-Strukturen. bersicht. Woraus besteht ein Prolog-Programm? EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation

Prolog-Strukturen. bersicht. Woraus besteht ein Prolog-Programm? EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation Prolog-Strukturen bersicht Woraus besteht ein Prolog-Programm? Fakten, Regeln und Anfragen Kommentare EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation Was ist Unifikation? Unifikation

Mehr

Baumsuche, Partielle Ordnungen und eine neue Familie uninformierter A

Baumsuche, Partielle Ordnungen und eine neue Familie uninformierter A Baumsuche, Partielle Ordnungen und eine neue Familie uninformierter Algorithmen..9 Übersicht Einführung Übersicht - Verfahren - Eigenschaften Übersicht - Verfahren - Eigenschaften Übersicht - Verfahren

Mehr

1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit

1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit 1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit 1.1 Korrektheit Mit dem Kalkül der Prädikatenlogik, z.b. dem Resolutionskalkül, können wir allgemeingültige Sätze beweisen. Diese Sätze

Mehr

Datenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II

Datenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II Datenstrukturen DCG Grammatiken Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II Bäume Repräsentation von Mengen durch binäre Bäume: Eine häufige Anwendung von Listen ist es Mengen

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

3. Grundlegende Begriffe von Logiken - Aussagenlogik

3. Grundlegende Begriffe von Logiken - Aussagenlogik 3. Grundlegende Begriffe von Logiken - Aussagenlogik Wichtige Konzepte und Begriffe in Logiken: Syntax (Signatur, Term, Formel,... ): Festlegung, welche syntaktischen Gebilde als Formeln (Aussagen, Sätze,

Mehr

TU5 Aussagenlogik II

TU5 Aussagenlogik II TU5 Aussagenlogik II Daniela Andrade daniela.andrade@tum.de 21.11.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;)

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Musterlösung der Klausur zur Vorlesung Logik für Informatiker

Musterlösung der Klausur zur Vorlesung Logik für Informatiker Musterlösung der Klausur zur Vorlesung Logik für Informatiker Bernhard Beckert Christoph Gladisch Claudia Obermaier Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau

Mehr

Eine Einführung in Prolog

Eine Einführung in Prolog Eine Einführung in Prolog Emanuel Kitzelmann Professur für Angewandte Informatik / Kognitive Systems Fakultät für Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich-Universität Bamberg D-96045

Mehr

-ein Mustervergleicher ist ein Programm, das überprüft, ob ein Datum zu einem gegebenen Muster passt.

-ein Mustervergleicher ist ein Programm, das überprüft, ob ein Datum zu einem gegebenen Muster passt. Thema: Wie ein beispielhaftes Query-System funktioniert Vortragender: Petar Tonev 1. Vorworte - - Ziele und Aufgaben des Vortrags klären wie das für Beispiel verwendete Anfragesystem die Herleitung musterbasierter

Mehr

Übersicht Listen werden geführt für Listen Die wichtigste nicht-nummerische Datenstruktur Beliebige Länge Strikte Reihenfolge Wunschliste für Listen

Übersicht Listen werden geführt für Listen Die wichtigste nicht-nummerische Datenstruktur Beliebige Länge Strikte Reihenfolge Wunschliste für Listen n Einkaufslisten und Wortlisten Übersicht n Die wichtigste nicht-nummerische Datenstruktur beliebige Länge und fixe Reihenfolge n vs. n-stellige Terme Spezialnotation Klammerschreibweise nrest-strich n-unifikation

Mehr

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen Listen bersicht Listen allgemein Listen in Prolog Schreibweise Listen als rekursive Datenstruktur Unifikation Programmiertechniken mit Listen Zweck rekursive Suche Abbilden Erstellen von Prolog-Programmen

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

PROLOG. Eine Einführung. Sven Naumann

PROLOG. Eine Einführung. Sven Naumann PROLOG Eine Einführung Sven Naumann Sommersemester 2007 Inhaltsverzeichnis I Logikprogrammierung 7 1 Grundbegriffe 11 1.1 Prolog und Logikprogrammierung.................. 11 1.2 Terme.................................

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2016 20.04.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Resolution (1) Wir versuchen, durch eine Substitution die Variablen in geeigneter Weise durch Terme zu ersetzen, so dass beide Atome gleich werden.

Resolution (1) Wir versuchen, durch eine Substitution die Variablen in geeigneter Weise durch Terme zu ersetzen, so dass beide Atome gleich werden. Resolution (1) Voraussetzung: Klauselform Beispiel: { P(x, f (y))} {P(z, f (g(z)))} Aus dieser Klauselmenge können wir nur dann die leere Klausel ableiten, wenn es uns gelingt, die beiden Atome P(x, f

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 9: Prädikatenlogik schulz@eprover.org Rückblick 2 Rückblick: Vor- und Nachteile von Aussagenlogik Aussagenlogik ist deklarativ: Syntaxelemente entsprechen

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül

Mehr

Vorlesung: Künstliche Intelligenz

Vorlesung: Künstliche Intelligenz Vorlesung Fachbereich Mathematik/Informatik AG Vorlesung: - Logisches Schließen - P LS ES Marco Block-Berlitz 1 Vorlesung Fachbereich Mathematik/Informatik AG Inhaltliche Planung für die Vorlesung 1) Definition

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

Einführung in Prolog. Literatur

Einführung in Prolog. Literatur Einführung in Prolog Literatur Clocksin/Mellish Programming in Prolog Skript aus dem Kurs Max Hadersbeck Skript aus dem Kurs Hans Leiss Bratko Prolog Programming for Artificial Intelligence Prolog Lexikon

Mehr

Martin Kreuzer Stefan Kühling Logik für Informatiker

Martin Kreuzer Stefan Kühling Logik für Informatiker Martin Kreuzer Stefan Kühling Logik für Informatiker ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Hornlogik 3.A

Mehr

PROLOG Einführung. 1. Grundlagen. 2. Syntax. 3. Matching (Unifikation) 4. Semantik. 5. Listen. 6. Erweiterungen (Builtins) 7. Metalogische Konstrukte

PROLOG Einführung. 1. Grundlagen. 2. Syntax. 3. Matching (Unifikation) 4. Semantik. 5. Listen. 6. Erweiterungen (Builtins) 7. Metalogische Konstrukte 1. Grundlagen 2. Syntax 3. Matching (Unifikation) 4. Semantik 5. Listen 6. Erweiterungen (Builtins) 7. Metalogische Konstrukte PROLOG Einführung Repräsentation von Wissen Regeln Anfragen Drundlagen Repräsentation

Mehr

Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise

Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise Kapitel 3 Logik-Programmierung 3.1 Einführung Was statt Wie am Beispiel von Tiramisu Folie 145 Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

Theorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007

Theorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007 Seite 1 Theorem Proving Prädikatenlogik Seite 2 Gliederung Warum Theorembeweisen? Wie funktioniert Theorembeweisen? Wie kann mir das Werkzeug KIV dabei helfen? Seite 3 Warum Theorembeweisen? Wie kann man

Mehr

Was ist Logische Programmierung?

Was ist Logische Programmierung? Was ist Logische Programmierung? Die Bedeutung eines Computer-Programms kann durch Logik erklärt werden. Die Idee der logischen Programmierung besteht darin, die Logik eines Programms selber als Programm

Mehr

Programmierkurs Prolog, SS 1998

Programmierkurs Prolog, SS 1998 Programmierkurs Prolog SS 1998 Universität Dortmund LS VIII - Prof. K. Morik Inhalt Vergleiche von Termen Typtests auf Termen Zugriff auf den Termaufbau Zugriff auf Fakten und Regeln All-Solutions Prädikate

Mehr

Wissensbasierte Systeme/ Expertensysteme. Teil 2

Wissensbasierte Systeme/ Expertensysteme. Teil 2 Wissensbasierte Systeme/ Expertensysteme Teil 2 BiTS, Sommersemester 2004 Dr. Stefan Kooths KOOTHS BiTS: Wissensbasierte Systeme/Expertensysteme Teil 2 1 Gliederung 1. Einführung und Einordnung 2. Entscheidungsunterstützung(ssysteme)

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 2: Prädikatenkalkül erster Stufe Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. Oktober 2016 1/38 DIE INTERPRETATION

Mehr

Übungen zu Kognitive Systeme I

Übungen zu Kognitive Systeme I Übungen zu Kognitive Systeme I Kognitive Systeme / WIAI / Uni Bamberg 26. Oktober 2005 Inhalt 1 2 3 Listen und Mengen Input & Output Sonstiges 4 5 Die werden als Bonuspunkte auf die Klausur angerechnet.

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Hilbert-Kalkül (Einführung)

Hilbert-Kalkül (Einführung) Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle

Mehr

Fixpunktsemantik logischer Programme Pascal Hitzler Juli 1997 Kurzuberblick im Rahmen der Vorlesung Einfuhrung in Prolog von T. Cornell im Sommersemester 1997 an der Universitat Tubingen. Beweise sind

Mehr

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen Vorbemerkungen if (x > y) z = x; else z = y; Wenn es blaue Tiger regnet, dann fressen alle Kirschbäume schwarze Tomaten. q(1) = 1, q(i) = q(i 1) + 2i 1 für i 2 Welchen Wert hat q(6)? 24 ist durch 2 teilbar.

Mehr

3.Inferenzsysteme 3.4 Logische Programme und Antwortmengensemantik

3.Inferenzsysteme 3.4 Logische Programme und Antwortmengensemantik Darstellung, Verarbeitung und Erwerb von Wissen 3.Inferenzsysteme 3.4 Logische Programme und Antwortmengensemantik DVEW WS 2004/05 c Gabriele Kern-Isberner 1 Stratifizierte Programme (Whlg.) Sei P ein

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Grundthema: Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von Wahrheitswerten bzw. Beweis logischer Formeln.

Grundthema: Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von Wahrheitswerten bzw. Beweis logischer Formeln. 2. Logikkalküle Grundthema: Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von Wahrheitswerten bzw. Beweis logischer Formeln. 2.1 Aussagenlogik (Grundbegriffe) Aussagenlogische Formeln

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Einführung in die Informatik Algorithms

Einführung in die Informatik Algorithms Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche

Mehr

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

13. Funktionen in einer Variablen

13. Funktionen in einer Variablen 13. Funktionen in einer Variablen Definition. Seien X, Y Mengen. Eine Funktion f : X Y ist eine Vorschrift, wo jedem Element der Menge X eindeutig ein Element von Y zugeordnet wird. Wir betrachten hier

Mehr

Informationsverarbeitung auf Bitebene

Informationsverarbeitung auf Bitebene Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung

Mehr