Sunteți pe pagina 1din 20

Capitolul 1

SISTEME EXPERT


1.1. Concepte generale

Sistemele expert (SE) constituie o clas particular de sisteme
informatice bazate pe inteligena artificial, avnd ca scop reproducerea cu
ajutorul calculatorului a cunotinelor i raionamentelor experilor umani.
Edward Feigenbaum de la Stanford University, considerat printele
sistemelor expert, definete SE ca fiind: programe concepute pentru a
raiona n scopul rezolvrii problemelor dificile pentru care, n mod
obinuit, se cere o expertiz uman considerabil.
n definiia SE apar cuvintele expert i expertiz. Un expert uman este
o persoan care posed cunotine 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 alii nu
le pot rezolva deloc sau n mod eficient. Pentru aceasta el trebuie s fie
capabil s ndeplineasc urmtoarele sarcini:
s formuleze precis problema pe baza datelor puse la dispoziie de
beneficiar;
s determine soluia corect;
s explice soluia i paii necesari pentru obinerea ei;
s acorde asisten pentru implementarea soluiei ntr-un domeniu
particular.
Din punct de vedere funcional, un sistem expert poate fi definit ca un
program care se bazeaz pe o banc de cunotine pentru a realiza
anumite sarcini, uneori dificile, pe care de regul le rezolv un expert
uman din domeniul respectiv.
Performanele programului inteligent depind n principal de bogia
bazei de cunotine 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
cunotine, fapte i tehnici de raionament pentru a rezolva probleme care
n mod normal necesit cunotinele experilor umani.
Spre deosebire de majoritatea programelor de calcul, care cer
informaii complete pentru rezolvarea problemei sau luarea deciziilor,
sistemele expert sunt proiectate s gseasc soluia pe baza datelor
disponibile, la fel ca un expert uman.
n acest context, SE sunt sisteme de prelucrare automat a datelor
coninute ntr-o baz larg de date care pe lng elementele clasice de
prelucrare, conin:
baza de cunotine alctuit din reguli i fapte;
elementele necesare manipulrii cunotinelor sub forma
mecanismului de inferen;
elementele necesare achiziionrii i implementrii de noi
cunotine;
componenta explicativ.
Asemntor expertului uman care, bazndu-se pe cunotinele
acumulate, prin raionamentul propriu ajunge la anumite concluzii, un SE
se bazeaz pe cunotinele nglobate n baza de cunotine i pe mecanismul
de inferen care are funcia de a lua decizii n urma unor raionamente
logice.
Raionamentul este o nlnuire de judeci (propoziii) n care
plecnd de la anumite cunotine, consemnate ntr-un numr de propoziii
numite premisesau fapte iniiale, se ajunge la o nou cunotin
exprimat printr-o nou propoziie numit concluzie. Raionamentul este
corect dac i numai dac concluzia este consecina logic a premiselor.
Raionamentul poate fi definit i ca o nlnuire de reprezentri 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 esenial de sistemele informatice
convenionale (procedurale) de prelucrare care folosesc date i algoritmi
cunoscui apriori pentru rezolvarea problemelor.
Ele implic urmtoarele caracteristici distinctive:
reprezentri simbolice;
inferen simbolic;
cutare euristic.
Metodele de rezolvare a problemelor folosite de ctre sistemele expert
nu sunt proceduri matematice sau procesoare de date, ci tehnici de
raionament calitativ sau euristice, care leag elemente ntre ele prin reguli
de judecat precum i prin legi i definiii teoretice.
2
Diferena dintre un program de calcul analitic i un sistem de tip
expert const n:
sistemul expert folosete datele din baza de date filtrate printr-un
set de cunotine, nmagazinate n baza de cunotine, care sunt
independente de algoritmul de rezolvare utilizat;
algoritmul de cutare a soluiei, denumit motor de inferen, nu
mai este de tip iterativ, ca n cazul programelor analitice, ci de tip
convergent;
datorit delimitrii nete dintre elementele componente (baza de
date, baza de cunotine, motorul de inferen) un sistem expert
poate fi modificat cu uurin prin simpla adugare sau eliminare de
reguli; conceperea unui sistem expert este un proces linear, realizat
prin discuii repetate cu experi umani pentru dezvoltarea bazei de
cunotine;
toate operaiile logice i matematice care se succed n gsirea unui
rspuns se aduc la cunotina utilizatorului printr-un modul
explicativ independent numit interfaa cu utilizatorul.
Performanele SE depind de corectitudinea i volumul cunotinelor pe
care acesta le posed dar i de calitatea mecanismelor care i permit s
opereze cu aceste cunotine pentru a deduce concluziile valide.
Indiferent de diversele definiii date SE, exist patru caracteristici ce
calific un program drept sistem expert:
lucreaz la un nivel expert de competen;
folosete un mecanism de inferen pentru a realiza deduciile;
expertiza efectuat se bazeaz exclusiv pe cunotine special
dobndite;
programarea lui implic descrierea i reprezentarea cunotinelor
unor experi n domeniu, cunotine ce sunt pstrate n baze de date
specifice, numite baze de cunotine, n scopul utilizrii ulterioare.
Dintre avantajele oferite de SE se menioneaz:
1. aria de aplicabilitate cuprinde numeroase domenii de activitate
mergnd de la arhitectur, arheologie, bnci, comer, educaie, pn
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 corelaie cu cele menionate la
punctul anterior, dar i cu evoluia preului sistemelor de calcul;
4. permanena, rezultat din faptul c, spre deosebire de experii
umani, SE nu au o via limitat;
5. reducerea riscurilor prin incorporarea n sisteme de comand a
roboilor industriali utilizi n medii periculoase pentru om;
6. cretrea calitii, prin obinerea unei expertize complete a
domeniului, ceea ce expertul uman nu realizeaz ntotdeauna;
7. posibilitatea de explicare n detaliu a soluiei obinute pentru
creterea gradului de ncredere al utilizatorului;
8. rapiditatea, n sensul c pe sisteme hardware i software adecvate se
pot obine performane de timp mult mai bune comparativ cu cele
ale experilor umani;
9. pstrarea n siguran a cunotinelor: marile firme i-au constituit
sisteme expert pentru a fi afectate ntr-o mai mic msur de
plecarea unor experi umani;
10. contribuia la rspndirea cunotinelordin domeniu: un utilizator
poate rula programul pntru mai multe probleme, de la simplu la
complex, i urmrind soluiile i explicaiile date de SE se poate
autoinstrui n domeniul respectiv.

1.2. Arhitectura unui SE

n general, un sistem expert cuprinde urmtoarele module (fig. 1.1):
baza de cunotine;
baza de date;
motorul de inferene
1
;

1
Inferen = operaie logic de trecere de la un enun la altul i n care ultimul
enun este dedus din primul (DEX)
3
modulul de achiziionare de cunotine;
interfaa cu inginerul de aplicaie (expertul);
interfaa cu inginerul de cunotine;
interfaa cu utilizatorul;
module de grafic i de calcul.

Mediu de
dezvoltare
Inginer de
cunotine
Memoriea de
lucru
Fapte dinamice
Utilizator
Expert n
domeniu
Baza de
date
Reguli
selecionate
Aciuni
Concluzii
Date
Baza de
cunotine
Reguli
Fapte
Selectare
reguli i fapte
Motor de
inferen
A
c
h
i
z
i

i
e

d
e
c
u
n
o

t
i
n

e

Fig. 1.1. Structura unui sistem expert

1.2.1. Baza de cunotine
Baza de cunotine (BC) cuprinde o colecie de cunotine relevante
despre un anumit domeniu i este constituit din reguli i fapte.
Regulile se refer la operaiile ce pot fi efectuate asupra obiectelor
coninute n baza de date. Ele se schimb mai rar i n esen constituie un
ansamblu complet i necontradictoriu de cunotine necesare rezolvrii
unei probleme.
Faptele reprezint partea dinamic a bazei de cunotine i au rolul de
a reprezenta starea obiectelor la un moment dat.
Reprezentarea cunotinelor Baza de reguli (BR)

