Documente Academic
Documente Profesional
Documente Cultură
Raport
A efectuat:
A verificat: Lazu Victoria
Chişinău 2015
INTRODUCERE
Sistemul expert (SE) este un program (pachet de programe), care simulează într-o oarecare măsură
activitatea unui expert uman într-un anumit domeniu. Mai mult decât atât, acest domeniu este strict limitat.
Principalul scop al SE este de a consulta în domeniul pentru care acest SE este proiectat.
Un SE este format din trei componente principale:
1) Baza de cunoştinţe (BC). BC este partea centrală a sistemului expert. Aceasta conţine o colecţie
de fapte şi de cunoştinţe (regulile) pentru extragerea altor cunoştinţe. Informaţiile conţinute în baza de
cunoştinţe sunt folosite de către SE pentru determinarea răspunsului în timpul consultării. De obicei, BC
sunt separate de programul principal sau stocate pe alte mijloace fixe.
2) Mecanismul (motorul) de inferenţă. MI conţine descrieri ale modului de aplicare a cunoştinţelor
cuprinse în baza de cunoştinţe. În timpul consultării, MI iniţiază SE să înceapă procesările, îndeplinind
regulile determină admisibilitatea soluţiei găsite şi transmite rezultatele la Interfaţa sistemului (System User
Interface).
3) Interfaţa sistemului utilizatorului (ISU) este parte a SE, care interacţionează cu utilizatorul.
Funcţiile ISU includ: primirea informaţiilor de la utilizator, transferul rezultatelor în forma cea mai
convenabilă utilizatorului, explicarea rezultatelor primite de SE (oferă informaţii cu privire la atingerea
rezultatelor).
2
cunoştinţe: de producţie, de reţea şi de cadru (frame-uri) modele de reprezentare a cunoştinţelor.
Modelul de reţea se bazează pe reprezentarea cunoştinţelor în forma unei reţele ale cărei noduri
corespund conceptelor iar arcele relaţiilor dintre ele.
La baza modelului pe cadre (frame-uri) se află o grupare logică de atribute a obiectului, precum şi
depozitarea şi prelucrarea grupurilor logice care sunt descrise în cadre.
Modelul de producţie se bazează pe regulile de forma "dacă-atunci" şi permite introducerea
fragmentelor de cunoştinţe faptice în regulile limbajului Prolog. Anume astfel sunt construite SE bazate pe
reguli.
3
MERSUL LUCRĂRII
4
cond(6, "pizza", "maioneza").
cond(7, "pizza", "saliame").
cond(8, "pizza", "olive").
cond(9, "pizza", "masline").
cond(10, "pizza", "spanac").
cond(11, "pizza", "ciuperci").
cond(12, "pizza", "tocana de porc").
cond(13, "pizza", "ardei iute").
cond(14, "pizza", "ton").
topic("pizza").
5
answer(N, 1),
!,
ask(K, QList).
ask(K, [N | QList]):-
cond(N, X, Y),
format("Are ~s - ~s? (da/nu/?): > ", [X, Y]),
getAnswer(A),
!,
ask(A, K, [N | QList]).
ask(_, []).
ask(2, K, QList):- !,
explanation(K),
ask(K, QList).
ask(A, _, [N | _]):-
assert(answer(N, A)),
fail.
ask(1, K, [_ | QList]):-
ask(K, QList).
correct(QList):-
answer(N, 1),
not(member(N, QList)),
!,
fail;
succeed.
getAnswer(A):-
read(N),
matchInputToAnswer(N, A).
matchInputToAnswer(da, 1):-!.
matchInputToAnswer(_, 0).
delete_db:-
retractall(answer(_, _)).
run:-
delete_db,
topic(Topic),
expert(Topic),
!,
succeed.
succeed:-true.
6
1.3 Mecanismul de determinare a răspunsului
Sistemul Expert are o baza de cunoștințe și condiții pentru satisfacea anumitor reguli. Folosind
motorul de inferență se încearcă satisfacerea tuturor condițiilor pentru a demonstra o anumită regulă. Se
încearcă demonstrarea lor pe rînd, spre exemplu primul apel al predicatului expert extrage prima regulă din
baza de cunoștințe, aceasta fiind: rule(1, "pizza", "Margarita", [1, 2]).este lista de condiții
care trebuie să fie adevărate pentru ca regula să fie adevărată, deci se verifică dacă soluția căutată este
"Margarita". Verificarea condițiilor este încredințată predicatului ask, care interoghează utilizatorul dacă
condițiile sunt adevărate, în caz că una din condiții este falsă nu are rost să fie întrebate și alte condiții pentru
această regulă și se trece la următoarea.
Dacă a fost primit răspuns la toate condițiile pentru o anumită regulă se încearcă verificarea dacă toate
răspunsurile au fost da, aceasta este realizat în predicatul correct(QList), și se afișează răspunsul găsit.
În cazul cînd eșuează predicatul correct(QList) d se trece la următoare definiție a predicatului
care afișează răspunsul de eșec și anume: “Nu ajung date pentru: pizza.”.
7
CONCLUZII