20
Capitolul 1 SISTEME EXPERT 1.1. Concepte generale Sistemele expert (SE) constituie o clasă particulară de sisteme informatice bazate pe inteligenţa artificială, având ca scop reproducerea cu ajutorul calculatorului a cunoştinţelor şi raţionamentelor experţilor umani. Edward Feigenbaum de la Stanford University, considerat părintele sistemelor expert, defineşte SE ca fiind: “programe concepute pentru a raţiona în scopul rezolvării problemelor dificile pentru care, în mod obişnuit, se cere o expertiză umană considerabilă”. În definiţia SE apar cuvintele expert şi expertiză. Un expert uman este o persoană care posedă cunoştinţe temeinice într-un anumit domeniu, un specialist de înaltă clasă, care poate efectua o expertiză în acel domeniu. Cu alte cuvinte, expertul poate rezolva probleme ale domeniului pe care alţii nu le pot rezolva deloc sau în mod eficient. Pentru aceasta el trebuie să fie capabil să îndeplinească următoarele sarcini: să formuleze precis problema pe baza datelor puse la dispoziţie de beneficiar; să determine soluţia corectă; să explice soluţia şi paşii necesari pentru obţinerea ei; să acorde asistenţă pentru implementarea soluţiei într-un domeniu particular. Din punct de vedere funcţional, un sistem expert poate fi definit ca un program care se bazează pe o bancă de cunoştinţe pentru a realiza anumite sarcini, uneori dificile, pe care de regulă le rezolvă un expert uman din domeniul respectiv. Performanţele programului inteligent depind în principal de “bogăţiabazei de cunoştinţe şi de modul de organizare al acestora, care să permită rezolvarea problemei într-un timp rezonabil. Cu alte cuvinte, un SE este un program inteligent care utilizează cunoştinţe, fapte şi tehnici de raţionament pentru a rezolva probleme care în mod normal necesită cunoştinţele experţilor umani. Spre deosebire de majoritatea programelor de calcul, care cer informaţii complete pentru rezolvarea problemei sau luarea deciziilor, sistemele expert sunt proiectate să găsească soluţia pe baza datelor disponibile, la fel ca un expert uman. În acest context, SE sunt sisteme de prelucrare automată a datelor conţinute într-o bază largă de date care pe lângă elementele clasice de prelucrare, conţin: baza de cunoştinţe alcătuită din reguli şi fapte; elementele necesare manipulării cunoştinţelor sub forma mecanismului de inferenţă; elementele necesare achiziţionării şi implementării de noi cunoştinţe; componenta explicativă. Asemănător expertului uman care, bazându-se pe cunoştinţele acumulate, prin raţionamentul propriu ajunge la anumite concluzii, un SE se bazează pe cunoştinţele înglobate în baza de cunoştinţe şi pe mecanismul de inferenţă care are funcţia de a lua decizii în urma unor raţionamente logice. Raţionamentul este o înlănţuire de judecăţi (propoziţii) în care plecând de la anumite cunoştinţe, consemnate într-un număr de propoziţii numite premisesau fapte iniţiale, se ajunge la o nouă cunoştinţă exprimată printr-o nouă propoziţie numită concluzie. Raţionamentul este corect dacă şi numai dacă concluzia este consecinţa logică a premiselor. Raţionamentul poate fi definit şi ca o înlănţuire de reprezentări simbolice care trebuie să conducă la atingerea unui scop: a demonstra, a convinge, a elucida, a decide, a explica etc. Sistemule expert diferă în mod esenţial de sistemele informatice convenţionale (procedurale) de prelucrare care folosesc date şi algoritmi cunoscuţi apriori pentru rezolvarea problemelor. Ele implică următoarele caracteristici distinctive: reprezentări simbolice; inferenţă simbolică; căutare euristică. Metodele de rezolvare a problemelor folosite de către sistemele expert nu sunt proceduri matematice sau procesoare de date, ci tehnici de raţionament calitativ sau euristice, care leagă elemente între ele prin reguli de judecată precum şi prin legi şi definiţii teoretice.

Capitolul 1 Sisteme Expert

Embed Size (px)

Citation preview

Page 1: Capitolul 1 Sisteme Expert

Capitolul 1

SISTEME EXPERT

1.1. Concepte generale

Sistemele expert (SE) constituie o clasă particulară de sisteme informatice bazate pe inteligenţa artificială, având ca scop reproducerea cu ajutorul calculatorului a cunoştinţelor şi raţionamentelor experţilor umani.

Edward Feigenbaum de la Stanford University, considerat părintele sistemelor expert, defineşte SE ca fiind: “programe concepute pentru a raţiona în scopul rezolvării problemelor dificile pentru care, în mod obişnuit, se cere o expertiză umană considerabilă”.

În definiţia SE apar cuvintele expert şi expertiză. Un expert uman este o persoană care posedă cunoştinţe temeinice într-un anumit domeniu, un specialist de înaltă clasă, care poate efectua o expertiză în acel domeniu. Cu alte cuvinte, expertul poate rezolva probleme ale domeniului pe care alţii nu le pot rezolva deloc sau în mod eficient. Pentru aceasta el trebuie să fie capabil să îndeplinească următoarele sarcini:

• să formuleze precis problema pe baza datelor puse la dispoziţie de beneficiar;

• să determine soluţia corectă; • să explice soluţia şi paşii necesari pentru obţinerea ei; • să acorde asistenţă pentru implementarea soluţiei într-un domeniu

particular.

Din punct de vedere funcţional, un sistem expert poate fi definit ca un program care se bazează pe o bancă de cunoştinţe pentru a realiza anumite sarcini, uneori dificile, pe care de regulă le rezolvă un expert uman din domeniul respectiv.

Performanţele programului inteligent depind în principal de “bogăţia” bazei de cunoştinţe şi de modul de organizare al acestora, care să permită rezolvarea problemei într-un timp rezonabil.

Cu alte cuvinte, un SE este un program inteligent care utilizează cunoştinţe, fapte şi tehnici de raţionament pentru a rezolva probleme care în mod normal necesită cunoştinţele experţilor umani.

Spre deosebire de majoritatea programelor de calcul, care cer informaţii complete pentru rezolvarea problemei sau luarea deciziilor, sistemele expert sunt proiectate să găsească soluţia pe baza datelor disponibile, la fel ca un expert uman.

În acest context, SE sunt sisteme de prelucrare automată a datelor conţinute într-o bază largă de date care pe lângă elementele clasice de prelucrare, conţin:

• baza de cunoştinţe alcătuită din reguli şi fapte; • elementele necesare manipulării cunoştinţelor sub forma

mecanismului de inferenţă; • elementele necesare achiziţionării şi implementării de noi

cunoştinţe; • componenta explicativă.

Asemănător expertului uman care, bazându-se pe cunoştinţele acumulate, prin raţionamentul propriu ajunge la anumite concluzii, un SE se bazează pe cunoştinţele înglobate în baza de cunoştinţe şi pe mecanismul de inferenţă care are funcţia de a lua decizii în urma unor raţionamente logice.

Raţionamentul este o înlănţuire de judecăţi (propoziţii) în care plecând de la anumite cunoştinţe, consemnate într-un număr de propoziţii numite premisesau fapte iniţiale, se ajunge la o nouă cunoştinţă – exprimată printr-o nouă propoziţie numită concluzie. Raţionamentul este corect dacă şi numai dacă concluzia este consecinţa logică a premiselor. Raţionamentul poate fi definit şi ca o înlănţuire de reprezentări simbolice care trebuie să conducă la atingerea unui scop: a demonstra, a convinge, a elucida, a decide, a explica etc.

Sistemule expert diferă în mod esenţial de sistemele informatice convenţionale (procedurale) de prelucrare care folosesc date şi algoritmi cunoscuţi apriori pentru rezolvarea problemelor.

Ele implică următoarele caracteristici distinctive: • reprezentări simbolice; • inferenţă simbolică; • căutare euristică.

Metodele de rezolvare a problemelor folosite de către sistemele expert nu sunt proceduri matematice sau procesoare de date, ci tehnici de raţionament calitativ sau euristice, care leagă elemente între ele prin reguli de judecată precum şi prin legi şi definiţii teoretice.

Page 2: Capitolul 1 Sisteme Expert

2

Diferenţa dintre un program de calcul analitic şi un sistem de tip expert constă în:

• sistemul expert foloseşte datele din baza de date filtrate printr-un set de cunoştinţe, înmagazinate în baza de cunoştinţe, care sunt independente de algoritmul de rezolvare utilizat;

• algoritmul de căutare a soluţiei, denumit motor de inferenţă, nu mai este de tip iterativ, ca în cazul programelor analitice, ci de tip convergent;

• datorită delimitării nete dintre elementele componente (baza de date, baza de cunoştinţe, motorul de inferenţă) un sistem expert poate fi modificat cu uşurinţă prin simpla adăugare sau eliminare de reguli; conceperea unui sistem expert este un proces linear, realizat prin discuţii repetate cu experţi umani pentru dezvoltarea bazei de cunoştinţe;

• toate operaţiile logice şi matematice care se succed în găsirea unui răspuns se aduc la cunoştinţa utilizatorului printr-un modul explicativ independent numit “interfaţa cu utilizatorul”.

Performanţele SE depind de corectitudinea şi volumul cunoştinţelor pe care acesta le posedă dar şi de calitatea mecanismelor care îi permit să opereze cu aceste cunoştinţe pentru a deduce concluziile valide.

Indiferent de diversele definiţii date SE, există patru caracteristici ce califică un program drept sistem expert:

• lucrează la un nivel expert de competenţă;

• foloseşte un mecanism de inferenţă pentru a realiza deducţiile;

• expertiza efectuată se bazează exclusiv pe cunoştinţe special dobândite;

