Sisteme expert

 

Conform uneia dintre cele mai răspândite definiţii ale sistemului expert (SE), acesta este un program de calcul care incorporează cunoştinţele unui expert uman şi încearcă să simuleze raţionamentele desfăşurate de acesta din urmă în scopul rezolvării unei anumite probleme din domeniul său de expertiză. La rândul său, expertul este un specialist care stăpâneşte foarte bine un anumit domeniu. Atributele care deosebesc expertul de un începător au în mare parte un caracter simbolic, se sprijină pe cunoştinţe dobândite în timp şi decurg din raţionamente care încearcă să pună de acord aceste cunoştinţe cu faptele specifice problemei studiate.

Până în prezent, domeniile de interes în care s-au înregistrat cele mai numeroase implementări ale SE sunt : inginerie şi producţia de mărfuri (35%) ; afaceri (28%) ; medicină (11%) ; mediu şi energie (9%); agricultură (5%) ; telecomunicaţii (4%) ; administraţie (4%) ; legislaţie (3%) şi transporturi (1%) [Liebowitz 97].

În domeniul electroenergeticii, principalele aplicaţii ale SE se referă la : (a) conducerea operativă a sistemului energetic; (b) analiza on / off – line a funcţionării sistemului electroenergetic; (c) analiza şi reconfigurarea  postavarie a reţelelor electrice; (d) mentenanţa  echipamentelor din sistemul electroenergetic; (e) dezvoltarea reţelelor de distribuţie ş.a.

 

Cunoştinţe

 

Elementul central, în jurul căruia gravitează toate celelalte componente ale unui SE, îl reprezintă cunoştinţele. De aceea, SE se mai numesc şi Sisteme Bazate pe Cunoştinţe. În cadrul unui SE, reprezentarea cunoştinţelor se poate face pe mai multe căi, cum ar fi regulile de producţie, cadrele şi cazurile. Dintre aceste forme de reprezentare, cea mai răspândită este cea a regulilor de producţie.

Cadrele (în engleză, frames) reprezintă obiecte complexe care sunt descrise de anumite proprietăţi sau atribute şi anumite proceduri sau metode. Structural, cadrele sunt foarte asemănătoare cu obiectele folosite în cadrul programării la nivel obiect. Astfel, una din proprietăţile cele mai importante ale cadrelor este mecanismul de moştenire, care permite descrierea generică a unui obiect şi crearea de instanţe ale acestuia care moştenesc toate atributele obiectului generic, la care se adaugă şi atribute noi.

Reprezentarea cunoştinţelor sub formă de cazuri are la bază premisa că, pentru a învăţa şi a rezolva probleme complexe, oamenii folosesc raţionamentul analogic sau cel experimental. Cazurile folosite pentru desfăşurarea analogiilor constau în informaţii despre situaţia analizată, soluţia problemei în sine, rezultatele care se obţin prin adoptarea acelei soluţii, anumite atribute care pot evidenţia tipare specifice.

Cunoştinţele folosite de un SE pot fi împărţite în cunoştinţe faptice şi cunoştinţe euristice. Cunoştinţele faptice reprezintă acea parte a cunoştinţelor despre domeniul de interes, care sunt cunoscute şi se găsesc în manuale sau reviste. De cealaltă parte, cunoştinţele euristice reprezintă cunoştinţe mai puţin riguroase, deduse prin experimente şi/sau raţionamente specifice. Aceste cunoştinţe sunt mai puţin formalizate şi reflectă mai degrabă buna practică din domeniul respectiv.

Dezvoltarea unui SE presupune în primul rând culegerea cunoştinţelor relevante de la experţii umani sau de la alte surse. Achiziţia cunoştinţelor în vederea reprezentării lor în programe de calcul nu este în general o sarcină simplă. Ca urmare, s-a dezvoltat o adevărată disciplină a construirii SE, denumită ingineria cunoştinţelor, al cărui principal obiectiv este transferul cunoştinţelor de la sursele uzuale (experţi, cărţi, reviste etc) către baza de cunoştinţe a SE.

Reguli de producţie

Reprezentarea cunoştinţelor asigură formalizarea şi organizarea acestora. Cea mai des utilizată schemă de reprezentare a cunoştinţelor este regula de producţie, denumită uneori  regula  IF –  THEN.  Regulile  de  producţie  descriu  cunoştinţele

 

faptice şi cele euristice pe care le folosesc în mod curent experţii umani. Ansamblul acestor reguli formează baza de reguli a SE, denumită uneori şi bază de cunoştinţe.