Reprezentarea cunotinelor se poate realiza prin:
regulile de producie;
reele semantice;
structuri mpachetate sau frameuri;
obiecte;
logica propoziional sau a predicatelor

A. Reguli de producie

Reprezentarea cunotinelor sub forma regulilor de producie este
specific categoriei tehnicilor de IA cunoscut sub denumirea de sisteme de
producie i este foarte potrivit pentru raionamente.
ntr-un sistem de producie cunotinele sunt de natur procedural i
se mpart n urmtoarele componente:
cunotine declarative sau factuale, grupate sub forma unor
structuri de date memorate ntr-o colecie denumit context;
cunotine procedurale reprezentate sub forma unor perechi de
tipul condiie aciune, denumite reguli de producie, memorate n
baza de reguli;
cunotine strategice sau de control, reprezentate sub forma unor
reguli care sprijin decizia n procesul de soluionare al problemei.
Structura general a unei reguli de producie este:
<partea de condiie> <partea de aciune>
i poate fi interpretat astfel:
DAC <partea de condiie> este ndeplinit,
ATUNCI se poate executa <partea de aciune>.
Partea de condiie, denumit i premis, este constituit din propoziii
logice care trebuie s fie verificate pentru ca regula s poat fi aplicat.
Partea aciune corespunde declanrii unei concluzii sau a unei noi
ipoteze.
Principalele avantaje ale reprezentrii cunotinelor sub forma de reguli
de producie sunt:
4
modularitatea proprie a fiecrei reguli orice regul poate fi
considerat ca o entitate structural independent de celelalte ceea ce
confer o uoar ntreinere a bazei de reguli;
modularitate n realizarea formalismului de rezolvare a problemei
regulile putnd fi asimilate cu un ansamblu de constitueni elementari,
care se adun i se combin pentru a forma un rspuns la problema
studiat;
caracterul natural de exprimare ;
accesibilitatea bazei de reguli, dat de facilitatea i uniformitatea
structurii utilizate pentru reprezentarea cunotinelor.
Dintre dezavantajele acestui mod de reprezentare se menioneaz:
imposibilitatea de a prevedea o desfurare optim pentru o secven
de aciuni;
ordinea n care sunt aplicate regulile potenial aplicabile influeneaz
concluzia obinut.

B. Reele semantice.
Reelele semantice sunt structuri destinate reprezentrii cunotinelor
sub forma unui graf complex alctuit din noduri i arce. Nodurile
reelei/grafului sunt utilizate pentru a reprezenta obiecte, concepte, atribute,
stri, evenimente etc. Arcele reprezint relaiile existente ntre obiectele
ataate nodurilor reelei semantice. Acestea sunt de dou tipuri:
ISA is a, adic este un;
AKO a kind of sau un fel de.
Reelele semantice, respectiv grafurile corespunztoare pot fi
organizate ierarhic ceea ce permite motenirea 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 conine valoarea/valorile
ataate. Folosirea structurilor permite reprezentarea cunotinelor n blocuri
de date, fiecare bloc fiind prezentat printr-un slot sau compartiment.
Structurile reprezentnd diverse obiecte pot fi nzestrate cu proprietatea de
motenire, pe baza creia se genereaz legturi 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 reprezentrii orientat pe obiecte este aceea c unific, ntro
aceeai unitate structural numit "obiect", datele i funciile sau metodele
care acioneaz 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 instaieri ale claselor.

E. Logica propoziional sau a predicatelor

Logica ofer un mijloc de exprimare a aseriunilor
2
precum i un cadru
formal pentru realizarea de inferene. n acest context, o baz de cunotine
este constituit exclusiv dintr-o mulime de formule care descriu universul
problemelor de rezolvat numit i universul de discurs. Interesul major al
utilizrii logicii pentru reprezentarea cunotinelor rezult din posibilitatea
obinerii de noi rezultate folosind reguli de inferen precum: modus
ponens, modus tollens, rezoluie etc. De asemenea logica permite
exprimarea relativ natural a unor fapte, fiind lipsit de ambiguiti. Ea este
un sistem formal care ofer rigoare i claritate semantic. Totui, aceste
avantaje constituie n acelai timp i dezavantaje n reprezentarea
cunotinelor i realizarea expertizei deoarece, este cunoscut faptul c omul,
n general, nu este att de riguros, raionamentele ale fiind adesea mult mai
suple. De asemenea, nu exist o organizare ntre diferitele elemente care
alctuiesc baza de cunotine. Obiectele manipulate nu au o reprezentare
proprie. Ele exist doar prin intermediul formulelor care sunt diseminate
(rspndite) n baza de cunotine. Aceasta este caracteristica formalismului
relaional, opus celui obiectual. Pe msur ce baza de cunotine se
dezvolt, lipsa de organizare genereaz probleme viznd coerena utilizrii
sale. n plus, modelarea cunotinelor n logica de ordinul nti nu este
ntotdeauna uor de realizat.
Pentru a elimina aceste anomalii i pentru a extinde cmpul de aplicaii
al logicii s-au dezvoltat aa numitele logici neclasice sau logici
nemonotone, cum ar fi logicile multivalente, logicile de incertitudine,
logicile modale, logicile fuzzy etc.

2
Aseriune = enun care este dat ca adevrat.
5

n dezvoltarea aplicaiilor practice, de tip SE, pentru reprezentarea
cunotinelor, n general se face apel la una dintre urmtoarele tehnici:
regulile de producie care sunt foarte potrivite pentru raionamente;
frame-urile (cadrele), ncadrate eventual n reele semantice, care
sunt adecvate pentru stocarea i manipularea eficient a
cunotinelor;
reprezentarea orientat pe obiecte care, prin proprieti precum
ncapsularea, motenirea i polimorfismul asigur o elasticitate
mrit n elaborarea SE.

n afara inferenelor folosind cunotinele calitative, pentru rezolvarea
problemelor din viaa real, n diferite stadii ale procesului de soluionare,
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 cunotine i se numesc cunotine cantitative.
Ele pot fi reprezentate ca funcii 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 faciliti de reprezentare att a cunotinelor calitative
(prin reguli, structuri etc.), ct i a cunotinelor cntitative prin funcii scrise
n limbaje procedurale.

Baza de fapte (BF)
Baza de fapte constituie partea dinamic a sistemelor bazate pe
cunotine. Ea conine informaii relative la domeniul de aplicaie studiat.
Faptele sunt date normale de tip nchisdeschis pentru un echipament
de comutaie, o alarm de ieire din funciune a unui echipament, o valoare
sau o mrime fizic aflat n afara limitelor admisibile etc.
Ele se modific pe msur ce strile obiectelor crora le sunt asociate
se schimb (de exemplu datorit unor avarii, efecturii unor manevre,
schimbrii configuraiei de funcionare a unei reele etc.).

Un fapt are o reprezentare de forma:
<Obiect>, <Relaie>, <Valoare>
n care:
<Obiectul> reprezint, de exemplu, un echipament (ntreruptor, separator,
van, ventil etc.) a crui stare poate fi stabilit printro
semnalizare, verificare sau, mai general, deducie logic;

<Relaie> corespunde unei relaii existente ntre obiecte sau ntre un
obiect i diferitele stri n care acesta se poate afla;

<Valoare> reprezint cuantificarea strii obiectului la un moment dat.
Exemplu:
<ntreruptorul I7> <Este n poziia> <nchis>

n funcie de domeniul de aplicare, sistemul expert are la dispoziie un
anumit numr de fapte referitoare la domeniul respectiv, care descriu stri
sau dau informaii de tip cantitativ. O parte din datele din baza de fapte sunt
introduse cu ajutorul dialogului ommain, n timp ce alt parte este
ncrcat automat prin citirea lor dintr-o baz de date.
Prin analogie cu programele de calcul convenionale, se poate spune c
faptele reprezint datele problemei.
n arhitectura sistemelor expert faptele constituie, alturi de unele date
numerice aferente modelului problemei abordate, baza de date.