• programarea lui implică descrierea şi reprezentarea cunoştinţelor unor experţi în domeniu, cunoştinţe ce sunt păstrate în baze de date specifice, numite baze de cunoştinţe, în scopul utilizării ulterioare.

Dintre avantajele oferite de SE se menţionează:

1. aria de aplicabilitate cuprinde numeroase domenii de activitate mergând de la arhitectură, arheologie, bănci, comerţ, educaţie, până la ingineria sistemelor şi medicină;

2. disponibilitatea crescută, expertiza devenind accesibilă pe orice calculator adecvat: spre deosebire de expertul uman, SE este disponibil în orice moment şi nu este afectat de emozivitate, factori de stres etc.;

3. reducerea costului, explicabilă în corelaţie cu cele menţionate la punctul anterior, dar şi cu evoluţia preţului sistemelor de calcul;

4. permanenţa, rezultată din faptul că, spre deosebire de experţii umani, SE nu au o viaţă limitată;

5. reducerea riscurilor prin incorporarea în sisteme de comandă a roboţilor industriali utilizţi în medii periculoase pentru om;

6. creştrea calităţii, prin obţinerea unei expertize complete a domeniului, ceea ce expertul uman nu realizează întotdeauna;

7. posibilitatea de explicare în detaliu a soluţiei obţinute pentru creşterea gradului de încredere al utilizatorului;

8. rapiditatea, în sensul că pe sisteme hardware şi software adecvate se pot obţine performanţe de timp mult mai bune comparativ cu cele ale experţilor umani;

9. păstrarea în siguranţă a cunoştinţelor: marile firme şi-au constituit sisteme expert pentru a fi afectate într-o mai mică măsură de plecarea unor experţi umani;

10. contribuţia la răspândirea cunoştinţelordin domeniu: un utilizator poate rula programul pntru mai multe probleme, de la simplu la complex, şi urmărind soluţiile şi explicaţiile date de SE se poate autoinstrui în domeniul respectiv.

1.2. Arhitectura unui SE

În general, un sistem expert cuprinde următoarele module (fig. 1.1): • baza de cunoştinţe; • baza de date; • motorul de inferenţe1;

1 Inferenţă = operaţie logică de trecere de la un enunţ la altul şi în care ultimul enunţ este dedus din primul (DEX)

Page 3: Capitolul 1 Sisteme Expert

3

• modulul de achiziţionare de cunoştinţe; • interfaţa cu inginerul de aplicaţie (expertul); • interfaţa cu inginerul de cunoştinţe; • interfaţa cu utilizatorul; • module de grafică şi de calcul.

Mediu dedezvoltare

Inginer decunoştinţe

Memoriea delucru

Fapte dinamice

Utilizator

Expert îndomeniuBaza de

date

Reguliselecţionate

AcţiuniConcluzii

Date

Baza decunoştinţe

Reguli

FapteSelectare

reguli şi fapte

Motor de inferenţă

Ach

iziţi

e de

cunoşt

inţe

Fig. 1.1. Structura unui sistem expert

1.2.1. Baza de cunoştinţe

Baza de cunoştinţe (BC) cuprinde o colecţie de cunoştinţe relevante despre un anumit domeniu şi este constituită din reguli şi fapte.

Regulile se referă la operaţiile ce pot fi efectuate asupra obiectelor conţinute în baza de date. Ele se schimbă mai rar şi în esenţă constituie un ansamblu complet şi necontradictoriu de cunoştinţe necesare rezolvării unei probleme.

Faptele reprezintă partea dinamică a bazei de cunoştinţe şi au rolul de a reprezenta starea obiectelor la un moment dat.

Reprezentarea cunoştinţelor – Baza de reguli (BR)

Reprezentarea cunoştinţelor se poate realiza prin:

• regulile de producţie;

• reţele semantice;

• structuri împachetate sau frame–uri;

• obiecte;

• logica propoziţională sau a predicatelor

A. Reguli de producţie

Reprezentarea cunoştinţelor sub forma regulilor de producţie este specifică categoriei tehnicilor de IA cunoscută sub denumirea de sisteme de producţie şi este foarte potrivită pentru raţionamente. Într-un sistem de producţie cunoştinţele sunt de natură procedurală şi se împart în următoarele componente:

• cunoştinţe declarative sau factuale, grupate sub forma unor structuri de date memorate într-o colecţie denumită context;

• cunoştinţe procedurale reprezentate sub forma unor perechi de tipul condiţie – acţiune, denumite reguli de producţie, memorate în baza de reguli;

• cunoştinţe strategice sau de control, reprezentate sub forma unor reguli care sprijină decizia în procesul de soluţionare al problemei.

Structura generală a unei reguli de producţie este:

<partea de condiţie> → <partea de acţiune>

şi poate fi interpretată astfel:

“DACĂ <partea de condiţie> este îndeplinită, ATUNCI se poate executa <partea de acţiune>”.

Partea de condiţie, denumită şi premisă, este constituită din propoziţii logice care trebuie să fie verificate pentru ca regula să poată fi aplicată.

Partea acţiune corespunde declanşării unei concluzii sau a unei noi ipoteze.

Principalele avantaje ale reprezentării cunoştinţelor sub forma de reguli de producţie sunt:

Page 4: Capitolul 1 Sisteme Expert

4

• modularitatea proprie a fiecărei reguli – orice regulă poate fi considerată ca o entitate structurală independentă de celelalte ceea ce conferă o uşoară întreţinere a bazei de reguli;

• modularitate în realizarea formalismului de rezolvare a problemei regulile putând fi asimilate cu un ansamblu de constituenţi elementari, care se adună şi se combină pentru a forma un răspuns la problema studiată;

• caracterul natural de exprimare ;

• accesibilitatea bazei de reguli, dată de facilitatea şi uniformitatea structurii utilizate pentru reprezentarea cunoştinţelor.

Dintre dezavantajele acestui mod de reprezentare se menţionează:

• imposibilitatea de a prevedea o desfăşurare optimă pentru o secvenţă de acţiuni;

• ordinea în care sunt aplicate regulile potenţial aplicabile influenţează concluzia obţinută.

B. Reţele semantice.

Reţelele semantice sunt structuri destinate reprezentării cunoştinţelor sub forma unui graf complex alcătuit din noduri şi arce. Nodurile reţelei/grafului sunt utilizate pentru a reprezenta obiecte, concepte, atribute, stări, evenimente etc. Arcele reprezintă relaţiile existente între obiectele ataşate nodurilor reţelei semantice. Acestea sunt de două tipuri: • ISA – is a, adică este un; • AKO – a kind of sau un fel de. Reţelele semantice, respectiv grafurile corespunzătoare pot fi organizate ierarhic ceea ce permite moştenirea unor atribute de la tipurile generale la cele particulare.

C. Structuri împachetate (frame-uri).

O structură este un grup de atribute ce descriu un obiect dat. Fiecare atribut este stocat într-un slot (compartiment) care conţine valoarea/valorile ataşate. Folosirea structurilor permite reprezentarea cunoştinţelor în blocuri de date, fiecare bloc fiind prezentat printr-un slot sau compartiment. Structurile reprezentând diverse obiecte pot fi înzestrate cu proprietatea de

moştenire, pe baza căreia se generează legături ierarhice între acestea. Prin urmare, ele pot fi reprezentate sub forma unui arbore.

D. Reprezentarea orientată pe obiecte

Constituie un pas superior în reprezentarea datelor. Caracteristica principală a reprezentării orientată pe obiecte este aceea că unifică, într–o aceeaşi unitate structurală numită "obiect", datele şi funcţiile sau metodele care acţionează asupra lor. Din punct de vedere al tehnicii de programare tipurile structurilor amintite se definesc cu ajutorul conceptului de clasă, iar obiecte cu care operează programul sunt instaţieri ale claselor. E. Logica propoziţională sau a predicatelor Logica oferă un mijloc de exprimare a aserţiunilor2 precum şi un cadru formal pentru realizarea de inferenţe. În acest context, o bază de cunoştinţe este constituită exclusiv dintr-o mulţime de formule care descriu universul problemelor de rezolvat numit şi universul de discurs. Interesul major al utilizării logicii pentru reprezentarea cunoştinţelor rezultă din posibilitatea obţinerii de noi rezultate folosind reguli de inferenţă precum: modus ponens, modus tollens, rezoluţie etc. De asemenea logica permite exprimarea relativ naturală a unor fapte, fiind lipsită de ambiguităţi. Ea este un sistem formal care oferă rigoare şi claritate semantică. Totuşi, aceste avantaje constituie în acelaşi timp şi dezavantaje în reprezentarea cunoştinţelor şi realizarea expertizei deoarece, este cunoscut faptul că omul, în general, nu este atât de riguros, raţionamentele ale fiind adesea mult mai suple. De asemenea, nu există o organizare între diferitele elemente care alcătuiesc baza de cunoştinţe. Obiectele manipulate nu au o reprezentare proprie. Ele există doar prin intermediul formulelor care sunt diseminate (răspândite) în baza de cunoştinţe. Aceasta este caracteristica formalismului relaţional, opus celui obiectual. Pe măsură ce baza de cunoştinţe se dezvoltă, lipsa de organizare generează probleme vizând coerenţa utilizării sale. În plus, modelarea cunoştinţelor în logica de ordinul întâi nu este întotdeauna uşor de realizat. Pentru a elimina aceste anomalii şi pentru a extinde câmpul de aplicaţii al logicii s-au dezvoltat aşa numitele logici neclasice sau logici nemonotone, cum ar fi logicile multivalente, logicile de incertitudine, logicile modale, logicile fuzzy etc. 2 Aserţiune = enunţ care este dat ca adevărat.

Page 5: Capitolul 1 Sisteme Expert

5

În dezvoltarea aplicaţiilor practice, de tip SE, pentru reprezentarea cunoştinţelor, în general se face apel la una dintre următoarele tehnici:

• regulile de producţie care sunt foarte potrivite pentru raţionamente; • frame-urile (cadrele), încadrate eventual în reţele semantice, care

sunt adecvate pentru stocarea şi manipularea eficientă a cunoştinţelor;

• reprezentarea orientată pe obiecte care, prin proprietăţi precum încapsularea, moştenirea şi polimorfismul asigură o elasticitate mărită în elaborarea SE.

În afara inferenţelor folosind cunoştinţele calitative, pentru rezolvarea problemelor din viaţa reală, în diferite stadii ale procesului de soluţionare, sunt necesare şi calcule numerice. Cantitatea de calcule poate fi foarte mică în unele cazuri şi destul de mare în altele. Prin urmare, un sistem expert trebuie să fie capabil să apeleze programe de calcul procedural. Acestea formează o parte a bazei de cunoştinţe şi se numesc cunoştinţe cantitative. Ele pot fi reprezentate ca funcţii sau programe scrise în limbaje de programare de nivel înalt cum ar fi Fortran sau C. În acest conrext, cele mai multe shell-uri de dezvoltare a sistemelor expert furnizează facilităţi de reprezentare atât a cunoştinţelor calitative (prin reguli, structuri etc.), cât şi a cunoştinţelor cntitative prin funcţii scrise în limbaje procedurale.

Baza de fapte (BF)

Baza de fapte constituie partea dinamică a sistemelor bazate pe cunoştinţe. Ea conţine informaţii relative la domeniul de aplicaţie studiat.

Faptele sunt date normale de tip închis–deschis pentru un echipament de comutaţie, o alarmă de ieşire din funcţiune a unui echipament, o valoare sau o mărime fizică aflată în afara limitelor admisibile etc.

Ele se modifică pe măsură ce stările obiectelor cărora le sunt asociate se schimbă (de exemplu datorită unor avarii, efectuării unor manevre, schimbării configuraţiei de funcţionare a unei reţele etc.). Un fapt are o reprezentare de forma: <Obiect>, <Relaţie>, <Valoare> în care:

<Obiectul> reprezintă, de exemplu, un echipament (întreruptor, separator, vană, ventil etc.) a cărui stare poate fi stabilită printr–o semnalizare, verificare sau, mai general, deducţie logică;

<Relaţie> corespunde unei relaţii existente între obiecte sau între un

obiect şi diferitele stări în care acesta se poate afla; <Valoare> reprezintă cuantificarea stării obiectului la un moment dat.

Exemplu: <Întreruptorul I7> <Este în poziţia> <Închis>

În funcţie de domeniul de aplicare, sistemul expert are la dispoziţie un anumit număr de fapte referitoare la domeniul respectiv, care descriu stări sau dau informaţii de tip cantitativ. O parte din datele din baza de fapte sunt introduse cu ajutorul dialogului om–maşină, în timp ce altă parte este încărcată automat prin citirea lor dintr-o bază de date. Prin analogie cu programele de calcul convenţionale, se poate spune că faptele reprezintă ”datele” problemei.

În arhitectura sistemelor expert faptele constituie, alături de unele date numerice aferente modelului problemei abordate, ”baza de date”.

1.2.2. Motorul de inferenţe

Motorul de inferenţă (MI) este un program general care

implementează mecanismul prin care se construiesc raţionamentele. Pornind de la fapte (datele de intrare ale problemei), MI are ca sarcină

exploatarea regulilor şi generarea răspunsurilor la întrebările puse de utilizatori în scopul determinării soluţiei problemei analizate. În acest sens, cu regulile existente în baza de cunoştinţe se construiesc arbori de inferenţă sau de căutare care au ca noduri premisele (condiţiile) şi ca ramuri arcele care conectează diferitele premise.

Există diverse procedee sau mecanisme de inferenţă care traversează acest arbore în sensuri diferite, conceptul de “CĂUTARE” fiind unul esenţial în programele de IA. Cele mai cunoscute metode de inferenţă sunt:

• inducţia sau înlănţuirea înainte - este un proces de inferenţă condus de date;

• inducţia sau înlănţuirea înpoi - este un proces de inferenţă condus de scop

Page 6: Capitolul 1 Sisteme Expert

6

• inducţia sau înlănţuirea hibridă - este un proces de inferenţă care combină inducţia înainte şi inducţia înapoi.

În figura 1.2. se prezintă principiul de funcţonare al MI.

Ciclul de bază al motorului de inferenţe

MI este inima unui SE pentru că, folosind baza de cunoştinţe, construieşte dinamic raţionamentele alegând regulile ce urmează a fi declanşate/aplicate şi ordinea de înlănţuire a acestora. Indiferent de modul de raţionament utilizat, ciclul de bază al unui motor de inferenţe comportă următoarele patru etape (fig. 1.3.):

Reguli

Sistem achizi ie de dateţ

UtilizatorFapte

Motor de inferenţe

reguli aplicabile

Reguli

Regulă

Alteacþiuni

Selectare

Fig. 1.2. Exemplificarea funcţionării unui motor de inferenţe.

(i) SELECŢIA: în această etapă se extrag din baza de reguli şi din baza de fapte elementele care caracterizează subdomeniul de rezolvare a problemei. Această etapă este necesară atunci când baza de cunoştinţe este mare, încercând să acopere mai multe domenii ale cunoaşterii.

(ii) FILTRAJUL (pattern matching) constă în compararea premiselor regulilor selecţionate anterior cu faptele ce caracterizează problema de rezolvat, pentru a determina submulţimea regulilor declanşabile. În urma acestei etape pot rezulta una, mai multe sau nicio regulă declanşabilă. Dacă nu rezultă nicio regulă aplicabilă, atunci suntem într-o stare de eşec pe care SE o semnalează, iar utilizatorul trebuie să răspundă la o serie de întrebări în scopul completării datelor.

(iii) REZOLVAREA CONFLICTELOR este necesară atunci când din etapa de filtraj au rezultat mai multe reguli declanşabile şi trebuie aleasă una pentru a fi executată. Dintre criteriile utilizabile în această etapă se amintesc: prima regulă din listă; regula cu cel mai mare număr de fapte în premisă; regula cea mai des utilizată. De această alegere depind performanţele MI. Totuşi este dificil de indicat unul sau altul dintre criterii, deoarece această alegere depinde de contextul în care se găseşte baza de cunoştinţe în momentul respectiv.

(iv) EXECUŢIA REGULI SELECTATE constă în adăugarea uneia sau mai multor fapte în “baza de fapte” ca o consecinţă a aplicării regulii respective. Este posibil, de asemenea, ca în această etapă să se facă apel la proceduri externe (acces la baze de date sau la procesoare de tabele) sau la întrebări puse utilizatorului.

Baza de reguli (BR)

Reguliposibile

SELEC IEŢ

Baza de fapte (BF)

Fapteselec ionateţ

FILTRAJ

Regulideclan abileş

REZOLVARECONFLICTE

Regulire inuteţ

EXECU IEREGULI

Ţ

Fig. 1.3. Ciclul de bază al unui motor de inferenţe

Page 7: Capitolul 1 Sisteme Expert

7

Pentru rezolvarea unei probleme MI execută mai multe cicluri de bază şi se opreşte în funcţie de modul de raţionament utilizat.

1.2.3. Module complementare 1.2.3.1. Modulul de achiziţie de cunoştinţe

Realizează transferul cunoştinţelor de la experţii în domeniu către sistemul expert (fig. 1.4).

Fig. 1.4. Procesul de achiziţie a cunoştinţelor.

Extragerea cunoştinţelor de la un expert uman cu ajutorul unor mijloace specifice sau prin metoda interviurilor este un proces eterogen, numit ingineria cunoaşterii şi constă în: (i) Identificare: definirea corectă a problemei şi determinarea

caracteristicilor sale; (ii) Conceptualizare: determinarea conceptelor care să sprijine

reprezentarea cunoştinţelor; (iii) Formalizare: alegerea unor metode de reprezentare a cunoştinţelor şi

a mecanismului de inferenţă; (iv) Implementare: reprezentarea propriu-zisă a cunoştinţelor în

formalismul ales; (v) Testarea: verificarea cunoştinţelor şi validarea sistemului.

Întregul proces este iterativ, iar rezultatele testării pot să indice reformularea problemei, redefinirea conceptelor, reproiectarea structurilor de cunoştinţe sau rafinarea acestora. Pe tot parcursul acestui proces inginerul de cunoştinţe lucrează cu expertul în domeniu.

Instrumente de inginerie a cunoştinţelor – generatoare de sistem expert – automatizează procesul de achiziţie a cunoştinţelor. Dacă se dispune de un astfel de instrument, un expert într-un domeniu bine precizat poate să construiască un sistem expert fără a fi necesară prezenţa inginerului de cunoştinţe.

1.2.3.2. Interfaţa cu utilizatorul

Este partea din program care permite utilizatorului să pună întrebări sistemului expert, să introducă noi informaţii sau să primească diferite recomandări de la acesta. Aprecierea utilizatorului asupra unui sistem expert depinde în mare măsură de asemănarea între modul de reprezentare a informaţiilor de către SE şi modelul pe care utilizatorul îl are în “mintea sa” despre problema care se rezolvă. 1.2.3.3. Modulul explicativ.

Un SE trebuie să aibă capacitatea de a furniza explicaţii operatorului

în legătură cu raţionamentul folosit pentru a ajunge la o anumită recomandare sau decizie. Cu cât sunt mai explicit reprezentate cunoştinţele în baza de cunoştinţe, cu atât este mai eficient procesul explicativ deoarece cunoştinţele şi metodele de utilizare a lor sunt elemente fundamentale. 1.3. Strategii de căutare a soluţiei. 1.3.1. Consideraţii generale Problemele care pot fi rezolvate folosind tehnici ale IA sunt probleme complex computaţionale, iar determinarea soluţiei se face prin deplasarea în spaţiul de definiţie al problemei denumit şi spaţiul de căutare sau universul problemei de rezolvat. De regulă, acest spaţiu este constituit dintr-un număr foarte mare de stări, fiecare descriind o situaţie posibilă. Datorită restricţiilor problemei, o parte dintre stări sunt stări interzise în care nu se poate ajunge niciodată.