O regulă de producţie constă dintr-o condiţie sau premisă, urmată de o acţiune sau concluzie şi are forma IF <condiţie> THEN <acţiune>. În general, partea de acţiune a unei reguli poate conţine : (i) acţiuni cu efect descriptiv, de exemplu afişarea unui mesaj pe ecranul monitorului ; (ii) verificarea unei alte reguli, în cazul sistemelor de reguli înlănţuite şi (iii) adăugarea unui nou fapt în baza de fapte a SE.

De exemplu, pentru schema monofilară din Fig. 13.21, localizarea defectelor pe una din cele două linii sau identificarea unei funcţionări defectuoase a sistemului de protecţii pot fi realizate folosind următorul set de reguli:

 

Regula 1: IF (Deconectează I1 şi I2) THEN (Defectul este pe linia L1)

Regula 2: IF (Deconectează I3 şi I4) THEN (Defectul este pe linia L2)

Regula 3: IF (Deconectează I1 şi I4) OR

                      (Deconectează I2 şi I3)

                       THEN (Protecţia nu a funcţionat corect)

 

SE ce folosesc reguli de producţie implementează două tipuri de strategii :

 

·         Strategii bazate pe date, care utilizează tehnici deductive pentru a stabili noi concluzii, pornind de la un set de date existente.

·         Strategii bazate pe scopuri, care utilizează tehnici inductive pentru a verifica o anumită ipoteză.

 

De exemplu, pentru regulile de mai sus şi schema monofilară alaturata, se poate aplica o strategie bazată pe date care, pornind de la starea întrerupătoarelor din reţea (de exemplu I1 şi I2 deschise, respectiv I3 şi I4 închise), localizează defectul care a condus la starea respectivă (în cazul de faţă, defectul s-a produs pe linia L1).

 

 

Aplicarea strategiei bazate pe scopuri este ilustrată cu ajutorul unui exemplu care realizează analiza nivelului tensiunii pe barele consumatorului din Fig. De mai jos, în trei ipoteze privind mijloacele de reglare a tensiunii, şi anume : (i) compensarea puterii reactive; (ii) modificarea raportului de transformare şi (iii) modificarea numărului de transformatoare în paralel.

 

 

Pentru acest sistem se consideră următoarele reguli :

 

Regula 1: IF   (QK scade) OR

                        (KT scade) OR

                        (NT =2 ® NT=1) THEN (U2 scade)

 

Regula 2: IF   NOT(Regim de sarcină maximă) THEN (NT=2 ® NT=1)

 

Regula 3: IF   (QK=QKmin) THEN (KT scade)

 

Regula 4: IF   (QK creşte) OR

                        (KT creşte) OR

                        (NT=1 ® NT=2) THEN (U2 creşte)  

                                  

Regula 5: IF   (Regim de sarcină maximă) THEN (NT=1 ® NT=2)

 

Regula 6: IF   (QK=QKmax) THEN (KT creşte)

 

 

Structura SE

 

Cea mai comună structură a SE este cea descrisă în Fig. urmatoare Comunicarea între sistem şi utilizator sau expertul uman se realizează prin intermediul unei interfeţe special concepute. Celelalte componente importante ale unui SE sunt baza de cunoştinţe, motorul de inferenţă, sistemul de explicare şi editorul bazei de cunoştinţe. În continuare vor fi descrise succint fiecare dintre aceste componente.

 

Interfaţa utilizator. Comunicarea între operator şi SE se realizează prin intermediul unei interfeţe specializate, care poate folosi meniurile  cu  care  suntem familiarizaţi din aplicaţiile Windows,  dialogul  într-un limbaj natural sau orice altă

formă de interacţiune. Pentru simplificarea comunicării este de dorit ca interfaţa utilizator să fie cât mai prietenoasă şi inteligentă, adică să ştie cum să prezinte informaţiile şi să cunoască preferinţele utilizatorului.

Baza de cunoştinţe. La nivelul unui SE, baza de cunoştinţe are doua componente : baza de reguli şi baza de fapte. Baza de reguli conţine cea mai mare parte a cunoştinţelor necesare rezolvării problemelor. SE complexe folosesc baze de reguli cu un număr mare de reguli, de la câteva sute, până la câteva mii. Baza de reguli reprezintă memoria pe termen lung a sistemului, deoarece conţine partea hard a cunoştinţelor folosite de SE.

De partea cealaltă se află memoria pe termen scurt sau memoria de lucru, formată din baza de fapte, ce descrie contextul problemei şi conţine datele de intrare, cele de ieşire şi orice date intermediare produse ca urmare a desfăşurării inferenţelor de către motorul de inferenţă.

Reprezentarea şi organizarea bazei de cunoştinţe sunt două aspecte esenţiale pentru funcţionarea corectă a SE. Dacă se doreşte ca după formarea SE acesta să se poată dezvolta este absolut necesar ca baza de cunoştinţe să fie complet separată de restul sistemului.

