Sunteți pe pagina 1din 20

Capitolul 1 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
SISTEME EXPERT 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
1.1. Concepte generale
prelucrare, conţin:
• baza de cunoştinţe alcătuită din reguli şi fapte;
Sistemele expert (SE) constituie o clasă particulară de sisteme
informatice bazate pe inteligenţa artificială, având ca scop reproducerea cu • elementele necesare manipulării cunoştinţelor sub forma
ajutorul calculatorului a cunoştinţelor şi raţionamentelor experţilor umani. mecanismului de inferenţă;
• elementele necesare achiziţionării şi implementării de noi
Edward Feigenbaum de la Stanford University, considerat părintele cunoştinţe;
sistemelor expert, defineşte SE ca fiind: “programe concepute pentru a • componenta explicativă.
raţiona în scopul rezolvării problemelor dificile pentru care, în mod
obişnuit, se cere o expertiză umană considerabilă”. Asemănător expertului uman care, bazându-se pe cunoştinţele
acumulate, prin raţionamentul propriu ajunge la anumite concluzii, un SE
În definiţia SE apar cuvintele expert şi expertiză. Un expert uman este se bazează pe cunoştinţele înglobate în baza de cunoştinţe şi pe mecanismul
o persoană care posedă cunoştinţe temeinice într-un anumit domeniu, un de inferenţă care are funcţia de a lua decizii în urma unor raţionamente
specialist de înaltă clasă, care poate efectua o expertiză în acel domeniu. Cu logice.
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 Raţionamentul este o înlănţuire de judecăţi (propoziţii) în care
capabil să îndeplinească următoarele sarcini: plecând de la anumite cunoştinţe, consemnate într-un număr de propoziţii
• să formuleze precis problema pe baza datelor puse la dispoziţie de numite premisesau fapte iniţiale, se ajunge la o nouă cunoştinţă –
beneficiar; exprimată printr-o nouă propoziţie numită concluzie. Raţionamentul este
• să determine soluţia corectă; 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
• să explice soluţia şi paşii necesari pentru obţinerea ei;
care trebuie să conducă la atingerea unui scop: a demonstra, a convinge, a
• să acorde asistenţă pentru implementarea soluţiei într-un domeniu
elucida, a decide, a explica etc.
particular.
Sistemule expert diferă în mod esenţial de sistemele informatice
Din punct de vedere funcţional, un sistem expert poate fi definit ca un
convenţionale (procedurale) de prelucrare care folosesc date şi algoritmi
program care se bazează pe o bancă de cunoştinţe pentru a realiza
cunoscuţi apriori pentru rezolvarea problemelor.
anumite sarcini, uneori dificile, pe care de regulă le rezolvă un expert
uman din domeniul respectiv. Ele implică următoarele caracteristici distinctive:
• reprezentări simbolice;
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ă • inferenţă simbolică;
rezolvarea problemei într-un timp rezonabil. • căutare euristică.

Cu alte cuvinte, un SE este un program inteligent care utilizează Metodele de rezolvare a problemelor folosite de către sistemele expert
cunoştinţe, fapte şi tehnici de raţionament pentru a rezolva probleme care nu sunt proceduri matematice sau procesoare de date, ci tehnici de
în mod normal necesită cunoştinţele experţilor umani. raţionament calitativ sau euristice, care leagă elemente între ele prin reguli
de judecată precum şi prin legi şi definiţii teoretice.
Diferenţa dintre un program de calcul analitic şi un sistem de tip 2. disponibilitatea crescută, expertiza devenind accesibilă pe orice
expert constă în: calculator adecvat: spre deosebire de expertul uman, SE este
disponibil în orice moment şi nu este afectat de emozivitate, factori
• sistemul expert foloseşte datele din baza de date filtrate printr-un
de stres etc.;
set de cunoştinţe, înmagazinate în baza de cunoştinţe, care sunt
independente de algoritmul de rezolvare utilizat; 3. reducerea costului, explicabilă în corelaţie cu cele menţionate la
punctul anterior, dar şi cu evoluţia preţului sistemelor de calcul;
• 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 4. permanenţa, rezultată din faptul că, spre deosebire de experţii
convergent; umani, SE nu au o viaţă limitată;
• datorită delimitării nete dintre elementele componente (baza de 5. reducerea riscurilor prin incorporarea în sisteme de comandă a
date, baza de cunoştinţe, motorul de inferenţă) un sistem expert roboţilor industriali utilizţi în medii periculoase pentru om;
poate fi modificat cu uşurinţă prin simpla adăugare sau eliminare de 6. creştrea calităţii, prin obţinerea unei expertize complete a
reguli; conceperea unui sistem expert este un proces linear, realizat domeniului, ceea ce expertul uman nu realizează întotdeauna;
prin discuţii repetate cu experţi umani pentru dezvoltarea bazei de
cunoştinţe; 7. posibilitatea de explicare în detaliu a soluţiei obţinute pentru
creşterea gradului de încredere al utilizatorului;
• 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 8. rapiditatea, în sensul că pe sisteme hardware şi software adecvate se
explicativ independent numit “interfaţa cu utilizatorul”. pot obţine performanţe de timp mult mai bune comparativ cu cele
ale experţilor umani;
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ă 9. păstrarea în siguranţă a cunoştinţelor: marile firme şi-au constituit
opereze cu aceste cunoştinţe pentru a deduce concluziile valide. sisteme expert pentru a fi afectate într-o mai mică măsură de
plecarea unor experţi umani;
Indiferent de diversele definiţii date SE, există patru caracteristici ce
califică un program drept sistem expert: 10. contribuţia la răspândirea cunoştinţelordin domeniu: un utilizator
poate rula programul pntru mai multe probleme, de la simplu la
• lucrează la un nivel expert de competenţă; complex, şi urmărind soluţiile şi explicaţiile date de SE se poate
• foloseşte un mecanism de inferenţă pentru a realiza deducţiile; autoinstrui în domeniul respectiv.

• expertiza efectuată se bazează exclusiv pe cunoştinţe special


dobândite; 1.2. Arhitectura unui SE
• 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 În general, un sistem expert cuprinde următoarele module (fig. 1.1):
specifice, numite baze de cunoştinţe, în scopul utilizării ulterioare. • baza de cunoştinţe;
• baza de date;
Dintre avantajele oferite de SE se menţionează: • motorul de inferenţe1;
1. aria de aplicabilitate cuprinde numeroase domenii de activitate
mergând de la arhitectură, arheologie, bănci, comerţ, educaţie, până 1
la ingineria sistemelor şi medicină; Inferenţă = operaţie logică de trecere de la un enunţ la altul şi în care ultimul
enunţ este dedus din primul (DEX)
2
• modulul de achiziţionare de cunoştinţe; • reţele semantice;
• interfaţa cu inginerul de aplicaţie (expertul);
• structuri împachetate sau frame–uri;
• interfaţa cu inginerul de cunoştinţe;
• interfaţa cu utilizatorul; • obiecte;
• module de grafică şi de calcul. • logica propoziţională sau a predicatelor

Expert în A. Reguli de producţie


domeniu
Baza de
date
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.
Date
Într-un sistem de producţie cunoştinţele sunt de natură procedurală şi
Memoriea de Motor de se împart în următoarele componente:
lucru inferenţă
Acţiuni
Fapte dinamice • cunoştinţe declarative sau factuale, grupate sub forma unor
Achiziţie de
cunoştinţe

Concluzii
Inginer de Reguli Utilizator structuri de date memorate într-o colecţie denumită context;
cunoştinţe selecţionate

Baza de Reguli Selectare • cunoştinţe procedurale reprezentate sub forma unor perechi de
cunoştinţe Fapte reguli şi fapte tipul condiţie – acţiune, denumite reguli de producţie, memorate în
baza de reguli;
Mediu de
dezvoltare • cunoştinţe strategice sau de control, reprezentate sub forma unor
reguli care sprijină decizia în procesul de soluţionare al problemei.
Fig. 1.1. Structura unui sistem expert Structura generală a unei reguli de producţie este:

