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).