În acest context, rezolvarea problemelor poate fi văzută ca un proces de identificare sau de construire a unui obiect cu anumite caracteristici, obiect ce reprezintă soluţia problemei. Această activitate implică existenţa următoarelor elemente minimale:

Page 8: Capitolul 1 Sisteme Expert

8

(i) O structura simbolică care să poată reprezenta descrierea iniţială a problemei si fiecare obiect candidat la soluţie. Este vorba de structura folosită pentru reprezentarea cunoştinţelor în cadrul bazei de date sau bazei de cunoştinţe.

(ii) O mulţime de instrumente computaţionale capabile să transforme descrierea unui obiect (structură simbolică) într-o nouă descriere în scopul de a investiga sistematic toţi candidaţii la soluţie. Aceste instrumente sunt constituite din operatorii de transformare sau regulile de producţie.

(iii) O metodă de planificare efectivă care să indice ordinea de aplicare a transformărilor astfel încât soluţia problemei să fie găsită cât mai repede. Este vorba de strategia de control.

Procesul de determinarea a soluţiei porneşte dintr-o stare iniţială Si cunoscută şi, prin aplicarea unor reguli (operatori de transformare) care permit trecerea dintr-o stare în altă stare, se urmăreşte ajungerea în starea finală Sf care constituie soluţia sau o soluţie a problemei de rezolvat. Prin urmare, soluţia problemei se obţine printr-un proces de căutare şi nu prin aplicarea unei secvenţe de transformări specificate dinainte.

Această manieră de abordare a soluţionării problemelor utilizează grafurile asociate spaţiului stărilor. Astfel, fiecare stare este reprezentată printr-un nod, iar operatorii de transformare prin arce. În aceste condiţii definirea unei probleme de căutare se face folosind următorul formalism:

( ) ( )Ti fP S D S D= ∈ ⎯⎯→ ∈ (1)

în care: D este mulţimea stărilor sau universul problemei;

T – mulţimea transformărilor.

O soluţie a problemei P, notată *T este o secvenţă de transformări * * *1 2, ,..., nt t t cu proprietatea:

( )( )( )* * *2 1...f n iS t t t S= (2)

Ideea de bază a rezolvării unor astfel de probleme poate fi descrisă, în manieră nedeterministă, prin următorul algoritm:

Algoritm: Rezolvarea unei probleme prin căutare

1. Stabileşte starea iniţială Si 2. Stabileşte starea curentă c iS S← 3. repetă

3.1 Selectează un operator de transformare t posibil de aplicat stării curente cS

3.2 Aplică operatorul t asupra stării cS si obţine o nouă

starea ( )'cS t S=

3.3 Stabileşte 'cS S←

până când cS este stare finală sfârşit. Algoritmul de mai sus este nedeterminist deoarece pasul 3.1 nu specifică cum se selectează operatorul sau transformarea t de aplicat. Selectarea transformărilor si memorarea transformărilor efectuate constituie strategia de control. O strategie de control nu este doar o secvenţa de acţiuni, ci o modalitate de descriere a selecţiei unei acţiuni ca răspuns la un eveniment extern, cum ar fi rezultatul unui test, rezultatul aplicării unei proceduri complicate de calcul sau acţiunea unui adversar.

In plus, o strategie de control trebuie să fie sistematică, adică, într-o formulare plastică, trebuie să satisfacă următoarele cerinţe:

• nu lasă nici o piatră neîntoarsă; • nu întoarce nici o piatră de mai multe ori. Prima cerinţă, numita completitudine, garantează faptul că strategia

produce soluţia, dacă aceasta există, iar cea de a doua cerinţă protejează contra ineficienţei prelucrărilor repetate. Pentru exemplificare se consideră un sistem aflat în starea iniţială caracterizată de proprietăţile P1, P2 şi P3. Sistemul evoluează prin adăugarea de noi proprietăţi conform următoarelor transformări sau reguli:

t1: DACĂ (P1 ŞI P2) ATUNCI P4 t2: DACĂ (P2 ŞI P3) ATUNCI P5 t3: DACĂ (P1 ŞI P4) ATUNCI P6 t4: DACĂ (P5 ŞI P6) ATUNCI P7 t5: DACĂ (P2 ŞI P5) ATUNCI P7

Page 9: Capitolul 1 Sisteme Expert

9

Evoluţia are loc respectând convenţia: dacă între starea iniţială iS şi starea curentă cS s-a aplicat o anumită secvenţă de transformări, atunci niciuna dintre transformările folosite nu mai poate fi aplicată stării curente. Se cere să se stabilească secvenţa de transformări ce conduce sistemul în starea finală care conţine proprietatea P7.

P , 1 P ,P2 3

P , 1 P ,P ,P ,P ,P ,

P

2 3

4 5 6

7

P , 1 P ,P ,P ,P , P

2 3

4 5 7

P , 1 P ,P ,P ,P ,P

2 3

4 5 6

P , 1 P ,P ,P ,P

2 3

4 5

P , 1 P ,P ,P

2 3

4

P , 1 P ,P ,P

2 3

5

P , 1 P ,P ,P , P

2 3

5 7

P , 1 P ,P ,P , P

2 3

4 6

t1

t1

t2

t2

t2

t3

t3

t4

t5

t5

t5

Fig. 1.5. Secvenţa de transformări posibile. Soluţiile posibile ale problemei sunt:

{ }*1 1 2 3 4, , ,T t t t t= ; { }*

2 2 1 3 4, , ,T t t t t= ; { }*3 1 3 2 4, , ,T t t t t= ;

{ }*4 1 2 3 5, , ,T t t t t= ; { }*

5 2 1 3 5, , ,T t t t t= ; { }*6 1 3 2 5, , ,T t t t t= ;

{ }*7 1 2 5, ,T t t t= ; { }*

8 2 1 5, ,T t t t= ;

{ }*9 2 5,T t t= .

Acest exemplu evidenţiază următoarele aspecte: (i) O parte dintre soluţii conţin aceleaşi transformări, dar în succesiuni

diferite. Acest fapt se traduce prin revenirea în stări deja explorate, adică prin apariţia unor bucle în graful de căutare. Dacă în exemplul prezentat se elimină buclele rezultă următoarele patru

soluţii posibile: { }*1 1 2 3 4, , ,T t t t t= ; { }*

4 1 2 3 5, , ,T t t t t= ;

{ }*7 1 2 5, ,T t t t= şi { }*

9 2 5,T t t= . (ii) Numărul transformărilor utilizate diferă de la o soluţie la alta,

existând posibilitatea obţinerii soluţiei printr-un nr. minim de transformări.

Comportarea programelor de inteligentă artificială poate fi

caracterizată ca un proces de căutare în care diverse transformări aplicabile universului problemei sunt încercate până se determina soluţia problemei. În general, pentru a determina soluţia este necesară evaluarea unui număr mare de stări intermediare (obiecte candidate la soluţie), iar folosirea căutării exhaustive este exclusă. În acest context, informaţia euristică joacă un rol foarte important în cadrul procesului de căutare contribuind la reducerea numărului de stări investigate pentru obţinerea soluţiei şi creşterea eficienţei procesului de rezolvare. De obicei, acest tip de informaţie este reprezentat printr-o funcţie euristică asociată fiecărei stări, funcţie care estimează cât de promiţătoare este acea stare din punct de vedere al avansului spre soluţie. Funcţiile euristice depind şi se stabilesc pe baza cunoştinţelor specifice problemei sau clasei de probleme de rezolvat. 1.3.2. Reprezentarea soluţiei problemei Există două modalităţi de bază pentru a reprezenta soluţia unei probleme, şi anume: reprezentarea soluţiei problemei prin spaţiul stărilor, respectiv reprezentarea soluţiei problemei prin grafuri SI/SAU

A. Reprezentarea soluţiei problemei prin spaţiul stărilor

În reprezentarea soluţiei problemei prin spaţiul stărilor, spaţiul de căutare are forma unui graf orientat în care nodurile sunt identificate prin

Page 10: Capitolul 1 Sisteme Expert

10

stări, iar arcele reprezintă aplicarea unor operatori pentru a transforma o stare în starea următoare.

Prin definiţie o reprezentare a soluţiei problemei prin spaţiul stărilor este formată din tripletul ( ), ,i fS O S în care:

iS este starea iniţială; O – mulţimea de operatorilor aplicabili stărilor universului

problemei pentru a ajunge în noi stări: in fiecare stare dată, numai o parte din operatori pot fi aplicaţi;

fS – mulţimea stărilor finale; aceasta poate fi constituită din una

sau mai multe stări. Prin urmare, o soluţie a problemei este o secvenţa de operatori care

transformă starea iniţială în starea finală şi reprezintă o cale între aceste două stări în graf.

Iniţial graful spaţiului de căutare este specificat implicit de reprezentare prin tripletul ( ), ,i fS O S . Pe măsură ce procesul de căutare a

soluţiei avansează o porţiune din acest graf devine explicită. Porţiunea din graful spaţiului de căutare astfel construită reprezintă partea explorată a spaţiului de căutare.