Motorul de inferenţă. Mecanismul specific care permite simularea raţionamentelor desfăşurate de expertul uman este inferenţa. Conform definiţiei de dicţionar (DEX), inferenţa este operaţia logică de trecere de la un enunţ la altul şi în care ultimul enunţ este dedus din cel anterior.

Motorul de inferenţă controlează modul şi succesiunea în care se aplică cunoştinţele din baza de reguli asupra datelor din baza de fapte. De fapt, motorul de inferenţă este un program de calcul care aplică regulile asupra faptelor, pentru a genera prin inducţie, fie fapte noi care se adaugă în baza de fapte, fie confirmarea sau infirmarea unei ipoteze, fie soluţia propriu-zisă a problemei.

În principiu, motorul de inferenţă conţine un interpretor, care analizează şi procesează regulile din baza de reguli şi un planificator, care stabileşte ordinea în care se aplică regulile. Motorul de inferenţă parcurge baza de reguli, căutând identificarea unei corespondenţe între faptele din condiţiile sau consecinţele regulilor şi informaţiile existente în baza de fapte. În momentul în care se identifică o asemenea corespondenţă, regula respectivă este folosită pentru a produce un nou fapt sau pentru a confirma o ipoteză.

La nivelul planificatorului, selectarea regulii care se aplică la un moment dat foloseşte una din următoarele strategii :

·         Selectarea regulii celei mai specializate. Dintre două reguli –X şi  Y    se selectează cea care conţine numărul maxim de condiţii, considerată ca fiind specializată, în raport cu cealaltă, care are un caracter general.

·         Selectarea pe baza încrederii. Unora dintre reguli li se acordă o încredere sporită, iar la selectarea regulii care se aplică la un moment dat se ţine seama cu prioritate de încrederea acordată regulilor.

Editorul bazei de cunoştinţe. Unele SE sunt dotate cu un editor pentru baza de cunoştinţe, care ajută utilizatorul, expertul sau inginerul de cunoştinţe să actualizeze şi să verifice conţinutul bazei de cunoştinţe şi, în special, conţinutul bazei de reguli. Existenţa editorului asigură totodată o dezvoltare comodă a sistemului, după implementarea sa.

 

 

Funcţionarea SE

Forţa unui SE este capacitatea acestuia de a desfăşura inferenţe şi de a trage concluzii pe baza unor premise. De fapt, această capacitate conferă inteligenţă SE. Sarcina motorului de inferenţă este de a deduce unele concluzii sau verifica unele ipoteze prin punerea de acord a datelor din baza de fapte cu regulile din baza de reguli, aşa cum este ilustrat în Fig. 1. Îndeplinirea acestei sarcini este posibilă prin aplicarea a două tipuri de strategii: înlănţuirea înainte şi înlănţuirea înapoi.

 

 

Fig. 1 – Principiul de desfăşurare a inferenţelor în cadrul unui SE bazat pe reguli.

 

În cazul înlănţuirii înainte, motorul de inferenţă examinează starea curentă a bazei de cunoştinţe, urmărind identificarea regulilor ale căror premise sunt satisfăcute de datele din baza de fapte. Aceste reguli sunt aplicate şi faptele care rezultă ca şi concluzii ale lor sunt adăugate în baza de fapte. În continuare, baza de cunoştinţe este reexaminată şi se repetă procesul descris mai sus, până la stabilirea unei concluzii finale, care poate reprezenta sau nu o soluţie a problemei. Acest proces este ilustrat în Fig. 2.

 

Fig. 2 – Funcţionarea motorului de inferenţă după strategia înlănţuirii înainte (cu linie îngroşată sunt reprezentate faptele adevărate, iar cu linie simplă, cele false).

 

Înlănţuirea înapoi este o strategie bazată pe scopuri în sensul în care se încearcă confirmarea concluziei unei reguli (privită ca un scop), demonstrând validitatea tuturor premiselor acestei reguli. Aceste premise, pot fi la rândul lor concluziile altor reguli (caz în care motorul de inferenţă va intra într-un proces recursiv, încercând să demonstreze validitatea premiselor acelor reguli) sau pot reprezenta fapte independente, furnizate ca date de intrare în baza de fapte. Desfăşurarea unui asemenea proces de căutare este ilustrată în Fig. 3.

 

Fig. 3 – Funcţionarea motorului de inferenţă după strategia înlănţuirii înapoi. Verificarea ipotezei asociate concluziei 4.

 

 

Desfăşurarea inferenţelor prin aplicarea înlănţuirii înainte sau înapoi este echivalentă cu parcurgerea într-un sens sau altul a grafului de decizie din Fig. 2 şi 3, putându-se aplica una din strategiile de căutare cunoscute. Pe de altă parte, se menţionează că, în raport cu tipurile de strategii definite anterior, strategiile bazate pe date folosesc înlănţuirea înainte, iar strategiile bazate pe scopuri folosesc înlănţuirea înapoi.

