Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hildebrand Drexler Geändert vor über 9 Jahren
1
11. Wissenbasis und Regelsysteme Sebastian Linek
2
Überblick ► Einführung ► Hinzufügen und Löschen von Klauseln ► Mengenprädikate ► Regelsysteme ► Aufgaben
3
Hinzufügen und Löschen von Klauseln Programm WissensbasisDateiconsult assert
4
:- dynamic maennlich/1 maennlich(fritz).maennlich(heinz).maennlich(manfred). Hinzufügen von Klauseln ► Deklarieren der Klauseln ► asserta(+Klausel) („a“ für Anfang) ► assertz(+Klausel) („z“ für Ende) :- dynamic funktor/arität :- dynamic maennlich/1 maennlich(heinz).maennlich(manfred). ?- asserta(maennlich(fritz)). :- dynamic maennlich/1 maennlich(fritz).maennlich(heinz).maennlich(manfred).maennlich(jens). ?- assertz(maennlich(jens)).
5
Löschen von Klauseln ► Ebenso Regeln ► retract(+Klausel) ► Aller Klauseln asserta(elternteil(X,Kind):-vater(X,Kind)). ?- retract(maennlich(manfred). :- dynamic maennlich/1 maennlich(fritz).maennlich(heinz).maennlich(jens). ?- retract(maennlich(X).
6
Hinzufügen und Löschen von Klauseln ► Pro: + KI-Programme + effizientere Programme ► Contra - Schwer Fehler aufzuspüren
7
Beispiel ► FibonacciZahlen fib(1, 1). fib(2, 1). fib(N, F):- N > 2, N2 is N - 2, fib(N2, F2), N1 is N – 1, fib(N1, F1), F is F2 + F1. asserta(fib(N,F)), !. [1,1,2,3,5,8...] fib(n) = fib(n-2)+fib(n-1)
8
Mengenprädikate ► failure-driven loop vater(steffen, paul). vater(fritz, karin). vater(steffen, lisa). vater(paul, maria). ?- vater(steffen, Kind). Kind = paul Kind = lisa No ?- vater(steffen, Kind), fail. ?- vater(steffen, Kind), write(Kind), nl, fail. ?- vater(steffen, Kind), write(Kind), nl, fail.
9
Mengenprädikate ► findall(Lösungsvariable, Ziel, Lösungsliste) ► Anwendungsbereiche: - Sortierte Lösungsausgabe - Ausgabe einer Lösungsmenge ► Funktionsweise: - Erstellung und Speicherung alle Lösungen - Aufsammeln der wichtigen Daten - Löschen der unnötigen Daten ?- findall(Kind, vater(steffen, Kind), KindListe).
10
Regelsysteme Säugetier RaubtierHuftier GepardTigerZebraGiraffe Merkmale
11
Aufgaben ► I. In einer Wissensbasis stehen Fakten der Art „jagt(Jaeger, Beute)“. Sie wollen alle Beutetiere wissen. Wie verwenden Sie dazu findall ? ► II. Erweitern Sie die „Vaterdatenbank“ in „Vortrag.pl“ um einige Einträge. Schreiben Sie anschließend ein Prädikat, dass nach Eingabe des Vaters die Anzahl der Kinder ausgibt. (Tip: length(Liste, Ergebnis) könnte nützlich sein) ► III. Vervollständigen Sie das Regelsystem in „Vortrag.pl“ mit den als Kommentar eingefügten Regeln und führen Sie testweise einige Tierbestimmungen durch. ► IV. In der Wissensbasis sind Fakten mit Namen, Beruf und Alter von Personen gespeichert (siehe „Vortrag.pl“). Es soll die älteste Person ermittelt werden.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.