Documente Academic
Documente Profesional
Documente Cultură
REPUBLICII MOLDOVA
UNIVERSITATEA TEHNICĂ A MOLDOVEI
FACULTATEA CALCULATOARE, INFORMATICĂ ŞI
MICROELECTRONICĂ
DEPARTAMENTUL INFORMATICĂ ȘI INGINERIA
SISTEMELOR
RAPORT
pentru lucrarea de laborator nr.1
la disciplina: Sisteme de inteligență artificială
cu tema: Însuşirea ideilor fundamentale de
programare în Prolog.
A elaborat: A verificat:
st. gr. IA-161, Conf.univ.dr.
Cosciug Sergiu Lazu Victoria
CHIŞINĂU 2018
Scopul: Însuşirea ideilor fundamentale de programare în Prolog.
Desfaşurarea lucrării:
1. Se va citi breviarul teoretic. Se atrage atenţia asupra faptului că toate cunoştinţele din această
lucrare vor fi necesare şi în derularea celorlalte lucrări.
2. Se vor studia exemplele propuse , încercând găsirea altor posibilităţi de soluţionare a acestora.
Utilizaţi şi alte scopuri (interogări) pentru a testa definiţiile predicatelor introduse
3. Se va elabora un arbore genealogic şi o bază de cunoştiţe Prolog care descrie relaţiile existente
în familia proprie D-stră şi o să permite cercetarea acestor relaţii prin utilizarea scopurilor.
Arbore genealogic elaborat trebuie să conţină cel puţin trei nivele. Pentru cercetarea relaţiilor
existente în familie sa fie utilizate nu mai puţin de şase scopuri.
Codul sursă:
femeie(maria).
femeie(elena).
femeie(ana).
femeie(alexandra).
femeie(mariaDimitriu).
femeie(vasilita).
femeie(ioana).
femeie(zinaida).
femeie(valentina).
femeie(viorica).
femeie(mariana).
femeie(ionela).
femeie(nicoleta).
barbat(nichifor).
barbat(vasile).
barbat(ion).
barbat(haralampie).
barbat(boris).
barbat(costantin).
barbat(vitalie).
barbat(vladimir).
barbat(iurie).
barbat(alexandruTapes).
barbat(alexandruCodreanu).
barbat(ionel).
barbat(petru).
%parintii
parinte(alexandra,mariaDimitriu).
parinte(costantin,mariaDimitriu).
parinte(viorica,mariaDimitriu).
parinte(alexandra,haralampie).
parinte(costantin,haralampie).
parinte(viorica,haralampie).
parinte(nichifor,vasilita).
parinte(ioana,vasilita).
parinte(petru,vasilita).
parinte(nichifor,ion).
parinte(ioana,ion).
parinte(petru,ion).
parinte(maria,alexandra).
parinte(elena,alexandra).
parinte(ana,alexandra).
parinte(maria,nichifor).
parinte(elena,nichifor).
parinte(ana,nichifor).
parinte(nicoleta,elena).
parinte(nicoleta,vasile).
parinte(iurie,ioana).
parinte(iurie,alexandruTapes).
parinte(ionela,petru).
parinte(alexandruCodreanu,petru).
parinte(ionel,petru).
parinte(ionela,zinaida).
parinte(alexandruCodreanu,zinaida).
parinte(ionel,zinaida).
parinte(mariana,viorica).
parinte(mariana,boris).
parinte(vitalie,costantin).
parinte(vladimir,costantin).
parinte(vitalie,valentina).
parinte(vladimir,valentina).
%scopuri
mama(X,Y):-parinte(X,Y),femeie(Y).
tata(X,Y):-parinte(X,Y),barbat(Y).
bunica(X,Z):-parinte(X,Y),parinte(Y,Z),femeie(Z).
bunel(X,Z):-parinte(X,Y),parinte(Y,Z),barbat(Z).
frate(X,Y):-mama(X,Z),tata(X,Q),mama(Y,Z),tata(Y,Q),barbat(Y),X\=Y.
sora(X,Y):-mama(X,Z),tata(X,Q),mama(Y,Z),tata(Y,Q),femeie(Y),X\=Y.
matusa(X,Z):-parinte(X,Y),sora(Y,Z),femeie(Z).
unchi(X,Z):-parinte(X,Y),frate(Y,Z),barbat(Z).
verisor(X,Y):-((unchi(X,Z);matusa(X,Z)),(mama(Y,Z);tata(Y,Z))),barbat(Y).
verisoara(X,Y):-((unchi(X,Z);matusa(X,Z)),(mama(Y,Z);tata(Y,Z))),femeie(Y).
sotie(X,Y):-mama(Z,Y),tata(Z,X),femeie(Y),X\=Y.
sot(X,Y):-tata(Z,Y),mama(Z,X),barbat(Y),X\=Y.
%cumnat(X,Y):-sot(Z,Y),sora(X,Z);sot(Z,Y),sora(Q,Z),sot(X,Q).
%cumnata(X,Y):-sotie(Z,Y),frate(X,Z);sotie(Z,Y),frate(Q,Z),sotie(X,Q).
socru(X,Y):-parinte(Z,Y),sot(X,Z),barbat(Y);parinte(Z,Y),sotie(X,Z),barbat(Y).
soacra(X,Y):-parinte(Z,Y),sot(X,Z),femeie(Y);parinte(Z,Y),sotie(X,Z),femeie(Y).
socrii(X,Y,Z):-sotie(Q,X),tata(Q,Y),mama(Q,Z); sot(Q,X),tata(Q,Y),mama(Q,Z).
Rezultatele:
Y este mama lui X.
Observăm că relația de soți se repetă de un număr de ori egal cu numărul de copii comuni pe care
îi au X și Y.
Concluzie:
Astfel dupa introducerea unei intrebari, PROLOG extrage din cunostinte intrebarea si
continutul de evaluare a expresiei si evalueaza datele conform argumentelor date in intrebare. In
final am obtinut un sistem de arbore genealogic in limbajul de programare PROLOG. Teoria
propusa in laborator a fost utila si a servit ca repere pentru efectuarea laboratorului.