Funcţionarea SE se poate desfăşura în trei moduri : (i) modul de achiziţie a cunoştinţelor ; (ii) modul de consultare şi (iii) modul de explicare.

SE se găseşte în modul de consultare atunci când se află în dialog cu utilizatorul în vederea stabilirii  unei  soluţii  pentru  o  problemă  dată.  Utilizatorul transmite SE date care descriu problema respectivă, iar sistemul răspunde folosind motorul de inferenţă pentru modelarea / simularea raţionamentelor necesare deducerii răspunsurilor la întrebările utilizatorului. Modul de consultare presupune utilizarea pe scară largă a motorului de inferenţă, putându-se aplica oricare din cele două mecanisme de inferenţă – înlănţuirea înainte sau înapoi.

Unul din atributele cele mai puternice ale SE este capacitatea lor de a explica inferenţele pe care le realizează. Această capacitate are la bază arborii AND / OR care sunt construiţi pe măsura desfăşurării inferenţelor. Modul de explicare pune la dispoziţia utilizatorului cunoştinţele SE într-un mod explicit. Pe această cale, sistemul explică cum a ajuns la o anumită concluzie, de ce a realizat o anumită acţiune sau oferă răspunsuri la o întrebare de forma „ce-ar fi dacă ?”. De exemplu, în Fig. 4 şi Fig. 5 se indică schemele de principiu după care sistemul răspunde la întrebările cum şi de ce.

Fig. 4 – Explicarea modului cum s-a ajuns la o anumită concluzie.

 

Astfel, pentru a se explica cum s-a ajuns la o anumită concluzie, se parcurge arborele de decizie AND/OR în sens invers. De exemplu (Fig. 4), Concluzia 3 a fost stabilită ca urmare a existenţei Concluziei 1 şi Concluziei 2. La rândul ei, Concluzia 1 a fost stabilită deoarece una din Faptele 1 sau 2 sunt adevărate.

 

Fig. 5 – Explicarea faptului de ce se realizează o anumită acţiune.

 

În cazul schemei din Fig. 5, pentru a răspunde de ce se realizează o anumită acţiune, sistemul trebuie să identifice mai întâi obiectivul curent şi să justifice acest obiectiv prin verificarea condiţiilor care conduc la atingerea lui. Astfel, în ipoteza în care Faptele 2 şi 3 sunt verificate, sistemul poate interoga utilizatorul asupra validităţii Faptei 1, în scopul stabilirii validităţii Concluziei 1.

 

 

Mulţimi fuzzy

O mulţime fuzzy este o mulţime a cărei graniţă nu este evidentă, bine definită. În general, o mulţime fuzzy conţine elemente despre care se poate spune că aparţin (sau nu aparţin) parţial acelei mulţimi. O mulţime fuzzy A, definită pe o mulţime X, este formată din perechi ordonate (x ; mA(x)), unde x este un element din mulţimea X, iar mA(x) este un element care poate lua valori în intervalul [0,1] şi descrie măsura în care elementul x aparţine sau nu mulţimii A. Astfel, se poate scrie:

mA(x) este funcţia caracteristică sau funcţia de apartenenţă asociată mulţimii fuzzy A, iar valoarea acestei funcţii se numeşte grad de apartenenţă. O singură pereche de forma (x ; mA(x)) se numeşte singleton fuzzy, astfel încât întreaga mulţime fuzzy A poate fi tratată ca reuniunea tuturor singleton-urilor fuzzy din care este formată. De exemplu, în cazul unui univers de discurs finit, enumerabil, mulţimea fuzzy A poate fi reprezentată ca un vector de singleton-uri:

Mulţimea în care variabila x poate lua valori, notată X, se numeşte univers de discurs. Pentru aplicaţiile care se adaptează cel mai bine abordării fuzzy universul de discurs nu poate fi definit simplu folosind valori numerice. Asemenea situaţii pot interveni, de exemplu, atunci când ne referim la gust sau la impactul estetic al unor obiective. În asemenea situaţii se folosesc valorile  sau categoriile lingvistice, cum ar fi (acru, dulce, amar, sărat,…) în cazul gustului sau (urât, neplăcut, indiferent, atrăgător, frumos …) în cazul impactului estetic.

Dacă în cazul unei variabile algebrice se folosesc ca valori numerele (de exemplu, tensiunea într-un nod al reţelei poate avea valori ca 105,7 kV sau 117,2 kV), în cazul variabilelor lingvistice, valorile folosite sunt cuvinte, expresii sau chiar propoziţii. De exemplu, variabila lingvistică „gust” poate lua valori cum ar fi acru sau dulce, în timp ce variabila lingvistică „impact estetic” poate lua valori cum ar fi neplăcut sau frumos.

