Sunteți pe pagina 1din 22

2.1. Inteligen artificial.

Sisteme expert
Sistemele expert sunt produse ale inteligenei artificiale, ramur a
tiinei promovat recent n universiti i laboratoare de cercetare, ce
urmrete dezvoltarea de programe inteligente. Astfel de tehnici au nceput s
fie promovate cu succes i n industrie. Se apreciaz c n viitor tratarea
problemelor inginereti cu metode specifice inteligenei artificiale va crete
considerabil.

2.1.1. Istoria inteligenei artificiale (IA)


Una din preocuprile constante ale fiinei umane a fost imaginarea unor
modaliti care s simplifice diverse aspecte ale vieii cotidiene. Inveniile
inginereti i-au propus mereu maximizarea perfomanelor i minimizarea
efortului uman, ns prezena factorului uman a fost o condiie necesar
pentru rezolvarea oricrei probleme. Abia n secolul XX s-a pus cu adevrat
problema automatizrii unor procese i transformarea poziiei omului din
efectuant n supervizor.
Urme ale preocuprilor pentru inteligen artificial se pot ntlni nc
din antichitate. Primul sistem expert se consider a fi un papirus egiptean,
datnd din mileniul III .Hr., care const n 48 de observaii asupra
diagnosticrii i tratrii rnilor la cap. Cunotinele erau organizate sub form
de reguli: dac exist un anumit simptom, atunci se recomand un anumit
tratament.
Trebuie menionat c aceast realizare se bazeaz pe o alt invenie
extraordinar a omului, scrisul, prin intermediul cruia obiectele fizice ale
lumii reale pot fi reprezentate i manipulate n mod simbolic.
La nceputul secolulului XX, este menionat pentru prima dat o
main capabil s ndeplineasc sarcini n locul omului.
Momentul de natere al inteligenei artificiale este legat de anul 1956,
cnd la reuniunea de la Darmouth College (Hanover New Hampshire) a fost
prezentat programul de demonstrare a logicii propoziiilor.
n acelai an, John McCarthy a stabilit termenul de inteligen
artificial.
Tot n 1956, Alan Newell i Herbert Simon propun un program care
simuleaz raionamentul uman, General Problem Solver, bazat pe logica
predicativ. McCarthy inventeaz n 1959, la MIT AI Lab1, limbajul LISP,

Massachusetts Institute of Technology - Artificial Inteligence Laboratory

33

destinat programrii declarative. Acest limbaj, cu unele modificri, se


folosete i azi, dup aproape 50 de ani.
nceputul anilor 1970 aduce i o nou etap tehnologic, cea a
microprocesoarelor, care determin apariia generaiei a patra de calculatoare,
care continu pn n prezent.
n 1985 apare un nou limbaj de programare declarativ, Clips, propus de
NASA.
n 2000, se construiesc deja animale de cas robotizate (robot-pets)
interactive, cu mare succes comercial, campionii n acest domeniu fiind
firmele japoneze.
n prezent, se dezvolt roboi care s poat transmite imagini de pe
suprafaa planetei Marte i se cerceteaz posibilitile de cretere a
autonomiei vehiculelor spaiale.
Se preconizeaz c, n jurul anilor 2030, calculatoarele vor egala din
punctul de vedere al complexitii i puterii de procesare capacitile omului.
De-a lungul timpului, au fost enunate mai multe rspunsuri la
ntrebarea Ce este inteligena artificial?.
Astfel:
- IA este domeniul de studiu care i propune s explice i s
modeleze comportamentul inteligent n termenii proceselor de calcul;
- IA nu este o tiin pur sau o nou disciplin inginereasc, ci are o
natur clar de interdisciplinaritate, care implic tiina calculatoarelor,
matematic, psihologia proceselor cognitive etc.;
- Din punct de vedere ingineresc, IA se ocup cu generarea
reprezentrilor procedurilor care n mod automat i autonom permit
rezolvarea problemelor rezolvate pn acum numai de oameni;
- Obiectivul IA este abordarea inteligenei ca pe un calcul posibil de
efectuat, fezabil.
Patrick Winston2 a spus: IA este studiul ideilor care permit
calculatoarelor s efectueze lucrurile care fac oamenii s par inteligeni.
Marvin Minsky3 a iniiat ipoteza conform creia: Inteligena nu este
un singur lucru, ci o colecie de strategii, iar IA este tiina identificrii
concrete a acestor strategii i a modului n care se ncadreaz ntr-un tot
coerent.
Este greu de dat o definiie precis a domeniului inteligenei artificiale
n general, se consider c obiectul su de studiu se refer la modalitile prin
care poate fi imitat inteligena uman cu ajutorul calculatoarelor electronice
i a unor programe performante.

2
3

Profesor Inteligen artificial la MIT (Massachusetts Institute of Technology)


Profesor Lab. Inteligen artificial la MIT (Massachusetts Institute of Technology)

34

Totui, nici inteligena uman nu este o noiune clarificat pe deplin. n


general, putem spune c, inteligena uman este capacitatea de a nva uor
i bine, de a sesiza ceea ce este esenial, de a rezolva situaii i probleme noi
pe baza experienei acumulate anterior.
n consecin, inteligena artificial poate fi descris drept acel domeniu
al informaticii care se ocup cu proiectarea i construirea sistemelor capabile
s realizeze funcii ale intelectului uman, cum ar fi nvarea din experien,
nelegerea limbajului natural sau utilizarea unui raionament pentru
rezolvarea problemelor.
Principalele arii tiinifice asupra cror se extinde inteligena artificial
sunt:
- Vederea artificial, ce presupune recunoaterea formelor, identic cu
vederea uman;
- Robotica, ce se ocup de producerea mainilor capabile s reproduc
micarea;
- Prelucrarea vocii, ce privete constituirea i sinteza vocii umane;
- Recunoaterea textului sau vocii
- Demonstrarea teoremelor, care se ocup cu demonstrarea teoremelor
n matematic i logic;
- Rezolvarea general a problemelor, care caut soluii bazate n
special pe raionament logic;
- Recunoaterea formelor, care se ocup cu recunoaterea i
clasificarea diferitelor forme;
- Teoria jocurilor, studiaz strategiile pe care trebuie s le urmeze ntro confruntare cu reguli bine definite participani ale cror interese nu coincid;
- nvarea automat, se ocup de studiul procedeelor care determin
nvarea asistat de calculator;
- Sistemele expert, care nmagazineaz cunotine specializate,
provenite de la experi i se ocup cu reproducerea expertizei umane.
Unele dintre aceste domenii sunt foarte bine conturate i ncep s
devin de sine stttoare, prsind cmpul inteligenei artificiale
(recunoaterea formelor, procesarea vorbirii i sistemele expert).

