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.

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.

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.

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.

1.2. Arhitectura unui SE


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

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;

Inferen = operaie logic de trecere de la un enun la altul i n care ultimul enun este dedus din primul (DEX)

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.
Expert n domeniu

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:
Utilizator

Baza de date

Inginer de cunotine

Achiziie de cunotine

Memoriea de lucru Fapte dinamice

Date Aciuni Concluzii

Motor de inferen

Reguli selecionate Selectare reguli i fapte

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. <partea de condiie> <partea de aciune>

Baza de Reguli cunotine Fapte

Mediu de dezvoltare

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)

Structura general a unei reguli de producie este: 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:

Reprezentarea cunotinelor se poate realiza prin: regulile de producie;

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.

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 aseriunilor2 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

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

Aseriune = enun care este dat ca adevrat.

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)

<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

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:

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.):
Sistem achiziie de date Utilizator Fapte Alte aciuni

(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) SELECIE Reguli posibile Fapte selecionate FILTRAJ

Baza de fapte (BF)

Motor de inferene Reguli reguli aplicabile Reguli Selectare

Regul

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. 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.
Reguli declanabile REZOLVARE CONFLICTE Reguli reinute EXECUIE REGULI

(ii)

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

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

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:

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.

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

1. 2. 3.

Stabilete starea iniial Si Stabilete starea curent Sc Si repet 3.1 Selecteaz un operator de transformare t posibil de aplicat strii curente Sc 3.2 Aplic operatorul t asupra strii Sc si obine o nou starea S ' = t ( Sc ) 3.3 Stabilete Sc S ' pn cnd Sc este stare final

(ii)

(iii)

Procesul de determinarea a soluiei pornete dintr-o stare iniial Si cunoscut i, prin aplicarea unor reguli (operatori de transformare) care permit trecerea dintr-o stare n alt stare, se urmrete ajungerea n starea final Sf 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:

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 P1, P2 i P3. Sistemul evolueaz prin adugarea de noi proprieti conform urmtoarelor transformri sau reguli: t1: DAC (P1 I P2) ATUNCI P4 t2: DAC (P2 I P3) ATUNCI P5 t3: DAC (P1 I P4) ATUNCI P6 t4: DAC (P5 I P6) ATUNCI P7 t5: DAC (P2 I P5) ATUNCI P7

P = ( Si D ) Sf D
n care: T mulimea transformrilor.

(1)

D este mulimea strilor sau universul problemei;

O soluie a problemei P, notat T * este o secven de transformri


* * * t1 , t2 ,..., tn cu proprietatea:
* * * S f = tn ...t2 t1 ( Si )

( (

))