1.2.2. Motorul de inferene

Motorul de inferen (MI) este un program general care
implementeaz mecanismul prin care se construiesc raionamentele.
Pornind de la fapte (datele de intrare ale problemei), MI are ca sarcin
exploatarea regulilor i generarea rspunsurilor la ntrebrile puse de
utilizatori n scopul determinrii soluiei problemei analizate. n acest sens,
cu regulile existente n baza de cunotine se construiesc arbori de inferen
sau de cutare care au ca noduri premisele (condiiile) i ca ramuri arcele
care conecteaz diferitele premise.
Exist diverse procedee sau mecanisme de inferen care traverseaz
acest arbore n sensuri diferite, conceptul de CUTARE fiind unul
esenial n programele de IA. Cele mai cunoscute metode de inferen sunt:
inducia sau nlnuirea nainte - este un proces de inferen condus
de date;
inducia sau nlnuirea npoi - este un proces de inferen condus
de scop
6
inducia sau nlnuirea hibrid - este un proces de inferen care
combin inducia nainte i inducia napoi.
n figura 1.2. se prezint principiul de funconare al MI.
Ciclul de baz al motorului de inferene
MI este inima unui SE pentru c, folosind baza de cunotine,
construiete dinamic raionamentele alegnd regulile ce urmeaz a fi
declanate/aplicate i ordinea de nlnuire a acestora.
Indiferent de modul de raionament utilizat, ciclul de baz al unui
motor de inferene comport urmtoarele patru etape (fig. 1.3.):
Reguli
Sistem achizi ie de date
Utilizator
Fapte
Motor de inferene
reguli
aplicabile
Reguli
Regul
Alte
aciuni
Selectare

Fig. 1.2. Exemplificarea funcionrii unui motor de inferene.
(i) SELECIA: 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 cnd baza de
cunotine este mare, ncercnd s acopere mai multe domenii ale
cunoaterii.
(ii) FILTRAJUL (pattern matching) const n compararea premiselor
regulilor selecionate anterior cu faptele ce caracterizeaz problema
de rezolvat, pentru a determina submulimea regulilor declanabile.
n urma acestei etape pot rezulta una, mai multe sau nicio regul
declanabil. Dac nu rezult nicio regul aplicabil, atunci suntem
ntr-o stare de eec pe care SE o semnaleaz, iar utilizatorul trebuie s
rspund la o serie de ntrebri n scopul completrii datelor.
(iii) REZOLVAREA CONFLICTELOR este necesar atunci cnd din
etapa de filtraj au rezultat mai multe reguli declanabile 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
numr de fapte n premis; regula cea mai des utilizat. De aceast
alegere depind performanele MI. Totui este dificil de indicat unul
sau altul dintre criterii, deoarece aceast alegere depinde de contextul
n care se gsete baza de cunotine n momentul respectiv.
(iv) EXECUIA REGULI SELECTATE const n adugarea uneia sau
mai multor fapte n baza de fapte ca o consecin a aplicrii 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 ntrebri puse utilizatorului.
Baza de reguli
(BR)
Reguli
posibile
SELEC IE
Baza de fapte
(BF)
Fapte
selec ionate
FILTRAJ
Reguli
declan abile
REZOLVARE
CONFLICTE
Reguli
re inute
EXECU IE
REGULI


Fig. 1.3. Ciclul de baz al unui motor de inferene
7

Pentru rezolvarea unei probleme MI execut mai multe cicluri de
baz i se oprete n funcie de modul de raionament utilizat.

1.2.3. Module complementare

1.2.3.1. Modulul de achiziie de cunotine

Realizeaz transferul cunotinelor de la experii n domeniu ctre
sistemul expert (fig. 1.4).


Fig. 1.4. Procesul de achiziie a cunotinelor.

Extragerea cunotinelor de la un expert uman cu ajutorul unor mijloace
specifice sau prin metoda interviurilor este un proces eterogen, numit
ingineria cunoaterii i const n:
(i) Identificare: definirea corect a problemei i determinarea
caracteristicilor sale;
(ii) Conceptualizare: determinarea conceptelor care s sprijine
reprezentarea cunotinelor;
(iii) Formalizare: alegerea unor metode de reprezentare a cunotinelor i
a mecanismului de inferen;
(iv) Implementare: reprezentarea propriu-zis a cunotinelor n
formalismul ales;
(v) Testarea: verificarea cunotinelor i validarea sistemului.

ntregul proces este iterativ, iar rezultatele testrii pot s indice
reformularea problemei, redefinirea conceptelor, reproiectarea structurilor
de cunotine sau rafinarea acestora. Pe tot parcursul acestui proces
inginerul de cunotine lucreaz cu expertul n domeniu.
Instrumente de inginerie a cunotinelor generatoare de sistem expert
automatizeaz procesul de achiziie a cunotinelor. Dac se dispune de
un astfel de instrument, un expert ntr-un domeniu bine precizat poate s
construiasc un sistem expert fr a fi necesar prezena inginerului de
cunotine.

1.2.3.2. Interfaa cu utilizatorul

Este partea din program care permite utilizatorului s pun ntrebri
sistemului expert, s introduc noi informaii sau s primeasc diferite
recomandri de la acesta. Aprecierea utilizatorului asupra unui sistem
expert depinde n mare msur de asemnarea ntre modul de reprezentare a
informaiilor de ctre 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 explicaii operatorului
n legtur cu raionamentul folosit pentru a ajunge la o anumit
recomandare sau decizie. Cu ct sunt mai explicit reprezentate cunotinele
n baza de cunotine, cu att este mai eficient procesul explicativ deoarece
cunotinele i metodele de utilizare a lor sunt elemente fundamentale.

1.3. Strategii de cutare a soluiei.

1.3.1. Consideraii generale

Problemele care pot fi rezolvate folosind tehnici ale IA sunt probleme
complex computaionale, iar determinarea soluiei se face prin deplasarea n
spaiul de definiie al problemei denumit i spaiul de cutare sau
universul problemei de rezolvat. De regul, acest spaiu este constituit
dintr-un numr foarte mare de stri, fiecare descriind o situaie posibil.
Datorit restriciilor problemei, o parte dintre stri sunt stri interzise n
care nu se poate ajunge niciodat.
n acest context, rezolvarea problemelor poate fi vzut ca un proces
de identificare sau de construire a unui obiect cu anumite caracteristici,
obiect ce reprezint soluia problemei. Aceast activitate implic existena
urmtoarelor elemente minimale:
8
(i) O structura simbolic care s poat reprezenta descrierea iniial a
problemei si fiecare obiect candidat la soluie. Este vorba de
structura folosit pentru reprezentarea cunotinelor n cadrul bazei
de date sau bazei de cunotine.
(ii) O mulime de instrumente computaionale capabile s transforme
descrierea unui obiect (structur simbolic) ntr-o nou descriere n
scopul de a investiga sistematic toi candidaii la soluie. Aceste
instrumente sunt constituite din operatorii de transformare sau
regulile de producie.
(iii) O metod de planificare efectiv care s indice ordinea de aplicare
a transformrilor astfel nct soluia problemei s fie gsit ct mai
repede. Este vorba de strategia de control.
Procesul de determinarea a soluiei pornete dintr-o stare iniial S
i

cunoscut i, prin aplicarea unor reguli (operatori de transformare) care
permit trecerea dintr-o stare n alt stare, se urmrete ajungerea n starea
final S
f
care constituie soluia sau o soluie a problemei de rezolvat. Prin
urmare, soluia problemei se obine printr-un proces de cutare i nu prin
aplicarea unei secvene de transformri specificate dinainte.
Aceast manier de abordare a soluionrii problemelor utilizeaz
grafurile asociate spaiului strilor. Astfel, fiecare stare este reprezentat
printr-un nod, iar operatorii de transformare prin arce. n aceste condiii
definirea unei probleme de cutare se face folosind urmtorul formalism:
( )
( )
T
i f
P S D S D = (1)
n care: D este mulimea strilor sau universul problemei;
T mulimea transformrilor.
O soluie a problemei P, notat
*
T este o secven de transformri
* * *
1 2
, ,...,
n
t t t cu proprietatea:
( )
( ) ( )
* * *
2 1
...
f n i
S t t t S = (2)
Ideea de baz a rezolvrii unor astfel de probleme poate fi descris, n
manier nedeterminist, prin urmtorul algoritm:
Algoritm: Rezolvarea unei probleme prin cutare
1. Stabilete starea iniial S
i