1.2.1. Baza de cunoştinţe <partea de condiţie> → <partea de acţiune>

Baza de cunoştinţe (BC) cuprinde o colecţie de cunoştinţe relevante şi poate fi interpretată astfel:
despre un anumit domeniu şi este constituită din reguli şi fapte. “DACĂ <partea de condiţie> este îndeplinită,
Regulile se referă la operaţiile ce pot fi efectuate asupra obiectelor ATUNCI se poate executa <partea de acţiune>”.
conţinute în baza de date. Ele se schimbă mai rar şi în esenţă constituie un Partea de condiţie, denumită şi premisă, este constituită din propoziţii
ansamblu complet şi necontradictoriu de cunoştinţe necesare rezolvării logice care trebuie să fie verificate pentru ca regula să poată fi aplicată.
unei probleme.
Partea acţiune corespunde declanşării unei concluzii sau a unei noi
Faptele reprezintă partea dinamică a bazei de cunoştinţe şi au rolul de ipoteze.
a reprezenta starea obiectelor la un moment dat.
Principalele avantaje ale reprezentării cunoştinţelor sub forma de reguli
ƒ Reprezentarea cunoştinţelor – Baza de reguli (BR) de producţie sunt:

Reprezentarea cunoştinţelor se poate realiza prin:


• regulile de producţie;
3
• modularitatea proprie a fiecărei reguli – orice regulă poate fi moştenire, pe baza căreia se generează legături ierarhice între acestea. Prin
considerată ca o entitate structurală independentă de celelalte ceea ce urmare, ele pot fi reprezentate sub forma unui arbore.
conferă o uşoară întreţinere a bazei de reguli;
D. Reprezentarea orientată pe obiecte
• modularitate în realizarea formalismului de rezolvare a problemei
regulile putând fi asimilate cu un ansamblu de constituenţi elementari, Constituie un pas superior în reprezentarea datelor. Caracteristica
care se adună şi se combină pentru a forma un răspuns la problema principală a reprezentării orientată pe obiecte este aceea că unifică, într–o
studiată; 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
• caracterul natural de exprimare ; tipurile structurilor amintite se definesc cu ajutorul conceptului de clasă, iar
• accesibilitatea bazei de reguli, dată de facilitatea şi uniformitatea obiecte cu care operează programul sunt instaţieri ale claselor.
structurii utilizate pentru reprezentarea cunoştinţelor.
E. Logica propoziţională sau a predicatelor
Dintre dezavantajele acestui mod de reprezentare se menţionează:
• imposibilitatea de a prevedea o desfăşurare optimă pentru o secvenţă Logica oferă un mijloc de exprimare a aserţiunilor2 precum şi un cadru
de acţiuni; 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
• ordinea în care sunt aplicate regulile potenţial aplicabile influenţează problemelor de rezolvat numit şi universul de discurs. Interesul major al
concluzia obţinută. utilizării logicii pentru reprezentarea cunoştinţelor rezultă din posibilitatea
obţinerii de noi rezultate folosind reguli de inferenţă precum: modus
B. Reţele semantice. ponens, modus tollens, rezoluţie etc. De asemenea logica permite
Reţelele semantice sunt structuri destinate reprezentării cunoştinţelor exprimarea relativ naturală a unor fapte, fiind lipsită de ambiguităţi. Ea este
sub forma unui graf complex alcătuit din noduri şi arce. Nodurile un sistem formal care oferă rigoare şi claritate semantică. Totuşi, aceste
reţelei/grafului sunt utilizate pentru a reprezenta obiecte, concepte, atribute, avantaje constituie în acelaşi timp şi dezavantaje în reprezentarea
stări, evenimente etc. Arcele reprezintă relaţiile existente între obiectele cunoştinţelor şi realizarea expertizei deoarece, este cunoscut faptul că omul,
ataşate nodurilor reţelei semantice. Acestea sunt de două tipuri: în general, nu este atât de riguros, raţionamentele ale fiind adesea mult mai
• ISA – is a, adică este un; suple. De asemenea, nu există o organizare între diferitele elemente care
• AKO – a kind of sau un fel de. alcătuiesc baza de cunoştinţe. Obiectele manipulate nu au o reprezentare
Reţelele semantice, respectiv grafurile corespunzătoare pot fi proprie. Ele există doar prin intermediul formulelor care sunt diseminate
organizate ierarhic ceea ce permite moştenirea unor atribute de la tipurile (răspândite) în baza de cunoştinţe. Aceasta este caracteristica formalismului
generale la cele particulare. 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
C. Structuri împachetate (frame-uri). sale. În plus, modelarea cunoştinţelor în logica de ordinul întâi nu este
întotdeauna uşor de realizat.
O structură este un grup de atribute ce descriu un obiect dat. Fiecare Pentru a elimina aceste anomalii şi pentru a extinde câmpul de aplicaţii
atribut este stocat într-un slot (compartiment) care conţine valoarea/valorile al logicii s-au dezvoltat aşa numitele logici neclasice sau logici
ataşate. Folosirea structurilor permite reprezentarea cunoştinţelor în blocuri nemonotone, cum ar fi logicile multivalente, logicile de incertitudine,
de date, fiecare bloc fiind prezentat printr-un slot sau compartiment. logicile modale, logicile fuzzy etc.
Structurile reprezentând diverse obiecte pot fi înzestrate cu proprietatea de
2
Aserţiune = enunţ care este dat ca adevărat.
4
<Obiectul> reprezintă, de exemplu, un echipament (întreruptor, separator,
În dezvoltarea aplicaţiilor practice, de tip SE, pentru reprezentarea vană, ventil etc.) a cărui stare poate fi stabilită printr–o
cunoştinţelor, în general se face apel la una dintre următoarele tehnici: semnalizare, verificare sau, mai general, deducţie logică;
• regulile de producţie care sunt foarte potrivite pentru raţionamente;
• frame-urile (cadrele), încadrate eventual în reţele semantice, care <Relaţie> corespunde unei relaţii existente între obiecte sau între un
sunt adecvate pentru stocarea şi manipularea eficientă a obiect şi diferitele stări în care acesta se poate afla;
cunoştinţelor;
• reprezentarea orientată pe obiecte care, prin proprietăţi precum <Valoare> reprezintă cuantificarea stării obiectului la un moment dat.
încapsularea, moştenirea şi polimorfismul asigură o elasticitate Exemplu:
mărită în elaborarea SE. <Întreruptorul I7> <Este în poziţia> <Închis>
În afara inferenţelor folosind cunoştinţele calitative, pentru rezolvarea În funcţie de domeniul de aplicare, sistemul expert are la dispoziţie un
problemelor din viaţa reală, în diferite stadii ale procesului de soluţionare, anumit număr de fapte referitoare la domeniul respectiv, care descriu stări
sunt necesare şi calcule numerice. Cantitatea de calcule poate fi foarte mică sau dau informaţii de tip cantitativ. O parte din datele din baza de fapte sunt
în unele cazuri şi destul de mare în altele. Prin urmare, un sistem expert introduse cu ajutorul dialogului om–maşină, în timp ce altă parte este
trebuie să fie capabil să apeleze programe de calcul procedural. Acestea încărcată automat prin citirea lor dintr-o bază de date.
formează o parte a bazei de cunoştinţe şi se numesc cunoştinţe cantitative. Prin analogie cu programele de calcul convenţionale, se poate spune că
Ele pot fi reprezentate ca funcţii sau programe scrise în limbaje de faptele reprezintă ”datele” problemei.
programare de nivel înalt cum ar fi Fortran sau C.
În acest conrext, cele mai multe shell-uri de dezvoltare a sistemelor În arhitectura sistemelor expert faptele constituie, alături de unele date
expert furnizează facilităţi de reprezentare atât a cunoştinţelor calitative numerice aferente modelului problemei abordate, ”baza de date”.
(prin reguli, structuri etc.), cât şi a cunoştinţelor cntitative prin funcţii scrise
în limbaje procedurale. 1.2.2. Motorul de inferenţe
ƒ Baza de fapte (BF) Motorul de inferenţă (MI) este un program general care
Baza de fapte constituie partea dinamică a sistemelor bazate pe implementează mecanismul prin care se construiesc raţionamentele.
cunoştinţe. Ea conţine informaţii relative la domeniul de aplicaţie studiat. Pornind de la fapte (datele de intrare ale problemei), MI are ca sarcină
exploatarea regulilor şi generarea răspunsurilor la întrebările puse de
Faptele sunt date normale de tip închis–deschis pentru un echipament utilizatori în scopul determinării soluţiei problemei analizate. În acest sens,
de comutaţie, o alarmă de ieşire din funcţiune a unui echipament, o valoare cu regulile existente în baza de cunoştinţe se construiesc arbori de inferenţă
sau o mărime fizică aflată în afara limitelor admisibile etc. sau de căutare care au ca noduri premisele (condiţiile) şi ca ramuri arcele
Ele se modifică pe măsură ce stările obiectelor cărora le sunt asociate care conectează diferitele premise.
se schimbă (de exemplu datorită unor avarii, efectuării unor manevre, Există diverse procedee sau mecanisme de inferenţă care traversează
schimbării configuraţiei de funcţionare a unei reţele etc.). acest arbore în sensuri diferite, conceptul de “CĂUTARE” fiind unul
esenţial în programele de IA. Cele mai cunoscute metode de inferenţă sunt:
Un fapt are o reprezentare de forma: • inducţia sau înlănţuirea înainte - este un proces de inferenţă condus
<Obiect>, <Relaţie>, <Valoare> de date;
în care: • inducţia sau înlănţuirea înpoi - este un proces de inferenţă condus
de scop
5
• inducţia sau înlănţuirea hibridă - este un proces de inferenţă care (iii) REZOLVAREA CONFLICTELOR este necesară atunci când din
combină inducţia înainte şi inducţia înapoi. etapa de filtraj au rezultat mai multe reguli declanşabile şi trebuie
În figura 1.2. se prezintă principiul de funcţonare al MI. aleasă una pentru a fi executată. Dintre criteriile utilizabile în această
etapă se amintesc: prima regulă din listă; regula cu cel mai mare
ƒ Ciclul de bază al motorului de inferenţe
număr de fapte în premisă; regula cea mai des utilizată. De această
MI este inima unui SE pentru că, folosind baza de cunoştinţe, alegere depind performanţele MI. Totuşi este dificil de indicat unul
construieşte dinamic raţionamentele alegând regulile ce urmează a fi sau altul dintre criterii, deoarece această alegere depinde de contextul
declanşate/aplicate şi ordinea de înlănţuire a acestora. în care se găseşte baza de cunoştinţe în momentul respectiv.
Indiferent de modul de raţionament utilizat, ciclul de bază al unui
(iv) EXECUŢIA REGULI SELECTATE constă în adăugarea uneia sau
motor de inferenţe comportă următoarele patru etape (fig. 1.3.):
mai multor fapte în “baza de fapte” ca o consecinţă a aplicării regulii
Sistem achiziţie de date 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
Utilizator tabele) sau la întrebări puse utilizatorului.
Fapte
Baza de reguli Baza de fapte
(BR) (BF)
Alte
Motor de inferenţe acþiuni
Reguli SELECŢIE
reguli
aplicabile
Reguli Reguli Fapte
posibile selecţionate