2.1.2. Sisteme expert. Generaliti


Un sistem expert este un program care urmrete cunotinele,
raioneaz pentru obinerea rezultatelor, ntr-o activitate dificil, ntreprins
uzual doar de experii umani. Dac un expert uman are cunotine ntr-un
domeniu specific, un sistem expert utilizeaz cunotinele ce sunt stocate ntro baz de cunotine, baz format din cunotinele asociate domeniului
respectiv. Experii umani raioneaz i ajung la concluzii pe baza
cunotinelor ce le posed, sistemele expert raioneaz utiliznd cunotinele
stocate n baza de cunotine.
35

Un sistem expert este un program care urmrete un grup de cunotine,


mpreun cu un algoritm de cutare specific metodei de raionare, pentru
obinerea n acelai mod ca i experii umani a rezultatelor despre activiti
dificil de examinat.
Aria de aplicabilitate pentru sisteme expert a cuprins multe domenii de
activitate de la arhitectur, bnci, comer, educaie, ingineria sistemelor, etc.
Un sistem expert este bazat pe dou componente distincte
complementare: noi tehnici de programare, ce permit utilizarea a foarte multe
cunotine; noi construcii i metodologii dezvoltate, ce permit utilizarea
acestor tehnici de programare legate cu probleme complexe.
Succesul dezvoltrii sistemelor expert este legat de modul n care sunt
combinate aceste dou obiective. Expertul care nelege necesitatea utilizrii,
n domeniul su de cunoatere, a unui sistem expert, poate obine un ajutor de
la inginerul de cunotine deoarece, n urma discuiilor cu acesta, anumite
cunotine vor fi reformulate.
Sistemele expert marcheaz un mare progres n tiina calculatoarelor i
inteligenei artificiale. ntre instrumentele de lucru ale sistemelor expert se
iau n considerare metodele prin care o baz de cunotine poate fi afiat,
captat i reprezentat.
Principala virtute a calculatoarelor este abilitatea de realizare a unei
mari viteze de calcul. Calculatoarele ncep s se extind la aplicaiile
inginereti i bancare. Calculul matematic, sistemele automate, sunt realizate
prin intermediul unor programe de calcul, ce transpun n main, gndirea
omului ce le-a programat. Problemele ce se solicit rezolvate prin sisteme
expert fac apel la gndire, la abilitatea de raionare cu alte concepte dect
numere. Realizarea programelor ce raioneaz, pornete de la faptul c
simbolurile de prelucrare pot fi numere, texte sau alte concepte. n urma
cercetrilor, utiliznd calculatoare din ce n ce mai performante, a putut fi
rezolvat problema raionrii.

2.1.3. Domeniile sistemelor expert


Sistemele bazate pe cunotine se pot aplica, practic, n orice domeniu
al cunoaterii. Principalele domenii de aplicabilitate i cteva exemple de
sisteme expert se prezint n continuare:
- Sisteme expert de diagnoz: efectueaz operaii de diagnosticare n
domenii precum cel medical, industrial, financiar. Cel mai cunoscut
este MYCIN, sistem expert de diagnoz pentru depistarea infeciilor
bacteriene ale sngelui i pentru prescrierea tratamentului adecvat.
- Sisteme expert de configurare: asambleaz componente ale unui
anumit sistem. Firma DEC folosete sistemul expert XCON pentru
configurarea calculatoarelor firmei.
36

- Sisteme expert de nvare: sisteme de nvare inteligent, n care cei


ce se instruiesc pot pune ntrebri asemntoare celor puse unui
instructor uman. Ca exemplu, SEAMER ( instruire pentru operaiile
dintr-o uzin electric), CADHELP (instruire pentru proiectarea
asistat de calculator).
- Sisteme expert de interpretare: sisteme care explic i interpreteaz
datele observate. Astfel de sisteme sunt folosite n special n domeniul
chimiei: CRYSALYS (interpreteaz structura proteinelor), DENDRAL
(interpreteaz structura molecular).
- Sisteme expert de planificare: planific aciunile pentru a produce
anumite rezultate ateptate. Exemplu: SPEX (planific experimentri
de biologie molecular).
- Sisteme expert de control: sisteme de reglare i control a unui proces.
n general sunt sisteme complexe ce cuprind interpretare, diagnoz,
monitorizare, planificare, prognoz i remediere. De cele mai multe ori
se impune cerina de sisteme n timp real pentru a putea rspunde n
timp util sistemului controlat.
- Sisteme expert de monitorizare: compar datele observate cu cele
ateptate pentru a analiza performanele unor sisteme. Exemplu:
YES/MVS, sistem de monitorizare i control pentru sistemul de operare
IBM MVS.
- Sisteme expert de prognoz: prognozeaz rezultatele ntr-o anumit
situaie. Exemplu: PROSPECTOR ( specializat n prospeciuni
miniere).

2.1.4. Dezvoltarea unui sistem expert


Dezvoltarea unui sistem expert necesit mai multe etape precum i o
echip format din mai multe categorii de specialiti care trebuie s
coopereze.
Prima etap a dezvoltrii unui sistem expert const n definirea
domeniului sistemului expert. n strns legtura cu aceasta, urmeaz gsirea
unui expert din domeniul respectiv, care va fi folosit la construirea bazei de
cunotine a sistemului expert. Cunotinele din domeniul expertizat sunt
captate i codificate de ctre inginerul de cunotine. Acesta este un specialist
n tiina calculatoarelor i are sarcina de a intervieva expertul domeniului
pentru a extrage cunotinele expert. Operaia de achiziie a cunotinelor se
poate realiza att de la experi ct i din cri, manuale de specialitate etc.
O alt operaie important se refer la construirea mainii de inferen.
Maina de inferen implementeaz algoritmii de raionament, cu ajutorul
crora un sistem expert i poate realiza scopurile i n acelai timp trebuie s
in seama de structura intern a bazei de cunotine, deci de modul cum vor
fi organizate informaiile, dup operaia de achiziie de cunotine.
37

Inginer de
cunotine

Baza de
cunotine

Mecanism
de
inferen