Pentru exemplificare se consideră problema comis voiajorului. Fiind date un număr de oraşe si distantele de-a lungul unor drumuri care leagă aceste oraşe, se cere să se găsească drumul de lungime minimă pe care îl face un comis-voiajor care trebuie sa treacă prin toate oraşele pornind dintr-un oraş dat şi revenind în oraşul de plecare. Un posibil exemplu este cel descris in figura 1.6 a. Starea iniţială a problemei este oraşul de plecare A al comis-voiajorului. Stările intermediare sunt oraşele prin care acesta a trecut, iar soluţia problemei este secvenţa de stări parcurse din starea iniţiala până în starea finală, secvenţă care trebuie să îndeplinească condiţia de cost optim, adică drum de lungime minimă. O parte din graful spaţiului de căutare este prezentat in figura 1.6 b. Este evident faptul că generarea tuturor traseelor posibile şi compararea costurilor asociate pentru a găsi traseul optim este un proces ineficient din punct de vedere computaţional, mai ales în cazul unui număr mare de oraşe. De aceea, pentru rezolvarea acestei probleme se face apel la tehnicile euristice de căutare.

A

B

E

D

C

7

106

10

10

136

7

5

9

(a) Harta oraselor de parcurs

{A}

{A,B} {A,C} {A,D} {A,E}

7 6 10 13

... ... ...5{A,C,D}

{A,C,D,E}

6

(b) O portiune din spatiul de cautare a solutiei

Fig. 1.6. Reprezentarea prin spaţiul stărilor a problemei comis-voiajorului

B. Reprezentarea soluţiei problemei prin grafuri SI/SAU Există probleme a căror rezolvare poate fi convenabil reprezentată printr-o tehnică numită reducerea problemei la subprobleme. Caracteristica comună a acestei clase de probleme este aceea că orice problemă pusă de un obiect candidat la soluţie poate fi văzută ca o conjuncţie de subprobleme ce pot fi rezolvate independent unele de altele. Rezolvarea problemelor din această clasă poate fi abordată în următorul mod: se descompune problema in subproblemele care trebuie rezolvate, acestea se descompun la rândul lor în alte subprobleme si aşa mai departe, până când se obţine o descompunere a problemei iniţiale in subprobleme elementare, adică banal de rezolvat. Spaţiul de căutare al unei astfel de rezolvări a problemei are forma unui graf SI/SAU. Acesta este un caz particular al unui hipergraf. Un hipergraf este format dintr-o mulţime de noduri si o mulţime de hiperarce definite prin perechi ordonate in care primul element este un nod din mulţimea de noduri a hipergrafului, iar cel de al doilea element este o submulţime de noduri. Un graf obişnuit este un caz particular al unui hipergraf in care cel de al doilea element al hiperarcelor este o mulţime formată dintr-un singur nod. Prin definiţie, o reprezentare a soluţiei problemei prin grafuri SI/SAU este formată din tripletul ( ), ,i eS O P în care:

iS este descrierea stării iniţiale;

Page 11: Capitolul 1 Sisteme Expert

11

O – mulţimea operatorilor de transformare, adică de descompunere a problemei în subprobleme; aplicabili stărilor universului problemei pentru a ajunge în noi stări: in fiecare stare dată, numai o parte din operatori pot fi aplicaţi;

eP – descrierea unei mulţimi de probleme elementare.

Un graf SI/SAU se construieşte pe baza următoarelor reguli: R1. Fiecare nod reprezintă fie o singură problemă fie o mulţime de

probleme ce trebuie rezolvate. R2. Un nod ce reprezintă o singură problemă nu are descendenţi.

Problema este fie o problema elementară, fie o problema neelementară dar care nu se mai poate descompune în subprobleme.

R3. Nodurile ce reprezintă mulţimea de subprobleme în care s-a descompus o problema prin aplicarea unui operator de descompunere se numesc noduri SI.

R4. Nodurile ce reprezintă descompuneri alternative ale unei probleme in subprobleme se numesc noduri SAU. Aceste noduri au ca descendenţi noduri SI.

Un exemplu de graf SI/SAU este prezentat în figura Nod SAU

Noduri SI

Noduri SAU

Fig. 1.7. Graf SI/SAU pentru reprezentarea spaţiului de căutare

Într-un graf SI/SAU există două tipuri de noduri: noduri rezolvate şi noduri nerezolvabile:

Un nod este rezolvat dacă: (i) este un nod terminal etichetat cu o problemă elementară;

(ii) este un nod SI, iar toţi succesorii lui sunt noduri rezolvate; (iii) este un nod SAU si cel puţin un succesor al acestuia este nod

rezolvat.

Un nod este nerezolvabil dacă: (i) este un nod terminal etichetat cu o problemă neelementară care

nu se mai poate descompune în subprobleme; (ii) este un nod SI cu cel puţin un succesor nerezolvabil;

(iii) este un nod SAU cu toţi succesorii nerezolvabili.

O problemă rezolvată astfel are soluţie dacă nodul corespunzător descrierii iniţiale a problemei este rezolvat.

O soluţie a problemei este reprezentată prin secvenţa de operatori de descompunere care determină ca nodul problema iniţială sa devină rezolvat.

A B C A B C

(a) Stare initiala (b) Stare finala n = 3

A la C

n = 2 n = 2

n = 1

A la B

A la C

B la C

n = 1A la C

n = 1A la B

n = 1C la B

n = 1B la A

n = 1B la C

n = 1A la C

(c) Arborele SI/SAU de descompunere in subprobleme

O - operator de descompunere

Fig. 1.7. Reprezentarea soluţiei problemei turnurilor din Hanoi prin arbore SI/SAU

Page 12: Capitolul 1 Sisteme Expert

12

Pentru exemplificare se consideră problema turnurilor din Hanoi care cere să se mute 3n = discuri de pe tija A pe tija C, utilizând tija intermediară B si cu restricţia ca un disc să fie aşezat fie pe o tija liberă, fie peste un disc de o dimensiune mai mare decât el. Starea iniţiala este specificata în fig. 1.7a, starea finală în fig. 1.7b, iar mulţimea operatorilor de descompunere este formată dintr-un singur operator, cu trei componente şi anume:

(i) mută n-1=2 discuri de pe tija i pe tija j, utilizând tija k; (ii) mută un disc de pe tija i pe tija k;

(iii) mută n-1=2 discuri de pe tija j pe tija k, utilizând tija i.

Problema turnurilor din Hanoi având un singur operator de descompunere a problemelor în subprobleme, spaţiul de căutare va avea numai noduri probleme elementare şi noduri SI.

Singura problema elementară in acest caz este aceea de a muta un singur disc de pe o tijă pe o altă tijă respectând restricţia problemei (un disc să fie aşezat fie pe o tijă liberă, fie peste un disc de dimensiune mai mare). Descompunerea problemei in subprobleme poate fi reprezentata prin arborele SI/SAU prezentat în figura 1.7c. 1.3.3. Strategii de căutare de bază 1.3.3.1. Caracterizarea strategiilor de căutare Pentru alegerea unei strategii de căutare trebuie să se ţină cont de:

(i) Completitudinea strategiei care stabileşte dacă strategia asigură sau nu găsirea soluţiei în cazul în care aceasta există.

(ii) Optimalitatea soluţiei găsite care este dată de capacitatea strategiei de a obţine o soluţie optimală, suboptimală sau pur si simplu o soluţie.

(iii) Complexitatea strategiei care se referă la complexitatea exprimată în timp de calcul şi memorie a algoritmului utilizat.

Caracterizarea unei strategii de căutare se poate face după două criterii:

1. capacitatea mecanismului de rezolvare de a reveni într-o stare intermediară anterioară;

2. după cantitatea de informaţie folosită la găsirea soluţiei.

In funcţie de primul criteriu, strategiile de căutare se împart în:

• Strategii de căutare irevocabile.

Un operator aplicabil este selectat şi aplicat unei stări pentru a obţine o nouă stare, iar starea anterioară este uitată (nu este memorată).

O astfel de strategie este strategia de căutare a alpinistului. Ea se bazează pe criterii de optim local. Astfel, asemănător unui alpinist care doreşte sa ajungă repede pe vârful unui munte, strategia alege starea următoare de nivel maxim pe baza unei funcţii de evaluare a stărilor. Strategia este irevocabilă deoarece pentru o stare curentă, după generarea stărilor următoare şi alegerea stării de nivel maxim ca stare următoare, atât starea curentă cât si celelalte stări de pe nivelul stării următoare sunt uitate. Deci nu se mai poate reveni într-una din stările anterioare stării curente sau într-una din alternativele stării curente. Strategia alpinistului, deşi simplă si puţin consumatoare de memorie, prezintă o serie de limitări. De exemplu, dacă problema cere determinarea stării cu o valoare maximă a funcţiei de evaluare, maximul global poate sa nu fie niciodată atins, căutarea blocându-se intr-un maxim local.

• Strategii de căutare tentative.

La aplicarea unui operator starea curentă este memorată astfel încânt procesul de căutare să poată reveni ulterior in stările anterioare aplicării operatorilor. Dacă starea anterioară la care se poate reveni în timpul căutării se află numai pe calea curentă între starea iniţială si starea finală, strategia de căutare este o strategie tentativă de tip "backtracking". Aceasta este, de exemplu, strategia utilizata de limbajul Prolog.

Dacă starea anterioară în care se poate reveni se află pe orice cale deja parcursă în expandarea spaţiului de căutare, strategia este de căutare tentativă generală pe grafuri.

În funcţie de cel de-al doilea criteriu, strategiile de căutare se împart în: • Strategii de căutare neinformate.

Considerarea stărilor următoare de inspectat se face după o ordine arbitrară, anterior stabilită. Strategiile de căutare neinformată inspectează sistematic toate stările spaţiului de căutare până în momentul găsirii stării finale. Cele mai importante strategii de acest fel sunt căutarea pe nivel sau căutarea în lăţime si căutarea in adâncime.

• Strategii de căutare informate.

Page 13: Capitolul 1 Sisteme Expert

13

