Sunteți pe pagina 1din 8

Fa

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA


UNIVERSITATEA TEHNICĂ A MOLDOVEI
ll 0
Facultatea Calculatoare Informatica si Microelectronica
Catedra - Automatica și Tehnologii Informaționale 8

Raport

Lucrare de laborator nr. 3


la disciplina ,,Programarea Logică și Inteligența Artificială”

Tema: Sistem Expert.

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

Figura 1 - Structura generală a SE


În funcţie de metoda de clasificare şi plasare a informaţiei există mai multe tipuri de Baze de

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

1.1 Crearea bazei de cunoștințe pentru sistemul expert

Codul program pentru baza de cunoștințe:


rule(1, "pizza", "Margarita", [1, 2]).
rule(2, "pizza", "Palermo", [1, 2, 4, 9]).
rule(3, "pizza", "Fagotta", [1, 3, 9]).
rule(4, "pizza", "Capricioasa", [5, 6, 11]).
rule(5, "pizza", "Tuna", [2, 8]).
rule(6, "pizza", "Diablo", [2, 7, 8, 13]).
rule(10, "pizza", "Pepperoni", [2, 13]).
rule(11, "pizza", "Suprem", [2, 5, 7, 12]).
rule(9, "pizza", "Rancho", [2, 3, 6, 11]).
rule(7, "pizza", "Primavera", [2, 10, 11]).
rule(8, "pizza", "Neapolitana", [2, 5, 8, 9, 11]).
rule(12, "pizza", "Ester", [2, 5, 11]).

cond(1, "pizza", "mozzarella").


cond(2, "pizza", "sos de pizza").
cond(3, "pizza", "piept de pui").
cond(4, "pizza", "pastrama").
cond(5, "pizza", "sunca").

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

1.2 Mecanismul de inferență pentru Sistemul Expert

Figura 2 – Diagrama structurală a Sistemului Expert


Codul program:
:-dynamic answer/2.
 
expert(Topic):-
rule(K, Topic, Goal, QList),
ask(K, QList),
correct(QList),
!,
format("Rezultat: ~s - ~s.", [Topic, Goal]).
expert(Topic):-
format("Nu ajung date pentru: ~s.", [Topic]).
 
ask(_, [N | _]):-
answer(N, 0),
!,
fail.
ask(K, [N | QList]):-

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

În cadrul acestei lucrări de laborator am implementat un sistem expert în domeniul recunoașterii


dispotivelor mobile. Am căpătat experiență practică în aplicarea principiilor de funcționare a sistemelor de
intelegență artificială în limbajul pe programare Prolog.

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

  • Tema: Algoritmul de Criptografie RSA: Functionare
    Tema: Algoritmul de Criptografie RSA: Functionare
    Document2 pagini
    Tema: Algoritmul de Criptografie RSA: Functionare
    Ion Popescu
    Încă nu există evaluări
  • Exemplu Raport
    Exemplu Raport
    Document27 pagini
    Exemplu Raport
    Fil Gorea
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document6 pagini
    Lab 1
    Ion Popescu
    Încă nu există evaluări
  • Laboratorul nr.1
    Laboratorul nr.1
    Document1 pagină
    Laboratorul nr.1
    Ion Popescu
    Încă nu există evaluări
  • Algoritmul de Criptografie DSA
    Algoritmul de Criptografie DSA
    Document2 pagini
    Algoritmul de Criptografie DSA
    DumitruGuba
    Încă nu există evaluări
  • Instr CET08
    Instr CET08
    Document4 pagini
    Instr CET08
    Oleg Botnaru
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 2
    Lab 2
    Document2 pagini
    Lab 2
    Ion Popescu
    Încă nu există evaluări
  • Plia 7
    Plia 7
    Document53 pagini
    Plia 7
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 141
    Plia 4 141
    Document55 pagini
    Plia 4 141
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 14
    Plia 4 14
    Document34 pagini
    Plia 4 14
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 141
    Plia 4 141
    Document55 pagini
    Plia 4 141
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 14
    Plia 4 14
    Document34 pagini
    Plia 4 14
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 14
    Plia 4 14
    Document34 pagini
    Plia 4 14
    Ion Popescu
    Încă nu există evaluări
  • Exemplu
    Exemplu
    Document1 pagină
    Exemplu
    Ion Popescu
    Încă nu există evaluări
  • Plia 4 141
    Plia 4 141
    Document55 pagini
    Plia 4 141
    Ion Popescu
    Încă nu există evaluări
  • Plia 2 15
    Plia 2 15
    Document40 pagini
    Plia 2 15
    Ion Popescu
    Încă nu există evaluări
  • Plia 1 15
    Plia 1 15
    Document53 pagini
    Plia 1 15
    Ion Popescu
    Încă nu există evaluări
  • HGJHB
    HGJHB
    Document19 pagini
    HGJHB
    Ion Popescu
    Încă nu există evaluări
  • Plia 3 15
    Plia 3 15
    Document37 pagini
    Plia 3 15
    Ion Popescu
    Încă nu există evaluări
  • Algoritmul de Criptografie DSA
    Algoritmul de Criptografie DSA
    Document2 pagini
    Algoritmul de Criptografie DSA
    DumitruGuba
    Încă nu există evaluări
  • Cuprins
    Cuprins
    Document3 pagini
    Cuprins
    Ion Popescu
    Încă nu există evaluări
  • Functionare
    Functionare
    Document4 pagini
    Functionare
    Ion Popescu
    Încă nu există evaluări
  • Else Fcim Utm MD PDF
    Else Fcim Utm MD PDF
    Document2 pagini
    Else Fcim Utm MD PDF
    Ion Popescu
    Încă nu există evaluări
  • Indrumar TAP
    Indrumar TAP
    Document120 pagini
    Indrumar TAP
    Ion Popescu
    Încă nu există evaluări
  • Rapot IOC
    Rapot IOC
    Document5 pagini
    Rapot IOC
    Ion Popescu
    Încă nu există evaluări
  • SI Lab 1 Zubcov Olga
    SI Lab 1 Zubcov Olga
    Document17 pagini
    SI Lab 1 Zubcov Olga
    Ion Popescu
    Încă nu există evaluări
  • Ciclu Prelegeri TVPP
    Ciclu Prelegeri TVPP
    Document100 pagini
    Ciclu Prelegeri TVPP
    Mihai Coșleț
    Încă nu există evaluări
  • Laboratorul nr.1
    Laboratorul nr.1
    Document1 pagină
    Laboratorul nr.1
    Ion Popescu
    Încă nu există evaluări