Baza de
fapte

Interfaa utilizator

Expert
uman

Modul de achiziie a cunotinelor

Implementarea mainii de inferen este realizat de ctre inginerii


software. Etapa este complex pentru c se realizeaz un mediu integrat de
dezvoltare a unui sistem expert, mediu care conine i unelte software
adaptate la cerinele specifice sistemului expert.
Componentele sistemelor expert pot fi grupate n jurul a trei module
principale:
a) Baza de cunotine este reprezentat ca o structur de date ce conine
ansamblul cunotinelor specializate, introduse de ctre expertul uman.
b) Maina (mecanismul) de inferen include o colecie de algoritmi de
inferen capabili s determine soluiile unei probleme de expertiz ntr-un
mod asemntor expertului uman.
c) Baza de fapte (memorie de lucru) reprezint o colecie dinamic de
informaii care se modific n timpul procesului de consultare al unui sistem
expert, depinznd de problema concret de expertiz.
Pe lng aceste module un sistem expert mai conine o serie de module
ce asigur comunicarea cu operatorul i expertul uman, i anume:
- Interfaa utilizator este cea care asigur dialogul ntre utilizator i
sistem. Ea conine n general sisteme de meniuri i interfee grafice specifice
comunicrii om-main.
- Modulul de achiziie a cunotinelor preia cunotinele specializate,
furnizate de expertul uman sau inginerul de cunotine, verific validitatea
acestora i genereaz o baz de cunotine specific sistemului expert.
- Modulul de explicaii permite trasarea drumului urmat n raionare, de
ctre sistem i emite justificri pentru soluiile obinute.
n Fig. 2.1 se prezint structura general a unui sistem expert.

Modul de
explicare

Fig. 2.1 Structura general a unui sistem expert


38

Utilizator

n funcie de aplicaia pentru care este construit, structura sistemului


expert poate fi diferit fa de structura standard. Astfel, pentru aplicaii de
conducere a proceselor, se recomand structura prezentat n Fig. 2.2.

2.1.5. Reprezentarea cunoaterii

Inginer de
cunotine

Baza de
cunotine

Mecanism
de
inferen

Baza de
fapte

Interfaa utilizator

Expert
uman

Modul de achiziie a cunotinelor

Un avantaj important al sistemelor expert l reprezint modul de


reprezentare i folosire a cunotinelor. Pentru un sistem expert cunotinele
reprezint informaiile despre universul asupra cruia sistemul expert trebuie
s ia decizii.
n etapa de achiziie a cunotinelor, acestea vor suferi un proces de
abstractizare i codificare. Cunotinele dintr-un sistem expert trebuie s fie
astfel reprezentate nct s poat fi folosite n timpul raionamentului.
n cadrul reprezentrii cunotinelor i a raionamentului folosit n
sistemele expert, un loc important l ocup structurile de cunotine. Ele sunt
folosite pentru a memora cunotinele i a aciona asupra acestora, aa cum
structurile de date sunt folosite pentru a memora datele n programe i a
efectua operaii cu acestea.
Astfel, ecuaia unui sistem expert se poate descrie astfel:
Structuri de cunotine + Metoda de inferen = Sistem expert.

Utilizator

Modul de
explicare

Modul de comunicaie cu echipamentul de conducere


Controler

LINIE COMUNICAIE

Controler

Fig. 2.2 Structura unui sistem expert cu echipament de conducere

39

Exist mai multe formalisme de reprezentare a cunotinelor, cele mai


importante fiind:
- formalismul logicii predicatelor de ordinul nti;
- formalismul regulilor de producie;
- formalismul cadrelor.
Formalismul logicii predicatelor a fost unul dintre primele formalisme
folosite pentru reprezentarea cunotinelor, n special, n cazul sistemelor
expert scrise n PROLOG, un limbaj tipic de programare logic.
Formalismul regulilor de producie este, n prezent, cea mai rspndit
metod de reprezentare a cunotinelor. Acest formalism se bazeaz pe faptul
c cele mai multe informaii expert au o structur asemntoare unei reguli
din limbajul natural, de forma: dac anumite premise sunt ndeplinite, atunci
se pot deduce anumite concluzii.
Formalismul cadrelor reprezint un mod de structurare a informaiilor,
dintr-un anumit domeniu, n anumite clase sau categorii ntre care exist
anumite interdependene.
Exist i sisteme expert care folosesc pentru reprezentarea cunotinelor
combinarea a dou formalisme cum ar fi formalismul regulilor de producie
i formalismul cadrelor.
2.1.5.1. Formalismul logicii predicatelor de ordinul nti
n modul de reprezentare al cunotinelor prin formalismul logicii
predicatelor de ordinul nti, piesele de cunoatere sunt descrise prin expresii
care au drept componente formule ale limbajului. O pies de cunoatere
exprimat n limbaj natural este descompus n propoziii elementare, numite
aseriuni (ce specific fapte, proprieti, relaii legate de piesa de
cunoatere). O propoziie elementar este generat de un predicat, cu un
numr finit de locuri, n care se specific variabile formale sau obiecte, n
mulimea suport.
Acest mod de reprezentare al cunotinelor este constituit din dou
etape:
- reprezentarea propoziional, n care piesele de cunoatere sunt
descompuse n aseriuni legate prin conectivele logice specifice
calculului propoziional;
- reprezentarea predicativ, n care fiecare aseriune este descompus
n componentele sale, predicate sau obiecte.
Pentru descrierea calculului cu predicate sunt necesare noi definiii i
notaii. Dac considerm urmtoarele elemente:
- constantele: a, b, c, d,
- variabilele: x, y, z, t,
- predicatele: P, Q, R, S,
- simbolurile: , (cuantificatori de universalitate oricare, exist);
40