Considerarea stărilor următoare de inspectat se face după criterii euristice. Strategia foloseşte o funcţie de evaluare a situaţiei globale sau locale care indică starea următoare cea mai promiţătoare din punct de vedere al avansului spre soluţie. Strategiile de căutare euristice încearcă reducerea numărului de stări din spaţiul de căutare inspectate până la atingerea stării finale, pe baza diverselor criterii, cum ar fi funcţiile euristice. Strategia alpinistului descrisă anterior este un exemplu de căutare informată Alte exemple sunt strategia

de căutare "best-first", algoritmul A* si algoritmul AO*. Algoritmii A* si

AO* urmăresc în principal, pe lângă reducerea numărului de stări inspectate, găsirea soluţiei optime.

Costul computaţional total al unui program de rezolvare a problemelor de IA depinde de locul unde se situează strategia de control în spectrul neinformat/informat şi are două componente:

costul aplicării operatorilor, sau costul parcurgerii spaţiului de căutare între starea iniţială si starea finală;

costul controlului, sau costul evaluării si selecţiei celei mai promiţătoare stări următoare.

Grad deinformare

CostComputational

Cost total

Cost control(cost evaluare stari)Cost parcurgere

(cost aplicareoperatori)

Neinformat Informat

Fig. 1.8 Costul total al rezolvării unei probleme prin căutare

O strategie de căutare complet neinformată implică un cost redus al controlului şi un cost ridicat al parcurgerii spaţiului de căutare deoarece, în

general, necesită aplicarea unui număr mare de operatori înaintea găsirii unei soluţii. Invers, o strategie de control complet informată despre domeniul problemei implică un cost ridicat al controlului deoarece poate necesita calcule complicate pentru evaluarea meritului stărilor şi un cost minim de parcurgere a spaţiului de căutare datorita numărului redus de operatori aplicaţi până la găsirea soluţiei.

După cum se poate observa şi din figura 1.8 există un grad optim de informare pentru care costul total este minim. În funcţie de aplicaţie, proiectantul programului trebuie să încerce determinarea celei mai bune variante de pondere a costurilor. Obţinerea unui cost computaţional optim este un aspect esenţial deoarece problemele de căutare sunt probleme de complexitate timp exponenţială. 1.3.3.2. Căutări neinformate în spaţiul stărilor Se consideră:

• un graf definit implicit prin mulţimea operatorilor asociaţi arcelor; • nodul sau mulţimea de noduri ce definesc starea iniţială iS , adică

condiţiile iniţiale ale problemei de rezolvat; • nodul sau mulţimea de noduri ce definesc starea finală fS , adică

obiectivele sau cerinţele problemei. Pentru rezolvarea este necesar să se găsească o cale între starea iniţială şi starea finală. Principiul care se află la baza algoritmului generic de căutare constă în explorarea incrementală a căilor ce pornesc din nodurile aferente stării iniţiale şi foloseşte noţiunea de frontieră pentru a delimita nodurile explorate de cele care nu au fost încă explorate. În parcurgerea spaţiului de căutare un nod poate fi:

• necunoscut - nodul aparţine părţii neexplorate a spaţiului de căutare,

• evaluat - nodul este cunoscut dar fie nu se cunoaşte nici un succesor al lui, fie se cunosc numai o parte dintre aceştia;

• expandat - nodul este cunoscut si, in plus, se cunosc toţi succesorii lui.

Prin expandarea unui nod se înţelege generarea tuturor succesorilor săi, adică aplicarea tuturor operatorilor legali stării curente cS aferentă nodului.

Page 14: Capitolul 1 Sisteme Expert

14

În procesul de căutare se vor folosi doua liste: • LF – lista frontieră care conţine nodurile evaluate; • LT – lista teritoriu care conţine nodurilor expandate.

Deci LF reprezintă frontiera spaţiului de căutare parcurs (explicitat) spre partea necunoscută a acestuia, iar LT partea cunoscută a spaţiului de căutare. În cele ce urmează se prezintă strategia de căutare pe nivel şi strategia de căutarea în adâncime. Algoritmii prezentaţi presupun că:

1. Spaţiul de căutare este arbore, adică între starea iniţială şi cea finală există o cale unică. Prin urmare, toate stările generate pe parcursul căutării sunt unice, deci nu au mai fost generate anterior. Extinderea si modificările necesare pentru a generaliza algoritmii la spatii de căutare de tip graf vor fi prezentate in final.

2. La fiecare expandare a unui nod se stabileşte o legătură de la fiecare nod succesor la nodul expandat. In momentul descoperirii nodului stare finală aceste legaturi permit reconstruirea caii spre soluţie.

Definiţie. Intr-o reprezentare a soluţiei problemei prin spaţiul stărilor adâncimea unui nod se defineşte astfel:

Ad( )=0iS , unde Si este nodul stare iniţială,

Ad( )=Ad( )+1c pS S , unde Sp este predecesorul stării curente Sc.

Căutarea pe nivel sau în lăţime

Căutarea pe nivel, numită şi căutarea în lăţime, este o strategie care expandează stările următoare în ordinea apropierii faţă de nodul stare iniţială Si. Această strategie tratează lista frontieră LF folosind o strategie de tipul FIFO. Nodul din frontieră care se elimină este primul din listă, iar succesorii săi sunt adăugaţi la sfârşitul listei.

Algoritm: Strategia căutării pe nivel in spaţiul stărilor 1. Creează listele LF { }iS← si LT { }← 2. DACĂ LF={ } ATUNCI întoarce INSUCCES /* nu există soluţie */ 3. Elimină primul nod Sc din LF si-l inserează în LT 4. Expandează nodul Sc

4.1. Generează toţi succesorii direcţi jS ai nodului Sc

4.2. pentru fiecare succesor S (1 j m)j ≤ ≤ al lui Sc executa

4.2.1. Stabileşte legătura S Sj → 4.2.2. daca Sj este stare finală

atunci i. Soluţia este (S S,...,S )j i, ii. întoarce SUCCES /* s-a găsit soluţie */ 4.2.3. Insereaza jS in LF, la sfârşit

5. repeta de la 2 sfârşit.

Exemplu Pentru exemplificare se consideră graful din figura 1.9 în care nodul n1 reprezintă starea iniţială, iar nodul n10 starea finală.

n1

n2

n4

n8 n9 n10

n5 n6 n7

n3

Fig. 1.9. Graful de căutare

Pas 1. Iniţializări { }1LF n= şi { }LT =

Pas 2 . Elimină 1n din LF şi-l inserează în LT: { }LF = şi { }1LT n=

Pas 3. Generează succesorii lui 1n si-i inserează în LF: { }2 3,LF n n=

Page 15: Capitolul 1 Sisteme Expert

15

Pas 4. Elimină 2n din LF şi-l inserează în LT: { }3LF n= şi

{ }1 2,LT n n=

Pas 5. Generează succesorii lui 2n si-i inserează în LF la sfârşit:

{ }3 4 5, ,LF n n n=

Pas 6. Elimină 3n din LF şi-l inserează în LT: { }4 5,LF n n= şi

{ }1 2 3, ,LT n n n=

Pas 7. Generează succesorii lui 3n si-i inserează în LF la sfârşit:

{ }4 5 6 7, , ,LF n n n n=

Pas 8. Elimină 4n din LF şi-l inserează în LT: { }5 6 7, ,LF n n n= şi

{ }1 2 3 4, , ,LT n n n n=

Obs. Deoarece 4n nu are succesori, nu se adaugă alte noduri în lista LF.

Pas 9. Elimină 5n din LF şi-l inserează în LT: { }6 7,LF n n= şi

{ }1 2 3 4 5, , , ,LT n n n n n=

Pas 10. Generează succesorii lui 5n şi-i inserează în LF la sfârşit:

{ }6 7 8 9, , ,LF n n n n= .

Pas 11. Elimină 6n din LF şi-l inserează în LT: { }7 8 9, ,LF n n n= şi

{ }1 2 3 4 5 6, , , , ,LT n n n n n n= . Deoarece 6n nu are succesori, LF nu se modifică.

Pas 12. Elimină 7n din LF şi-l inserează în LT: { }8 9,LF n n= şi

{ }1 2 3 4 5 6 7, , , , , ,LT n n n n n n n=

Pas 13. Generează succesorii lui 7n şi-i inserează în LF la sfârşit:

{ }6 7 8 9 10, , , ,LF n n n n n=

Deoarece nodul final 10n a apărut în frontieră, se consideră procesul de

căutare încheiat şi se specifică soluţia { }1 3 7 10, , ,n n n n

Căutarea poate fi uneori lungă şi complex computaţională din punct de vedere al spaţiului utilizat deoarece pentru fiecare nivel sunt generate toate stările succesoare posibile. Cu toate acestea, strategia de căutare pe nivel garantează găsirea soluţiei, în cazul în care aceasta există şi, în plus, găseşte cel mai scurt drum spre soluţie în termenii numărului de tranziţii de stări executate.

Căutarea în adâncime

Căutarea în adâncime este strategia cea mai frecvent utilizată în aplicaţiile practice. Ea expandează stările cel mai recent generate, adică nodurile din lista LF cu adâncimea cea mai mare. Prin urmare, această strategie parcurge o cale de la starea iniţială până la o stare ce poate fi starea finală sau care nu mai are nici un succesor. În acest ultim caz se aplică mecanismul backtracking revenindu-se pe nivelurile anterioare şi se încearcă explorarea altor căi posibile. În cadrul acestei strategii lista frontieră LF este tratată ca o stivă folosind o tehnică de tipul LIFO (Last In First Out). Strategia căutării în adâncime nu garantează obţinerea unei soluţii a problemei, chiar în cazul în care aceasta există. O astfel de situaţie poate să apară în cazul unui spaţiu de căutare infinit în care ramura pe care s-a plecat în căutare nu conţine soluţia. Din acest motiv se introduce o limită maximă a adâncimii de căutare, AdMax. Dacă această limită a fost atinsă fără a se găsi soluţia, atunci strategia revine si inspectează stări de pe nivelurile inferioare lui AdMax dar aflate pe căi diferite. În acest fel, soluţia care s-ar găsi pe calea iniţială la o adâncime mai mare decât AdMax este pierdută. În schimb, algoritmul căutării în adâncime prezintă avantajul generării unui număr de stări mai mic comparativ cu algoritmul căutării pe nivel. Algoritm: Strategia căutării in adâncime în spaţiul stărilor