Selectare Regulă
FILTRAJ
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 Reguli
declanşabile
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 REZOLVARE
CONFLICTE
cunoaşterii.
(ii) FILTRAJUL (pattern matching) constă în compararea premiselor Reguli
regulilor selecţionate anterior cu faptele ce caracterizează problema reţinute
de rezolvat, pentru a determina submulţimea regulilor declanşabile.
În urma acestei etape pot rezulta una, mai multe sau nicio regulă EXECUŢIE
declanşabilă. Dacă nu rezultă nicio regulă aplicabilă, atunci suntem REGULI
î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. Fig. 1.3. Ciclul de bază al unui motor de inferenţe
6
Instrumente de inginerie a cunoştinţelor – generatoare de sistem expert
– automatizează procesul de achiziţie a cunoştinţelor. Dacă se dispune de
Pentru rezolvarea unei probleme MI execută mai multe cicluri de
un astfel de instrument, un expert într-un domeniu bine precizat poate să
bază şi se opreşte în funcţie de modul de raţionament utilizat.
construiască un sistem expert fără a fi necesară prezenţa inginerului de
cunoştinţe.
1.2.3. Module complementare
1.2.3.2. Interfaţa cu utilizatorul
1.2.3.1. Modulul de achiziţie de cunoştinţe
Este partea din program care permite utilizatorului să pună întrebări
Realizează transferul cunoştinţelor de la experţii în domeniu către
sistemului expert, să introducă noi informaţii sau să primească diferite
sistemul expert (fig. 1.4).
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ă
Fig. 1.4. Procesul de achiziţie a cunoştinţelor. 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
Extragerea cunoştinţelor de la un expert uman cu ajutorul unor mijloace cunoştinţele şi metodele de utilizare a lor sunt elemente fundamentale.
specifice sau prin metoda interviurilor este un proces eterogen, numit
ingineria cunoaşterii şi constă în: 1.3. Strategii de căutare a soluţiei.
(i) Identificare: definirea corectă a problemei şi determinarea
caracteristicilor sale; 1.3.1. Consideraţii generale
(ii) Conceptualizare: determinarea conceptelor care să sprijine
reprezentarea cunoştinţelor; Problemele care pot fi rezolvate folosind tehnici ale IA sunt probleme
(iii) Formalizare: alegerea unor metode de reprezentare a cunoştinţelor şi complex computaţionale, iar determinarea soluţiei se face prin deplasarea în
a mecanismului de inferenţă; spaţiul de definiţie al problemei denumit şi spaţiul de căutare sau
(iv) Implementare: reprezentarea propriu-zisă a cunoştinţelor în universul problemei de rezolvat. De regulă, acest spaţiu este constituit
formalismul ales; dintr-un număr foarte mare de stări, fiecare descriind o situaţie posibilă.
(v) Testarea: verificarea cunoştinţelor şi validarea sistemului. Datorită restricţiilor problemei, o parte dintre stări sunt stări interzise în
care nu se poate ajunge niciodată.
Întregul proces este iterativ, iar rezultatele testării pot să indice În acest context, rezolvarea problemelor poate fi văzută ca un proces
reformularea problemei, redefinirea conceptelor, reproiectarea structurilor de identificare sau de construire a unui obiect cu anumite caracteristici,
de cunoştinţe sau rafinarea acestora. Pe tot parcursul acestui proces obiect ce reprezintă soluţia problemei. Această activitate implică existenţa
inginerul de cunoştinţe lucrează cu expertul în domeniu. următoarelor elemente minimale:

7
(i) O structura simbolică care să poată reprezenta descrierea iniţială a 1. Stabileşte starea iniţială Si
problemei si fiecare obiect candidat la soluţie. Este vorba de 2. Stabileşte starea curentă Sc ← Si
structura folosită pentru reprezentarea cunoştinţelor în cadrul bazei
de date sau bazei de cunoştinţe. 3. repetă
3.1 Selectează un operator de transformare t posibil de
(ii) O mulţime de instrumente computaţionale capabile să transforme aplicat stării curente Sc
descrierea unui obiect (structură simbolică) într-o nouă descriere în
scopul de a investiga sistematic toţi candidaţii la soluţie. Aceste 3.2 Aplică operatorul t asupra stării Sc si obţine o nouă
instrumente sunt constituite din operatorii de transformare sau
starea S ' = t ( Sc )
regulile de producţie.
(iii) O metodă de planificare efectivă care să indice ordinea de aplicare 3.3 Stabileşte Sc ← S '
a transformărilor astfel încât soluţia problemei să fie găsită cât mai până când Sc este stare finală
repede. Este vorba de strategia de control.
sfârşit.
Procesul de determinarea a soluţiei porneşte dintr-o stare iniţială Si
cunoscută şi, prin aplicarea unor reguli (operatori de transformare) care Algoritmul de mai sus este nedeterminist deoarece pasul 3.1 nu
permit trecerea dintr-o stare în altă stare, se urmăreşte ajungerea în starea specifică cum se selectează operatorul sau transformarea t de aplicat.
finală Sf care constituie soluţia sau o soluţie a problemei de rezolvat. Prin Selectarea transformărilor si memorarea transformărilor efectuate
urmare, soluţia problemei se obţine printr-un proces de căutare şi nu prin constituie strategia de control.
aplicarea unei secvenţe de transformări specificate dinainte. O strategie de control nu este doar o secvenţa de acţiuni, ci o
Această manieră de abordare a soluţionării problemelor utilizează modalitate de descriere a selecţiei unei acţiuni ca răspuns la un eveniment
grafurile asociate spaţiului stărilor. Astfel, fiecare stare este reprezentată extern, cum ar fi rezultatul unui test, rezultatul aplicării unei proceduri
printr-un nod, iar operatorii de transformare prin arce. În aceste condiţii complicate de calcul sau acţiunea unui adversar.
definirea unei probleme de căutare se face folosind următorul formalism: In plus, o strategie de control trebuie să fie sistematică, adică, într-o
formulare plastică, trebuie să satisfacă următoarele cerinţe:
P = ( Si ∈ D ) ⎯⎯
T
→ Sf ∈D ( ) (1) • nu lasă nici o piatră neîntoarsă;
• nu întoarce nici o piatră de mai multe ori.
în care: D este mulţimea stărilor sau universul problemei; Prima cerinţă, numita completitudine, garantează faptul că strategia
T – mulţimea transformărilor. produce soluţia, dacă aceasta există, iar cea de a doua cerinţă protejează
contra ineficienţei prelucrărilor repetate.
O soluţie a problemei P, notată T * este o secvenţă de transformări Pentru exemplificare se consideră un sistem aflat în starea iniţială
caracterizată de proprietăţile P1, P2 şi P3. Sistemul evoluează prin adăugarea
t1* , t2* ,..., tn* cu proprietatea: de noi proprietăţi conform următoarelor transformări sau reguli:

( ( ))
t1: DACĂ (P1 ŞI P2) ATUNCI P4
S f = tn* ...t2* t1* ( Si ) (2) t2: DACĂ (P2 ŞI P3) ATUNCI P5
t3: DACĂ (P1 ŞI P4) ATUNCI P6
Ideea de bază a rezolvării unor astfel de probleme poate fi descrisă, în t4: DACĂ (P5 ŞI P6) ATUNCI P7
manieră nedeterministă, prin următorul algoritm: t5: DACĂ (P2 ŞI P5) ATUNCI P7
Algoritm: Rezolvarea unei probleme prin căutare
8
Evoluţia are loc respectând convenţia: dacă între starea iniţială Si şi T9* = {t2 , t5 } .
starea curentă Sc s-a aplicat o anumită secvenţă de transformări, atunci Acest exemplu evidenţiază următoarele aspecte:
niciuna dintre transformările folosite nu mai poate fi aplicată stării curente. (i) O parte dintre soluţii conţin aceleaşi transformări, dar în succesiuni
Se cere să se stabilească secvenţa de transformări ce conduce sistemul în diferite. Acest fapt se traduce prin revenirea în stări deja explorate,
starea finală care conţine proprietatea P7. adică prin apariţia unor bucle în graful de căutare. Dacă în
exemplul prezentat se elimină buclele rezultă următoarele patru
P1, P2, P3,
P4, P5, P6, soluţii posibile: T1* = {t1, t2 , t3 , t4 } ; T4* = {t1, t2 , t3 , t5} ;
t4 P7
t5 T7* = {t1, t2 , t5 } şi T9* = {t2 , t5 } .
P1, P2, P3,
P4, P5, P6 (ii) Numărul transformărilor utilizate diferă de la o soluţie la alta,
t3 existând posibilitatea obţinerii soluţiei printr-un nr. minim de
transformări.
P1, P2, P3,
P4, P5 Comportarea programelor de inteligentă artificială poate fi
t2 t5 caracterizată ca un proces de căutare în care diverse transformări aplicabile
P1, P2, P3, t2 P1, P2, P3, universului problemei sunt încercate până se determina soluţia problemei.
P4 P4, P5, P7 În general, pentru a determina soluţia este necesară evaluarea unui număr
t1 t3 mare de stări intermediare (obiecte candidate la soluţie), iar folosirea
căutării exhaustive este exclusă.
t1 P1, P2, P3,
P1, P2, P3 În acest context, informaţia euristică joacă un rol foarte important în cadrul
P4, P6
t2 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
P1, P2, P3, rezolvare. De obicei, acest tip de informaţie este reprezentat printr-o funcţie
P5 euristică asociată fiecărei stări, funcţie care estimează cât de promiţătoare
t5 este acea stare din punct de vedere al avansului spre soluţie. Funcţiile
P1, P2, P3, euristice depind şi se stabilesc pe baza cunoştinţelor specifice problemei sau
P5, P7 clasei de probleme de rezolvat.

1.3.2. Reprezentarea soluţiei problemei


Fig. 1.5. Secvenţa de transformări posibile.
Există două modalităţi de bază pentru a reprezenta soluţia unei
Soluţiile posibile ale problemei sunt: probleme, şi anume: reprezentarea soluţiei problemei prin spaţiul stărilor,
respectiv reprezentarea soluţiei problemei prin grafuri SI/SAU
{ } { }
T1* = t1, t2 , t3 , t4 ; T2* = t2 , t1, t3 , t4 ; T3* = t1, t3 , t2 , t4 ; { }
{ } { }
T4* = t1, t2 , t3 , t5 ; T5* = t2 , t1, t3 , t5 ; T6* = t1, t3 , t2 , t5 ; { } A. Reprezentarea soluţiei problemei prin spaţiul stărilor