- paranteze i virgula.
Sintaxa acestui limbaj este definit prin aplicarea urmtoarelor reguli:
1. Constantele i variabilele sunt argumente;
2. Un termen este o variabil sau o constant;
3. Dac o variabil este egal cu o constant atunci se spune c
variabila este instaniat;
4. Fiecrui simbol al predicatului i se asociaz ponderea n, n fiind un
numr ntreg pozitiv sau nul;
5. Dac P este un predicat de pondere n i dac t1, t2, tn sunt n
argumente, atunci P(t1, t2, tn) este o formul;
6. Dac F i G sunt formule, atunci (F)(G), (F)(G), (F), (F)(G), ((
x)F) i (( x)F) sunt formule, unde s-au utilizat simbolurile , , , (i,
sau, non respectiv implic).
Pentru descrierea calculului cu predicate sunt necesare noi definiii i
notaii. Astfel, notaia CALCULATOR(y) indic faptul c y este un calculator,
iar notaia FUNCIONEAZ(x) indic proprietatea lui x de a fi n funciune.
Ambele CALCULATOR(y) i FUNCIONEAZ(x) sunt numite predicate cu
aritatea 1, ntruct fiecare indic un singur argument. n general, predicatele
sunt relaii cu aritate n, indicnd prin aceasta faptul c ele conin n
argumente.
Atunci cnd toate argumentele sau variabilele predicatului sunt
instaniate, expresia rezultant este o propoziie a calculului propoziional.
Propoziia poate fi adevrat sau fals. n situaia n care n=0 se spune c
predicatul nsui este o propoziie.
n structura calculului cu predicate sunt inclui i cuantificatori. Se
scrie: x(FUNCIONEAZ(x)) pentru a indica faptul c orice calculator x
este n funciune. Gramatical, predicatul instaniat CALCULATOR (IBM
PC) reprezint declaraia: IBM PC este un calculator care este fie adevrat
fie fals. Terminologic, setul obiectelor ce sunt valabile n propoziie poart
denumirea de universul discursului.
Folosind simbolurile , , regula de mai sus se poate scrie:
x[CALCULATOR(x) FUNCIONEAZ(x)]
CALCULATOR (IBM PC)
deci,
FUNCIONEAZ (IBM PC),
i poate fi citit:
Pentru orice x care este calculator, x este n funciune.
n general expresia: x[A(x) S(x)],
indic faptul c setul tuturor elementelor marcate prin A(x) adevrate, fac ca
S(x) s devin adevrat. n concluzie, pentru orice caz particular x pentru care
T(A(x))=1 sigur T(S(x))=1. Presupunnd c setul u reprezint universul
41

discursului pentru predicatul P(.) i P(x) este interpretat gramatical ca x este


un predicat, atunci pentru orice x din u, P(x) este fie adevrat fie fals.
Dac: x aparine clasei de obiecte pentru care declaraia x este un
predicat este adevrat, atunci: T(P(x))=1, iar dac: x aparine clasei de
obiecte pentru care declaraia x este un predicat este fals, atunci:
T(P(x))=0. n consecin, dac se va nota cu P0 clasa format, atunci:
T(P(x))=1 dac i numai dac x P0.
n plus, dac Q(u) este un alt predicat, cu Q0 un subset al elementelor x
u pentru care Q(x) este adevrat, atunci:
T(x[P(x) Q(x)])=1 dac i numai dac P0 Q0.
Trebuie subliniat faptul c, pentru raionare, este important
modalitatea de obinere a informaiilor despre lumea exterioar, precum i
mecanismul de inferen utilizat.
Conceptul de reprezentare a cunoaterii n form cauzal se nscrie n
termenul de tehnic de programare logic, ce este utilizat, n general, n
PROLOG.
2.1.5.2. Formalismul regulilor de producie
Sistemele bazate pe reguli reprezint tipul de sisteme expert cel mai des
ntlnit n practic. Dezvoltarea sistemelor expert bazate pe reguli folosete
formalismul care are cea mai mare flexibilitate i putere de raionament:
formalismul regulilor de producie. Principalele domenii n care este aplicat
acest formalism cuprind probleme de diagnoz, clasificare, proiectare i
planificare.
Regulile de producie sunt propoziii tipice de forma Dac, Atunci. n
unele cazuri aceste reguli se pot extinde la forma Dac, Atunci, Altfel.
Dac ntr-o regul condiia este satisfcut se spune c regula este
aplicabil. Mecanismul regulilor de producie este mprumutat din teoria
limbajelor formale, este de natur procedural i poate cel mai apropiat de
modul de realizare a programelor clasice. nsi structura regulii, de tipul
Dac, Atunci, Altfel, este una din structurile de control ntlnit n toate
limbajele de nivel nalt.
Mecanismul interpretativ al regulilor de producie conine urmtorii
pai:
- Selectarea mulimii candidate, ce cuprinde mulimea tuturor regulilor
care satisfac partea de condiie;
- Rezolvarea conflictelor, prin care din mulimea regulilor aplicabile se
elimin cele care duc la acelai rezultat;
- Execuia prii aciune a regulii cu cea mai mare prioritate, n situaia
n care sunt producii aplicabile;
- Se reia ciclul din prima etap, atta timp ct ciclul produce aciuni
materializate prin modificarea contextului.
42

Oprirea mecanismului interpretativ poate avea loc dac aciunea unei


producii specific concret oprirea, sau se selecteaz o producie vid.
Un sistem de producii este un cvintuplu SP=(K,P,,
, , ps), n care:
- K reprezint contextul ca fiind o mulime, actual, de piese de
cunoatere recunoscute de celelalte componente ale sistemului;
- P baza de reguli, ca mulime finit de reguli de producie;
- funcia succesor la ndeplinirea cu succes a condiiei,
: PP{};
- funcia succesor n caz de eec a condiiei , : PP{};
- ps regula de producie iniial de la care pornete procesul de selectare
a regulilor.
S-a notat cu producia vid.
2.1.5.2.1. Analiza condiiei
Funcie de forma condiiei se va explora contextul pentru a gsi piese
de cunoatere ce corespund clauzelor constituente ale condiiei. Forma n
care o regul este introdus n baza de reguli depinde de modul de realizare a
interpretorului de reguli.
Sistemele expert actuale nglobeaz mecanisme de evaluare a condiiei,
mult mai evoluate, fr s se restrng la operaia simpl, de coresponden,
ntre condiie i context. Expertul, care este sursa cunoaterii, poate prevedea
orice evaluare de funcie care s reprezinte cel mai bine criteriul de acceptare
a regulii de producie, ns reprezentarea nu mai este unic i modular.
Apare ca necesar introducerea variabilelor. Utilizarea variabilelor face
posibil ca n sistemele de producie s se foloseasc reguli ce opereaz nu
numai cu piese individuale ci i cu concepte.
2.1.5.2.2. Metode de rezolvare a conflictelor
Pentru c rezultatul punerii n coresponden a condiiei regulii cu
contextul nu este cunoscut, n mulimea candidat sunt selectate mai multe
reguli i sistemul va trebui s decid, care dintre acestea vor trebui
declanate. Rezolvarea acestor conflicte este fcut pe baza informaiei ce
provine din context, din baza de reguli sau surse combinate.
Dac informaia provine din context, poate fi indicat o anumit
importan a pieselor de cunoatere, materializat printr-o pondere, ce este
dat de intrare n mecanismul de evaluare a prioritii. Dac se noteaz cu pi
ponderea regulii i, din baza de reguli, urmtoarele criterii sunt utilizate mai
des:
1. prioritatea este dat de cea mai important pies de cunoatere din
regul. Pentru alegerea regulii r, rezult:
pr = max pi, unde 1 i n;