1. Creează listele { }iLF S← si { }LT ←

2. DACĂ ={ }LF

Page 16: Capitolul 1 Sisteme Expert

16

ATUNCI întoarce INSUCCES /* nu există soluţie sau soluţia nu poate fi găsită până la nivelul AdMax */

3. Elimină primul nod Sc din LF si-l inserează în LT

3'. DACĂ ( )cAd S AdMax=

ATUNCI repetă de la 2 4. Expandează nodul Sc

4.1. Generează toţi succesorii direcţi jS ai nodului Sc

4.2. Pentru fiecare succesor (1 )jS j m≤ ≤ al lui Sc execută

4.2.1. Stabileşte legătura j cS S→

4.2.2. DACĂ jS este stare finală

ATUNCI i. Soluţia este ( , ,..., )j c iS S S

ii. întoarce SUCCES /* s-a găsit soluţie */ 4.2.3. Inserează jS în LF, la început

5. repetă de la 2 sfârşit.

Exemplu Pentru exemplificare se consideră tot graful din figura 1.9 (cel folosit la exemplificarea metodei de căutare pe nivel) în care nodul n1 reprezintă starea iniţială, iar nodul n10 starea finală. Obs: Ordinea în care se explorează diversele căi în graful de căutare depinde de ordinea în care se generează şi se inserează în LF succesorii nodului expandat . În cele ce urmează considerăm că succesorii unui nod se generează în ordinea indicelui numeric.

Pas 1. Iniţializări { }1LF n= şi { }LT =

Pas 2 . Elimină 1n din LF şi-l inserează în LT: { }LF = şi { }1LT n=

Pas 3. Generează succesorii lui 1n si-i inserează în LF: conform convenţiei adoptate mai întâi se genereză şi se introduce în listă

2n şi apoi 3n . Deci { }3 2,LF n n= (ultimul nod generat este primul în lista LF)

Pas 4. Elimină 3n din LF şi-l inserează în LT: { }2LF n= şi

{ }1 3,LT n n=

Pas 5. Generează succesorii lui 3n în ordinea 6n , 7n si-i inserează în

LF care devine { }7 6 2, ,LF n n n=

Pas 6. Elimină 7n din LF şi-l inserează în LT: { }6 2,LF n n= şi

{ }1 3 7, ,LT n n n=

Pas 7. Generează succesorii lui 7n . Există un singur succesor 10n care

este inserat la inceputul listei care devine { }10 6 2, ,LF n n n= Obs. Deoarece s-a identificat starea finală, procesul de căutare se opreşte. Pentru a elimina dezavantajele specifice celor două strategii de căutare de bază (strategia de căutare pe nivel şi cea în adâncime) s-a dezvoltat algoritmul de căutare în adâncime cu nivel iterativ denumit şi algoritmul lui Korf. Acest algoritm realizează la început o căutare în adâncime în spaţiul stărilor cu o adâncime maximă de căutare AdMax . Dacă starea finală nu a fost găsită, se reia căutarea în adâncime cu

1AdMax AdMax= + şi se continuă în acest fel, crescând adâncimea de căutare. La fiecare iteraţie algoritmul realizează o căutare în adâncime completă corespunzătoare valorii curente AdMax . Între două iteraţii succesive nu se reţine nici o informatie despre spatiul de căutare. În acest fel se garantează găsirea soluţiei, dacă aceasta există, precum şi a drumului cel mai scurt către soluţie În cazul în care spaţiul de căutare nu este un arbore, ci un graf oarecare, pentru a evita reconsiderarea unei stări analizate anterior, pasul de inserare a stării Sj în lista LF (pasul 4.2.3) se modifică astfel: 4.2.3' DACĂ jS LF LT∉ ∪

ATUNCI inserează jS în LF, la sfirsit respectiv la început în

funcţie de strategie.

Page 17: Capitolul 1 Sisteme Expert

17

Observaţii:

1. Ambele tipuri de căutări realizează un rationament direct, pornind în rezolvarea problemei de la starea iniţială si generând arborele de căutare a stării finale. Acest mod de abordare corespunde raţionamentului deductiv.

2. In anumite cazuri se poate proceda invers, executind strategiile începind din starea finală şi căutând starea iniţială. Acest mod de abordare corespunde raţionamentului inductiv.

3. În anumite probleme se poate utiliza o combinaţie între raţionamentul direct si cel invers, adică un rationament bidirectional în care se caută soluţia pornind simultan din starea iniţială si cea finală. În cazul acestei strategii, dacă se utilizează căutarea în adâncime există pericolul ca cei doi arbori generaţi simultan, unul pe calea directă şi celălalt pe calea inversă, să nu aibă noduri intermediare comune (să nu se întâlnească).

4. Strategiile de cautare pe nivel si în adincime pot fi uşor adaptate la căutarea soluţiei problemei în reprezentarea cu grafuri SI/SAU. Diferenţa constă în criteriul de determinare a condiţiei de oprire. De această dată trebuie să se testeze dacă o mulţime de noduri formează un arbore soluţie. Prin urmare, impactul fiecărui nod nou generat trebuie propagat în arborele parţial construit pentru a determina dacă nodul problemă iniţială a devenit rezolvat. Algoritmele de căutare în grafuri SI/SAU trebuie să gestioneze, pe linga listele LF si LT, si o structură de date care reprezintă arborele SI/SAU construit prin explicitarea spatiului de căutare definit în mod implicit de reprezentare. O altă diferenţă constă în faptul că nodurile SI nu se introduc în aceste listele LF şi LT deoarece ele nu corespund efectiv unor subprobleme, ci indică numai o mulţime de subprobleme care trebuie rezolvate. Aceste noduri sunt însă construite şi fac parte din porţiunea explicitată a spaţiului de căutare. Pe baza stării de rezolvat sau nerezolvabil a acestor noduri se poate decide cind s-a obtinut arborele solutie.

1.3.3.3. Strategii de căutare euristică

În rezolvarea problemelor utilizind strategii de căutare neinformată numărul de stări investigate înainte de a gasi o soluţie poate ajunge prohibitiv de mare, chiar si pentru probleme relativ simple.

Spatiul de cautare explorat poate fi redus prin aplicarea tehnicilor euristice de căutare care ţin seama de cât de aproape este fiecare nod al grafului de nodul corespunzător stării finale. Cuvântul euristic(ă) provine din greaca veche şi are înţelesul “a descoperi”. Conform DEX “un procedeu euristic serveşte la descoperirea unor cunoştinţe noi”, respectiv defineşte o parte a ştiinţei care are ca obiect descoperirea de fapte noi. În contextul problemelor de căutare, o tehnică euristică este o strategie folosită pentru a creşte eficienţa căutării, fără a garanta obţinerea soluţiei. Dezvoltarea unei tehnici euristice se face pe baza unor aproximări raţionale, ipoteze simplificatoare şi cunoştinşe specifice domeniului problemei. În acest context, cunoştinţele euristice pot fi utilizate pentru:

a) selectarea nodului urmator de expandat în cursul căutării – selectarea nodului cel mai promiţător pentru obţinerea soluţiei;

b) a decide care dintre succesorii nodului ce este expandat vor fi generaţi şi care nu – expandarea parţială a unui nod prin aplicarea numai a unui sbset de operatori dintre cei posibil de aplicat;

c) eliminarea din spaţiul de căutare a anumitor noduri generate – retezarea arborelui de căutare.

Sf

Si

Sc

g( )Sc

h( )Sc

f( )Sc

Fig. 1. 10. Definirea unei funcţii euristice

O mare parte dintre tehnicile euristice cunoscute sunt tehnici cu aplicabilitate generală. Totuşi, pentru aplicarea lor cu succes la o problemă particulară, ele trebuie suprapuse peste euristica specifică problemei analizate. Cel mai simplu mod de îmbinare constă în definirea unei funcţii

Page 18: Capitolul 1 Sisteme Expert

18

euristice care exprimă – cel mai adesea în formă numerică – cât de promiţătoare este o stare din spaţiul de căutare în procesul de identificare a soluţiei, adică cât de apropiată este starea respectivă de stare finală. Modul cel mai general de definire a une funcţii euristice f foloseşte alte două funcţii, g şi h, având următoarele semnificaţii (fig. 1.10):

• funcţia g evaluează costul deplasării din starea iniţială Si în starea curentă Sc;

• funcţia h estimează costul deplasării din starea curentă Sc în starea finală Sf;

Dintre cele trei funcţii doar g poate fi evaluată precis, celelalte două

fiind doar estimate şi de aceea se notează *f şi *h , iar legătura dintre ele este dată de relaţia

* *( ) ( ) ( )i f i c c ff S S g S S h S S→ = → + → (1)

O particularitate proprie tehnicilor euristice de căutare o reprezintă caracterul local al procesului decizional care determină o comportare nemonotonă a funcţiei h în spaţiul stărilor. Există numeroase metode euristice de căutare dintre care cele mai cunoscute sunt:

Metoda căii spre obiectiv

Principiul acestei metode constă în alegerea acelor operatori care par să conducă la un obiectiv, de obicei soluţia problemei. În acest sens, la fiecare pas al procesului de căutare se evaluează diferenţele dintre starea curentă Sc şi starea finală Sf pe baza cărora se identifică un operator 1O ce ar permite trecerea directă din starea curentă în cea finală. Din păcate un astfel de operator fie nu există, fie nu poate fi aplicat. De aceea se aplică principiul descompunerii problemei în subprobleme. Astfel, se determină o stare intermediară '