T7* = {t1, t2 , t5 } ; T8* = {t2 , t1, t5 } ; Î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
9
stări, iar arcele reprezintă aplicarea unor operatori pentru a transforma o {A}
stare în starea următoare. B 7 13
7 10 6 10
Prin definiţie o reprezentare a soluţiei problemei prin spaţiul stărilor 7 {A,B} {A,C} {A,D} {A,E}
( Si , O, S f ) în care:
A 13
este formată din tripletul 6 E
9 ... 5 ... ...
Si este starea iniţială; 10 10 5C 6
{A,C,D}
O – mulţimea de operatorilor aplicabili stărilor universului
6
problemei pentru a ajunge în noi stări: in fiecare stare dată,
numai o parte din operatori pot fi aplicaţi; D {A,C,D,E}
Sf – mulţimea stărilor finale; aceasta poate fi constituită din una
(a) Harta oraselor de parcurs (b) O portiune din spatiul de cautare a solutiei
sau mai multe stări.
Fig. 1.6. Reprezentarea prin spaţiul stărilor
Prin urmare, o soluţie a problemei este o secvenţa de operatori care a problemei comis-voiajorului
transformă starea iniţială în starea finală şi reprezintă o cale între aceste
două stări în graf. B. Reprezentarea soluţiei problemei prin grafuri SI/SAU
Iniţial graful spaţiului de căutare este specificat implicit de
( )
reprezentare prin tripletul Si , O, S f . Pe măsură ce procesul de căutare a Există probleme a căror rezolvare poate fi convenabil reprezentată
printr-o tehnică numită reducerea problemei la subprobleme. Caracteristica
soluţiei avansează o porţiune din acest graf devine explicită. Porţiunea din comună a acestei clase de probleme este aceea că orice problemă pusă de un
graful spaţiului de căutare astfel construită reprezintă partea explorată a obiect candidat la soluţie poate fi văzută ca o conjuncţie de subprobleme ce
spaţiului de căutare. pot fi rezolvate independent unele de altele. Rezolvarea problemelor din
Pentru exemplificare se consideră problema comis voiajorului. această clasă poate fi abordată în următorul mod: se descompune problema
Fiind date un număr de oraşe si distantele de-a lungul unor drumuri care in subproblemele care trebuie rezolvate, acestea se descompun la rândul lor
leagă aceste oraşe, se cere să se găsească drumul de lungime minimă pe în alte subprobleme si aşa mai departe, până când se obţine o descompunere
care îl face un comis-voiajor care trebuie sa treacă prin toate oraşele a problemei iniţiale in subprobleme elementare, adică banal de rezolvat.
pornind dintr-un oraş dat şi revenind în oraşul de plecare. Un posibil Spaţiul de căutare al unei astfel de rezolvări a problemei are forma
exemplu este cel descris in figura 1.6 a. unui graf SI/SAU. Acesta este un caz particular al unui hipergraf. Un
Starea iniţială a problemei este oraşul de plecare A al comis-voiajorului. hipergraf este format dintr-o mulţime de noduri si o mulţime de hiperarce
Stările intermediare sunt oraşele prin care acesta a trecut, iar soluţia definite prin perechi ordonate in care primul element este un nod din
problemei este secvenţa de stări parcurse din starea iniţiala până în starea mulţimea de noduri a hipergrafului, iar cel de al doilea element este o
finală, secvenţă care trebuie să îndeplinească condiţia de cost optim, adică submulţime de noduri. Un graf obişnuit este un caz particular al unui
drum de lungime minimă. O parte din graful spaţiului de căutare este hipergraf in care cel de al doilea element al hiperarcelor este o mulţime
prezentat in figura 1.6 b. formată dintr-un singur nod.
Este evident faptul că generarea tuturor traseelor posibile şi Prin definiţie, o reprezentare a soluţiei problemei prin grafuri SI/SAU
compararea costurilor asociate pentru a găsi traseul optim este un proces
este formată din tripletul ( Si , O, Pe ) în care:
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 Si este descrierea stării iniţiale;
tehnicile euristice de căutare.
10
O – mulţimea operatorilor de transformare, adică de (ii) este un nod SI, iar toţi succesorii lui sunt noduri rezolvate;
descompunere a problemei în subprobleme; aplicabili stărilor (iii) este un nod SAU si cel puţin un succesor al acestuia este nod
universului problemei pentru a ajunge în noi stări: in fiecare rezolvat.
stare dată, numai o parte din operatori pot fi aplicaţi;
Un nod este nerezolvabil dacă:
Pe – descrierea unei mulţimi de probleme elementare. (i) este un nod terminal etichetat cu o problemă neelementară care
Un graf SI/SAU se construieşte pe baza următoarelor reguli: nu se mai poate descompune în subprobleme;
(ii) este un nod SI cu cel puţin un succesor nerezolvabil;
R1. Fiecare nod reprezintă fie o singură problemă fie o mulţime de (iii) este un nod SAU cu toţi succesorii nerezolvabili.
probleme ce trebuie rezolvate.
R2. Un nod ce reprezintă o singură problemă nu are descendenţi. O problemă rezolvată astfel are soluţie dacă nodul corespunzător
Problema este fie o problema elementară, fie o problema descrierii iniţiale a problemei este rezolvat.
neelementară dar care nu se mai poate descompune în O soluţie a problemei este reprezentată prin secvenţa de operatori de
subprobleme. descompunere care determină ca nodul problema iniţială sa devină
R3. Nodurile ce reprezintă mulţimea de subprobleme în care s-a rezolvat.
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 A B C A B C
Nod SAU (a) Stare initiala (b) Stare finala
n=3
A la C
Noduri SI
O - operator de descompunere
n=2 n=2
Noduri SAU A la B B la C

n=1
A la C

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


n=1 n=1 n=1 n=1 n=1 n=1
Într-un graf SI/SAU există două tipuri de noduri: noduri rezolvate şi A la C A la B C la B B la A B la C A la C
noduri nerezolvabile:
(c) Arborele SI/SAU de descompunere in subprobleme
Un nod este rezolvat dacă:
Fig. 1.7. Reprezentarea soluţiei problemei
(i) este un nod terminal etichetat cu o problemă elementară;
turnurilor din Hanoi prin arbore SI/SAU
11
In funcţie de primul criteriu, strategiile de căutare se împart în:
Pentru exemplificare se consideră problema turnurilor din Hanoi care
• Strategii de căutare irevocabile.
cere să se mute n = 3 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 Un operator aplicabil este selectat şi aplicat unei stări pentru a obţine o
peste un disc de o dimensiune mai mare decât el. Starea iniţiala este nouă stare, iar starea anterioară este uitată (nu este memorată).
specificata în fig. 1.7a, starea finală în fig. 1.7b, iar mulţimea operatorilor O astfel de strategie este strategia de căutare a alpinistului. Ea se
de descompunere este formată dintr-un singur operator, cu trei componente bazează pe criterii de optim local. Astfel, asemănător unui alpinist care
şi anume: doreşte sa ajungă repede pe vârful unui munte, strategia alege starea
(i) mută n-1=2 discuri de pe tija i pe tija j, utilizând tija k; următoare de nivel maxim pe baza unei funcţii de evaluare a stărilor.
(ii) mută un disc de pe tija i pe tija k; Strategia este irevocabilă deoarece pentru o stare curentă, după generarea
(iii) mută n-1=2 discuri de pe tija j pe tija k, utilizând tija i. stărilor următoare şi alegerea stării de nivel maxim ca stare următoare, atât
Problema turnurilor din Hanoi având un singur operator de starea curentă cât si celelalte stări de pe nivelul stării următoare sunt uitate.
descompunere a problemelor în subprobleme, spaţiul de căutare va avea Deci nu se mai poate reveni într-una din stările anterioare stării curente sau
numai noduri probleme elementare şi noduri SI. î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,
Singura problema elementară in acest caz este aceea de a muta un
dacă problema cere determinarea stării cu o valoare maximă a funcţiei de
singur disc de pe o tijă pe o altă tijă respectând restricţia problemei (un disc
evaluare, maximul global poate sa nu fie niciodată atins, căutarea blocându-
să fie aşezat fie pe o tijă liberă, fie peste un disc de dimensiune mai mare). se intr-un maxim local.
Descompunerea problemei in subprobleme poate fi reprezentata prin
arborele SI/SAU prezentat în figura 1.7c. • Strategii de căutare tentative.
La aplicarea unui operator starea curentă este memorată astfel încânt
1.3.3. Strategii de căutare de bază
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
1.3.3.1. Caracterizarea strategiilor de căutare
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
Pentru alegerea unei strategii de căutare trebuie să se ţină cont de:
exemplu, strategia utilizata de limbajul Prolog.
(i) Completitudinea strategiei care stabileşte dacă strategia asigură sau
nu găsirea soluţiei în cazul în care aceasta există. 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
(ii) Optimalitatea soluţiei găsite care este dată de capacitatea strategiei tentativă generală pe grafuri.
de a obţine o soluţie optimală, suboptimală sau pur si simplu o
soluţie. În funcţie de cel de-al doilea criteriu, strategiile de căutare se împart în:
• Strategii de căutare neinformate.
(iii) Complexitatea strategiei care se referă la complexitatea exprimată
Considerarea stărilor următoare de inspectat se face după o ordine
în timp de calcul şi memorie a algoritmului utilizat.
arbitrară, anterior stabilită. Strategiile de căutare neinformată inspectează
Caracterizarea unei strategii de căutare se poate face după două criterii: 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
1. capacitatea mecanismului de rezolvare de a reveni într-o stare
căutarea în lăţime si căutarea in adâncime.
intermediară anterioară;
2. după cantitatea de informaţie folosită la găsirea soluţiei. • Strategii de căutare informate.
12
Considerarea stărilor următoare de inspectat se face după criterii general, necesită aplicarea unui număr mare de operatori înaintea găsirii
euristice. Strategia foloseşte o funcţie de evaluare a situaţiei globale sau unei soluţii.
locale care indică starea următoare cea mai promiţătoare din punct de Invers, o strategie de control complet informată despre domeniul
vedere al avansului spre soluţie. problemei implică un cost ridicat al controlului deoarece poate necesita
Strategiile de căutare euristice încearcă reducerea numărului de stări calcule complicate pentru evaluarea meritului stărilor şi un cost minim de
din spaţiul de căutare inspectate până la atingerea stării finale, pe baza parcurgere a spaţiului de căutare datorita numărului redus de operatori
diverselor criterii, cum ar fi funcţiile euristice. Strategia alpinistului descrisă aplicaţi până la găsirea soluţiei.
anterior este un exemplu de căutare informată Alte exemple sunt strategia
După cum se poate observa şi din figura 1.8 există un grad optim de
* * *
de căutare "best-first", algoritmul A si algoritmul AO . Algoritmii A si informare pentru care costul total este minim. În funcţie de aplicaţie,
* proiectantul programului trebuie să încerce determinarea celei mai bune
AO urmăresc în principal, pe lângă reducerea numărului de stări
variante de pondere a costurilor. Obţinerea unui cost computaţional optim
inspectate, găsirea soluţiei optime.
este un aspect esenţial deoarece problemele de căutare sunt probleme de
Costul computaţional total al unui program de rezolvare a problemelor complexitate timp exponenţială.
de IA depinde de locul unde se situează strategia de control în spectrul
neinformat/informat şi are două componente: 1.3.3.2. Căutări neinformate în spaţiul stărilor
costul aplicării operatorilor, sau costul parcurgerii spaţiului de căutare
între starea iniţială si starea finală; Se consideră:
• un graf definit implicit prin mulţimea operatorilor asociaţi arcelor;
costul controlului, sau costul evaluării si selecţiei celei mai promiţătoare • nodul sau mulţimea de noduri ce definesc starea iniţială Si , adică
stări următoare.
condiţiile iniţiale ale problemei de rezolvat;
Cost • nodul sau mulţimea de noduri ce definesc starea finală S f , adică
Computational
Cost control obiectivele sau cerinţele problemei.
Cost parcurgere (cost evaluare stari)
(cost aplicare
operatori) Cost total 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.
Grad de În parcurgerea spaţiului de căutare un nod poate fi:
Neinformat Informat informare • 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
Fig. 1.8 Costul total al rezolvării unei probleme prin căutare succesor al lui, fie se cunosc numai o parte dintre aceştia;
• expandat - nodul este cunoscut si, in plus, se cunosc toţi succesorii
O strategie de căutare complet neinformată implică un cost redus al lui.
controlului şi un cost ridicat al parcurgerii spaţiului de căutare deoarece, în Prin expandarea unui nod se înţelege generarea tuturor succesorilor săi,
adică aplicarea tuturor operatorilor legali stării curente Sc aferentă nodului.