2. Stabilete starea curent
c i
S S
3. repet
3.1 Selecteaz un operator de transformare t posibil de
aplicat strii curente
c
S
3.2 Aplic operatorul t asupra strii
c
S si obine o nou
starea ( )
'
c
S t S =
3.3 Stabilete
'
c
S S
pn cnd
c
S este stare final
sfrit.

Algoritmul de mai sus este nedeterminist deoarece pasul 3.1 nu
specific cum se selecteaz operatorul sau transformarea t de aplicat.
Selectarea transformrilor si memorarea transformrilor efectuate
constituie strategia de control.
O strategie de control nu este doar o secvena de aciuni, ci o
modalitate de descriere a seleciei unei aciuni ca rspuns la un eveniment
extern, cum ar fi rezultatul unui test, rezultatul aplicrii unei proceduri
complicate de calcul sau aciunea unui adversar.
In plus, o strategie de control trebuie s fie sistematic, adic, ntr-o
formulare plastic, trebuie s satisfac urmtoarele cerine:
nu las nici o piatr nentoars;
nu ntoarce nici o piatr de mai multe ori.
Prima cerin, numita completitudine, garanteaz faptul c strategia
produce soluia, dac aceasta exist, iar cea de a doua cerin protejeaz
contra ineficienei prelucrrilor repetate.
Pentru exemplificare se consider un sistem aflat n starea iniial
caracterizat de proprietile P
1
, P
2
i P
3
. Sistemul evolueaz prin adugarea
de noi proprieti conform urmtoarelor transformri sau reguli:
t
1
: DAC (P
1
I P
2
) ATUNCI P
4
t
2
: DAC (P
2
I P
3
) ATUNCI P
5
t
3
: DAC (P
1
I P
4
) ATUNCI P
6
t
4
: DAC (P
5
I P
6
) ATUNCI P
7
t
5
: DAC (P
2
I P
5
) ATUNCI P
7
9
Evoluia are loc respectnd convenia: dac ntre starea iniial
i
S i
starea curent
c
S s-a aplicat o anumit secven de transformri, atunci
niciuna dintre transformrile folosite nu mai poate fi aplicat strii curente.
Se cere s se stabileasc secvena de transformri ce conduce sistemul n
starea final care conine proprietatea P
7
.
P ,
1
P , P
2 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
t
1
t
1
t
2
t
2
t
2
t
3
t
3
t
4
t
5
t
5
t
5


Fig. 1.5. Secvena de transformri posibile.

Soluiile 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 evideniaz urmtoarele aspecte:
(i) O parte dintre soluii conin aceleai transformri, dar n succesiuni
diferite. Acest fapt se traduce prin revenirea n stri deja explorate,
adic prin apariia unor bucle n graful de cutare. Dac n
exemplul prezentat se elimin buclele rezult urmtoarele patru
soluii 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) Numrul transformrilor utilizate difer de la o soluie la alta,
existnd posibilitatea obinerii soluiei printr-un nr. minim de
transformri.

Comportarea programelor de inteligent artificial poate fi
caracterizat ca un proces de cutare n care diverse transformri aplicabile
universului problemei sunt ncercate pn se determina soluia problemei.
n general, pentru a determina soluia este necesar evaluarea unui numr
mare de stri intermediare (obiecte candidate la soluie), iar folosirea
cutrii exhaustive este exclus.
n acest context, informaia euristic joac un rol foarte important n cadrul
procesului de cutare contribuind la reducerea numrului de stri
investigate pentru obinerea soluiei i creterea eficienei procesului de
rezolvare. De obicei, acest tip de informaie este reprezentat printr-o funcie
euristic asociat fiecrei stri, funcie care estimeaz ct de promitoare
este acea stare din punct de vedere al avansului spre soluie. Funciile
euristice depind i se stabilesc pe baza cunotinelor specifice problemei sau
clasei de probleme de rezolvat.

1.3.2. Reprezentarea soluiei problemei

Exist dou modaliti de baz pentru a reprezenta soluia unei
probleme, i anume: reprezentarea soluiei problemei prin spaiul strilor,
respectiv reprezentarea soluiei problemei prin grafuri SI/SAU

A. Reprezentarea soluiei problemei prin spaiul strilor

n reprezentarea soluiei problemei prin spaiul strilor, spaiul de
cutare are forma unui graf orientat n care nodurile sunt identificate prin
10
stri, iar arcele reprezint aplicarea unor operatori pentru a transforma o
stare n starea urmtoare.
Prin definiie o reprezentare a soluiei problemei prin spaiul strilor
este format din tripletul
( )
, ,
i f
S O S n care:
i
S este starea iniial;
O mulimea de operatorilor aplicabili strilor universului
problemei pentru a ajunge n noi stri: in fiecare stare dat,
numai o parte din operatori pot fi aplicai;
f
S mulimea strilor finale; aceasta poate fi constituit din una
sau mai multe stri.

Prin urmare, o soluie a problemei este o secvena de operatori care
transform starea iniial n starea final i reprezint o cale ntre aceste
dou stri n graf.
Iniial graful spaiului de cutare este specificat implicit de
reprezentare prin tripletul
( )
, ,
i f
S O S . Pe msur ce procesul de cutare a
soluiei avanseaz o poriune din acest graf devine explicit. Poriunea din
graful spaiului de cutare astfel construit reprezint partea explorat a
spaiului de cutare.
Pentru exemplificare se consider problema comis voiajorului.
Fiind date un numr de orae si distantele de-a lungul unor drumuri care
leag aceste orae, se cere s se gseasc drumul de lungime minim pe
care l face un comis-voiajor care trebuie sa treac prin toate oraele
pornind dintr-un ora dat i revenind n oraul de plecare. Un posibil
exemplu este cel descris in figura 1.6 a.
Starea iniial a problemei este oraul de plecare A al comis-voiajorului.
Strile intermediare sunt oraele prin care acesta a trecut, iar soluia
problemei este secvena de stri parcurse din starea iniiala pn n starea
final, secven care trebuie s ndeplineasc condiia de cost optim, adic
drum de lungime minim. O parte din graful spaiului de cutare este
prezentat in figura 1.6 b.
Este evident faptul c generarea tuturor traseelor posibile i
compararea costurilor asociate pentru a gsi traseul optim este un proces
ineficient din punct de vedere computaional, mai ales n cazul unui numr
mare de orae. De aceea, pentru rezolvarea acestei probleme se face apel la
tehnicile euristice de cutare.
A
B
E
D
C
7
10
6
10
10
13
6
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 spaiul strilor
a problemei comis-voiajorului

B. Reprezentarea soluiei problemei prin grafuri SI/SAU