cS căreia i se poate aplica operatorul 1O identificat anterior şi în care se poate ajunge din starea curentă Sc prin aplicarea unui operator secundar 2O .

Metoda pasului optim (best – first)

Ideea de bază a acestei strategii este aceea de a selecta, din spatiul de căutare generat, pentru expandare cel mai bun nod folosind în acest sens cunostinţele euristice, adică o estimare a stării cu ajutorul funcţiei euristice.

Algoritmul de bază al metodei implică parcurgerea următoarelor etape:

1. Calculul funcţiei euristice pentru toate nodurile din nivelul curent (nodurile din frontieră)

2. Selectarea nodului cu valoarea minimă/maximă a funcţiei euristice

3. Expandarea nodului selectat (generarea succesorilor săi). Dacă unul dintre succesori este soluţia, atunci procesul de căutare se opreşte.

Algoritmele A* şi AO*

Folosesc pentru a evalua fiecare nod al frontierei o funcţie cost globală de tipul celei definită de relaţia (1) şi caută o soluţie optimă a problemei. Algoritmul A* este specific reprezentării prin spaţiul stărilor, în timp ce algoritmul AO* este specific reprezentării prin grafuri SI/SAU.

Pentru a exemplifica modul de utilizare a strategiilor de căutare în cadrul motorului de inferenţe al unui SE se consideră baza de cunoştinţe formată din faptele cunoscute B şi C, respectiv scopul căutat notat cu H şi baza de reguli:

R1: DACĂ B ŞI D ŞI E → F R2: DACĂ D ŞI G → A R3: DACĂ C ŞI F → A R4: DACĂ B → X R5: DACĂ D → E R6: DACĂ A ŞI X → H R7: DACĂ C → D R8: DACĂ X ŞI C → A R9: DACĂ X ŞI B → D

În figura 1.11 se prezintă două tipuri de arborescenţe ce corespund acestui caz. Prin linii continue se reprezintă regulile aplicate, iar nodurile reprezintă diferitele stări ale bazei de fapte. Liniile întrerupte corespund regulilor aplicabile, dar pe care motorul de inferenţe nu le-a ales pentru utilizare.

Page 19: Capitolul 1 Sisteme Expert

19

Procedeul de căutare înainte (raţionamentul deductiv) (fig. 1.11, a, b) constituie o tehnică de inferenţă care foloseşte reguli (DACĂ-ATUNCI) pentru a găsi soluţia (H) a problemei pornind de la fapte cunoscute (B şi C). Astfel, pornind de la faptele B şi C folosind regula R4 se deduce X, apoi folosind şi regula R7 se deduce D, ş.a.m.d.

B C

X

, , B C

X D

, ,

,

B C

X D

E

, ,

, ,

B C

X D

E F

, ,

, ,

,

B C

X D

E F

A

, ,

, ,

, ,

R7R8

R9

R5R8

R9

R1

R8R9

R3

R8R9

R6

R8R9

HR4R7

B C,

B C

X

, , B C

X A

, ,

, R7

R8

R9

R6R7

R9

R4R7B C,

H

H R6

R4

A

X B

G

DR2

C

F

R3 B

D

E

R7

R9

C

R5 DC

R8

verificatverificat

verificat

verificat

verificat

neverificat

inutil deoarece nu a fost verificat G

a

b

c

R7

R9

R1ŞI

ŞI

ŞI

ªI

SAU

SAU

ŞIambele subscopuritrebuie verificate

SAUuna sau alta dintrereguli poate fi aplicată

Fig. 1.11. Procedee de inferenţă:

a – căutare înainte (după prima regulă aplicabilă); b – căutare înainte (după regula cu cel mai mare număr de condiţii);

c – căutare înapoi.

Pe măsură ce una din reguli este întrebuinţată noile fapte se adaugă la baza de fapte. În stabilirea ordinii de alegere a regulilor în exemplul prezentat s-au aplicat următoarele strategii: s-a ales fie prima regulă aplicabilă, adică în ordinea lor de numerotare R4 (R7), R7 (R8, R9) (fig. 1.11, a), fie regula cu cel mai mare număr de condiţii (fig. 1.11, b). Astfel, în al doilea caz se preferă regula R8 şi nu R7, pentru că are, conform bazei de reguli, condiţiile X şi C. În cazul când două sau mai multe reguli au acelaşi număr de condiţii se alege prima regulă. Se consideră ”succes” momentul când scopul este adăugat la baza de fapte, iar ”eşec” când nu se mai poate aplica nici o regulă. Oprirea căutării are loc în momentul în care în baza de fapte apare scopul urmărit H. După cum deja s-a menţionat, criteriul de alegere în etapa de rezolvare a conflictelor influenţează performanţele motorului de inferenţe. În exemplul prezentat s-au efectuat 6 inferenţe în primul caz (a) şi doar 3 inferenţe în al doilea caz (b). Procedeul de căutare înainte sau raţionamentul deductiv prezintă două mari avantaje care în unele aplicaţii sunt absolut necesare: dă posibilitatea generării tuturor soluţiilor posibile şi îmbogăţeşte la fiecare ciclu al motorului de inferenţe baza de fapte, ceea ce simplifică deducţiile ulterioare. Marele dezavantaj al acestui procedeu îl constituie lipsa proprietăţii de completitudine (garantarea găsirii soluţiei în cazul în care aceasta există).

Procedeul de căutare înapoi (raţionamentul inductiv) (fig. 1.11, c) este bazat pe utilizarea unui raţionament concentrat pe scop, adică porneşte de la scop – o problemă de rezolvat; în acest sens, scopul se descompune succesiv în subprobleme, până când se obţin probleme primitive (fapte dovedite sau interogabile). De aceea, se spune că acest mod de căutare/raţionament este dirijat de scop, în sensul găsirii faptelor care permit atingerea acestuia (în mod invers în raport cu procedeul de căutare înainte). Motorul de inferenţe utilizează reguli de la dreapta la stânga, adică în sensul de la Concluzie → Premisă. Regulile selecţionate sunt acelea care au în partea de concluzii (în dreapta) scopul specificat iniţial, premisele acestora devenind subscopuri ce urmează a fi demonstrate. Acest proces se repetă până când toate subscopurile obţinute sunt demonstrate, sau în urma etapei de filtraj mulţimea regulilor declanşabile este vidă, adică s-a ajuns într-o situaţie de eşec.

Page 20: Capitolul 1 Sisteme Expert

20

Pentru exemplificarea raţionamentului inductiv se consideră aceeaşi bază de cunoştinţe; pentru început se propune verificarea scopului H. Dacă se parcurg regulile R1…R9, se observă că numai regula R6 are concluzia H. Astfel H se reduce prin regula R6 la subscopurile A şi X. La rândul său scopul A poate fi verificat utilizând una din cele trei reguli simple R2, R3 sau R8. Strategia utilizată constă în folosirea primei reguli aplicabile (în ordinea numerotării lor) pentru ca, în continuare, să caute a verifica unul după altul subscopurile astfel produse. Subscopul X este adevărat dacă regula R4, în care X este concluzia, se poate aplica. Continuând raţionamentul se obţine arborele ŞI/SAU de verificare a scopului H. În caz de ”eşec” (de exemplu subscopul G nu poate fi dedus în nici un fel), se revine înapoi şi ultima regulă lăsată deoparte este încercată la rândul său. Explorarea arborescenţei se opreşte când scopul iniţial este demonstrat (ca în exemplul dat), sau când toate posibilităţile au fost explorate fără succes. Dezavantajul sistemelor cu înlănţuire înapoi este acela că poate apărea blocajul.

În conceperea şi introducerea sistemelor expert în energetică trebuie avut în vedere permanent că omul va rămâne principalul element de decizie, sistemul expert asistându-l în această activitate în situaţii excepţionale (incidente, avarii etc.) sau de rutină pentru a-l elibera de anumite sarcini şi a-i da posibilitatea să se concentreze pe acele activităţi care implică în mod necesar elementul uman în alegerea şi executarea acţiunilor. Sistemul expert trebuie considerat ca un element auxiliar şi nu ca o alternativă la funcţiile actuale ale dispecerilor.

În prezent cele mai multe SE dezvoltate folosesc doar cunoştinţe declarative. Având în vedere că în sistemele electroenergetice există şi o mare cantitate de cunoştinţe procedurale, apare necesar un nou tip de SE – care să utilizeze ambele tipuri de cunoştinţe. În cadrul centralelor şi reţelelor electrice este disponibil un număr mare de cunoştinţe – sub formă de reguli şi fapte – a căror utilizare trebuie eficientizată. În acest scop apar următoarele probleme: • alegerea regulilor şi faptelor de importanţă esenţială pentru o anumită

aplicaţie (este nevoie de metode de reducere şi de combinare a cunoştinţelor date);

• aducerea la zi a regulilor. Unele reguli se păstrează o perioadă lungă de timp, în timp ce alte reguli se schimbă. Aceste reguli pot fi adesea obţinute numai prin modele matematice, care descriu relaţiile cauzale

dintre obiectele considerate. Aici există o strânsă legătură între cunoştinţele declarative şi cele procedurale;

• stabilirea priorităţilor în timp a regulilor şi faptelor; • testarea inconsistenţei şi a integrităţii. Prin folosirea ambelor categorii de cunoştinţe – declarative şi procedurale – apare o funcţie nouă şi anume sistemul de tip consilier. Acesta este un tip de software care ajută operatorul în luarea deciziilor prin folosirea cunoştinţelor declarative şi procedurale şi a mecanismelor corespunzătoare de rezolvare a problemelor.

O formă foarte simplă constă în folosirea a două niveluri: un nivel superior pentru aplicarea cunoştinţelor declarative sub forma regulilor şi faptelor şi un nivel inferior pentru cunoştinţele procedurale sub forma modelelor matematice ce descriu relaţiile cauzale.