Abordarea lingvistică reprezintă de fapt una din caracteristicile fundamentale ale mulţimilor fuzzy. De aceea, chiar şi atunci când universul de discurs poate fi descris pe cale numerică, se preferă asocierea la această descriere şi a unor categorii lingvistice. În acest caz, valorile lingvistice folosite joacă rolul variabilelor sau constantelor domeniu folosite în limbajele de programare uzuale, respectând şi o anumită ordine. De exemplu, pentru valoarea tensiunii într-un nod al reţelei se pot folosi valori lingvistice cum ar fi (foarte-mică, mică, medie, mare, foarte - mare). Fiecăreia din aceste valori lingvistice, tratată ca o mulţime fuzzy, îi este asociat un anumit domeniu numeric de variaţie a tensiunii.

Apartenenţa la o mulţime fuzzy

Mulţimile fuzzy descriu întotdeauna proiecţia universului discursului sau a unei părţi a acestuia pe intervalul  [0,1] , denumit şi spaţiu de apartenenţă.  Această proiecţie se realizează prin intermediul funcţiei de apartenenţă mA : X ® [0,1], a cărei valoare mA(x) descrie gradul de apartenenţă al valorii x la mulţimea fuzzy A. O valoare mA(x) ş 1 reprezintă apartenenţa completă a elementului x la mulţime A; valoarea mA(x) ş 0 reprezintă non-apartenenţa completă a lui x la A; în sfârşit, o valoare intermediară a funcţiei caracteristice, mA(x) Î (0,1), descrie un grad de apartenenţă intermediar. Acestei definiţii i se poate asocia reprezentarea grafică mai jos.

 

 

În general, pentru un anumit tip de problemă, nu se defineşte o singură mulţime fuzzy A, ci mai multe asemenea mulţimi Ai , care se întrepătrund: altfel spus, funcţiile de apartenenţă mA(x) sunt definite pe submulţimi ale universului X care au elemente comune. Exemplul care urmează ilustrează tocmai acest aspect. Este cunoscut faptul că, din punctul de vedere al programului de lucru, începutul fiecărei perioade din zi este foarte bine precizat. Acest fapt conduce la funcţii de apartenenţă discontinui (Fig. a ), care descriu de fapt un model boolean (numai dimineaţă, numai după-amiază, numai seară sau numai noapte). Pe de altă parte, din punctul de vedere al condiţiilor meteorologice, cum ar fi nebulozitatea sau gradul de insolaţie, trecerea de la o perioadă a zilei la alta nu se face brusc ci există intervale de timp în care se regăsesc condiţii specifice ambelor perioade între care are loc tranziţia. Pentru a descrie o asemenea evoluţie se pot folosi mulţimi fuzzy cum sunt cele din Fig. b. Astfel, ora 12 este în acelaşi timp o oră a dimineţii şi o oră a după-amiezei, la fel cum ora 22 este simultan oră de seară şi oră de noapte. În plus, caracterul continuu al funcţiilor de apartenenţă în cazul reprezentării fuzzy asigură şi o variaţie continuă a gradului de apartenenţă. De exemplu, nu tot intervalul 17 – 5 asigură tranziţia între seară şi noapte; de fapt, această tranziţie are loc în ultimele ore ale serii şi primele ore ale nopţii.

Un aspect care reflectă forţa abordării fuzzy o reprezintă libertatea lăsată utilizatorului în construirea mulţimilor fuzzy şi a funcţiilor de apartenenţă. Astfel, nicăieri în literatura de specialitate cititorul nu  va  întâlni  o  reţetă  formală  pentru calculul gradului de apartenenţă şi aceasta deoarece chiar dacă gradul de apartenenţă are la un moment dat o valoare bine determinată, el rămâne o măsură subiectivă care reflectă modul subiectiv în care interacţionează utilizatorul cu contextul problemei. Cel mai relevant exemplu în acest sens este cel al aprecierii etăţii unei persoane. Astfel, o persoană de 45 ani va fi considerată tânără de către altcineva care are 90 ani, în timp ce aceiaşi persoană va fi considerată în vârstă de un tânăr de numai 15 ani.

]

 

Funcţii de apartenenţă