Exist probleme a cror 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 soluie poate fi vzut ca o conjuncie de subprobleme ce
pot fi rezolvate independent unele de altele. Rezolvarea problemelor din
aceast clas poate fi abordat n urmtorul mod: se descompune problema
in subproblemele care trebuie rezolvate, acestea se descompun la rndul lor
n alte subprobleme si aa mai departe, pn cnd se obine o descompunere
a problemei iniiale in subprobleme elementare, adic banal de rezolvat.
Spaiul de cutare al unei astfel de rezolvri a problemei are forma
unui graf SI/SAU. Acesta este un caz particular al unui hipergraf. Un
hipergraf este format dintr-o mulime de noduri si o mulime de hiperarce
definite prin perechi ordonate in care primul element este un nod din
mulimea de noduri a hipergrafului, iar cel de al doilea element este o
submulime de noduri. Un graf obinuit este un caz particular al unui
hipergraf in care cel de al doilea element al hiperarcelor este o mulime
format dintr-un singur nod.
Prin definiie, o reprezentare a soluiei problemei prin grafuri SI/SAU
este format din tripletul ( ) , ,
i e
S O P n care:
i
S este descrierea strii iniiale;
11
O mulimea operatorilor de transformare, adic de
descompunere a problemei n subprobleme; aplicabili strilor
universului problemei pentru a ajunge n noi stri: in fiecare
stare dat, numai o parte din operatori pot fi aplicai;
e
P descrierea unei mulimi de probleme elementare.
Un graf SI/SAU se construiete pe baza urmtoarelor reguli:
R1. Fiecare nod reprezint fie o singur problem fie o mulime de
probleme ce trebuie rezolvate.
R2. Un nod ce reprezint o singur problem nu are descendeni.
Problema este fie o problema elementar, fie o problema
neelementar dar care nu se mai poate descompune n
subprobleme.
R3. Nodurile ce reprezint mulimea 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 descendeni 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 spaiului de cutare
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 toi succesorii lui sunt noduri rezolvate;
(iii) este un nod SAU si cel puin 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 puin un succesor nerezolvabil;
(iii) este un nod SAU cu toi succesorii nerezolvabili.
O problem rezolvat astfel are soluie dac nodul corespunztor
descrierii iniiale a problemei este rezolvat.
O soluie a problemei este reprezentat prin secvena de operatori de
descompunere care determin ca nodul problema iniial 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 = 1
A la C
n = 1
A la B
n = 1
C la B
n = 1
B la A
n = 1
B la C
n = 1
A la C
(c) Arborele SI/SAU de descompunere in subprobleme
O - operator de descompunere

Fig. 1.7. Reprezentarea soluiei problemei
turnurilor din Hanoi prin arbore SI/SAU
12