13
În procesul de căutare se vor folosi doua liste: 4.1. Generează toţi succesorii direcţi S j ai nodului Sc
• LF – lista frontieră care conţine nodurile evaluate;
• LT – lista teritoriu care conţine nodurilor expandate. 4.2. pentru fiecare succesor S j (1 ≤ j ≤ m) al lui Sc executa
Deci LF reprezintă frontiera spaţiului de căutare parcurs (explicitat) 4.2.1. Stabileşte legătura S j → S
spre partea necunoscută a acestuia, iar LT partea cunoscută a spaţiului de
4.2.2. daca S j este stare finală
căutare.
În cele ce urmează se prezintă strategia de căutare pe nivel şi strategia atunci
de căutarea în adâncime. Algoritmii prezentaţi presupun că: i. Soluţia este (S j , S,...,Si )
1. Spaţiul de căutare este arbore, adică între starea iniţială şi cea finală ii. întoarce SUCCES /* s-a găsit soluţie */
există o cale unică. Prin urmare, toate stările generate pe parcursul 4.2.3. Insereaza S j in LF, la sfârşit
căutării sunt unice, deci nu au mai fost generate anterior. Extinderea 5. repeta de la 2
si modificările necesare pentru a generaliza algoritmii la spatii de sfârşit.
căutare de tip graf vor fi prezentate in final.
Exemplu
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 Pentru exemplificare se consideră graful din figura 1.9 în care nodul n1
stare finală aceste legaturi permit reconstruirea caii spre soluţie. reprezintă starea iniţială, iar nodul n10 starea finală.
Definiţie. Intr-o reprezentare a soluţiei problemei prin spaţiul stărilor
adâncimea unui nod se defineşte astfel:
Ad(Si )=0 , unde Si este nodul stare iniţială, n1
Ad(Sc )=Ad(S p )+1 , unde Sp este predecesorul stării curente Sc.
n2 n3
ƒ Căutarea pe nivel sau în lăţime

Căutarea pe nivel, numită şi căutarea în lăţime, este o strategie care n4 n5 n6 n7


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
n8 n9 n10
succesorii săi sunt adăugaţi la sfârşitul listei.
Algoritm: Strategia căutării pe nivel in spaţiul stărilor
Fig. 1.9. Graful de căutare
1. Creează listele LF ← {Si } si LT ← { }
2. DACĂ LF={ } Pas 1. Iniţializări LF = {n1} şi LT = { }
ATUNCI întoarce INSUCCES /* nu există soluţie */ Pas 2 . Elimină n1 din LF şi-l inserează în LT: LF = { } şi LT = {n1}
3. Elimină primul nod Sc din LF si-l inserează în LT
4. Expandează nodul Sc Pas 3. Generează succesorii lui n1 si-i inserează în LF: LF = {n2 , n3}

14
Pas 4. Elimină n2 din LF şi-l inserează în LT: LF = {n3} şi Deoarece nodul final n10 a apărut în frontieră, se consideră procesul de
LT = {n1, n2 } căutare încheiat şi se specifică soluţia {n1, n3 , n7 , n10 }

Pas 5. Generează succesorii lui n2 si-i inserează în LF la sfârşit: 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
LF = {n3 , n4 , n5 } 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
Pas 6. Elimină n3 din LF şi-l inserează în LT: LF = {n4 , n5 } şi cel mai scurt drum spre soluţie în termenii numărului de tranziţii de stări
executate.
LT = {n1, n2 , n3}

Pas 7. Generează succesorii lui n3 si-i inserează în LF la sfârşit: ƒ Căutarea în adâncime


LF = {n4 , n5 , n6 , n7 }
Căutarea în adâncime este strategia cea mai frecvent utilizată în
aplicaţiile practice. Ea expandează stările cel mai recent generate, adică
Pas 8. Elimină n4 din LF şi-l inserează în LT: LF = {n5 , n6 , n7 } şi
nodurile din lista LF cu adâncimea cea mai mare. Prin urmare, această
LT = {n1, n2 , n3 , n4 } 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ă
Obs. Deoarece n4 nu are succesori, nu se adaugă alte noduri în lista LF. mecanismul backtracking revenindu-se pe nivelurile anterioare şi se
încearcă explorarea altor căi posibile. În cadrul acestei strategii lista
Pas 9. Elimină n5 din LF şi-l inserează în LT: LF = {n6 , n7 } şi frontieră LF este tratată ca o stivă folosind o tehnică de tipul LIFO (Last In
First Out).
LT = {n1, n2 , n3 , n4 , n5 }
Strategia căutării în adâncime nu garantează obţinerea unei soluţii a
Pas 10. Generează succesorii lui n5 şi-i inserează în LF la sfârşit: 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
LF = {n6 , n7 , n8 , n9 } . î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
Pas 11. Elimină n6 din LF şi-l inserează în LT: LF = {n7 , n8 , n9 } şi 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
LT = {n1, n2 , n3 , n4 , n5 , n6 } . Deoarece n6 nu are succesori, LF
găsi pe calea iniţială la o adâncime mai mare decât AdMax este pierdută. În
nu se modifică. 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.
Pas 12. Elimină n7 din LF şi-l inserează în LT: LF = {n8 , n9 } şi
LT = {n1, n2 , n3 , n4 , n5 , n6 , n7 }
Algoritm: Strategia căutării in adâncime în spaţiul stărilor
Pas 13. Generează succesorii lui n7 şi-i inserează în LF la sfârşit: 1. Creează listele LF ← {Si } si LT ← { }
LF = {n6 , n7 , n8 , n9 , n10 }
2. DACĂ LF ={ }