Funcţiile de apartenenţă reprezintă mijlocul prin care se realizează legătura dintre universul discursului şi măsura posibilităţii.  Alegerea funcţiei de apartenenţă este o chestiune dependentă de problemă, singura condiţie pe care trebuie să o îndeplinească fiind cea de a lua valori în intervalul [0,1]. În rest, această operaţie se desfăşoară de cele mai multe ori pe baze euristice şi / sau empirice şi este influenţată în bună măsură de subiectivismul celui care face alegerea. O serie de măsuri ale oportunităţi alegerii unei anumite funcţii de apartenenţă pot fi gradul de adaptare la problemă, simplitatea  modelului de calcul rezultant, viteza de calcul şi eficienţa.

Principalele criterii după care se poate realiza clasificarea funcţiilor de apartenenţă sunt următoarele:

·         clasificarea după modul de reprezentare în calculator; funcţii continue şi discrete. În forma continuă, funcţia de apartenenţă este o funcţie matematică cu o expresie analitică clară sau o funcţie complexă descrisă de o procedură. În forma discretă, funcţia de apartenenţă este definită prin puncte, fie folosind un tabel de definiţie, fie o funcţie originară, continuă.

·         clasificarea după formă: funcţii triunghiulare, funcţii trapezoidale, funcţii gaussiene simple sau complexe, funcţii sigmoidale, funcţii în formă de clopot etc. Funcţiile triunghiulare şi cele trapezoidale sunt generate pe baza funcţiilor liniare pe porţiuni; funcţiile sigmoidale şi în formă de clopot sunt generate fie pe baza funcţiilor sigmoidale, fie pe baza funcţiilor polinomiale (pătratice sau cubice).

Câteva dintre funcţiile de apartenenţă menţionate sunt prezentate mai jos.

 

    

 (a)                                                (b)                                                    (c)

    

 (d)                                                (e)                                                    (f)

    

 (g)                                                (h)                                                    (i)

    

 (j)                                                  (k)   

Tipuri de funcţii de apartenenţă: (a) triunghiulară asimetrică; (b) triunghiulară simetrică; (c) trapezoidală asimetrică; (d) trapezoidală simetrică; (e) funcţia rampă-stânga; (f) funcţia rampă-dreapta; (g) gaussiană; (h) gaussiană complexă; (i) sigmoidală-S; (j) sigmoidală-Z; (k) în formă de clopot.

 

Operaţii fundamentale cu mulţimi fuzzy

După cum s-a amintit deja, operaţiile cu mulţimi fuzzy care intervin mai des în diferite aplicaţii practice sunt negarea, reuniunea şi intersecţia. Pentru aceste operaţii, extinderea definiţiilor folosite în teoria clasică a mulţimilor este îngreunată în oarecare măsură de caracterul continuu al funcţiilor de apartenenţă. Pentru depăşirea acestui impediment Zadeh propune folosirea complementului faţă de unu pentru negare, operatorul max pentru reuniune şi operatorul min pentru intersecţie.

Cea mai simplă dintre cele 3 operaţii este negarea. Astfel, pentru o mulţime fuzzy A caracterizată de funcţia de apartenenţă mA(x), mulţimea fuzzy complementară, notată , va avea funcţia de apartenenţă:

        

Reprezentarea grafică asociată operaţiei de negare este cea din Fig. a.

 

          

(a)                                                                                                              (b)

 

(c)

 

Reuniunea a două mulţimi fuzzy A şi B, caracterizate de funcţiile de apartenenţă mA(x) şi mB(x) produce o nouă mulţime fuzzy C = A Č B, a cărei funcţie de apartenenţă se determină pe baza operatorului max, conform relaţiei:

unde ۷ reprezintă o notaţie alternativă pentru operatorul max. Reprezentarea grafică asociată reuniunii a două mulţimi fuzzy este cea din Fig. b.

Intersecţia  mulţimilor fuzzy A şi B produce mulţimea C = A Ç B, a cărei funcţie de apartenenţă se determină pe baza operatorului min, şi anume:

unde ۸ reprezintă o notaţie alternativă pentru operatorul min. În Fig. c se prezintă imaginea grafică asociată intersecţiei a două mulţimi fuzzy.

Numere fuzzy

Dacă mulţimile fuzzy se deosebesc de mulţimile clasice prin introducerea unui continuum de valori între extremele adevărat (sau 1) şi fals (sau 0), atunci numerele fuzzy ar trebui să se deosebească de numerele tradiţionale printr-o reprezentare care să folosească un continuum de valori ca aproximări posibile ale numărului exact.

Astfel, în teoria clasică a mulţimilor nota 8 obţinută la un examen va fi clasificată ca aparţinând mulţimii notelor medii. De partea cealaltă, în teoria mulţimilor fuzzy, modelul standard de reprezentare va considera notă 8 ca aparţinând în proporţie de 0.80 mulţimii notelor medii şi în proporţie de 0.2 mulţimii notelor mari.