Pentru exemplificare se consider problema turnurilor din Hanoi care
cere s se mute 3 n = discuri de pe tija A pe tija C, utiliznd tija
intermediar B si cu restricia ca un disc s fie aezat fie pe o tija liber, fie
peste un disc de o dimensiune mai mare dect el. Starea iniiala este
specificata n fig. 1.7a, starea final n fig. 1.7b, iar mulimea 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, utiliznd 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, utiliznd tija i.
Problema turnurilor din Hanoi avnd un singur operator de
descompunere a problemelor n subprobleme, spaiul de cutare 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 respectnd restricia problemei (un disc
s fie aezat 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 cutare de baz

1.3.3.1. Caracterizarea strategiilor de cutare

Pentru alegerea unei strategii de cutare trebuie s se in cont de:
(i) Completitudinea strategiei care stabilete dac strategia asigur sau
nu gsirea soluiei n cazul n care aceasta exist.
(ii) Optimalitatea soluiei gsite care este dat de capacitatea strategiei
de a obine o soluie optimal, suboptimal sau pur si simplu o
soluie.
(iii) Complexitatea strategiei care se refer la complexitatea exprimat
n timp de calcul i memorie a algoritmului utilizat.
Caracterizarea unei strategii de cutare se poate face dup dou criterii:
1. capacitatea mecanismului de rezolvare de a reveni ntr-o stare
intermediar anterioar;
2. dup cantitatea de informaie folosit la gsirea soluiei.
In funcie de primul criteriu, strategiile de cutare se mpart n:
Strategii de cutare irevocabile.
Un operator aplicabil este selectat i aplicat unei stri pentru a obine o
nou stare, iar starea anterioar este uitat (nu este memorat).
O astfel de strategie este strategia de cutare a alpinistului. Ea se
bazeaz pe criterii de optim local. Astfel, asemntor unui alpinist care
dorete sa ajung repede pe vrful unui munte, strategia alege starea
urmtoare de nivel maxim pe baza unei funcii de evaluare a strilor.
Strategia este irevocabil deoarece pentru o stare curent, dup generarea
strilor urmtoare i alegerea strii de nivel maxim ca stare urmtoare, att
starea curent ct si celelalte stri de pe nivelul strii urmtoare sunt uitate.
Deci nu se mai poate reveni ntr-una din strile anterioare strii curente sau
ntr-una din alternativele strii curente. Strategia alpinistului, dei simpl si
puin consumatoare de memorie, prezint o serie de limitri. De exemplu,
dac problema cere determinarea strii cu o valoare maxim a funciei de
evaluare, maximul global poate sa nu fie niciodat atins, cutarea blocndu-
se intr-un maxim local.
Strategii de cutare tentative.
La aplicarea unui operator starea curent este memorat astfel ncnt
procesul de cutare s poat reveni ulterior in strile anterioare aplicrii
operatorilor. Dac starea anterioar la care se poate reveni n timpul cutrii
se afl numai pe calea curent ntre starea iniial si starea final, strategia
de cutare 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 spaiului de cutare, strategia este de cutare
tentativ general pe grafuri.
n funcie de cel de-al doilea criteriu, strategiile de cutare se mpart n:
Strategii de cutare neinformate.
Considerarea strilor urmtoare de inspectat se face dup o ordine
arbitrar, anterior stabilit. Strategiile de cutare neinformat inspecteaz
sistematic toate strile spaiului de cutare pn n momentul gsirii strii
finale. Cele mai importante strategii de acest fel sunt cutarea pe nivel sau
cutarea n lime si cutarea in adncime.
Strategii de cutare informate.
13
Considerarea strilor urmtoare de inspectat se face dup criterii
euristice. Strategia folosete o funcie de evaluare a situaiei globale sau
locale care indic starea urmtoare cea mai promitoare din punct de
vedere al avansului spre soluie.
Strategiile de cutare euristice ncearc reducerea numrului de stri
din spaiul de cutare inspectate pn la atingerea strii finale, pe baza
diverselor criterii, cum ar fi funciile euristice. Strategia alpinistului descris
anterior este un exemplu de cutare informat Alte exemple sunt strategia
de cutare "best-first", algoritmul A
*
si algoritmul AO
*
. Algoritmii A
*
si
AO
*
urmresc n principal, pe lng reducerea numrului de stri
inspectate, gsirea soluiei optime.
Costul computaional 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 aplicrii operatorilor, sau costul parcurgerii spaiului de cutare
ntre starea iniial si starea final;
costul controlului, sau costul evalurii si seleciei celei mai promitoare
stri urmtoare.
Grad de
informare
Cost
Computational
Cost total
Cost control
(cost evaluare stari) Cost parcurgere
(cost aplicare
operatori)
Neinformat Informat

Fig. 1.8 Costul total al rezolvrii unei probleme prin cutare

O strategie de cutare complet neinformat implic un cost redus al
controlului i un cost ridicat al parcurgerii spaiului de cutare deoarece, n
general, necesit aplicarea unui numr mare de operatori naintea gsirii
unei soluii.
Invers, o strategie de control complet informat despre domeniul
problemei implic un cost ridicat al controlului deoarece poate necesita
calcule complicate pentru evaluarea meritului strilor i un cost minim de
parcurgere a spaiului de cutare datorita numrului redus de operatori
aplicai pn la gsirea soluiei.
Dup cum se poate observa i din figura 1.8 exist un grad optim de
informare pentru care costul total este minim. n funcie de aplicaie,
proiectantul programului trebuie s ncerce determinarea celei mai bune
variante de pondere a costurilor. Obinerea unui cost computaional optim
este un aspect esenial deoarece problemele de cutare sunt probleme de
complexitate timp exponenial.

1.3.3.2. Cutri neinformate n spaiul strilor

Se consider:
un graf definit implicit prin mulimea operatorilor asociai arcelor;
nodul sau mulimea de noduri ce definesc starea iniial
i
S , adic
condiiile iniiale ale problemei de rezolvat;
nodul sau mulimea de noduri ce definesc starea final
f
S , adic
obiectivele sau cerinele problemei.

Pentru rezolvarea este necesar s se gseasc o cale ntre starea iniial
i starea final. Principiul care se afl la baza algoritmului generic de
cutare const n explorarea incremental a cilor ce pornesc din nodurile
aferente strii iniiale i folosete noiunea de frontier pentru a delimita
nodurile explorate de cele care nu au fost nc explorate.
n parcurgerea spaiului de cutare un nod poate fi:
necunoscut - nodul aparine prii neexplorate a spaiului de
cutare,
evaluat - nodul este cunoscut dar fie nu se cunoate nici un
succesor al lui, fie se cunosc numai o parte dintre acetia;
expandat - nodul este cunoscut si, in plus, se cunosc toi succesorii
lui.
Prin expandarea unui nod se nelege generarea tuturor succesorilor si,
adic aplicarea tuturor operatorilor legali strii curente
c
S aferent nodului.
14
n procesul de cutare se vor folosi doua liste:
LF lista frontier care conine nodurile evaluate;
LT lista teritoriu care conine nodurilor expandate.
Deci LF reprezint frontiera spaiului de cutare parcurs (explicitat)
spre partea necunoscut a acestuia, iar LT partea cunoscut a spaiului de
cutare.
n cele ce urmeaz se prezint strategia de cutare pe nivel i strategia
de cutarea n adncime. Algoritmii prezentai presupun c:
1. Spaiul de cutare este arbore, adic ntre starea iniial i cea final
exist o cale unic. Prin urmare, toate strile generate pe parcursul
cutrii sunt unice, deci nu au mai fost generate anterior. Extinderea
si modificrile necesare pentru a generaliza algoritmii la spatii de
cutare de tip graf vor fi prezentate in final.
2. La fiecare expandare a unui nod se stabilete o legtur de la fiecare
nod succesor la nodul expandat. In momentul descoperirii nodului
stare final aceste legaturi permit reconstruirea caii spre soluie.
Definiie. Intr-o reprezentare a soluiei problemei prin spaiul strilor
adncimea unui nod se definete astfel:
Ad( )=0
i
S , unde S
i
este nodul stare iniial,
Ad( )=Ad( )+1
c p
S S , unde S
p
este predecesorul strii curente S
c
.

Cutarea pe nivel sau n lime

Cutarea pe nivel, numit i cutarea n lime, este o strategie care
expandeaz strile urmtoare n ordinea apropierii fa de nodul stare
iniial S
i
. Aceast strategie trateaz lista frontier LF folosind o strategie de
tipul FIFO. Nodul din frontier care se elimin este primul din list, iar
succesorii si sunt adugai la sfritul listei.
Algoritm: Strategia cutrii pe nivel in spaiul strilor
1. Creeaz listele LF { }
i
S si LT { }
2. DAC LF={ }
ATUNCI ntoarce INSUCCES /* nu exist soluie */
3. Elimin primul nod S
c
din LF si-l insereaz n LT
4. Expandeaz nodul S
c

4.1. Genereaz toi succesorii direci
j
S ai nodului S
c

4.2. pentru fiecare succesor S (1 j m)
j
al lui S
c
executa
4.2.1. Stabilete legtura S S
j

4.2.2. daca S
j
este stare final
atunci
i. Soluia este (S S,...,S )
j i
,
ii. ntoarce SUCCES /* s-a gsit soluie */
4.2.3. Insereaza
j
S in LF, la sfrit
5. repeta de la 2
sfrit.
Exemplu

Pentru exemplificare se consider graful din figura 1.9 n care nodul n
1

reprezint starea iniial, iar nodul n
10
starea final.


n
1
n
2
n
4
n
8
n
9
n
10
n
5
n
6
n
7
n
3


Fig. 1.9. Graful de cutare
Pas 1. Iniializri { }
1
LF n = i { } LT =
Pas 2 . Elimin
1
n din LF i-l insereaz n LT: { } LF = i { }
1
LT n =
Pas 3. Genereaz succesorii lui
1
n si-i insereaz n LF: { }
2 3
, LF n n =
15
Pas 4. Elimin
2
n din LF i-l insereaz n LT: { }
3
LF n = i
{ }
1 2
, LT n n =
Pas 5. Genereaz succesorii lui
2
n si-i insereaz n LF la sfrit:
{ }
3 4 5
, , LF n n n =
Pas 6. Elimin
3
n 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
3
n si-i insereaz n LF la sfrit:
{ }
4 5 6 7
, , , LF n n n n =
Pas 8. Elimin
4
n 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
4
n nu are succesori, nu se adaug alte noduri n lista LF.
Pas 9. Elimin
5
n 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
5
n i-i insereaz n LF la sfrit:
{ }
6 7 8 9
, , , LF n n n n = .
Pas 11. Elimin
6
n 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
6
n nu are succesori, LF
nu se modific.
Pas 12. Elimin
7
n 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
7
n i-i insereaz n LF la sfrit:
{ }
6 7 8 9 10
, , , , LF n n n n n =
Deoarece nodul final
10
n a aprut n frontier, se consider procesul de
cutare ncheiat i se specific soluia { }
1 3 7 10
, , , n n n n
Cutarea poate fi uneori lung i complex computaional din punct de
vedere al spaiului utilizat deoarece pentru fiecare nivel sunt generate toate
strile succesoare posibile. Cu toate acestea, strategia de cutare pe nivel
garanteaz gsirea soluiei, n cazul n care aceasta exist i, n plus, gsete
cel mai scurt drum spre soluie n termenii numrului de tranziii de stri
executate.

Cutarea n adncime

Cutarea n adncime este strategia cea mai frecvent utilizat n
aplicaiile practice. Ea expandeaz strile cel mai recent generate, adic
nodurile din lista LF cu adncimea cea mai mare. Prin urmare, aceast
strategie parcurge o cale de la starea iniial pn 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 ci posibile. n cadrul acestei strategii lista
frontier LF este tratat ca o stiv folosind o tehnic de tipul LIFO (Last In
First Out).
Strategia cutrii n adncime nu garanteaz obinerea unei soluii a
problemei, chiar n cazul n care aceasta exist. O astfel de situaie poate s
apar n cazul unui spaiu de cutare infinit n care ramura pe care s-a plecat
n cutare nu conine soluia. Din acest motiv se introduce o limit maxim
a adncimii de cutare, AdMax. Dac aceast limit a fost atins fr a se
gsi soluia, atunci strategia revine si inspecteaz stri de pe nivelurile
inferioare lui AdMax dar aflate pe ci diferite. n acest fel, soluia care s-ar
gsi pe calea iniial la o adncime mai mare dect AdMax este pierdut. n
schimb, algoritmul cutrii n adncime prezint avantajul generrii unui
numr de stri mai mic comparativ cu algoritmul cutrii pe nivel.


Algoritm: Strategia cutrii in adncime n spaiul strilor
1. Creeaz listele { }
i
LF S si { } LT
2. DAC ={ } LF
16
ATUNCI ntoarce INSUCCES /* nu exist soluie sau soluia nu
poate fi gsit pn la nivelul AdMax */
3. Elimin primul nod S
c
din LF si-l insereaz n LT
3'. DAC ( )
c
Ad S AdMax =
ATUNCI repet de la 2
4. Expandeaz nodul S
c

4.1. Genereaz toi succesorii direci
j
S ai nodului S
c

4.2. Pentru fiecare succesor (1 )
j
S j m al lui S
c
execut
4.2.1. Stabilete legtura
j c
S S
4.2.2. DAC
j
S este stare final
ATUNCI
i. Soluia este ( , ,..., )
j c i
S S S
ii. ntoarce SUCCES /* s-a gsit soluie */
4.2.3. Insereaz
j
S n LF, la nceput
5. repet de la 2
sfrit.
Exemplu

Pentru exemplificare se consider tot graful din figura 1.9 (cel folosit
la exemplificarea metodei de cutare pe nivel) n care nodul n
1
reprezint
starea iniial, iar nodul n
10
starea final.
Obs: Ordinea n care se exploreaz diversele ci n graful de cutare
depinde de ordinea n care se genereaz i se insereaz n LF succesorii
nodului expandat . n cele ce urmeaz considerm c succesorii unui nod se
genereaz n ordinea indicelui numeric.
Pas 1. Iniializri { }
1
LF n = i { } LT =
Pas 2 . Elimin
1
n din LF i-l insereaz n LT: { } LF = i { }
1
LT n =
Pas 3. Genereaz succesorii lui
1
n si-i insereaz n LF: conform
conveniei adoptate mai nti se generez i se introduce n list
2
n i apoi
3
n . Deci { }
3 2
, LF n n = (ultimul nod generat este
primul n lista LF)
Pas 4. Elimin
3
n din LF i-l insereaz n LT: { }
2
LF n = i
{ }
1 3
, LT n n =
Pas 5. Genereaz succesorii lui
3
n n ordinea
6
n ,
7
n si-i insereaz n
LF care devine { }
7 6 2
, , LF n n n =
Pas 6. Elimin
7
n 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
7
n . Exist un singur succesor
10
n care
este inserat la inceputul listei care devine { }
10 6 2
, , LF n n n =
Obs. Deoarece s-a identificat starea final, procesul de cutare se oprete.

Pentru a elimina dezavantajele specifice celor dou strategii de
cutare de baz (strategia de cutare pe nivel i cea n adncime) s-a
dezvoltat algoritmul de cutare n adncime cu nivel iterativ denumit i
algoritmul lui Korf. Acest algoritm realizeaz la nceput o cutare n
adncime n spaiul strilor cu o adncime maxim de cutare AdMax .
Dac starea final nu a fost gsit, se reia cutarea n adncime cu
1 AdMax AdMax = + i se continu n acest fel, crescnd adncimea de
cutare. La fiecare iteraie algoritmul realizeaz o cutare n adncime
complet corespunztoare valorii curente AdMax . ntre dou iteraii
succesive nu se reine nici o informatie despre spatiul de cutare.
n acest fel se garanteaz gsirea soluiei, dac aceasta exist, precum
i a drumului cel mai scurt ctre soluie
n cazul n care spaiul de cutare nu este un arbore, ci un graf
oarecare, pentru a evita reconsiderarea unei stri analizate anterior, pasul
de inserare a strii S
j
n lista LF (pasul 4.2.3) se modific astfel:
4.2.3' DAC
j
S LF LT
ATUNCI insereaz
j
S n LF, la sfirsit respectiv la nceput n
funcie de strategie.
17

Observaii:
1. Ambele tipuri de cutri realizeaz un rationament direct, pornind
n rezolvarea problemei de la starea iniial si genernd arborele de
cutare a strii finale. Acest mod de abordare corespunde
raionamentului deductiv.
2. In anumite cazuri se poate proceda invers, executind strategiile
ncepind din starea final i cutnd starea iniial. Acest mod de
abordare corespunde raionamentului inductiv.
3. n anumite probleme se poate utiliza o combinaie ntre
raionamentul direct si cel invers, adic un rationament
bidirectional n care se caut soluia pornind simultan din starea
iniial si cea final. n cazul acestei strategii, dac se utilizeaz
cutarea n adncime exist pericolul ca cei doi arbori generai
simultan, unul pe calea direct i cellalt pe calea invers, s nu
aib noduri intermediare comune (s nu se ntlneasc).
4. Strategiile de cautare pe nivel si n adincime pot fi uor adaptate la
cutarea soluiei problemei n reprezentarea cu grafuri SI/SAU.
Diferena const n criteriul de determinare a condiiei de oprire. De
aceast dat trebuie s se testeze dac o mulime de noduri
formeaz un arbore soluie. Prin urmare, impactul fiecrui nod nou
generat trebuie propagat n arborele parial construit pentru a
determina dac nodul problem iniial a devenit rezolvat.
Algoritmele de cutare 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 cutare 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 mulime de
subprobleme care trebuie rezolvate. Aceste noduri sunt ns
construite i fac parte din poriunea explicitat a spaiului de
cutare. Pe baza strii de rezolvat sau nerezolvabil a acestor noduri
se poate decide cind s-a obtinut arborele solutie.

1.3.3.3. Strategii de cutare euristic

n rezolvarea problemelor utilizind strategii de cutare neinformat
numrul de stri investigate nainte de a gasi o soluie poate ajunge
prohibitiv de mare, chiar si pentru probleme relativ simple.
Spatiul de cautare explorat poate fi redus prin aplicarea tehnicilor
euristice de cutare care in seama de ct de aproape este fiecare nod al
grafului de nodul corespunztor strii finale.
Cuvntul euristic() provine din greaca veche i are nelesul a
descoperi. Conform DEX un procedeu euristic servete la descoperirea
unor cunotine noi, respectiv definete o parte a tiinei care are ca obiect
descoperirea de fapte noi.
n contextul problemelor de cutare, o tehnic euristic este o strategie
folosit pentru a crete eficiena cutrii, fr a garanta obinerea soluiei.
Dezvoltarea unei tehnici euristice se face pe baza unor aproximri raionale,
ipoteze simplificatoare i cunotine specifice domeniului problemei.
n acest context, cunotinele euristice pot fi utilizate pentru:
a) selectarea nodului urmator de expandat n cursul cutrii
selectarea nodului cel mai promitor pentru obinerea soluiei;
b) a decide care dintre succesorii nodului ce este expandat vor fi
generai i care nu expandarea parial a unui nod prin aplicarea
numai a unui sbset de operatori dintre cei posibil de aplicat;
c) eliminarea din spaiul de cutare a anumitor noduri generate
retezarea arborelui de cutare.