43

2. prioritatea este determinat de media aritmetic a ponderilor de


importan ce apar n regul:
pr =

1 n
pi
n i =1

3. ordinea este invers pentru dispersia ponderilor de importan a


pieselor de cunoatere, ce se calculeaz cu relaia:

1 n
( pi pr )2 , unde pr este media aritmetic calculat
s =

n 1 i =1
2

mai sus.
O surs important de informaii, n ceea ce privete rezolvarea
conflictelor de prioritate, este constituit de baza de reguli. n acest sens se
are n vedere posibilitatea ca, la scrierea regulii de producie s se cunoasc
informaii privind modul de determinare a succesorului imediat.
O metod des ntlnit este cea care folosete reguli de prestabilire a
produciilor succesoare avnd forma:
(CONFLICT P
(CONDIIE (P))
ACIUNE (SUCCESOR (P1, P2,,Pr)))
unde P este o producie al crui succesor se caut, iar (P1, P2,,Pr) este irul
ordonat, dup prestaie, al candidatelor la producia succesoare.
O metod eficient pentru determinarea succesorului este cea prin care
se specific obiectivul ce trebuie s-l rezolve regula urmtoare, eliminnd n
acest fel neajunsurile privind chemarea explicit a succesorului. Interpretorul
sistemului de producie trebuie s-i memoreze strile, determinate prin
funcionarea sa, pentru dirijarea procesului interpretor ct i pentru aciunea
n caz de eroare.
Rezolvarea conflictelor de prioritate se poate baza i pe faptul c
structura regulilor de producie, selectate, este purttoarea de informaie util
pentru acest scop. O regul PP este un caz particular al unei reguli PG dac:
- PP i PG sunt identice;
- toate clauzele condiionale ale regulii generale PG se regsesc printre
clauzele condiionale ale regulii PP;
- pentru fiecare clauz condiional din PG, ce specific piese de
cunoatere n context, exist n PP o clauz care conine un subset de piese de
cunoatere, printre care i aceea specificat n clauza din PG.
n acest caz, se prefer PP pentru a satisface n ntregime restriciile
specificate de regula PG.

44

2.1.5.2.3. Transmiterea aciunii


Comunicarea prin intermediul contextului ntre reguli este caracteristic
pentru sistemele de producie. Metoda este folosit n programarea clasic
avnd ca principiu constituirea unui depozit de informaie, numit zon de
comunicaie sau cutie potal.
Metoda abordeaz programul nu ca o succesiune prestabilit de
operaii, ci realizeaz nlnuirea operaiilor ca urmare a interpretrii
coninutului cutiei potale dup reguli ce permit stabilirea relaiei urmtoare.
Principala funcie a prii de aciune a regulii este cea de realizare a funciei
de comunicare, adic de nscriere a informaiei, pe care regula o produce n
context.
Principalele operaii ce se execut asupra contextului sunt:
1. tergerea unei piese de cunoatere din context, cu aciune att asupra
piesei de cunoatere ct i asupra informaiei auxiliare meninut de sistem;
2. nscrierea unei piese de cunoatere n context ct i declanarea unor
proceduri de evaluare a prioritilor pentru clasarea noii piese de cunoatere
n mulimea ordonat a contextului.
Modificarea unei piese de cunoatere este o operaie ce pornete de la
forma veche a piesei de cunoatere ca prim operand, al doilea operand fiind
dat de o nou form a piesei de cunoatere nscris n context pe aceeai
poziie, fr a se schimba informaia asupra prioritii piesei de cunoatere.
2.1.5.2.4. Sisteme de ordinul 0
Sistemele de ordinul 0 cuprind acele sisteme, bazate pe reguli, n care
nu pot interveni variabile n cadrul regulilor.
Formalismele bazate pe reguli, folosite n cadrul acestor sisteme,
reprezint faptele prin perechi de forma atribut - valoare sau obiect atribut
- valoare. Baza de cunotine a unui sistem de ordinul 0 va conine dou
componente distincte: baza de reguli i declaraia domeniului. n declaraia
domeniului sunt definite obiectele care sunt referite n cadrul regulilor din
baza de reguli.
Predicatele cele mai folosite, reprezentnd relaiile uzuale, sunt
specificate n Tabelul 1
Tabelul 1
Semnificaie atribut
Semnificaie atribut
Predicat
univaloare
multivaloare
0
1
2
Equal(p,v)
p=v
In(p,v)
vp
NotEqual(p,v)
(pv) i (punknown)
NotIn(p,v)
(vp) i (punknown)
45

LessThan(p,v)
GreaterThan(p,v)
Known(p)
NotKnown(p)

p<v
p>v
punknown
p=unknown

punknown
p=unknown

Aciunile de adugare i de tergere a faptelor au urmtoarea


semnificaie:

Add(p,v)

Semnificaie atribut
univaloare
pv

Del(p,v)

se terge fapta (p,v)

Aciune

Semnificaie atribut multivaloare


pv{v}
dac p={v} atunci se terge fapta(p,v)
altfel pv-{v}

Procesul de inferen ncepe cu un scop bine definit. n inferena cu