Într-un spirit asemănător, putem vorbi de numerele 14.92 sau 15.21 ca fiind aproximări ale numărului exact 15. Mai mult decât atât, valoarea exactă 15 ar putea fi reprezentată printr-un aşa-numit interval de încredere, de exemplu [14.7 ; 15.3], considerându-se că orice valoare din acest interval reprezintă o aproximare „la fel de exactă” a numărului exact 15.

Următorul pas pentru trecerea către numerele fuzzy constă în introducerea caracterului vag al reprezentării acelui număr. Astfel, cu cât o valoare este mai apropiată de numărul exact 15, cu atât putem considera că valoarea respectivă reprezintă mai bine acel număr. Dimpotrivă, cu cât o valoare este mai îndepărtată de numărul exact, cu atât putem considera că valoarea respectivă reprezintă mai puţin bine acel număr. Aceste consideraţii ne duc imediat cu gândul la o reprezentare a numărului fuzzy 15 ca cea din Fig. a.

În general, un număr fuzzy este un număr real definit pe un interval de încredere [a, b] şi descris de o funcţie de apartenenţă care ia valori în intervalul [0,1].  Reprezentarea  din  Fig. a  sugerează    numărul  fuzzy este de fapt o mulţime fuzzy definită pe R.

 

  

(a)                                          (b)                                          (c)

 

Logică fuzzy

 

Logica fuzzy reprezintă o generalizare a logicii binare, care extinde conceptul de valoare de adevăr la cel de valoare parţială de adevăr. Deoarece se bazează pe informaţii imprecise, ambigue sau vagi, noul tip de logică este de fapt o logică aproximativă, care are însă marele merit de a reproduce destul de fidel modul în care oamenii iau decizii : pe baza unor informaţii aproximative şi imprecise se pot stabili soluţii precise.

Logica fuzzy este utilizată frecvent în aplicaţii specifice reglajului automat, unde modelele matematice tradiţionale, deseori extrem de laborioase, pot fi înlocuite de un set de reguli fuzzy care descriu trecerea de la starea descrisă de mărimile de intrare, la starea în care se ajunge ca urmare a comenzii descrise de mărimile de ieşire. Asemenea sisteme sunt numite sisteme fuzzy.

Dezvoltarea oricărei aplicaţii care foloseşte logica fuzzy necesită parcurgerea a trei etape principale, şi anume:

·         Fuzzificarea, în cursul căreia mărimilor de intrare li se asociază funcţii de apartenenţă selectate conform anumitor criterii şi, pe baza acestora, se definesc valorile lingvistice corespunzătoare mărimilor de intrare şi se trece de la reprezentarea crisp la cea fuzzy.

·         Defuzzificarea, care foloseşte gradele de adevăr stabilite în etapa anterioară pentru fiecare regulă şi le aplică consecinţelor acestora pentru a reveni din domeniul specific mărimilor fuzzy în universul de discurs asociat variabilei sau variabilelor de ieşire.

În paragrafele următoare sunt descrise principalele particularităţi ale fiecăreia din cele trei etape menţionate.

Fuzzificarea

În majoritatea  aplicaţiilor practice ale sistemelor fuzzy mărimile de intrare sunt descrise de valori crisp (caracterizate eventual de anumite imprecizii), definite pe un anumit univers al  discursului.  De  cealaltă  parte,  mărimile  de  ieşire  ce  se doresc a fi obţinute descriu mărimi proporţionale cu gradele de adevăr fuzzy asociate regulilor ce se aplică. În acest context, prin fuzzificare se înţelege acel proces în cursul căruia se stabilesc categoriile lingvistice ce descriu universul discursului, funcţiile de apartenenţă asociate acestor mărimi şi gradele de apartenenţă ale mărimilor de intrare la categoriile lingvistice corespunzătoare.

 

   

(a)                                           (b)                                                  (c)

Funcţie triunghiulară (a), trapezoidală (b) sau gaussiană (c).

 

O componentă importantă şi sensibilă a etapei de fuzzificare o reprezintă construirea funcţiilor de apartenenţă. Această problemă poate fi abordată pe cale tradiţională sau folosind elemente ale inteligenţei artificiale, cum ar fi clasificatorii şi aproximanţii neuronali sau calculul evolutiv. Construirea funcţiilor de apartenenţă pe căi tradiţionale foloseşte cunoştinţele experţilor umani şi raţionamente de forma următoare:

 

 

 

Următorul exemplu ilustrează modul în care se desfăşoară procesul de fuzzificare. Se consideră cazul evaluării în paralel a cunoştinţelor unei persoane folosind două sisteme de evaluare: note  între 1 şi 10, respectiv calificative (insuficient, suficient, bine, foarte bine). O posibilitate de modelare a acestor două alternative este cea din figura de mai sus. Pentru acest exemplu, se folosesc patru mulţimi fuzzy asociate celor patru categorii lingvistice, pentru care funcţiile de apartenenţă au următoarele expresii:

              

 

     