S
f
S
i
S
c
g( ) S
c
h( ) S
c
f( ) S
c

Fig. 1. 10. Definirea unei funcii euristice

O mare parte dintre tehnicile euristice cunoscute sunt tehnici cu
aplicabilitate general. Totui, 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 funcii
18
euristice care exprim cel mai adesea n form numeric ct de
promitoare este o stare din spaiul de cutare n procesul de identificare a
soluiei, adic ct de apropiat este starea respectiv de stare final.
Modul cel mai general de definire a une funcii euristice f folosete alte
dou funcii, g i h, avnd urmtoarele semnificaii (fig. 1.10):
funcia g evalueaz costul deplasrii din starea iniial S
i
n starea
curent S
c
;
funcia h estimeaz costul deplasrii din starea curent Sc n starea
final S
f
;
Dintre cele trei funcii doar g poate fi evaluat precis, celelalte dou
fiind doar estimate i de aceea se noteaz
*
f i
*
h , iar legtura dintre ele
este dat de relaia
* *
( ) ( ) ( )
i f i c c f
f S S g S S h S S = + (1)
O particularitate proprie tehnicilor euristice de cutare o reprezint
caracterul local al procesului decizional care determin o comportare
nemonoton a funciei h n spaiul strilor.
Exist numeroase metode euristice de cutare dintre care cele mai
cunoscute sunt:

Metoda cii spre obiectiv
Principiul acestei metode const n alegerea acelor operatori care par s
conduc la un obiectiv, de obicei soluia problemei. n acest sens, la fiecare
pas al procesului de cutare se evalueaz diferenele dintre starea curent S
c

i starea final S
f
pe baza crora se identific un operator
1
O ce ar permite
trecerea direct din starea curent n cea final. Din pcate 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
'
c
S creia i se poate aplica operatorul
1
O identificat anterior i
n care se poate ajunge din starea curent S
c
prin aplicarea unui operator
secundar
2
O .

