Baza wiedzy KLOCKI

Transkrypt

Baza wiedzy KLOCKI
REPREZENTACJA BAZY WIEDZY jako GRAFU SKIEROWANEGO bez pętli
MODEL GRAFOWY
Baza wiedzy KLOCKI
Dana jest baza wiedzy opisująca świat klocków za pomocą relacji na/2
% I definicja programu
% na(X,Y)
% opis: spełniony, gdy X leży bezpośrednio na Y
na(d,c).
na(c,a).
na(c,b).
na(a,e).
na(b,g).
Bazę tę możemy przedstawić w postaci grafu skierowanego bez pętli
w którym :
wierzchołki - klocki
krawędź od wierzchołka X do Y reprezentuje relację na(X,Y)
Zatem mamy następujący graf:
d
a
e
b
g
c
Interesująca nas relacja nad/2 odpowiada w modelu grafowym relacji droga/2.
Zatem do wyznaczenia relacji nad/2 możemy użyć definicji droga/2 w grafie
następująco:
%
%
%
%
II definicja programu
droga(X,Y)
droga w grafie skierowanym bez pętli, gdzie krawędź od wierzchołka
X do Y określona jest przez relację następny/2
droga(X,Y):- nastepny(X,Y).
droga(X,Y):- nastepny(X,Z),
droga(Z,Y).
Aby wykorzystać powyższą definicję należy określić relację nastepny/2:
%
%
%
%
III definicja programu
nastepny(X,Y)
opis: spełniony, gdy istnieje krawędź
od wierzchołka X do Y
nastepny(X,Y):- na(X,Y).
W celu określenia relacji nad/2 możemy teraz wykorzystać
definicję relacji droga/2:
% IV definicja programu
% nad(X,Y)
% opis: spełniony, gdy X leży nad Y niekoniecznie bezpośrednio
nad(X,Y):- droga(X,Y).
Baza wiedzy RODZINA
Dana jest baza wiedzy opisująca rodzinę za pomocą relacji rodzic/2
% I definicja programu
% rodzic(X,Y)
% opis: spełniony, gdy X jest rodzicem Y
rodzic(ania, jacek).
rodzic(ania,basia).
rodzic(jan,jacek).
rodzic(jan,basia).
rodzic(stefan,jan).
rodzic(maria,ania).
rodzic(borys,ania).
Bazę tę możemy przedstawić w postaci grafu skierowanego bez pętli
w którym :
wierzchołki - osoby
krawędź od wierzchołka X do Y reprezentuje relację rodzic(X,Y)
Zatem mamy następujący graf:
Maria
Basia
Ania
Borys
Jan
Stefan
Jacek
Interesująca nas relacja przodek/2 odpowiada w modelu grafowym relacji droga/2.
Zatem do wyznaczenia relacji przodek/2 możemy użyć definicji droga/2 w grafie
następująco:
%
%
%
%
II definicja programu
droga(X,Y)
droga w grafie skierowanym bez pętli, gdzie krawędź od wierzchołka
X do Y określona jest przez relację następny/2
droga(X,Y):- nastepny(X,Y).
droga(X,Y):- nastepny(X,Z),
droga(Z,Y).
Aby wykorzystać powyższą definicję należy określić relację nastepny/2:
%
%
%
%
III definicja programu
nastepny(X,Y)
opis: spełniony, gdy istnieje krawędź
od wierzchołka X do Y
nastepny(X,Y):- rodzic(X,Y).
W celu określenia relacji przodek/2 możemy teraz wykorzystać
definicję relacji droga/2:
% IV definicja programu
% przodek(X,Y)
% opis: spełniony, gdy X jest przodkiem Y
przodek(X,Y):- droga(X,Y).