Sunteți pe pagina 1din 11

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică


Departamentul Calculatoare și Rețele

Raport
Lucrare de Laborator Nr.3.
Tema: Prelucrarea limbajului natural.

La disciplina “Programarea Logică și Inteligența Artificială”

A Efectuat:
st.gr C-151 Mamolea
Igor

A Verificat:
Lect. sup Lazu
Victoria
Chișinău 2018

Scopul Lucrării: Însuşirea principiilor fundamentale de prelucrarea limbajului natural.


Mersul Lucrării:
1. Am atras atenția asupra faptului că toate cunoștințele din această lucrare vor fi necesare și
la efectuarea celorlalte lucrări ;
2. Am lansat la executare programul elaborat in lucrarea nr. 1 si am cercetar schimbarile
semanticei procedurale ;
2.1. Schimbarea ordinei propozițiilor fapte ;
varianta inițială:

2
Varianta schimbată:

3
2.2. am ordinea propozițiilor-reguli în 2 variante
varianta inițială:

4
varianta schimbată:

5
2.3. am schimbat subscopurile în reguli în 2 variante
varianta initială:

6
Varianta schimbată:

7
Am observat că schimbarea ordinii propozițiilor schimbă ordinea afișării rezultatelor.

3. Am rezolvat problemele propuse.


3.1. Am elaborat și testat un program pentru determinarea unei valori minime din două
numere (X și Y) fără utlizarea predicatului cut.

Am observat că în acest caz sunt evaluate ambele expresii


3.2. Am elaborat un program pentru determinarea unei valori minime din două numere (X
și Y), utilizînd predicatul cut roșu și cut verde.
Programul min cu cut verde:

Programul min cu cut roșu

8
Am observat că în acest caz a doua clauza unde este utilizat predicatul cut nu este evalută prin
intermediul procedeului de backtracking.
3.3. Am rulat programul:
p(1).
p(2):-!.
p(3).
Am executat inerogările
P(X).
P(X),p(Y).
P(X),!,p(Y).

Am observat că utilizarea predicatului cut atît în baza de cunoștințe cît și în interogări reduce
numărul de rezultate afișate. Am observat că în cazul când cut-ul este utilizat în baza de
cunoștințe expresiile sunt evaluate doar până la prima apariție a acestuia.
3.4. Am definit un predicat pentru determinarea tutorur perechilor de copii care pot juca
într-un turneu de tenis. Condiția ca copiii să fie capabili să joace unul împotriva altuia
a fost ca ei să aibă aceiași vîrstă. Pentru verificare am utilizat următoarea bază de
cunoștințe:
copil(peter,9).copil(paul,10).copil(chris,9).copil(susan,9).

9
4. Am schimbat programul din punctul 2 utilizând cut verde în două reguli din baza de
cunoștințe.

Am observat că utilizarea cut-ului elimină rezultatele inversate din rezultatele evaluării.

Concluzie:
În această lucrare de laborator am făcut cunoștință cu metodele de control a backtracking-ului
în cadrul limbajului prolog. Am făcut cunoștință cu predicatele cut și fail. Aceste predicate

10
permit implementarea primitivă a structurilor de control prezente în cadrul limbajelor de nivel
mai înalt.

11