Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen
|
|
- Walter Pohl
- vor 7 Jahren
- Abrufe
Transkript
1 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 2011, c 2011 D.Rösner D. Rösner PGP D. Rösner PGP in Prolog: in Prolog: Prolog... Programming in Logic (s.a. [Sco00], 11.3) Programmierer kann eine Kollektion von Axiomen angeben, aus denen Theoreme abgeleitet werden können Benutzer gibt Ziel (goal), d.h. zu beweisendes Theorem, vor und die Implementierung versucht, mit Axiomen und Inferenzschritten das Ziel zu beweisen zu Inferenzschritten gehört auch Auswahl von Werten für Variable Axiome werden in Standard-Notation, als sog. Horn-Klauseln geschrieben Horn-Klauseln bestehen aus Kopf (head) oder Konsequenz H Körper (body) aus Termen B i H B 1, B 2,..., B n Semantik: wenn alle B i wahr, dann H ebenfalls wahr lies: H, wenn B 1, B 2,... und B n Beachte: nicht alle logischen Aussagen lassen sich als Hornklauseln schreiben D. Rösner PGP D. Rösner PGP
2 in Prolog: in Prolog: Kern der Verarbeitung ist Schlussfolgern mit Resolution Beispiel: C A, B D C D A, B bei der Resolution können freie Variable durch Unifikation mit Ausdrücken in übereinstimmenden Termen Werte bekommen Beispiel: mortal(x) human(x) human(sokrates) mortal(sokrates) D. Rösner PGP D. Rösner PGP in Prolog: in Prolog: Elementare Analogie: Interpreter funktionaler Sprachen bewertet Funktionen in einer Umgebung mit anderen definierten Funktionen und Konstanten Prolog: Interpreter arbeitet im Kontext einer Datenbasis von Klauseln (Horn-Klauseln), die als wahr gelten Klauseln aus Termen zusammengesetzt Terme können Konstante, Variable oder Strukturen sein Konstante ist entweder Atom oder Zahl Struktur ist entweder ein logisches Prädikat oder eine Datenstruktur D. Rösner PGP D. Rösner PGP
3 in Prolog: Elementare : Variable Atome... ähneln Symbolen in Lisp lexikalische Konventionen: wenn Identifikator, dann beginnend mit Kleinbuchstaben; z.b. hans uni_magdeburg Zeichenketten in Anführungszeichen (quotes): z.b. Hallo, Welt spezielle Zeichen:+ * Zahlen... wie in anderen Programmiersprachen z.b. 4711, 3.14 Variable in Prolog lexikalisch: Identifikator beginnend mit Grossbuchstaben z.b. Kopf Kontostand X Y3 Skopus (Gültigkeitsbereich) einer Variable ist immer die Klausel, in der sie verwendet wird keine Typendeklaration; Typüberprüfung nur zur Laufzeit, wenn spezielle Verwendung versucht wird (vgl. Lisp) Variable können durch Unifikation instantiiert werden (d.h. einen Wert annehmen) D. Rösner PGP D. Rösner PGP : Strukturen Fakten vs. Strukturen in Prolog aus Funktor und Liste von Argumenten, die bel. Terme, d.h. Atome oder Variable oder (rekursiv) Strukturen, sind Beispiele: married(gerhard, doris) bundeskanzler(gerhard) bintree(a, bintree(b,c)) Beachte: ( unmittelbar, ohne Leerzeichen, an Funktor anschliessend Klauseln lassen sich unterscheiden in Fakten und Fakten... Horn-Klauseln ohne rechte Seite happy(doris). married(doris, gerhard). bundeskanzler(gerhard). (rechte Seite ist leer, d.h. linke Seite gilt ohne Voraussetzungen) D. Rösner PGP D. Rösner PGP
4 Fakten Faktenbasis Verwandschaftsbeziehungen Beispiel einer reinen Faktenbasis zu Verwandschaftsbeziehungen Prädikat eltern, das eine Eltern-Kind-Beziehung zwischen erstem und zweitem Argument ausdrückt eltern(hans, susi). eltern(clara, susi). eltern(susi, paul). Arten möglicher Abfragen (Queries) Gilt die Eltern-Kind-Beziehung für zwei Individuen? Hat ein bestimmtes Elternteil Kinder und wenn ja, welche? Welche Elternteile sind zu einem Individuum bekannt? Welche Eltern-Kind-Beziehungen sind in der aktuellen Faktenbasis bekannt? eltern(susi, karl). D. Rösner PGP D. Rösner PGP Faktenbasis Verwandschaftsbeziehungen Fakten vs. interaktives Formulieren und Ausführen der zugehörigen Queries Gilt die Eltern-Kind-Beziehung für zwei Individuen? Hat ein bestimmtes Elternteil Kinder und wenn ja, welche? Welche Elternteile sind zu einem Individuum bekannt? Welche Eltern-Kind-Beziehungen sind in der aktuellen Faktenbasis bekannt?... Horn-Klauseln mit rechter Seite aus konjunktiv verknüpften Termen happy(woman) :- married(woman, Man), vip(man). vip(person) :- bundeskanzler(person). vip(person) :- president(person). Wie sind diese zu lesen? D. Rösner PGP D. Rösner PGP
5 Fakten vs. Fakten vs. mit lassen sich aus gegebenen Fakten weitere Fakten ableiten Beispiel: Grosseltern-Enkel-Beziehungen ableitbar durch Verknüpfen von Eltern-Kind-Beziehungen Frage: Wann stehen zwei Personen in einer Grosseltern-Enkel-Beziehung? als Prolog-Regel: grosseltern(x,y) :- eltern(x,z), eltern(z,y). damit sind u.a. folgende Anfragen möglich (bitte interaktiv erproben): Gilt die Grosseltern-Enkelkind-Beziehung für zwei Individuen? Hat eine bestimmte Person Enkel und wenn ja, welche? Welche Grosseltern sind zu einem Individuum bekannt? Welche Grosseltern-Enkelkind-Beziehungen sind in der aktuellen Faktenbasis bekannt? D. Rösner PGP D. Rösner PGP in Prolog in Prolog da in Prolog oft verwendet werden, gibt es dafür spezielle Darstellungen Beispiel: Liste mit (vier festen) Personennamen [max, paula, susi, tom] können auch Variable enthalten für Elemente, die noch bestimmt werden müssen Beispiel: Liste mit vier noch unbekannten Personennamen [P1, P2, P3, P4] Beispiel: Liste mit (zwei) bekannten und (zwei) noch offenen Namen [max, FreundinVonMax, susi, SusisFreund] eine spezielle Notation erlaubt, mit variablen resten darzustellen : [Kopf Rest] Semantik: die dargestellte Struktur ist unifizierbar mit einer Liste mit einem bel. ersten Element und einer (evtl. leeren) Restliste bel. Länge Beispiele: [max, paula, susi, tom] Kopf = max Rest = [paula, susi, tom] [max] Kopf = max Rest = [] D. Rösner PGP D. Rösner PGP
6 in Prolog in Prolog die Notation für variable resten erlaubt allgemeinere Darstellungen : [Elem1, Elem2,..., ElemN Rest] Semantik: die dargestellte Struktur ist unifizierbar mit einer Liste mit N Elementen, die jeweils mit den Variablen oder Konstanten Elem1, Elem2,..., ElemN unifizieren, und einer (evtl. leeren) Restliste bel. Länge Beispiele: eine Liste mit mind. drei bekannten und evtl. weiteren Elementen [max, paula, susi Weitere] eine Liste mit mind. vier und evtl. weiteren Elementen [Elem1, Elem2, Elem3, Elem4 Rest] Programmieren in Prolog erfordert Denken in Beispiel: Aneinanderhängen von statt wie in funktionalen Sprachen eine (zweistellige) Funktion zum Aneinanderhängen von zu entwerfen, fragt man sich beim Denken in : Wann liegt zwischen drei beliebigen endlichen List1, List2 und List3 die (dreistellige) Relation append vor? D. Rösner PGP D. Rösner PGP in Prolog in Prolog: Relation append Wann liegt zwischen drei beliebigen endlichen List1, List2 und List3 die (dreistellige) Relation append vor? die Relation append soll dabei genau dann zwischen List1, List2 und List3 vorliegen, wenn List3 sich durch Aneinanderhängen von List1 und List2 ergibt Spezialfall: falls List1 leer, dann liegt Relation append für beliebige List2 vor mit List3 unifiziert mit List2 als Prolog-Fakt: append([], List, List). D. Rösner PGP D. Rösner PGP
7 in Prolog: Relation append in Prolog: Relation append Regel: falls List1 nicht leer (d.h. setzt sich aus Kopf H und bel. Rest R1 zusammen), dann liegt Relation append zwischen List1(= [H1 R1]), einer beliebigen Liste List2 und einer aus H1 als Kopf und Z als Rest gebildeten Liste vor, wenn append zwischen R1, List2 und Z vorliegt als Prolog-Regel: append([h1 R1], List2, [H1 Z]) :- append(r1, List2, Z). zusammengefasst: die Relation append ist durch die beiden folgenden Horn-Klauseln definiert append([], List, List). append([h1 R1], List2, [H1 Z]) :- append(r1, List2, Z). damit lassen sich ganz unterschiedliche Anfragen (Queries) beantworten (wird interaktiv gezeigt): Liegt zwischen drei instantiierten die Relation append vor? Zu welcher Liste führt das Aneinanderhängen zweier instanttiierter? Auf welche Weise lässt sich eine gegebene Liste als Konkatenation zweier darstellen bzw. in zwei Teillisten zerlegen? D. Rösner PGP D. Rösner PGP in Prolog: Relation append Literatur: I m.a.w. Prolog kennt bei solchen Prädikaten keine bevorzugten Argumente für Ein- oder Ausgabe, sondern unterschiedliche Berechnungen können aufgrund der Definition der Relation durchgeführt werden Michael Lee Scott. Programming Language Pragmatics. Academic Press, San Diego, CA, USA, ISBN D. Rösner PGP D. Rösner PGP
Programmiersprache Prolog
Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 6.2 Logikprogrammierung Prolog 240 Programmiersprache Prolog Prolog-Programm ist Liste von Fakten (einelementige Hornklausel) und Regeln (mehrelementige
MehrÜbungen zu Kognitive Systeme I
Übungen zu Kognitive Systeme I Kognitive Systeme / WIAI / Uni Bamberg 14. Oktober 2005 Inhalt 1 2 3 4 5 6 Ablauf der Übungen Ablauf SWI-Prolog Ab nächster Woche wird es Übungszettel geben Ablauf der Übungen
MehrProgrammierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 22. Juni 2009, c 2009 D.Rösner D. Rösner PGP 2009...
MehrÜbungen zu Kognitive Systeme I
Übungen zu Kognitive Systeme I Stephan Weller (Stephan.Weller@wiai.uni-bamberg.de) Kognitive Systeme / WIAI / Uni Bamberg 19. Oktober 2005 Inhalt Intro Was ist Prolog? Wie funktioniert Prolog? Rekursion
MehrLogisches und funktionales Programmieren
Prof. Dr. Christoph Beierle, Dr. Harald Ganzinger, Prof. Dr. Michael Hanus Kurs 01816 Logisches und funktionales Programmieren LESEPROBE Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten
MehrLogikprogrammierung. Berechnung durch Resolution Die Programmiersprache Prolog
Logikprogrammierung Berechnung durch Resolution Die Programmiersprache Prolog Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 6.1 Logikprogrammierung Berechnung durch Resolution 213 Resolution
MehrExpertensysteme Sprachverarbeitung Symbolische Informationsverarbeitung Graphentheoretische Probleme Planungsprobleme Rapid Prototyping...
Logische Programmierung Programm Menge von Formeln (Klauseln) Berechnung Beweis einer Formel (eines Ziels/Goals) mit Hilfe des Programms 17 Anwendungen Expertensysteme Sprachverarbeitung Symbolische Informationsverarbeitung
MehrProgrammierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...
MehrRekursive Listenverarbeitung
Rekursive Listenverarbeitung Übersicht Rekursion ist die wichtigste Programmiertechnik in Prolog! Rekursive Datenstrukturen Einfache und rekursiv gebildete Strukturen Rekursive Datenstrukturen und rekursive
MehrProgrammierparadigmen
Programmierparadigmen in Scheme D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2013, 17. Juni 2013, c 2011-13 D.Rösner D.
MehrGliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme
Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,
MehrDeklarative Semantik
7. Deklarative Semantik 7-1 Deklarative Semantik Bisher: Prolog als Programmiersprache. Operationale Semantik : Wie wird ein Programm ausgeführt? Welche Antworten werden berechnet? Jetzt: Prolog als logischer
MehrFragen 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
MehrSWP Logische Programme Teil 2
SWP Logische Programme Teil 2 Bernhard Aichernig Institut für Softwaretechnologie aichernig@ist.tugraz.at Institute for Software Technology Inhalt! Motivation! Logische Programme (LP)! Resolution! Unifikation!
MehrBestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen. Ein Programm besteht aus
Syntax und Datenstrukturen Bestandteile von Prolog-Programmen Übersicht Woraus besteht ein Prolog-Programm? Syntaxdiagramme für Bildungsregeln Programm, Klausel, Anfrage, 3 Sorten von en atomare e, Variablen,
MehrTeil 4: Rekursion und Listen
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 4: Rekursion und Listen Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln,
MehrBestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen
Syntax und Datenstrukturen Bestandteile von Prolog-Programmen Übersicht Woraus besteht ein Prolog-Programm? Syntaxdiagramme für Bildungsregeln Programm, Klausel, Anfrage, 3 Sorten von en atomare e, Variablen,
MehrProlog 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:
MehrDas Programm ist deterministisch: es gibt für jedes Ziel höchstens eine Klausel, die zur erfolgreichen Ableitung des Zieles
Green Cuts Klauseln zum Mischen zweier geordneten Listen: merge ( [X Xs ], [Y Ys ], [X Zs ] ) : X < Y, merge ( Xs, [ Y Ys ], Zs ). (1) merge ( [X Xs ], [Y Ys ], [ X,Y Zs ] ) : X =:= Y, merge (Xs, Ys, Zs
MehrProlog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich
Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich Inhalt Vom deklarativen Wissen zum prozeduralen Programm Vom Programm zur Berechnung Elemente eines Prolog-Programms Zugverbindungen
MehrÜ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
Mehr1 Inhalt der Vorlesung B-PS1
1 Inhalt der Vorlesung B-PS1 1.1 Tag 1 1.1.1 Vormittag Geschichte der Programmiersprachen Wie viele Programmiersprachen gibt es? https://en.wikipedia.org/wiki/list_of_programming_languages Esoterische
MehrResolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:
Resolutionskalkül Ein Kalkül ist eine Kollektion von syntaktischen Umformungsregeln, die unter gegebenen Voraussetzungen aus bereits vorhandenen Formeln neue Formeln erzeugen. Der Resolutionskalkül besteht
MehrÜbung zu Kognitive Systeme I
Übung zu Kognitive Systeme I Prolog Stephan Weller (Stephan.Weller@wiai.uni-bamberg.de) Kognitive Systeme / WIAI / Uni Bamberg 1. November 2006 Inhalt Intro Was ist Prolog? Wie funktioniert Prolog? Rekursion
MehrProlog. Modellieren in Prolog. Argumente eines Prädikates. Fakten
Prolog Idee (Kowalski 1979) Algorithmus = Logik + Kontrolle Logik: was ist das Problem? Kontrolle: wie lšse ich es geschickt? Sichtweisen: Theorembeweiser (Resolution) Datalog (Datenbankanfragesprache)
MehrTeil 1: Ein motivierendes Beispiel
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 1: Ein motivierendes Beispiel Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax,
MehrKünstliche Intelligenz Logische Agenten & Resolution
Künstliche Intelligenz Logische Agenten & Resolution Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Inferenz-Algorithmus Wie könnte ein
MehrWas ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie
Was ist Logik? Geschichte der Logik eng verknüpft mit Philosophie Begriff Logik wird im Alltag vielseitig verwendet Logik untersucht, wie man aus Aussagen andere Aussagen ableiten kann Beschränkung auf
MehrProgrammierparadigmen
in Haskell Programmierparadigmen in Haskell D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 4. April 2011, c 2011 D.Rösner
MehrNormalformen 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) Ÿ ÿ
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 8: Arithmetik, Listenprädikate, weitere Prolog Prädikate Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 1/67 ARITHMETIK
MehrWozu formale Logik? Programmiersprachen Logik im Fingerhut. Formeln. Logik im Fingerhut (24. Januar 2005) Belegung und Interpretation
Wozu formale Logik? Logik im Fingerhut Studiengang Informatik Universität Bremen präzise Beschreibung von Aussagen über die Welt bzw. über verschiedene Welten Ziehen und Überprüfen von Schlussfolgerungen
MehrDeduktion in der Aussagenlogik. Semantische Folgerungsbeziehung. Zusammenhang zwischen semantischer und syntaktischer Folgerung
Deduktion in der Aussagenlogik Menge von Ausdrücken der Aussagenlogik beschreibt einen bestimmten Sachverhalt, eine "Theorie" des Anwendungsbereiches Was folgt logisch aus dieser Theorie? Deduktion: aus
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 10: Prolog - Das Prädikat CUT Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 12. Dezember 2016 1/38 UNTERBINDEN
MehrDatalog. Moritz Kaufmann 1. Juni Technische Universität München
Datalog Moritz Kaufmann 1. Juni 2015 Technische Universität München Datalog Grundlagen Zusammenfassung 1. Faktenbasis (EDB = extensionale Datenbasis) 2. + logische Herleitungsregeln Ableitung neuer Fakten
MehrGliederung. Funktionale Programmierung. Pattern matching in Haskell. Pattern matching in ERLANG. Materialien zur Vorlesung
Gliederung Funktionale Programmierung Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 7.
MehrEigenschaften der Resolution für PL1 Formeln
Eigenschaften der Resolution für PL1 Formeln Widerlegungsvollständigkeit (ohne Beweis): Sofern man Resolution auf eine widersprüchliche Klauselmenge anwendet, so existiert eine endliche Folge von Resolutionsschritten,
MehrGliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz
Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg
MehrStructure Sharing vs. Structure Copying
a, b, c, d?-a. a, e, f CP a a, g b, c, d b, g, h g, h, c, d c, k, g h, c, d g c, d h k, g, d backtracking SLD-Ableitungen a :- b,c,d. a :- e,f. a :- g. b :- g,h. c :- k,g. g. h. CP a e, f a g { } backtracking
MehrAbstrakte Syntax von Prolog (1)
3. Prolog Syntax 3-1 Abstrakte Syntax von Prolog (1) Abstrakte und konkrete Syntax: Abstrakte Syntax: Nur Datenstrukturen, die der Parser anlegt (z.b. Operatorbaum). Konkrete Syntax: Zeichenketten, die
MehrDeduktion in der Aussagenlogik
Deduktion in der Aussagenlogik Menge von Ausdrücken der Aussagenlogik beschreibt einen bestimmten Sachverhalt, eine "Theorie" des Anwendungsbereiches. Was folgt logisch aus dieser Theorie? Deduktion: aus
MehrGliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension
Gliederung Algorithmen und Datenstrukturen I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10, 16. Oktober 2009, c
MehrLogische 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
MehrGrundlagen der Kognitiven Informatik
Grundlagen der Kognitiven Informatik Resolutionskalkül und Prolog Ute Schmid Kognitive Systeme, Angewandte Informatik, Universität Bamberg letzte Änderung: 14. Dezember 2010 U. Schmid (CogSys) KogInf-Resolution
MehrEinfü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
MehrGrundlagen 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.
MehrProlog 2. Kapitel: Matching und Beweisführung
Zusammenfassung: Kapitel 1 Prolog 2. Kapitel: Matching und Beweisführung Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Wir haben die Grundlagen und Anwendungsgebiete
MehrÜbungsblatt zu Teil 2 (Einführung und Grundkonzepte)
Einführung in das Programmieren Prolog SS2006 Dr. Gunter Grieser Übungsblatt zu Teil 2 (Einführung und Grundkonzepte) Version 1.1 Aufgabe 2.1 (Schwierigkeitsgrad 1) a. Erstellen Sie ein Prolog-Programm,
MehrSLDNF Resolution. Soundness. Steffen Staab ISWeb Vorlesung Datenbanken II
SLDNF Resolution Soundness Abgeleitetes Normal Goal Sei G= L 1,,L n und C=A M 1,,M q. Dann ist G abgeleitet von G und C mittels des MGU θ, wenn die folgenden Bedingungen gelten: a. L m ist ein Atom, das
MehrProseminar Programmiersprachen. Prolog. Johannes Weißl. TU München. 15. November 2006
Proseminar Programmiersprachen Prolog Johannes Weißl TU München 15. November 2006 Inhalt 1 Einführung 2 Grundlegende Sprachelemente 3 Weiterführende Konzepte 4 Ausführung 5 Programm Geschichte Prolog (
Mehr3. Exkurs in weitere Arten der Programmierung
3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Funktional-Logische Programmierung in Prolog Funktional-logische Programmierung in Prolog Prolog Programming
MehrDataLog. Datenbank-Programmiersprache für deduktive Datenbanken. Proseminar Programmierparadigmen und Sprachen. Nico Braunisch
DataLog Datenbank-Programmiersprache für deduktive Datenbanken Proseminar Programmierparadigmen und Sprachen Nico Braunisch Inhalt DataLog Motivation Definition Entstehung Syntyx & Semantik Bedeutung CodeQuest
MehrFakten, Regeln, und Anfragen
Fakten, Regeln, und Anfragen Was sind Wissensbasen? Wie sehen Prolog-Wissensbasen aus? Und was für Anfragen können wir stellen? Die Prologsyntax. Programmierkurs Prolog p.1 Eine Wissensbasis (auf deutsch)
MehrTeil X.4. C vs. Pascal
Teil X.4 C vs. Pascal 1 Unterschiede im Typsystem (1) Einfache Typen C char int enum long float double Pascal Char Integer Word Longint Single Double Typdeklaration double summe; /* Var summe: Double;
MehrGrundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen
Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrBinä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.
Mehr2 Logikprogrammierung am Beispiel Prolog
2 Logikprogrammierung am Beispiel Prolog 2.1 Logikprogrammierung mit einfachen Daten 2.2 Variablenumbenennung 2.3 Syntax 2.4 Komplexe Daten 2.5 Der Cut 2.6 Negation als Fehlschlag 2.7 Literaturhinweise
MehrKünstliche Intelligenz Einführung in Prolog
Künstliche Intelligenz Einführung in Prolog Stephan Schwiebert WS 2009/20010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Wiederholung: Prolog-Syntax Ein einfaches Expertensystem
MehrFormale Systeme. Aussagenlogik: Resolutionskalku l. Prof. Dr. Bernhard Beckert, WS 2018/2019
Formale Systeme Prof. Dr. Bernhard Beckert, WS 2018/2019 Aussagenlogik: Resolutionskalku l KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft
MehrInformatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser
Informatik A Prof. Dr. Norbert Fuhr fuhr@uni-duisburg.de auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser 1 Teil I Logik 2 Geschichte R. Descartes (17. Jhdt): klassische
MehrLogik-Grundlagen. Syntax der Prädikatenlogik
Logik-Grundlagen X 1 :...: X k : ( A 1 A 2... A m B 1 B 2... B n ) Logische und funktionale Programmierung - Universität Potsdam - M. Thomas - Prädikatenlogik III.1 Syntax der Prädikatenlogik Prädikat:
MehrKapitel L:III. III. Prädikatenlogik
Kapitel L:III III. Prädikatenlogik Syntax der Prädikatenlogik Semantik der Prädikatenlogik Wichtige Äquivalenzen Einfache Normalformen Substitution Skolem-Normalformen Standard-Erfüllbarkeit Prädikatenlogische
MehrResolution und Regeln
Resolution und Regeln Hans Kleine Büning University of Paderborn Institute for Computer Science Group Paderborn, 18. Juli 2013 Resolution und Regeln Hans Kleine Büning 1/9 Resolution Theorem Resolution:
Mehr5 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
MehrMehr Listen und noch ein bisschen Arithmetik
Mehr Listen und noch ein bisschen Arithmetik append und was man damit machen kann Arithmetik in Prolog Restrekursive Prädikate Programmierkurs Prolog p.1 Listen konkatenieren?- append([1,2,3],[a,b,c],x).
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 9: Prolog - Das Prädikat CUT Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Dezember 2016 1/31 Läßt sich nämlich
MehrGliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest
Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,
MehrProlog: Listen und Cut. Mark Ugarov
Prolog: Listen und Cut Mark Ugarov Übersicht Wiederholung und Anwendung Wie nutzt man? Listen Cut Anwendungsbeispiele immer parallel Wiederholung: Aufruf von Prolog-Programmen Notwendige Software: SWI
MehrTeil 8: Fortgeschrittene Techniken
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 8: Fortgeschrittene Techniken Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax,
MehrMathematik 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
MehrFakten, 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
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 11: Logikprogramme Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 19. Dezember 2016 1/55 WIEDERHOLUNG: HORN-KLAUSELN
MehrTutoraufgabe 1 (Programmieren in Prolog):
Prof. aa Dr. J. Giesl S. Dollase, M. Hark, D. Korzeniewski Tutoraufgabe 1 (Programmieren in Prolog): In dieser Aufgabe sollen einige Abhängigkeiten im Übungsbetrieb Programmierung in Prolog modelliert
MehrFragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen
Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen 1. Was ist eine formale Sprache? Menge von Zeichenketten, die aus den Symbolen eines beliebigen Alphabets aufgebaut sind. Zeichenkette:
MehrMathematische Grundlagen I Logik und Algebra
Logik und Algebra Dr. Tim Haga 21. Oktober 2016 1 Aussagenlogik Erste Begriffe Logische Operatoren Disjunktive und Konjunktive Normalformen Logisches Schließen Dr. Tim Haga 1 / 21 Präliminarien Letzte
MehrDeduktion. Semantische Folgerungsbeziehung. Syntaktische Folgerungsbeziehung. Zusammenhang zwischen semantischer und syntaktischer Folgerung
Deduktion Menge von Ausdrücken der Aussagenlogik oder der Prädikatenlogik beschreibt einen bestimmten Sachverhalt, quasi eine "Theorie" des Anwendungsbereiches. Was folgt logisch aus dieser Theorie? Deduktion:
MehrVerfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere
Prolog-Arithmetik Verfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere Verfügbare arithmetische Vergleichsoperationen: >, =, =
MehrEinführung in PROLOG
Einführung in PROLOG 1.Einfache Beispiele Es gibt nur drei Konstrukte in PROLOG. Fakts (Fakten), rules (Regeln) und queries. Eine Sammlung von Fakten und Regeln nennt man knowledge base. Beim Programmieren
MehrAnwendungen der Logik: Deklarative bzw. Logik-Programmierung in PROLOG
Logik für Informatik Technische Universität Darmstadt Sommersemester 2003 Fachbereich Mathematik Mathias Kegelmann 8. Juli 2003 Anwendungen der Logik: Deklarative bzw. Logik-Programmierung in PROLOG Übersicht
MehrPath Finding with Prolog. AAI Projekt Thien-An Bui und Marlene Wittwer FHNW Brugg-Windisch, HS 2014
Path Finding with Prolog AAI Projekt Thien-An Bui und Marlene Wittwer FHNW Brugg-Windisch, HS 2014 Ziel Grundlagen von Prolog vermitteln Beispiel Path Finding Zugstrecken erklären Ablauf 1. Allgemeines
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrProgram = Logic + Control
Program = Logic + Control Prozedurale/imperative Sprachen: Abläufe formulieren Computer führt aus von-neumann-maschine Idee von deklarativen/logischen/funktionalen Programmiersprachen: Zusammenhänge formulieren
MehrProgrammierkurs 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
MehrEigenschaften der SLD-Resolution
Eigenschaften der SLD-Resolution Vollständigkeit der SLD-Resolution für Hornklauseln Sei F eine inkonsistente Hornklauselmenge. Dann gibt es eine SLD-Widerlegung von F. Beweisskizze: Für inkonsistentes
MehrTheorie der Informatik. Theorie der Informatik. 2.1 Äquivalenzen. 2.2 Vereinfachte Schreibweise. 2.3 Normalformen. 2.
Theorie der Informatik 24. Februar 2014 2. Aussagenlogik II Theorie der Informatik 2. Aussagenlogik II 2.1 Äquivalenzen Malte Helmert Gabriele Röger 2.2 Vereinfachte Schreibweise Universität Basel 24.
MehrAussagenlogik. Formale Methoden der Informatik WiSe 2012/2013 teil 6, folie 1
Aussagenlogik Formale Methoden der Informatik WiSe 22/23 teil 6, folie Teil VI: Aussagenlogik. Einführung 2. Boolesche Funktionen 3. Boolesche Schaltungen Franz-Josef Radermacher & Uwe Schöning, Fakultät
MehrLogik Vorlesung 7: Grundlagen Prädikatenlogik
Logik Vorlesung 7: Grundlagen Prädikatenlogik Andreas Maletti 5. Dezember 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen
MehrWissensreprä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)
MehrProlog 2. Kapitel: Matching und Beweisführung
Prolog 2. Kapitel: Matching und Beweisführung Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Petersen Prolog: Kapitel 2 1 Zusammenfassung: Kapitel 1 Wir haben die
MehrKünstliche Intelligenz Hornklauseln & Prolog
Künstliche Intelligenz Hornklauseln & Prolog Stephan Schwiebert WS 2007/2008 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Terminologie (A B C) E Rumpf einer Klausel
MehrFunktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik
MehrTheorembeweiser und ihre Anwendungen
Theorembeweiser und ihre Anwendungen Prof. Dr.-Ing. Gregor Snelting Dipl.-Inf. Univ. Daniel Wasserrab Lehrstuhl Programmierparadigmen IPD Snelting Universität Karlsruhe (TH) IPD Snelting, Uni Karlsruhe
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 2 und 3: Resolution Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 3. November 2017 1/43 HERBRAND-STRUKTUR Sei
MehrLogische Programmierung
1. Vorbemerkungen 1-1 Logische Programmierung Stefan Brass Institut für Informatik Fachgebiet Datenbanken und Informationssysteme Prof. Dr. Udo W. Lipeck 1. Vorbemerkungen 1-2 Organisatorisches Sprechstunde:
MehrLogik I. Symbole, Terme, Formeln
Logik I Symbole, Terme, Formeln Wie jede geschriebene Sprache basiert die Prädikatenlogik erster Stufe auf einem Alphabet, welches aus den folgenden Symbolen besteht: (a) Variabeln wie zum Beispiel v 0,v
Mehr