(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

Evoluia are loc respectnd convenia: dac ntre starea iniial Si i starea curent Sc 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 P7.

* T9 = {t2 , t5 } .

t4
P1, P2, P3, P4, P5, P6

P1, P2, P3, P4, P5, P6, P7

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:

T1* = {t1, t2 , t3 , t4 } ;

* T4 = {t1, t2 , t3 , t5} ;

t5
(ii)

* * T7 = {t1, t2 , t5 } i T9 = {t2 , t5 } .

t3
P1, P2, P3, P4, P5

Numrul transformrilor utilizate difer de la o soluie la alta, existnd posibilitatea obinerii soluiei printr-un nr. minim de transformri.

t2
P1, P2, P3, P4

t5
P1, P2, P3, P4, P5, P7

t2 t3
P1, P2, P3, P4, P6

t1
P1, P2, P3

t1 t2
P1, P2, P3, P5

t5
P1, P2, P3, P5, P7

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

Fig. 1.5. Secvena de transformri posibile. Soluiile posibile ale problemei sunt:
* * 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 ; * * T7 = {t1, t2 , t5 } ; T8 = {t2 , t1, t5 } ;

{ {

} }

{ {

} }

{ {

} }

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

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

{A} B A 7 13 6 10 10 5C D (a) Harta oraselor de parcurs 7 10 9 6 E {A,B} ... 7 6 10 {A,C} {A,D} 5 {A,C,D} 6 {A,C,D,E} (b) O portiune din spatiul de cautare a solutiei ... 13 {A,E} ...

( Si , O, S f ) n care:

Si 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; 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 Si , O, S f . 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.

Sf

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 ( Si , O, Pe ) n care:

Si este descrierea strii iniiale; 10

Pe

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; descrierea unei mulimi de probleme elementare.

(ii) (iii)

este un nod SI, iar toi succesorii lui sunt noduri rezolvate; este un nod SAU si cel puin un succesor al acestuia este nod rezolvat.

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

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
n=3 A la C

Nod SAU Noduri SI Noduri SAU

(a) Stare initiala

(b) Stare finala

O - operator de descompunere

n=2 A la B n=1 A la C

n=2 B la C

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;

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

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

11

In funcie de primul criteriu, strategiile de cutare se mpart n: Pentru exemplificare se consider problema turnurilor din Hanoi care cere s se mute n = 3 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. 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. 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 blocnduse 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.

(iii)

12

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.
Cost Computational Cost parcurgere (cost aplicare operatori) Cost control (cost evaluare stari) Cost total

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 Si , adic condiiile iniiale ale problemei de rezolvat; nodul sau mulimea de noduri ce definesc starea final S f , 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 Sc aferent nodului.

Neinformat

Informat

Grad de informare

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

13

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:

4.1. Genereaz toi succesorii direci S j ai nodului Sc 4.2. pentru fiecare succesor S j (1 j m) al lui Sc executa 4.2.1. 4.2.2. Stabilete legtura S j S daca S j este stare final atunci i. Soluia este (S j , S,...,Si ) ii. ntoarce SUCCES /* s-a gsit soluie */ Insereaza S j in LF, la sfrit

4.2.3.

5. repeta de la 2 sfrit. Exemplu Pentru exemplificare se consider graful din figura 1.9 n care nodul n1 reprezint starea iniial, iar nodul n10 starea final.

Ad(Si )=0 , unde Si este nodul stare iniial,


Ad(Sc )=Ad(S p )+1 , unde Sp este predecesorul strii curente Sc.
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 Si. Aceast strategie trateaz lista frontier LF folosind o strategie de tipul FIFO. Nodul din frontier care se elimin este primul din list, iar succesorii si sunt adugai la sfritul listei. Algoritm: Strategia cutrii pe nivel in spaiul strilor 1. Creeaz listele LF {Si } si LT { } 2. DAC LF={ } ATUNCI ntoarce INSUCCES /* nu exist soluie */ 3. Elimin primul nod Sc din LF si-l insereaz n LT 4. Expandeaz nodul Sc

n1 n2 n4 n8 n5 n9 n6 n3 n7 n10

Fig. 1.9. Graful de cutare Pas 1. Pas 2 . Pas 3. Iniializri LF = {n1} i LT = {

} } i
LT = {n1}