Metoda pasului optim (best first)
Ideea de baz a acestei strategii este aceea de a selecta, din spatiul de
cutare generat, pentru expandare cel mai bun nod folosind n acest sens
cunostinele euristice, adic o estimare a strii cu ajutorul funciei euristice.
Algoritmul de baz al metodei implic parcurgerea urmtoarelor etape:
1. Calculul funciei euristice pentru toate nodurile din nivelul curent
(nodurile din frontier)
2. Selectarea nodului cu valoarea minim/maxim a funciei euristice
3. Expandarea nodului selectat (generarea succesorilor si). Dac
unul dintre succesori este soluia, atunci procesul de cutare se
oprete.
Algoritmele A* i AO*
Folosesc pentru a evalua fiecare nod al frontierei o funcie cost global de
tipul celei definit de relaia (1) i caut o soluie optim a problemei.
Algoritmul A* este specific reprezentrii prin spaiul strilor, n timp ce
algoritmul AO* este specific reprezentrii prin grafuri SI/SAU.

Pentru a exemplifica modul de utilizare a strategiilor de cutare n
cadrul motorului de inferene al unui SE se consider baza de cunotine
format din faptele cunoscute B i C, respectiv scopul cutat 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 arborescene ce corespund
acestui caz. Prin linii continue se reprezint regulile aplicate, iar nodurile
reprezint diferitele stri ale bazei de fapte. Liniile ntrerupte corespund
regulilor aplicabile, dar pe care motorul de inferene nu le-a ales pentru
utilizare.
19
Procedeul de cutare nainte (raionamentul deductiv) (fig. 1.11, a,
b) constituie o tehnic de inferen care folosete reguli (DAC-ATUNCI)
pentru a gsi soluia (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
, ,
, ,
, ,
R7
R8
R9
R5
R8
R9
R1
R8
R9
R3
R8
R9
R6
R8
R9
H
R4
R7
B C ,
B C
X
, , B C
X A
, ,
,
R7
R8
R9
R6
R7
R9
R4
R7 B C ,
H
H
R6
R4
A
X B
G
D R2
C
F
R3
B
D
E
R7
R9
C
R5
D
C
R8
verificat
verificat
verificat
verificat
verificat
neverificat
inutil deoarece nu
a fost verificat G
a
b
c
R7
R9
R1
I
I
I
I
SAU
SAU
I
ambele subscopuri
trebuie verificate
SAU
una sau alta dintre
reguli poate fi aplicat

Fig. 1.11. Procedee de inferen:
a cutare nainte (dup prima regul aplicabil);
b cutare nainte (dup regula cu cel mai mare numr de condiii);
c cutare napoi.

Pe msur ce una din reguli este ntrebuinat noile fapte se
adaug la baza de fapte. n stabilirea ordinii de alegere a regulilor n
exemplul prezentat s-au aplicat urmtoarele 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 numr de condiii (fig. 1.11, b).
Astfel, n al doilea caz se prefer regula R8 i nu R7, pentru c are, conform
bazei de reguli, condiiile X i C. n cazul cnd dou sau mai multe reguli au
acelai numr de condiii se alege prima regul. Se consider succes
momentul cnd scopul este adugat la baza de fapte, iar eec cnd nu se
mai poate aplica nici o regul. Oprirea cutrii are loc n momentul n care
n baza de fapte apare scopul urmrit H.

Dup cum deja s-a menionat, criteriul de alegere n etapa de
rezolvare a conflictelor influeneaz performanele motorului de inferene.
n exemplul prezentat s-au efectuat 6 inferene n primul caz (a) i doar 3
inferene n al doilea caz (b).

Procedeul de cutare nainte sau raionamentul deductiv prezint
dou mari avantaje care n unele aplicaii sunt absolut necesare: d
posibilitatea generrii tuturor soluiilor posibile i mbogete la fiecare
ciclu al motorului de inferene baza de fapte, ceea ce simplific deduciile
ulterioare. Marele dezavantaj al acestui procedeu l constituie lipsa
proprietii de completitudine (garantarea gsirii soluiei n cazul n care
aceasta exist).
Procedeul de cutare napoi (raionamentul inductiv) (fig. 1.11, c)
este bazat pe utilizarea unui raionament concentrat pe scop, adic pornete
de la scop o problem de rezolvat; n acest sens, scopul se descompune
succesiv n subprobleme, pn cnd se obin probleme primitive (fapte
dovedite sau interogabile). De aceea, se spune c acest mod de
cutare/raionament este dirijat de scop, n sensul gsirii faptelor care
permit atingerea acestuia (n mod invers n raport cu procedeul de cutare
nainte). Motorul de inferene utilizeaz reguli de la dreapta la stnga, adic
n sensul de la Concluzie Premis. Regulile selecionate sunt acelea care
au n partea de concluzii (n dreapta) scopul specificat iniial, premisele
acestora devenind subscopuri ce urmeaz a fi demonstrate. Acest proces se
repet pn cnd toate subscopurile obinute sunt demonstrate, sau n urma
etapei de filtraj mulimea regulilor declanabile este vid, adic s-a ajuns
ntr-o situaie de eec.
20
Pentru exemplificarea raionamentului inductiv se consider aceeai
baz de cunotine; pentru nceput se propune verificarea scopului H. Dac
se parcurg regulile R1R9, se observ c numai regula R6 are concluzia H.
Astfel H se reduce prin regula R6 la subscopurile A i X. La rndul su
scopul A poate fi verificat utiliznd una din cele trei reguli simple R2, R3
sau R8. Strategia utilizat const n folosirea primei reguli aplicabile (n
ordinea numerotrii lor) pentru ca, n continuare, s caute a verifica unul
dup altul subscopurile astfel produse. Subscopul X este adevrat dac
regula R4, n care X este concluzia, se poate aplica. Continund
raionamentul se obine arborele I/SAU de verificare a scopului H. n caz
de eec (de exemplu subscopul G nu poate fi dedus n nici un fel), se
revine napoi i ultima regul lsat deoparte este ncercat la rndul su.
Explorarea arborescenei se oprete cnd scopul iniial este demonstrat (ca
n exemplul dat), sau cnd toate posibilitile au fost explorate fr succes.
Dezavantajul sistemelor cu nlnuire napoi este acela c poate aprea
blocajul.
n conceperea i introducerea sistemelor expert n energetic trebuie
avut n vedere permanent c omul va rmne principalul element de decizie,
sistemul expert asistndu-l n aceast activitate n situaii excepionale
(incidente, avarii etc.) sau de rutin pentru a-l elibera de anumite sarcini i
a-i da posibilitatea s se concentreze pe acele activiti care implic n mod
necesar elementul uman n alegerea i executarea aciunilor. Sistemul
expert trebuie considerat ca un element auxiliar i nu ca o alternativ la
funciile actuale ale dispecerilor.
n prezent cele mai multe SE dezvoltate folosesc doar cunotine
declarative. Avnd n vedere c n sistemele electroenergetice exist i o
mare cantitate de cunotine procedurale, apare necesar un nou tip de SE
care s utilizeze ambele tipuri de cunotine.
n cadrul centralelor i reelelor electrice este disponibil un numr mare
de cunotine sub form de reguli i fapte a cror utilizare trebuie
eficientizat. n acest scop apar urmtoarele probleme:
alegerea regulilor i faptelor de importan esenial pentru o anumit
aplicaie (este nevoie de metode de reducere i de combinare a
cunotinelor date);
aducerea la zi a regulilor. Unele reguli se pstreaz o perioad lung de
timp, n timp ce alte reguli se schimb. Aceste reguli pot fi adesea
obinute numai prin modele matematice, care descriu relaiile cauzale
dintre obiectele considerate. Aici exist o strns legtur ntre
cunotinele declarative i cele procedurale;
stabilirea prioritilor n timp a regulilor i faptelor;
testarea inconsistenei i a integritii.

Prin folosirea ambelor categorii de cunotine declarative i
procedurale apare o funcie nou i anume sistemul de tip consilier.
Acesta este un tip de software care ajut operatorul n luarea deciziilor prin
folosirea cunotinelor declarative i procedurale i a mecanismelor
corespunztoare de rezolvare a problemelor.
O form foarte simpl const n folosirea a dou niveluri: un nivel
superior pentru aplicarea cunotinelor declarative sub forma regulilor i
faptelor i un nivel inferior pentru cunotinele procedurale sub forma
modelelor matematice ce descriu relaiile cauzale.