legare napoi, sistemului i este furnizat o clauz-scop pentru a o demonstra.
Pentru verificarea scopului vor trebui determinate valori pentru variabila
respectiv i verificate dac acestea corespund ipotezei.
Algoritmul de inferen cu legare napoi se poate descrie astfel:
1. Este scopul o clauz predefinit?
- Da se evalueaz predicatul conform semanticii sale; return
Eval(clauz);
- Nu salt la pasul 2;
2. Potrivirea cu baza de fapte:
- Se potrivete cu scopul return true;
- Atributul aferent scopului este interogabil se interogheaz
utilizatorul return valoare specificat de utilizator;
- Nu se potrivete scopul cu nici o fapt salt la pasul 3;
3. Potrivirea cu baza de reguli: se ncearc potrivirea scopului cu
concluzia unei reguli:
- nu exist nici o regul cu care s se potriveasc return false;
- se gsete o regul cu care se potrivete salt la pasul 4;
4. Demonstrarea premisei regulii: se ncearc demonstrarea tuturor
clauzelor din premis, ncepnd cu prima;
dac toate cauzele sunt demonstrate return true;
dac clauza este fals salt la pasul 5;
dac clauza este adevrat se caut clauza urmtoare;
dac clauza este liber salt la pasul 1;
5. Se ncearc alt regul cu care s se potriveasc scopul; salt la
pasul 3.
46

Algoritmul ce realizeaz inferena cu legare napoi folosete un regim


prin tentative i monoton. Consecventul regulilor va conine doar operaii de
adugare de fapte, n baza de fapte i eventual operaii de intrare-ieire.
Declanarea unei reguli const n nlocuirea unei fapte care trebuie s fie
stabilit prin mai multe fapte ce urmeaz s fie stabilite. Algoritmul se
oprete cnd toate subproblemele iniiale au fost stabilite sau cnd se
recunoate c una dintre ele nu se poate stabili.
Transcrierea n limbaj algoritmic se face folosind o funcie indirect
recursiv, ProveGoal0, n care scopul goal apare ca parametru.
Inferena cu legare nainte este opus celei cu legare napoi, n sensul
c, premisa este partea declanatoare a regulilor, nu concluzia. Dac sunt
ndeplinite condiiile din premisa unei reguli, regula respectiv este adugat
n mulimea conflictelor.
Paii unui algoritm cu legare nainte corespund etapelor unui ciclu de
inferen, i anume:
1. etapa de potrivire i de determinare a mulimii conflictelor;
2. rezolvarea conflictelor, n cazul n care exist mai multe reguli n
mulimea conflictelor;
3. execuia regulilor determinate la pasul 2 i salt la pasul 1.
Faza de rezolvare a conflictelor este mult mai important dect n
inferena cu legare napoi. Exist mai multe strategii de rezolvare a
conflictelor, cum ar fi:
- alegerea primei reguli care se potrivete cu faptele din baza de fapte;
- selectarea tuturor regulilor declanabile, care se execut simultan;
- executarea n secven a regulilor declanabile;
- alegerea regulii celei mai specifice;
- alegerea regulii celei mai recente care se potrivete cu faptele cele mai
recente introduse n baza de fapte.

2.1.5.2.5. Sisteme de ordinul 1


Sistemele de ordinul 1 reprezint sistemele bazate pe reguli, cu
proprietatea c regulile din baza de reguli pot conine variabile. Limbajele de
reprezentare a cunotinelor folosesc abloane (care, din punct de vedere
sintactic, reprezint o secven finit i ordonat de elemente constante sau
variabile) n locul condiiilor regulilor. Operaia de filtrare conine o operaie
n plus: potrivirea abloanelor cu faptele din baza de fapte.
Algoritmul de potrivire a abloanelor este descris de funcia
PatternMatch, care compar un ablon cu o fapt.
n cazul inferenei cu legare napoi aciunea de pattern-matching este
declanat de consecventul regulilor. Algoritmii i pstreaz aceeai
structur, dar n plus, exist posibilitatea efecturii unor ntoarceri napoi, n
cazul n care legrile variabilelor nu corespund pentru un anumit ablon.
47

Pentru inferena cu legare napoi se pot sublinia cteva particulariti i


anume:
- procesul de evaluare al unei reguli poate fi ntrerupt dac unele dintre
clauzele premizei regulii respective constituie noi scopuri de demonstrat;
- procesul de evaluare revine n regula iniial dup fiecare subscop, din
premis care a fost demonstrat;
- dac o clauz scop eueaz se revine la clauza scop anterioar i se
ncearc o nou legare a variabilelor;
- dac n procesul de evaluare premisa unei reguli eueaz, atunci se
ncearc potrivirea scopului curent cu concluzia unei alte reguli.
Pentru descrierea algoritmului n care scopul poate s conin i
variabile va trebui modificat funcia PatternMatch, astfel nct s poat
potrivi un ablon cu un alt ablon.
Pentru inferena cu legare nainte, singura deosebire fa de sistemele
de ordin 0 const n etapa de filtrare i de determinare a mulimii conflictelor.
Considernd cazul n care mulimea conflictelor este format din reguli,
principala deosebire apare n cazul selectrii unei reguli n aceast mulime.
Pentru a simplifica acest proces se consider c mulimea conflictelor este
format din instane ale regulilor.
Procesul de generare al instanelor unei reguli se realizeaz ntr-un mod
asemntor sistemelor de ordinul 0, prin adugarea succesiv a faptelor care
se potrivesc cu condiiile de tip Same i NotSame.

2.1.5.2.6. Msuri pentru creterea performanelor sistemelor


de producie
n scopul prevenirii i eliminrii cauzelor ce conduc la deprecierea
performanelor sistemului se prevd urmtoarele msuri:
- organizarea contextului se face astfel nct s permit o explorare
parial;
- organizarea bazei de reguli are ca scop eliminarea regulilor
neadecvate problemei de rezolvat;
- nglobarea de funcii auxiliare care faciliteaz accesul, selecia,
execuia i comunicarea.
Organizarea contextului urmrete obinerea unor grupuri de piese de
cunoatere adecvate rezolvrii unor tipuri predefinite de cunoatere. n acest
caz contextul este denumit context local.
Specializarea funcional a regulilor se refer la: grupri ce se
realizeaz pe baza similitudinii obiectivelor urmrite, la aplicarea regulilor de
producie individuale; adugarea de noi contexte prin care sistemul reine
actuala informaie i face s se restrng cutarea numai la acele entiti ce
pot candida la ncheierea cu succes a fazei. Aceste contexte sunt numite

48

contexte de referin. Fiecare nregistrare n contextul de referine va fi legat