Elimin n1 din LF i-l insereaz n LT: LF = {

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

LT = {n1, n2 }

cutare ncheiat i se specific soluia {n1, n3 , n7 , n10 }

Deoarece nodul final n10 a aprut n frontier, se consider procesul de 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

Pas 5.

Genereaz succesorii lui n2 si-i insereaz n LF la sfrit:

LF = {n3 , n4 , n5 } LT = {n1, n2 , n3}

Pas 6.

Elimin n3 din LF i-l insereaz n LT: LF = {n4 , n5 } i

Pas 7.

Genereaz succesorii lui n3 si-i insereaz n LF la sfrit:

LF = {n4 , n5 , n6 , n7 }

Pas 8.

Elimin n4 din LF i-l insereaz n LT: LF = {n5 , n6 , n7 } i

LT = {n1, n2 , n3 , n4 }

Obs. Deoarece n4 nu are succesori, nu se adaug alte noduri n lista LF. Pas 9. Elimin n5 din LF i-l insereaz n LT: LF = {n6 , n7 } i

LT = {n1, n2 , n3 , n4 , n5 } LF = {n6 , n7 , n8 , n9 } .

Pas 10.

Genereaz succesorii lui n5 i-i insereaz n LF la sfrit: Elimin n6 din LF i-l insereaz n LT: LF = {n7 , n8 , n9 } i nu se modific.

Pas 11.

LT = {n1, n2 , n3 , n4 , n5 , n6 } . Deoarece n6 nu are succesori, LF

Pas 12.

Elimin n7 din LF i-l insereaz n LT: LF = {n8 , n9 } i

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

LT = {n1, n2 , n3 , n4 , n5 , n6 , n7 }

Pas 13.

Genereaz succesorii lui n7 i-i insereaz n LF la sfrit:

LF = {n6 , n7 , n8 , n9 , n10 }

1. Creeaz listele LF {Si } si LT { } 2. DAC LF ={ }

15

ATUNCI ntoarce INSUCCES /* nu exist soluie sau soluia nu poate fi gsit pn la nivelul AdMax */ 3. Elimin primul nod Sc din LF si-l insereaz n LT 3'. DAC Ad ( Sc ) = AdMax ATUNCI repet de la 2 4. Expandeaz nodul Sc 4.1. Genereaz toi succesorii direci S j ai nodului Sc 4.2. Pentru fiecare succesor S j (1 j m) al lui Sc execut 4.2.1. 4.2.2. Stabilete legtura S j Sc DAC S j este stare final ATUNCI i. Soluia este ( S j , Sc ,..., Si ) ii. ntoarce SUCCES /* s-a gsit soluie */ Insereaz S j n LF, la nceput Pas 7. Pas 6. Pas 5. Pas 4.

n2 i apoi n3 . Deci LF = {n3 , n2 } (ultimul nod generat este


primul n lista LF) Elimin n3 din LF i-l insereaz n LT: LF = {n2 } i

LT = {n1, n3}

Genereaz succesorii lui n3 n ordinea n6 , n7 si-i insereaz n LF care devine LF = {n7 , n6 , n2 } Elimin n7 din LF i-l insereaz n LT: LF = {n6 , n2 } i

LT = {n1, n3 , n7 }

Genereaz succesorii lui n7 . Exist un singur succesor n10 care este inserat la inceputul listei care devine LF = {n10 , n6 , n2 }

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 AdMax = AdMax + 1 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 Sj n lista LF (pasul 4.2.3) se modific astfel: 4.2.3' DAC S j LF LT ATUNCI insereaz S j n LF, la sfirsit respectiv la nceput n funcie de strategie.

4.2.3.

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 n1 reprezint starea iniial, iar nodul n10 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. Pas 2 . Pas 3. Iniializri LF = {n1} i LT = {

}
} i
LT = {n1}

Elimin n1 din LF i-l insereaz n LT: LF = {

Genereaz succesorii lui n1 si-i insereaz n LF: conform conveniei adoptate mai nti se generez i se introduce n list

16

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.

Si g(Sc) Sc h(Sc) Sf
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

f(Sc)

17

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 Si n starea curent Sc; funcia h estimeaz costul deplasrii din starea curent Sc n starea final Sf; 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

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:

f * ( Si S f ) = g ( Si Sc ) + h* ( Sc S f )

(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 Sc i starea final Sf pe baza crora se identific un operator O1 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
' creia i se poate aplica operatorul O identificat anterior i intermediar Sc 1 n care se poate ajunge din starea curent Sc prin aplicarea unui operator secundar O2 .

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.

Metoda pasului optim (best first)

18

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

R4 R7

B, C, X

R7 R9 R8

B, C, X, D

R5 R9 R8

B, C,

R1 R8

B, C, X, D, E, F

R3 R9 R8

B, C, X, D, E, F, A

R6 R9

X, D, R9 E

H R8

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.

a R4 B, C R7 B, C, X R8 R9 R7 B, C, X, A b R6 R9 H R7

G neverificat
I

R6 I

inutil deoarece nu a fost verificat G SAU A R3 C verificat B verificat C verificat I R7 SAU F R1 D R8 I R9 C verificat R7 R5 R 4 E D X B verificat R9 c R2 D

ambele subscopuri I trebuie verificate una sau alta dintre SAU 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.

19

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.

20