You are on page 1of 4

Inteligenţă artificială

Laboratorul 5

Implementarea unui sistem expert


1. Noţiuni generale despre sistemele expert
2. Implementarea unui arbore de decizie
3. Aplicaţie

1. Noţiuni generale despre sistemele expert


„Sistemele expert sunt programe concepute pentru a raţiona în scopul rezolvării problemelor
pentru care în mod obişnuit se cere o expertiză umană considerabilă” (Edward Feigenbaum,
Stanford University)
Se pot oferi foarte multe definiţii pentru noţiunea de sistem expert şi de asemenea se pot
realiza foarte multe clasificări pornind de la acestea. Cert este faptul că un sistem expert (SE)
încorporează o bază de cunoştinţe şi un motor de inferenţă şi că acesta utilizează proceduri de
inferenţe pentru soluţionarea unor probleme. S-au dezvoltat strategii eficiente de căutare cum ar fi
de exemplu analizele mijloace-scopuri utilizate în rezolvarea generală a problemelor şi în
planificare, strategiile alfa-beta din jocuri, algoritmul A* pentru căutare euristică. Cu toate acestea,
SE au un grad foarte mare de generalitate. Pentru a contura noţiunea de SE putem enumera
următoarele caracteristici:

• din punct de vedere conceptual, SE vizează reconstituirearaţionamentului uman pe baza


expertizei obţinute de la experţi;
• SE dispun de cunoştinţe şi de capacitatea de a desfăşura activităţi intelectuale umane;
• sunt organizate pentru achiziţia şi exploatarea cunoaşterii dintr-un domeniu particular numit
domeniul problemei;
• dispun de metode de invocare a cunoaşterii şi exprimarea expertizei comportându-se ca un
„asistent inteligent”;
• la nivel de realizare informatică, SE se bazează pe principiul separării cunoaşterii de
programul care o tratează;
• sunt capabile să memoreze cunoaşterea, să stabilească legăturile între cunoştinţe şi să tragă
concluzii, să propună soluţii, recomandări, să determine cauzele unor fenomene.

Cunoaşterea într-un sistem expert este organizată într-o manieră care separă cunoştinţele
despre domeniul problemei de alte tipuri de cunoştinţe, precum cele despre rezolvarea problemei şi
cele despre interacţiunea cu utilizatorul.
Sistemele expert sunt programe care înmagazinează cunoştinţe specializate, introduse de
experţi. Aceste sisteme se folosesc deseori în situaţii în care nu există o soluţie algoritmică clară.
Principala caracteristică a acestora este prezenţa unei baze de cunoştinţe împreună cu un algoritm de
căutare adecvat tipului de raţionament. De cele mai multe ori, baza de cunoştinţe este foarte mare,
de aceea este foarte importantă modalitatea de reprezentare a cunoaşterii. Baza de cunoştinţe a
sistemului trebuie separată de program, care la rândul său trebuie să fie cât mai stabil. Cel mai
utilizat mod de reprezentare a cunoaşterii este o mulţime de reguli de producţie. Operaţiunile
acestor sisteme sunt apoi controlate de o procedură simplă, a cărei natură depinde de natura
cunoştinţelor.

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/lab_ia.htm


Structura unui sistem expert trebuie să conţină obligatoriu trei module principale, care
formează aşa-numitul sistem esenţial:

• Baza de cunoştinţe este formată din ansamblul cunoştinţelor specializate introduse de


expertul uman. Cunoştinţele stocate aici sunt în principal descrierile obiectelor şi ale
relaţiilor dintre acestea. Baza de cunoştinţe face parte din sistemul cognitiv, cunoaşterea
fiind memorată într-un spaţiu special organizat. Forma de stocare trebuie să asigure căutarea
pieselor de cunoaştere specificate direct prin simboluri identificatoare sau indirect, prin
proprietăţi asociate sau inferenţe care pornesc de la alte piese de cunoaştere;
• Mecanismul (sau motorul) de inferenţă reprezintă noutatea sistemelor expert. El preia din
baza de cunoştinţe faptele utilizate pentru construirea raţionamentului. Mecanismul de
inferenţă urmăreşte o serie de obiective majore, cum ar fi: alegerea strategiei de control în
funcţie de problema curentă, elaborarea planului de rezolvare a problemei după necesităţi,
comutarea de la o strategie de control la alta, executarea acţiunilor prevăzute în planul de
rezolvare. Deşi mecanismul de inferenţă este constituit dintr-un ansamblu de proceduri în
sensul obişnuit al termenului, modul în care utilizează cunoştinţele nu este prevăzut prin
program, ci depinde de cunoştinţele pe care le are la dispoziţie;
• Baza de fapte reprezintă o memorie auxiliară care conţine toate datele utilizatorului (faptele
iniţiale care descriu enunţul problemei de rezolvat) şi rezultatele intermediare produse în
cursul raţionamentului.

