Programmieren in Logik

Slides:



Advertisements
Ähnliche Präsentationen
Wichtig für richtiges Lernen: Keine Ablenkung Richtige Raumtemperatur
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Hier einige Hieroglyphen:
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
WAS ZUM NACHDENKEN !
2. Programmstruktur – Teil 2
Programmieren in Logik
Künstlichen Intelligenz
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Christian Schindelhauer
Training IT-Grundlagen Interaktive Web-Seiten (HTML-Forms, CGI, Servlets) - Prof. Dr. Böttcher - S. cgi/ 1 Prolog als Datenbanksprache.
Listen & Beweisstrategie
Rekursive Listenverarbeitung
Semantik von Prolog & Unifikation
Syntax von Prolog & Familiendatenbasis
Fakten, Regeln und Anfragen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
handlungsorientierte Zugänge zur Algebra
Christian Schindelhauer
Günter Kniesel Advanced Prolog. 2 Bisher: Grundlagen Klauseln –Regeln –Fakten Terme –Die einzige Datenstruktur in Prolog –Listen als Sonderfall mit eigener.
Informatik Oberstufe A. Gillmann, M. Reker, V. Reimchen.
Berechnung des Osterdatums
Julien Gaugaz 7. April 2011.
Handlungsplanung und Allgemeines Spiel „Game Description Language (GDL)“ Peter Kissmann.
Wie macht man ein Sudoku? Transformations-Methode:
Präsentation der Gruppe Kreuz im Informatikunterricht am – Szenario 3.
Seit wann gibt es Adoptionen?
Hypertext Markup Language
Echtzeit-Systeme. Systeme zur unmittelbaren Steuerung und Abwicklung von Prozessen, welche dafür an sie gestellte quantitative Echtzeitanforderungen erfüllen.
Sortieralgorithmen Sortieren von Arrays.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Gleichungen und Gleichungssysteme
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Bereit ???? Nimm dir 10 Minuten Zeit. Ich versuche es dir zu erklären.
2.4 Rekursion Klassifikation und Beispiele
Faire und vertrauensvolle Zusammenarbeit an der
ENDLICHE KÖRPER RSA – VERFAHREN.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Leere Menge, Teilmenge, N, Z
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Earth Quiz Autorin: Svenja Marocchini
Einführung in die logische Programmierung mit PROLOG
7. Formale Sprachen und Grammatiken
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Lineare Gleichungen Allgemeine Einführung Äquivalenzumformungen
Binärbäume.
Vorstellen und Herleiten der Horner Schemas
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Ein wenig Mathematik, um den Vormittag zu beginnen... (Niveau 4. Klasse)
Überblick über das österreichische Erbrecht
Transaktionsanalyse.
Prolog-Kurs SomSem 2017 Daniel Beßler/Hagen Langer
Hexadezimale Darstellung von Zahlen
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
REKURSION + ITERATION.
Vorstellen und Herleiten der Horner Schemas
 Präsentation transkript:

Programmieren in Logik Prolog Programmieren in Logik 3. Rekursion GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Inhalt - Programmstruktur • Einführung • Beispiel 1 • Beispiel 2 • Zusammenfassung GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Einführung GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 3 Es soll der Begriff "Vorfahr" definiert werden. Schon einem kleinen Kind kann dieser Begriff schnell erklärt werden: Vorfahren sind die Eltern, Großeltern, Urgroßeltern, Ururgroßeltern, Urururgroßeltern usw. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 3 In PROLOG: grosseltern(X,V):- eltern(X,E), eltern(E,V). urgrosseltern(X,V):- eltern(X,E), grosseltern(E,V). ururgrosseltern(X,V) :- eltern(X,E), urgrosseltern(E,V. Schwierig ist die Verallgemeinerung - PROLOG kann mit "usw." nichts anfangen. Aber das Schema wird klar. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 3 In PROLOG werden solche Prädikate rekursiv definiert; also etwa so: Vorfahren von X sind die Eltern von X und die Vorfahren der Eltern von X. vorfahr(X,V) :- eltern(X,V). vorfahr(X,V) :- eltern(X,E), vorfahr(E,V). Das Prädikat wird also teilweise durch sich selbst erklärt. Die erste Klausel ist nicht-rekursiv und sorgt für die Terminierung, die zweite Klausel enthält den rekursiven Aufruf. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 3 Wie arbeit Prolog bei einem rekursiven Prädikat? GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Aufgaben Lösen Sie die Aufgaben 9 und 10. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4 Gegeben ist folgende Hierarchie von Weisungsbefugten in einer Firma: In der Firma gilt die Regel: der Weisungsbefugte eines Weisungsbefugten ist weisungsbefugt. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4 Ein PROLOG-Programm könnte so aussehen: weisungsbefugt(blau,argmann). weisungsbefugt(banaus,argmann). weisungsbefugt(clar,blau). weisungsbefugt(clon,blau). weisungsbefugt(clauer,blau). weisungsbefugt(calauer,banaus). weisungsbefugt(dorkel,clar). weisungsbefugt(dorkel,clon). weisungsbefugt(darb,calauer). weisungsbefugt(dreggler,calauer). weisungsbefugt(X,Y):- weisungsbefugt(X,Z), weisungsbefugt(Z,Y). GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4 Folgende Fragen werden gestellt: ?- weisungsbefugt(banaus,argmann). ?- weisungsbefugt(darb,banaus). ?- weisungsbefugt(argmann,Y). Warum antwortet das PROLOG-System bei der dritten Frage nicht? (-> trace) GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4 zunächst werden die Fakten probiert; dies misslingt dann wird die Regel probiert; dabei wird versucht, die Teilziele auf der rechten Seite zu erfüllen dies gelingt mit dem ersten Teilziel; dies ist aber nichts anderes als die ursprüngliche Anfrage das Spiel beginnt von vorne => Endlosschleife GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4a Lösungsidee: zwischen direkten Weisungsbefugten und Weisungsbefugten unterscheiden. dir_weisungsbefugter(blau,argmann). . . . dir_weisungsbefugter(dreggler,calauer). weisungsbefugter(X,Y) :- dir_weisungsbefugter(X,Y). weisungsbefugter(X,Y) :- dir_weisungsbefugter(X,Z), weisungsbefugter(Z,Y). GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Beispiel 4a Bei der letzten Regel kommt es auf die Reihenfolge der Teilziele auf der rechten Seite an. Die Regel: weisungsbefugter(X,Y):- weisungsbefugter(Z,Y), dir_weisungsbefugter(X,Z). ist zwar logisch gleichwertig aber prozedural falsch. Sie kann zu Endlosschleifen führen. Warum? GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Zusammenfassung Ein Problem rekursiv lösen heißt, es auf eine einfachere Version seiner selbst zurückzuführen. Dieses Zurückführen geschieht solange, bis ein unmittelbar lösbarer Anfang, der Rekursionsanfang, erreicht ist. Eine Regel heißt rekursiv, wenn das Prädikat des Regelkopfes auch im Regelkörper vorkommt. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz

Aufgaben Lösen Sie die Aufgaben 8 bis 10 im Arbeitsbuch Prolog Seite 24. GK Info 13 (Hö) PROLOG – Eine Sprache der Künstlichen Intelligenz