15
ATUNCI întoarce INSUCCES /* nu există soluţie sau soluţia nu n2 şi apoi n3 . Deci LF = {n3 , n2 } (ultimul nod generat este
poate fi găsită până la nivelul AdMax */
primul în lista LF)
3. Elimină primul nod Sc din LF si-l inserează în LT
Pas 4. Elimină n3 din LF şi-l inserează în LT: LF = {n2 } şi
3'. DACĂ Ad ( Sc ) = AdMax
LT = {n1, n3}
ATUNCI repetă de la 2
4. Expandează nodul Sc Pas 5. Generează succesorii lui n3 în ordinea n6 , n7 si-i inserează în
4.1. Generează toţi succesorii direcţi S j ai nodului Sc LF care devine LF = {n7 , n6 , n2 }

4.2. Pentru fiecare succesor S j (1 ≤ j ≤ m) al lui Sc execută Pas 6. Elimină n7 din LF şi-l inserează în LT: LF = {n6 , n2 } şi
LT = {n1, n3 , n7 }
4.2.1. Stabileşte legătura S j → Sc
4.2.2. DACĂ S j este stare finală Pas 7. Generează succesorii lui n7 . Există un singur succesor n10 care
ATUNCI este inserat la inceputul listei care devine LF = {n10 , n6 , n2 }
i. Soluţia este ( S j , Sc ,..., Si ) Obs. Deoarece s-a identificat starea finală, procesul de căutare se opreşte.
ii. întoarce SUCCES /* s-a găsit soluţie */
4.2.3. Inserează S j în LF, la început 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
5. repetă de la 2 dezvoltat algoritmul de căutare în adâncime cu nivel iterativ denumit şi
sfârşit. algoritmul lui Korf. Acest algoritm realizează la început o căutare în
Exemplu 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
Pentru exemplificare se consideră tot graful din figura 1.9 (cel folosit AdMax = AdMax + 1 şi se continuă în acest fel, crescând adâncimea de
la exemplificarea metodei de căutare pe nivel) în care nodul n1 reprezintă căutare. La fiecare iteraţie algoritmul realizează o căutare în adâncime
starea iniţială, iar nodul n10 starea finală. completă corespunzătoare valorii curente AdMax . Între două iteraţii
Obs: Ordinea în care se explorează diversele căi în graful de căutare succesive nu se reţine nici o informatie despre spatiul de căutare.
depinde de ordinea în care se generează şi se inserează în LF succesorii În acest fel se garantează găsirea soluţiei, dacă aceasta există, precum
nodului expandat . În cele ce urmează considerăm că succesorii unui nod se şi a drumului cel mai scurt către soluţie
generează în ordinea indicelui numeric. Î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
Pas 1. Iniţializări LF = {n1} şi LT = { } de inserare a stării Sj în lista LF (pasul 4.2.3) se modifică astfel:
Pas 2 . Elimină n1 din LF şi-l inserează în LT: LF = { } şi LT = {n1} 4.2.3' DACĂ S j ∉ LF ∪ LT

Pas 3. Generează succesorii lui n1 si-i inserează în LF: conform ATUNCI inserează S j în LF, la sfirsit respectiv la început în
convenţiei adoptate mai întâi se genereză şi se introduce în listă funcţie de strategie.

16
Spatiul de cautare explorat poate fi redus prin aplicarea tehnicilor
Observaţii: euristice de căutare care ţin seama de cât de aproape este fiecare nod al
1. Ambele tipuri de căutări realizează un rationament direct, pornind grafului de nodul corespunzător stării finale.
în rezolvarea problemei de la starea iniţială si generând arborele de Cuvântul euristic(ă) provine din greaca veche şi are înţelesul “a
căutare a stării finale. Acest mod de abordare corespunde descoperi”. Conform DEX “un procedeu euristic serveşte la descoperirea
raţionamentului deductiv. unor cunoştinţe noi”, respectiv defineşte o parte a ştiinţei care are ca obiect
2. In anumite cazuri se poate proceda invers, executind strategiile descoperirea de fapte noi.
începind din starea finală şi căutând starea iniţială. Acest mod de În contextul problemelor de căutare, o tehnică euristică este o strategie
abordare corespunde raţionamentului inductiv. folosită pentru a creşte eficienţa căutării, fără a garanta obţinerea soluţiei.
3. În anumite probleme se poate utiliza o combinaţie între Dezvoltarea unei tehnici euristice se face pe baza unor aproximări raţionale,
raţionamentul direct si cel invers, adică un rationament ipoteze simplificatoare şi cunoştinşe specifice domeniului problemei.
bidirectional în care se caută soluţia pornind simultan din starea În acest context, cunoştinţele euristice pot fi utilizate pentru:
iniţială si cea finală. În cazul acestei strategii, dacă se utilizează a) selectarea nodului urmator de expandat în cursul căutării –
căutarea în adâncime există pericolul ca cei doi arbori generaţi selectarea nodului cel mai promiţător pentru obţinerea soluţiei;
simultan, unul pe calea directă şi celălalt pe calea inversă, să nu b) a decide care dintre succesorii nodului ce este expandat vor fi
aibă noduri intermediare comune (să nu se întâlnească). generaţi şi care nu – expandarea parţială a unui nod prin aplicarea
4. Strategiile de cautare pe nivel si în adincime pot fi uşor adaptate la numai a unui sbset de operatori dintre cei posibil de aplicat;
căutarea soluţiei problemei în reprezentarea cu grafuri SI/SAU. c) eliminarea din spaţiul de căutare a anumitor noduri generate –
Diferenţa constă în criteriul de determinare a condiţiei de oprire. De retezarea arborelui de căutare.
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.
Si
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 g(Sc)
SI/SAU construit prin explicitarea spatiului de căutare definit în
mod implicit de reprezentare. O altă diferenţă constă în faptul că Sc f(Sc)
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 h(Sc)
subprobleme care trebuie rezolvate. Aceste noduri sunt însă
construite şi fac parte din porţiunea explicitată a spaţiului de
Sf
căutare. Pe baza stării de rezolvat sau nerezolvabil a acestor noduri
se poate decide cind s-a obtinut arborele solutie.
Fig. 1. 10. Definirea unei funcţii euristice
1.3.3.3. Strategii de căutare euristică
O mare parte dintre tehnicile euristice cunoscute sunt tehnici cu
În rezolvarea problemelor utilizind strategii de căutare neinformată aplicabilitate generală. Totuşi, pentru aplicarea lor cu succes la o problemă
numărul de stări investigate înainte de a gasi o soluţie poate ajunge particulară, ele trebuie suprapuse peste euristica specifică problemei
prohibitiv de mare, chiar si pentru probleme relativ simple. analizate. Cel mai simplu mod de îmbinare constă în definirea unei funcţii
17
euristice care exprimă – cel mai adesea în formă numerică – cât de Ideea de bază a acestei strategii este aceea de a selecta, din spatiul de
promiţătoare este o stare din spaţiul de căutare în procesul de identificare a căutare generat, pentru expandare cel mai bun nod folosind în acest sens
soluţiei, adică cât de apropiată este starea respectivă de stare finală. cunostinţele euristice, adică o estimare a stării cu ajutorul funcţiei euristice.
Modul cel mai general de definire a une funcţii euristice f foloseşte alte
Algoritmul de bază al metodei implică parcurgerea următoarelor etape:
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 1. Calculul funcţiei euristice pentru toate nodurile din nivelul curent
curentă Sc; (nodurile din frontieră)
• funcţia h estimează costul deplasării din starea curentă Sc în starea 2. Selectarea nodului cu valoarea minimă/maximă a funcţiei euristice
finală Sf;
3. Expandarea nodului selectat (generarea succesorilor săi). Dacă
Dintre cele trei funcţii doar g poate fi evaluată precis, celelalte două unul dintre succesori este soluţia, atunci procesul de căutare se
fiind doar estimate şi de aceea se notează f * şi h* , iar legătura dintre ele opreşte.
este dată de relaţia ƒ Algoritmele A* şi AO*