2. Implementarea unui arbore de decizie


Arborii de decizie sunt utilizaţi în special pentru rezolvarea unor probleme de clasificare.
Pentru început trebuie ales pentru fiecare întrebare un răspuns dintr-un set
de răspunsuri valide. În funcţie de aceste răspunsuri, sunt eliminate o serie de soluţii
din setul curent de soluţii posibile ale problemei. Cu cât se coboară mai mult în arbore, cu atât acest
set de soluţii posibile se micşorează. În final soluţia furnizată corespunde nodului frunză în care s-a
ajuns.
Un arbore de decizie este format din noduri şi arce. Nodurile reprezintă locaţiile arborelui şi
pot fi noduri de decizie sau noduri soluţie. Arcele reprezintă conexiunile între nodurile părinte şi
nodurile fii iar numărul lor este legat de setul de răspunsuri valide pe care le poate furniza
utilizatorul pentru o întrebare. Deşi deplasarea în arbore se face de sus în jos, există şi situaţii când
poate fi necesară şi deplasarea de jos în sus (de exemplu, într-un arbore care învaţă, atunci când
setul de întrebări trebuie modificat, deoarece au fost găsite soluţii noi sau vechile întrebări nu sunt
bine formulate).
Cei mai utilizaţi arbori de decizie sunt cei binari, în care pentru fiecare nod întrebare sunt
posibile doar două răspunsuri (de obocei de tip afirmativ sau negativ). În exemplul de mai jos se
realizează clasificarea mişcărilor unui punct material. Sunt luate în considerare doar cele mai
importante caracteristici ale mişcării: vectorul viteză şi vectorul acceleraţie. În funcţie de valorile
acestora se realizează o clasificare primară a mişcării. Deşi arborele de decizie reprezentat mai jos
nu este foarte mare, odată cu introducerea altor parametri, dimensiunile acestuia pot creşte foarte
mult.

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/lab_ia.htm


În exemplele CLIPS-ului sunt furnizate două exemple, unul de clasificare a animalelor şi
altul pentru alegerea unui vin cât mai indicat pentru un meniu. Au fost implementate şi probleme de
diagnostic, în care se încearcă găsirea unui remediu pentru o maladie dintr-un set de remedii
posibile prin identificarea cauzelor şi implicit a bolii de care suferă pacientul.

3. Aplicaţie

Realizaţi un sistem expert bazat pe un arbore de decizie generic reprezentând raţionamentul


pentru rezolvarea unei anumite probleme. Problema va fi rezolvată interactiv, prin întrebări adresate
utilizatorului. Se pleacă din rădăcina arborelui şi apoi, în funcţie de răspunsurile date, se coboară în
arbore până se atinge o frunză, corespunzătoare unei concluzii sau soluţii.

Pentru fiecare nod neterminal, se pot defini următoarele caracteristici:

• o întrebare de a cărui răspuns depinde alegerea următorului nod;


• listă de răspunsuri acceptabile;
• un set de reguli care determină nodul următor, în funcţie de un anumit răspuns.

În acest scop se pot utiliza fapte de tipul:

(mutare <nod_curent> <răspuns> <nod_următor>) ; răspuns ≡ if, nod_următor ≡ then


(întrebare <nod_curent> <text_întrebare>)
(răspunsuri <nod_curent> <listă_răspunsuri_acceptabile>)
(concluzie <nod_terminal> <text_concluzie>)

Nu avem nevoie să definim template-uri pentru aceste fapte. Ordinea valorilor multicâmp
este suficientă pentru prelucrarea lor.
De exemplu, pentru arborele de decizie prezentat, pentru nodul rădăcină (notat „A”) vom
avea fapte de tipul:

(mutare A da B)
(mutare A nu C)
(intrebare A "Viteza isi pastreaza directia?")
(raspunsuri A da nu)

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/lab_ia.htm


Mai întâi se va crea baza de cunoştinţe, care se va salva într-un fişier:
(save-facts "nume_fisier").
Apoi se va proiecta sistemul expert, care va încărca baza de cunoştinţe:
(load-facts "nume_fisier ") şi va rezolva problema.

Să se testeze sistemul expert pentru arborele de decizie corespunzător problemei de


determinare a tipului de mişcare a unui punct material.

Modificaţi baza de cunoştinţe prin adăugarea unui nou nod, corespunzător răspunsului „nu
ştiu” în rădăcina arborelui. Concluzia în acest caz va fi: „Informaţii insuficiente.” Verificaţi faptul
că SE funcţionează fără modificări suplimentare.

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/lab_ia.htm

You might also like