Dacă nota obţinută nu este mai mare ca 4, calificativul va fi Insuficient, pentru care funcţia de apartenenţă ia valoarea 1, în timp ce pentru celelalte valori lingvistice gradele de apartenenţă sunt nule. Dacă persoana obţine o notă între 4 şi 5, evaluatorul va avea de ales între calificativele Insuficient şi Suficient. Decizia evaluatorului va fi luată pe baza unei reguli (oricare ar fi aceasta) si a unor grade de apartenenţă:

Pentru acest caz este foarte probabil că, pe baza regulilor stabilite de experţi, evaluatorul va acorda calificativul Suficient.

 

Compunerea regulilor

Sistemele fuzzy complexe nu folosesc o singură regulă, ci un set de mai multe reguli, cum ar fi:

Compunerea regulilor ce formează sistemul fuzzy se realizează cu ajutorul conectivelor. Conectivul cel mai des folosit este conectivul SI sau DE ASEMENEA. Sensul acestui conectiv nu este însă unic, ci se defineşte pentru fiecare aplicaţie în parte. Trebuie spus însă că de cele mai multe ori conectarea regulilor se face prin aplicarea operaţiilor de reuniune (conectarea prin maxim), intersecţie (conectarea prin minim) sau produs algebric (conectarea prin produs).

 

 

(a)                                                                         (b)

Funcţiile de apartenenţă pentru tensiune (a) şi raportul de transformare (b).

 

  

(a)                                          (b)                                          (c)

Rezultatul conectării regulilor (13.23) prin maxim (a), minim (b) sau produs (c).

 

Pentru a ilustra cele trei moduri de compunere a regulilor vom considera cazul unui sistem fuzzy simplu format din două reguli:

pentru care funcţiile de apartenenţă sunt cele de mai sus.

 

Defuzzificarea

Utilizarea logicii fuzzy impune ca mărimile de intrare, care de regulă se prezintă sub formă crisp, să suporte un proces de fuzzificare. În etapa următoare are loc evaluarea regulilor ce guvernează sistemul fuzzy modelat iar rezultatul acestor evaluări are de asemenea caracter fuzzy (cu excepţia sistemelor de tip Takagi – Sugeno – Kang), adică se prezintă sub forma unei mulţimi de valori ce pot fi atribuite simultan mărimii de ieşire. În practică însă sistemele tradiţionale folosesc valori exacte, de tip crisp. Astfel, la finalul oricărui set de inferenţe fuzzy este necesară aplicarea unui proces invers, de defuzzificare, care să producă o mărime crisp pe baza mulţimii(lor) fuzzy ce descrie(u) rezultatul.

Cea mai răspândită metodă de defuzzificare este metoda centroidului; alte metode utilizate uneori în studiul sistemelor fuzzy sunt metoda înălţimii, metoda ariilor sau metoda ariei maxime. Literatura de specialitate menţionează de asemenea şi alte metode alternative.

Defuzzificarea prin metoda centroidului

Metoda centroidului, numită şi metoda centrului de greutate, determină valoarea crisp asociată ieşirii unui sistem fuzzy prin valoarea abscisei centrului de greutate al figurii geometrice care descrie mulţimea fuzzy asociată ieşirii sistemului.

Pentru a ilustra modul de aplicare a metodei centroidului, se consideră cazul generic al unui sistem descris de trei reguli simple:

Sistemul conţine trei mărimi de intrare (x, y  şi z) definite pe mulţimile fuzzy X, Y şi Z, respectiv o singură mărime de ieşire (o) definită cu ajutorul a trei mulţimi fuzzy descrise de variabilele lingvistice A, B şi C. Pentru mulţimile fuzzy A, B şi C se consideră funcţii de apartenenţă triunghiulare, distribuite pe universul de discurs conform reprezentării de mai jos.

 

 

Se admite că, la un moment dat, pentru mărimile de intrare se stabilesc valorile crisp x1 = 0.2, y1 = 0.8 şi z1 = 0.6, aşa cum se indică şi în Fig. a, b şi c. Pentru aceste valori ale mărimilor de intrare, prin aplicarea regulilor din relaţia (13.36) se stabilesc gradele de apartenenţă şi mulţimile fuzzy asociate. De asemenea, în Fig. d se prezintă suprapunerea tăieturilor de nivel ale celor trei mulţimi fuzzy. În raport cu reprezentarea din această figură, metoda centroidului determină valoarea crisp asociată ieşirii fuzzy corespunzător abscisei centrului de greutate al suprafeţei haşurate din figura (valoarea crisp o*).

 

 

(d)