Sunteți pe pagina 1din 10

Ministerul Educaiei al Republicii Moldova

Facultatea Calculatoare Informatic i Microelectronic


Catedra Informatica Aplicat

Lucrare de Laborator Nr.1


Sisteme de inteligen artificial

Chiinau 2012

Scopul lucrarii:

De elaborat un arbore genealogic i o baz de cunotine Prolog care descrie relaiile


existente n familie i o s permite cercetarea acestor relaii prin utilizarea acopurilor externe.
Arborele genealogic elaborat trebuie s conin cel puin trei nivele. Pentru cercetarea relaiilor
existente n familie sa fie utilizate nu mai puin de ase scopuri.
Codul Sursa:
PREDICATES
barbat(symbol).
femeie(symbol).
parinte(symbol,symbol).
frate(symbol,symbol).
sor(symbol,symbol).
sora(symbol,symbol).
frat(symbol,symbol).
bunic(symbol,symbol).
bunica(symbol,symbol).
verisor(symbol,symbol).
var(symbol,symbol).
unchi(symbol,symbol).
cuscru(symbol,symbol).
cuscra(symbol,symbol).
cumnat(symbol,symbol).
socru(symbol,symbol).
s(symbol,symbol).
soacra(symbol,symbol).
CLAUSES
barbat(piotr).
barbat(piotr_jr).
barbat(max).
barbat(ion).
barbat(vasile).
barbat(valeriu).
barbat(mircea).
barbat(radu).
femeie(maria).

femeie(varvara).
femeie(liudmila).
femeie(elena).
femeie(iulia).
femeie(mariana).
parinte(piotr,piotr_jr).
parinte(maria,piotr_jr).
parinte(piotr,liudmila).
parinte(maria,liudmila).
parinte(piotr_jr,max).
parinte(piotr_jr,iulia).
parinte(liudmila,mariana).
parinte(liudmila,ion).
parinte(vasile,elena).
parinte(varvara,elena).
parinte(elena,max).
parinte(elena,iulia).
parinte(valeriu,radu).
parinte(valeriu,mircea).
parinte(vasile,valeriu).
parinte(varvara,valeriu).
frat(X,Y):-parinte(Z,X),parinte(Z,Y),femeie(Z),X<>Y.
frat(X,Y):-parinte(Z,X),parinte(Z,Y),barbat(X),barbat(Y),X<>Y.
frate(X,Y):-barbat(X),femeie(Y),not(not(frat(X,Y))).
frate(X,Y):-barbat(X),barbat(Y),not(not(frat(X,Y))).
sor(X,Y):-parinte(Z,X),parinte(Z,Y),femeie(Z),X<>Y.
sor(X,Y):-parinte(Z,X),parinte(Z,Y),femeie(X),femeie(Y),X<>Y.
sora(X,Y):-femeie(X),femeie(Y),not(not(sor(X,Y))).
sora(X,Y):-femeie(X),barbat(Y),not(not(sor(X,Y))).
bunic(A,B):-barbat(A),parinte(A,C),parinte(C,B).
bunica(A,B):-femeie(A),parinte(A,C),parinte(C,B).
verisor(A,B):-parinte(C,D),parinte(C,E),parinte(D,A),parinte(E,B),A<>B,D<>E.
var(A,B):-barbat(A),femeie(B),not(not(verisor(A,B))).
var(A,B):-barbat(A),barbat(B),not(not(verisor(A,B))).
var(A,B):-femeie(A),barbat(B),not(not(verisor(A,B))).

unchi(A,B):-frat(A,C),parinte(C,B).
cuscru(S,D):-bunic(S,A),bunic(D,A),S<>D.
cuscra(S,D):-bunica(S,A),bunica(D,A),S<>D.
cumnat(A,C):-parinte(A,D),parinte(B,D),frate(B,C),not(frate(A,C)).
cumnat(A,C):-parinte(A,D),parinte(B,D),sora(B,C),not(sora(A,C)).
s(A,B):-parinte(B,C),parinte(D,C),parinte(A,D),not(parinte(A,B)).
socru(A,B):-barbat(A),barbat(B),not(not(s(A,B))).
socru(A,B):-barbat(A),femeie(B),not(not(s(A,B))).
soacra(A,B):-femeie(A),barbat(B),not(not(s(A,B))).
soacra(A,B):-femeie(A),femeie(B),not(not(s(A,B))).
Rezultatele programului.

Fig.1 Predicatele care sunt in arborele genealogic.

Fig. 2 Clausele din arborele genealogic

Fig.3 Clauze din arbore genealogic

Fig.4 Clauze din arbore genealogic

Fig.5 Afiarea rezultatelor a clauzei printe

Fig.6 Afiarea rezultatelor a clauzei frate

Fig.7 Afisarea rezultatelor a clauzelor unchi,cuscru

Fig.8 Afiarea rezultatelor a clauzelor bunic i bunic

Fig.9 Afiarea rezultatelor a clauzelor cuscru,cuscra,cumnat

Fig.10 Afisarea rezultatelor a clauzelor soacra i vr

Fig. 11 Arborele genealogic

Concluzie:

n urma efecturii lucrri de laborator am creat deprinderi de a programa n turbo Prolog


crend arborele genealogic a familiei mele. n arborele genealogic sunt relaiile de rudenie
posibile

ntr-o familie de nivelul trei, nivelul ntii fiind bunei nivelul trei fiind nepoii. Am

folosit negaia negaiei pentru a evita dublarea rezultatelor.

S-ar putea să vă placă și