de o pies distinct de cunoatere, din contextul global i va avea structura:
[< piesa de cunoatere > < lista de reguli >].
Un alt context de referine poate conine, pentru fiecare regul, lista de
referin, la piesele de cunoatere existente n partea de condiie, cu structura
de mai jos:
[< regula > < list piese cunoatere >].
Componentele interpretorului de reguli ce prelucreaz contextele de
referine sunt denumite filtre.
Metoda mpririi bazei de reguli n grupuri independente de reguli,
specializate n soluionarea unor probleme specifice, determin noiunea de
surs de cunoatere. O surs de cunoatere acioneaz independent de
celelalte, asupra pieselor de cunoatere i produce date noi numite ipoteze, ce
sunt fie confirmri fie obiecte noi. Ipotezele se depun ntr-o zon de memorie
comun numit tabl. O tabl este mprit n planuri ce reprezint zone
special dedicate unor categorii de piese de cunoatere. n cadrul unui plan se
pot partiiona nivele ce corespund surselor de cunoatere distincte.
Construcia bazei de cunotine astfel nct procesul inferenial s fie
ct mai scurt poate fi realizat dup un algoritm ce pornete de la ideea
algoritmului ID3 propus de Rose Quinlan. Se d mai jos exemplul unei baze
de cunotine specific unui sistem expert cu aplicaii n autodiagnoz. Se
pune problema organizrii n forma cea mai adecvat a cunotinelor.
Notnd cu:
t1, t2, t3 teste care dup execuie ntorc valori n domenii cunoscute;
(t1a, t1b, t1c); (t2a, t2b, t2c); (t3a, t3b) domenii cunoscute;
d1, d2 defecte posibile,
Se obin exemple de defectare ca:
t1a, t2a, t3b: d1
t1a, t2c, t3a: d1
t1c, t2a, t3a: d2
.
Pot fi obinui astfel mai muli arbori coreci din punct de vedere logic,
dar avnd lungimi diferite n funcie de nodul iniial. Arborii difer prin
ordinea nodurilor de decizie ce reprezint formal ordinea de execuie a
testelor. Pentru micorarea timpului de atingere a scopului nlimea arborelui
trebuie s fie ct mai mic. Considernd urmtoarele atribute, cu valorile lor:
a1, cu valorile: a11, a12, ,a1p
a2, cu valorile: a21, a22, ,a2k
..
an, cu valorile: an1, an2, ,anj ,
i obiectele (defectele):
d1, d2, , dn, caracterizate de atributele: a1, a2, , an ,
49

cantitatea de informaie din setul de exemple este dat de relaia:

C = - Pd1 log(Pd1 ) - Pd2 log(Pd2 ) - - Pdn log(Pdn )


unde, Pdi reprezint probabilitatea de apariie a lui di n setul de valori d1, d2,
, dn.
Atributul ai mparte, prin valorile sale ai1, ai2,,aik, setul de exemple n
clase. Dac exist,
n1 obiecte cu valoarea atributului ai = ai1
n2 obiecte cu valoarea atributului ai = ai2
,
notnd cu n numrul iniial de obiecte, se obine ctigul de informaie dat de
alegerea atributului ai, pentru formarea nodului de decizie, ca fiind:
n
n
C-C(a i )=C- 1 C1 + 2 C 2 +
n
n
unde,
Ci reprezint cantitatea de informaie n fiecare din clasele de
exemple obinute prin partiionarea dup atribut. Atunci se va alege, ca
atribut iniial de decizie, acel atribut pentru care valoarea C-C(ai) este
maxim.

2.1.5.3. Formalismul cadrelor


Un alt mod de reprezentare al cunotinelor l reprezint cadrele.
Acestea reprezint structuri de cunotine care permit compactarea i
structurarea informaiilor, modularizarea i organizarea ierarhic a
cunotinelor.
Caracteristica de baz a unui cadru este aceea c el reprezint
cunotine, legate ntre ele, despre un anumit subiect, dintre care cele mai
multe sunt cunotine implicite. Un sistem de cadre reprezint cel mai bine
cunotinele dintr-un domeniu.
Un cadru este reprezentat printr-o structur stereotip ce utilizeaz
categoriile sintactice:
Identificator, ce are asignat un nume, care asociat cu alte descrieri,
specific structura cadrului la care este ataat;
Form, ce reprezint categorii de caracteristici la care se asigneaz
simboluri relaionale specifice conceptului;
Faet, prin care sunt reprezentate perechi simbol-valoare cu care se
descriu obiectele din relaiile specificate de formele reprezentrii.
n mod uzual se folosesc dou tipuri de cadre, cadre clas, care
nglobeaz cunotine despre clase de obiecte i cadre instan, care
reprezint cunotine despre obiecte individuale.
Informaiile pe care le memoreaz fiecare cadru sunt pstrate n
atributele cadrului respectiv. Cadrele sunt organizate n ierarhii (reele) de
50

cadre. O proprietate esenial a ierarhiilor de cadre este motenirea, care


permite fiecrui element de la nivelul de jos al ierarhiei s moteneasc
proprietile elementelor de la cel mai nalt nivel.
n cazul ierarhiilor arborescente, un cadru poate avea un singur cadru
printe, iar motenirea este n acest caz simpl, sau poate avea mai multe
cadre printe (n cazul ierarhiilor de tip reea sau graf), iar motenirea se
numete multipl.

2.1.5.3.1. Motenirea simpl fr excepii


Atributele unui cadru sunt proprii (definite n interiorul acestuia) sau
motenite de la printele su. Dar i printele su va moteni atributele
printelui, .a.m.d. Deci, atributele unui cadru colecteaz toate atributele
cadrelor de la cadrul respectiv pn la cadrul rdcin. Dac fiecare cadru,
dintr-o ierarhie, are cel mult un cadru printe, atunci motenirea se numete
simpl.
Algoritmul de determinare a tuturor atributelor unui cadru se poate
descrie cu ajutorul unei funcii ce returneaz lista acestor atribute.
De exemplu, se consider urmtoarele notaii:
cadru reprezint cadrul de studiat;
Atribute este funcia care determin atributele proprii cadrului
specificat, ca parametru;
Cadru_parinte este funcia care determin cadrul printe al cadrului de
studiat, ca parametru;
Inherit este funcia care determin atributele prin motenire.
Algoritmul, pentru determinarea tuturor atributelor cadrului cadru,
poate fi urmtorul:
function Inherit (cadru, perechi-atribut-valoare)
if cadru = nil then
return perechi-atribut-valoare
endif
perechi-atribut-valoare

perechi-atribut-valoare