f * ( Si → S f ) = g ( Si → Sc ) + h* ( Sc → S f ) (1) 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.
O particularitate proprie tehnicilor euristice de căutare o reprezintă Algoritmul A* este specific reprezentării prin spaţiul stărilor, în timp ce
caracterul local al procesului decizional care determină o comportare algoritmul AO* este specific reprezentării prin grafuri SI/SAU.
nemonotonă a funcţiei h în spaţiul stărilor.
Există numeroase metode euristice de căutare dintre care cele mai Pentru a exemplifica modul de utilizare a strategiilor de căutare în
cunoscute sunt: 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
ƒ Metoda căii spre obiectiv baza de reguli:
Principiul acestei metode constă în alegerea acelor operatori care par să R1: DACĂ B ŞI D ŞI E → F
conducă la un obiectiv, de obicei soluţia problemei. În acest sens, la fiecare R2: DACĂ D ŞI G → A
pas al procesului de căutare se evaluează diferenţele dintre starea curentă Sc R3: DACĂ C ŞI F → A
şi starea finală Sf pe baza cărora se identifică un operator O1 ce ar permite R4: DACĂ B → X
trecerea directă din starea curentă în cea finală. Din păcate un astfel de R5: DACĂ D → E
operator fie nu există, fie nu poate fi aplicat. De aceea se aplică principiul R6: DACĂ A ŞI X → H
descompunerii problemei în subprobleme. Astfel, se determină o stare R7: DACĂ C → D
intermediară Sc' căreia i se poate aplica operatorul O1 identificat anterior şi R8: DACĂ X ŞI C → A
în care se poate ajunge din starea curentă Sc prin aplicarea unui operator R9: DACĂ X ŞI B → D
secundar O2 . Î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
ƒ Metoda pasului optim (best – first) regulilor aplicabile, dar pe care motorul de inferenţe nu le-a ales pentru
utilizare.

18
Procedeul de căutare înainte (raţionamentul deductiv) (fig. 1.11, a, Pe măsură ce una din reguli este întrebuinţată noile fapte se
b) constituie o tehnică de inferenţă care foloseşte reguli (DACĂ-ATUNCI) adaugă la baza de fapte. În stabilirea ordinii de alegere a regulilor în
pentru a găsi soluţia (H) a problemei pornind de la fapte cunoscute (B şi C). exemplul prezentat s-au aplicat următoarele strategii: s-a ales fie prima
Astfel, pornind de la faptele B şi C folosind regula R4 se deduce X, apoi regulă aplicabilă, adică în ordinea lor de numerotare R4 (R7), R7 (R8, R9)
folosind şi regula R7 se deduce D, ş.a.m.d. (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
B, C R4 B, C, R7 B, C, R5 B, C, R1 B, C, R3 B, C, R6 H mai poate aplica nici o regulă. Oprirea căutării are loc în momentul în care
R7 R8 R8 R8 R8 R8
X R9 X, D R9 X, D, R9 X, D, R9 X, D, R9 în baza de fapte apare scopul urmărit H.

E E, F E, F, După cum deja s-a menţionat, criteriul de alegere în etapa de


a rezolvare a conflictelor influenţează performanţele motorului de inferenţe.
A
În exemplul prezentat s-au efectuat 6 inferenţe în primul caz (a) şi doar 3
R4 B, C, R8 B, C, R6 H inferenţe în al doilea caz (b).
B, C R7 R7 R7
X R9 X, A R9 Procedeul de căutare înainte sau raţionamentul deductiv prezintă
b două mari avantaje care în unele aplicaţii sunt absolut necesare: dă
ambele subscopuri posibilitatea generării tuturor soluţiilor posibile şi îmbogăţeşte la fiecare
G neverificat ŞI trebuie verificate
ŞI
ciclu al motorului de inferenţe baza de fapte, ceea ce simplifică deducţiile
inutil deoarece nu una sau alta dintre ulterioare. Marele dezavantaj al acestui procedeu îl constituie lipsa
R2 D SAU reguli poate fi aplicată
a fost verificat G
SAU proprietăţii de completitudine (garantarea găsirii soluţiei în cazul în care
A R3 C verificat B verificat
C verificat aceasta există).
SAU
ŞI R7
H
R6 ªI R8 F R1 D Procedeul de căutare înapoi (raţionamentul inductiv) (fig. 1.11, c)
ŞI R9
R7 C verificat
R4 E R5 D
este bazat pe utilizarea unui raţionament concentrat pe scop, adică porneşte
X B verificat
R9 de la scop – o problemă de rezolvat; în acest sens, scopul se descompune
c succesiv în subprobleme, până când se obţin probleme primitive (fapte
dovedite sau interogabile). De aceea, se spune că acest mod de
Fig. 1.11. Procedee de inferenţă: 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
a – căutare înainte (după prima regulă aplicabilă);
înainte). Motorul de inferenţe utilizează reguli de la dreapta la stânga, adică
b – căutare înainte (după regula cu cel mai mare număr de condiţii); în sensul de la Concluzie → Premisă. Regulile selecţionate sunt acelea care
c – căutare înapoi. 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.

19
Pentru exemplificarea raţionamentului inductiv se consideră aceeaşi dintre obiectele considerate. Aici există o strânsă legătură între
bază de cunoştinţe; pentru început se propune verificarea scopului H. Dacă cunoştinţele declarative şi cele procedurale;
se parcurg regulile R1…R9, se observă că numai regula R6 are concluzia H. • stabilirea priorităţilor în timp a regulilor şi faptelor;
Astfel H se reduce prin regula R6 la subscopurile A şi X. La rândul său • testarea inconsistenţei şi a integrităţii.
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 Prin folosirea ambelor categorii de cunoştinţe – declarative şi
ordinea numerotării lor) pentru ca, în continuare, să caute a verifica unul procedurale – apare o funcţie nouă şi anume sistemul de tip consilier.
după altul subscopurile astfel produse. Subscopul X este adevărat dacă Acesta este un tip de software care ajută operatorul în luarea deciziilor prin
regula R4, în care X este concluzia, se poate aplica. Continuând folosirea cunoştinţelor declarative şi procedurale şi a mecanismelor
raţionamentul se obţine arborele ŞI/SAU de verificare a scopului H. În caz corespunzătoare de rezolvare a problemelor.
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. O formă foarte simplă constă în folosirea a două niveluri: un nivel
Explorarea arborescenţei se opreşte când scopul iniţial este demonstrat (ca superior pentru aplicarea cunoştinţelor declarative sub forma regulilor şi
în exemplul dat), sau când toate posibilităţile au fost explorate fără succes. faptelor şi un nivel inferior pentru cunoştinţele procedurale sub forma
Dezavantajul sistemelor cu înlănţuire înapoi este acela că poate apărea modelelor matematice ce descriu relaţiile cauzale.
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

20

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