Atribute(cadru)
Return Inherit(Cadru_parinte(cadru),
perechi-atribut-valoare)
end
Algoritmul din paragraful precedent nu ine seama de tratarea
excepiilor, aa nct este posibil ca n lista de perechi atribut-valoare, numele
unui atribut s apar de mai multe ori, de fiecare dat cu o alt valoare
ataat. Evitarea unui asemenea conflict se poate face prin alegerea ca
pereche prioritar a acelei perechi care apare pe nivelul cel mai jos al
ierarhiei, pentru c acolo valoarea atributului a fost redefinit.

51

2.1.5.3.2. Motenirea simpl cu excepii


Pentru anumite evenimente se poate presupune c unele proprieti sunt
implicite. n anumite situaii exist i excepii de la aceste proprieti.
Algoritmul anterior nu ine seama de tratarea excepiilor. Aceasta se poate
corecta astfel: nainte ca o pereche atribut valoare s fie adugat la lista
perechilor colectate, se verific dac numele atributului apare n lista
respectiv. Dac DA, ea nu se mai adaug n lista perechilor colectate, ea
aparinnd unui cadru de pe un nivel superior . n caz contrar, perechea
atribut valoare se adaug la lista perechilor colectate.
Algoritmul modificat va fi:

function Inherit(cadru, perechi-atribut-valoare)


if cadru = nil then
return perechi-atribut-valoare
endif
perechi Atribute(cadru)
perechi-noi Atribute_noi(perechi, perechi-atribut-valoare)
perechi-atribut-valoare perechi-atribut-valoare perechi-noi
Return Inherit(Cadru_parinte(cadru), perechi-atribut-valoare)
end
2.1.5.3.3. Introducerea regulilor n cadre
O facilitate puternic este cea a introducerii, n cadre, a reprezentrii
regulilor. Transpunerea unei reguli n cadre pornete de la obiectivele:
- Regula conine dou aciuni distincte;
- Prima form de evaluare a condiiilor are ca efect autorizarea
execuiei celei de a doua forme procedurale sau ieirea din regul, la
eec;
- A doua form determin corpul aciunii ce se execut cnd condiia
este ndeplinit;
- Contextul operaional este reprezentat de celelalte forme cu caracter
declarativ.
Se consider exemplul de mai jos:
Regula,
IF: rezultatul testului de citire-scriere este eronat, bitul 2 blocat n 1
(and) se manifest la circuitul M1
(and) circuitul M2 funcioneaz corect
THEN: circuitul M1 este defect
(and) reparare prin nlocuire
se va reprezenta prin cadre astfel:
52

Cadru: R1
forma: condiie
faeta: rezultat test citire-scriere eronat, bitul 2 blocat n 1
faeta: se manifest la circuitul M1
faeta: circuitul M2 funcioneaz corect
forma: aciune
faeta: defect
valoare: M1
faeta: reparaie
valoare: nlocuire
Structura implicit ierarhizat face posibil organizarea sub form de
arbori de clasificare. Structura arborescent deriv din cadre prototip ale
claselor i subclaselor.

2.1.5.3.4. Reprezentarea cunotinelor prin cadre


Pentru memorarea i cutarea cunotinelor n ierarhii de cadre este
necesar specificarea numelui unui atribut i eventual numele cadrului cruia
i aparine atributul. Aceasta se poate realiza prin intermediul unui termencadru, de forma urmtoare:
(<nume-atribut> of <referin-cadru>)
Algoritmul care caut valoarea unui atribut al unui cadru, se poate
realiza cu ajutorul a dou funcii: una care caut numele unui atribut
(SlotNameSearch) i una care determin valoarea unui atribut (SlotValue).
Funcia SlotValue realizeaz operaia de determinare a valorii unui atribut
ntr-un cadru testnd pe rnd cele trei faete. Dac nu se poate determina
valoarea atributului n cadrul curent, se folosete proprietatea de motenire.
Pentru ilustrarea formalismului regulilor a fost realizat un sistem expert
de simplificare a tabelei de adevr a unui circuit logic complex, care
utilizeaz cele mai frecvente proceduri disponibile n limbajul CLIPS i arat
ct de interesant pot fi integrate cu regulile Error! Reference source not
found..

2.1.6. Avantajele sistemelor expert


Sistemele expert ndeplinesc sarcini complexe dintre care putem
enumera urmtoarele:
- funcia de interpretare, care presupune traducerea semnalelor sau
datelor brute n expresii simbolice care pot fi folosite n raionamente;
- funcia de diagnosticare, care const n stabilirea unei corelaii ntre
caracteristici i situaii tip;
- funcia de formare, cnd realizeaz transmiterea de cunotine unui
elev;
53

- funcia de supraveghere, dac sistemul declaneaz o alarm n


condiii determinate sau transmite rapoarte plecnd de la semnale
interpretate i folosite ntr-un diagnostic;
- funcia de previziune, care const n descrierea unei situaii prin
anticipare, prin intermediul unui model construit pe o baz istoric sau
prin nvare;
- funcia de simulare, cnd sistemul execut deducia plecnd de la un
model al consecinelor de aciune;
- funcia de ntreinere, dac sistemul indic planul de aciune particular
care decurge dintr-un diagnostic ce pune n lumin punctele slabe ale
unui sistem, indicnd i cauzele;
- funcia de concepie, cnd sistemul furnizeaz decizii care permit,
plecnd de la performanele eventual fixate, ca urmare a unui
diagnostic, s se determine aciunile pentru un scop ce trebuie
ndeplinit, i furnizarea unor mijloace pentru a atinge acest obiectiv.
Avantajele care se obin prin utilizarea unui sistem expert sunt
evideniate dac se analizeaz productivitatea rezultat, care are mai multe
dimensiuni: una se refer la termenul scurt, iar alta la termenul lung de
gestionare a cunotinelor sau de expertize. Termenul scurt nseamn c
sistemul expert trebuie s rezolve sarcina mai repede dect specialistul.
Ctigurile pe termen lung sunt legate de gestiunea expertizei i calitatea
deciziilor. O problem de expertiz se pune dac metodele de rezolvare a
problemelor difer i depind de persoanele care le interpreteaz ntr-o
manier proprie, dac sunt necesari mai muli experi sau specialiti i acetia
nu sunt obinuii s-i confrunte punctele de vedere, dac specialistul este
foarte ocupat i nu se poate mpri n mai multe locuri sau dac este necesar
extinderea expertizei umane ntr-o manier care s beneficieze de un timp de
reacie mai scurt i de o memorie i capacitate de nvare crescut.

54

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