Sunteți pe pagina 1din 33

Logica Fuzzy 101

4. LOGICA FUZZY

4.1 De ce să utilizăm logica Fuzzy?

„Fuzzy” (engl.) este un adjectiv, care se traduce prin pufos, scămos. În


limba franceză termenul consacrat este „Logique floue” („flou” este tradus
prin vag, neclar, nedistinct). În literatura română de specialitate sunt utilizați
termenii „Logica Fuzzy” și „Logica nuanțată”. Logica Fuzzy se bazează pe
toate acele teorii, care se referă la importanța relativă a preciziei.

Care dintre cei doi oameni săritori îi este mai util unui cetățean distrat,
care merge de-a lungul unei șosele? Cel care îi strigă: „Atenție, un bolid de
1,5 tone se găsește la 95 de metri de tine și se apropie cu 150 de kilometri pe
oră”, sau cel care îl avertizează: „Păzea, dă-te din drum”?

Multe proverbe și maxime celebre sintetizează înțelepciunea oamenilor


în privința unui echilibru adecvat, care trebuie realizat între semnificația reală
a unui fenomen și precizia cu care trebuie perceput acesta, pentru a evita „să
nu se vadă pădurea din cauza copacilor”. Iată și câteva fraze ale unor oameni
celebri, care exprimă cel mai ingenios aceste lucruri:
• „So far as the laws of mathematics refer to reality, they are not
certain. And so far they are certain, they do not refer to reality.” („În
măsura în care legile matematicii se referă la realitate, ele nu sunt
certe, iar în măsura în care ele sunt certe, ele nu se referă la
realitate”) -Albert Einstein.
• „De multe ori mărimile ușor de măsurat le iau locul celor cu
adevărat importante.” - René Dubous.
• „As complexity rises, precise statements lose meaning and
meaningful statements lose precision” (Când crește complexitatea,
102 INTELIGENŢĂ ARTIFICIALĂ

enunțurile precise își diminuează importanța, iar enunțurile


importante își diminuează precizia”).

Această ultimă frază aparține „părintelui” logicii Fuzzy, Lotfi Zadeh,


un om de știință originar din Iran. El și-a publicat teoria încă din anul 1965 la
Universitatea Berkley din California, dar au trebuit să se scurgă circa
douăzeci de ani, până la primele ei implementări în industrie, de către
japonezi, care au utilizat logica Fuzzy în domeniul produselor de consum, iar
succesul acestora i-a determinat pe americani și europeni să acorde o
importanță sporită tehnologiei Fuzzy.

Câteva repere principale în evoluția Fuzzy:


1965 Profesorul Lotfi Zadeh de la Universitatea Berkley își prezintă
teoria „Fuzzy”.
1968 Profesorul Lotfi Zadeh prezintă mulțimile, logica și algoritmul
Fuzzy.
1974 Prof. Ebrahim H. Mamdani elaborează, la Universitatea din
Londra, prima aplicație experimentală, constând în comanda
unei mașini cu abur.
1985 Primele implementări ale logicii Fuzzy la produse de consum:
▪ Reglarea puterii de aspirație la aspiratoare, în funcție de
starea podelei;
▪ Dozarea detergentului la mașinile de spălat, în funcție de
gradul de murdărire a rufelor;
▪ Stabilizarea electronică a imaginii la aparate video;
▪ Corecția semnalului la televizoare;
▪ Reglarea sistemului anti-blocare (ABS) etc.
1991 Dezvoltarea ca instrument de automatizare industrială:
▪ Sisteme pentru sinteza arhitecturilor VLSI;
▪ Sisteme tehnice de diagnoză;
▪ Sisteme de diagnosticare în medicină (de exemplu, pentru
identificarea tumorilor cerebrale);
Logica Fuzzy 103

▪ Implementarea în automatizarea proceselor (de exemplu


în industria chimică).

Logica Fuzzy reprezintă un mijloc adecvat pentru transpunerea unui spațiu


de intrare într-un spațiu de ieșire corespunzător (Fig. 4.1).

.
Fig. 4.1 Logica Fuzzy – „cutia neagră” care transpune spațiul de intrare în cel
de ieșire

Spațiul de intrare și de ieșire pot fi dintre cele mai diferite, în funcție de


domeniul la care se raportează o anumită problemă:
• Pe baza vitezei și a regimului de lucru (moment dezvoltat de motor)
se determină comutarea treptei la cutia de viteză, sau unghiul de
apăsare a pedalei de accelerație, pentru a menține viteza constantă;
• Pe baza vitezei vehiculelor din trafic și a distanțelor între acestea se
determină viteza și distanța necesare unei depășiri, sau strategia de
reducere a vitezei și de frânare (Fig. 4.2);
• Pe baza temperaturii și volumului apei, dorite într-o cadă, se
determină debitele robinetelor de apă caldă și rece;
• Pe baza torsorului de interacțiune {Fx, Fy, Fz, Mx, My, Mz} dintre un
arbore, manipulat de un robot, și un alezaj în care arborele trebuie
104 INTELIGENŢĂ ARTIFICIALĂ

inserat, se determină componentele carteziene ale deplasărilor și


vitezelor acestora, pentru realizarea asamblării.

Fig. 4.2 Variabile de intrare (stânga) și de ieșire (dreapta) într-o problemă de


trafic

Cutia neagră din Fig.4.1 poate fi implementată cu soluții dintre cele


mai diferite: ecuații diferențiale, sisteme liniare, rețele neurale, sisteme expert
etc, dar în multe cazuri logica Fuzzy se dovedește soluția cea mai potrivită.
Lotfi Zadeh spunea: „În aproape fiecare caz se poate construi același produs
fără logica Fuzzy, dar Fuzzy este mai rapid și mai ieftin”. Rețelele neurale,
care vor fi tratate într-un alt capitol al cursului, sunt structuri matematice
(modele) care înzestrează sistemele artificiale cu capacitatea de învățare, în
timp ce controllerele bazate pe logica Fuzzy sunt destinate transpunerii
cunoștințelor structurate ale omului în algoritmi funcționali.
Logica Fuzzy 105

De ce se utilizează controllerele Fuzzy?


• Un motiv important este acela că sunt controllere neliniare. Multe
tipuri de controllere Fuzzy sunt capabile de aproximări universale
ale funcțiilor.
• Succesul controlului Fuzzy în industrie poate fi explicat și prin
faptul că este foarte intuitiv în specificarea controllerelor neliniare cu
ajutorul regulilor Fuzzy: conceptele matematice care stau la baza
raționamentului Fuzzy sunt foarte simple; logica Fuzzy se bazează
pe limbajul natural, care sintetizează experiența specialiștilor dintr-
un anumit domeniu.
• Logica Fuzzy este flexibilă și tolerantă la erori.

4.2 Mulțimi Fuzzy

Mulțimile Fuzzy pot fi considerate ca generalizări ale mulțimilor


clasice. O mulțime este definită ca o colecție de obiecte care au anumite
caracteristici comune. De exemplu, mulțimea studenților dintr-un an de
studii, mulțimea pătratelor numerelor întregi pozitive, mulțimea notelor unui
student etc. Fiecare obiect individual este numit element sau membru al
mulțimii. Există numeroase posibilități pentru a defini o mulțime, cum ar fi:
• Specificarea proprietăților elementelor:

A = {x|x este un număr par < 10}

▪ Listarea tuturor elementelor mulțimii:

A = {0, 2, 4, 6, 8}

▪ Utilizarea unei formule:

A = {x|x = k2, k < 10}


106 INTELIGENŢĂ ARTIFICIALĂ

Mulțimea care conține toate elementele de interes pentru o anumită


aplicație, care va fi notată cu X, este numită mulțime universală, sau
universul discursului. Orice mulțime care nu este universală va fi o
submulțime a acesteia: A  X. La polul opus mulțimii universale se găsește
mulțimea care nu conține niciun element, denumită mulțime vidă și notată cu
.
În teoria clasică a mulțimilor, un element fie că aparține unei mulțimi
A (exprimat prin xA), fie că nu aparține acesteia (exprimat prin xA) -
logica bivalentă. O mulțime clasică A este definită printr-o funcție de
apartenență (membership function):

 A ( x) : X → {0, 1}, (4.1)

în care X este universul discursului. Valoarea lui A (x) este 1, dacă x


 A, în caz contrar A (x) este zero.

În teoria mulțimilor Fuzzy elementele aparțin unei mulțimi cu un


anumit grad de apartenență (degree of membership):

 A ( x) : X → [0, 1], (4.2)

unde A(x) este funcția de apartenență asociată mulțimii A, iar X


universul discursului. O mulțime Fuzzy este definită complet cu ajutorul
mulțimii perechilor:

A = {(x,  (x))|x  X}. (4.3)

Dacă X este o mulțime finită X = {x1, x2, …. ,xn}, atunci se folosește


de multe ori notația:

n
A = 1/x1 + 2/x2 + …. + n/xn =   i / xi . (4.4)
i =1
Logica Fuzzy 107

O exemplificare sugestivă a noțiunilor prezentate anterior este dată de


clasificarea indivizilor în categorii de vârstă – „tânăr”, „între două vârste”,
„bătrân”, pe baza numărului de ani de viață.

Fig. 4.3 Funcții de apartenență: a) în logica clasică (bivalentă); b) în logica


Fuzzy (multivalentă)

Universul de discurs este de la 0 la 80 de ani și este împărțit în trei


submulțimi: tânăr, între două vârste și bătrân. Logica bivalentă (clasică)
impune limite stricte (fig.4.3, a), în timp ce logica multivalentă (Fuzzy)
nuanțează limitele dintre diferitele categorii de vârstă (fig.4.3, b). Un om de
25 de ani aparține, în prima variantă, exclusiv categoriei „tânăr”, cu  = 1, iar
în a doua variantă, cu  = 0,75, categoriei „tânăr” și cu  = 0,25 categoriei
„între două vârste”.
108 INTELIGENŢĂ ARTIFICIALĂ

4.3. Variabile lingvistice, valori lingvistice, funcții de


apartenență, grade de apartenență
Unul din avantajele raționamentului Fuzzy constă în posibilitatea
caracterizării calitative a unor obiecte, situații etc., prin utilizarea variabilelor
lingvistice și a valorilor lingvistice. O variabilă lingvistică este identificată
printr-un nume: vârstă, viteză, distanță, temperatură, presiune etc. Variabila
lingvistică poate lua diferite valori lingvistice („labels”).

Pentru variabila „vârstă” (Fig. 4.3) acestea sunt: „tânăr”, „între două
vârste”, „bătrân”.
Pentru alte variabile pot fi definite valori lingvistice cât mai sugestive,
ca de exemplu : pentru „viteză” mulțimea acestor valori poate fi: {mică,
medie, mare, foarte mare}, pentru variabila „temperatură” se poate defini o
mulțime a valorilor lingvistice de tipul: {frig, moderat, cald, foarte cald}.
Universul unei variabile lingvistice se notează, de regulă, cu X.

Fiecare valoare lingvistică este caracterizată printr-o funcție de


apartenență (membership function), . Se utilizează diferite tipuri de funcții
de apartenență, câteva dintre cele mai uzuale fiind prezentate în Fig. 4.4.
Experiența a demonstrat că alegerea unei anumite funcții de apartenență nu
reprezintă o problemă esențială într-o aplicație Fuzzy, dar câteva considerații
pertinente pot servi la o selectare adecvată.
Funcția de apartenență „singleton” (Fig. 4.4, a) este utilizată pentru
reprezentarea unor măsurări exacte („crisp”). Funcția de apartenență
dreptunghiulară (sau de tip impuls), corespunde logicii clasice, bivalente,
putând lua numai valorile zero și unu (Fig. 4.4, b). Funcția liniară (Fig. 4.4, c)
este mai puțin intuitivă, dar a fost utilizată cu succes în aplicațiile elaborate de
Takagi și Sugeno.
Majoritatea aplicațiilor utilizează funcții de apartenență triunghiulare
(Fig. 4.4, d) sau trapezoidale (Fig. 4.4, e). Funcția trapezoidală are o
generalitate mai mare decât cea triunghiulară, care poate fi considerată ca un
caz special al celei trapezoidale. Principial, o funcție de apartenență
trapezoidală reprezintă o incertitudine grupată de-a lungul unui interval, în
timp ce o funcție triunghiulară exprimă o incertitudine în jurul unei valori.
Logica Fuzzy 109

Fig. 4.4 Tipuri de funcții de apartenență

Funcțiile de apartenență de tip Gauss (Fig. 4.4, g) sunt mai interesante


decât cele de tip exponențial, întrucât derivata lor este continuă pe tot
domeniul de definiție, fiind zero doar în centrul c.
110 INTELIGENŢĂ ARTIFICIALĂ

Formula matematică corespunzătoare este:

1
 ( x) = ; −   x  + , (4.5)
x− c 2
1+ ( )
a

în care a corespunde distanței de la centru la punctul de inflexiune cu 


= 0,5. De multe ori este util să se trunchieze curba Gauss, pentru a se evita
calcule inutile (Fig. 4.4, h).
Modulul din MATLAB pentru logica Fuzzy (Fuzzy Logic Toolbox)
are definite mai multe tipuri de funcții de apartenență: triunghiulară (trimf),
trapezoidală (trapmf), de tip Gauss (gaussmf, gauss2mf), de tip Bell
(gbellmf), sigmoidală (sigmf, dsigmf, psigmf), cu curbe de tip Z (zmf), Pi
(pimf) și S (smf).
Se recomandă însă utilizatorilor să evite funcțiile de transfer mai
exotice, întrucât cele de tip triunghiular și trapezoidal, pot, în principiu, să
rezolve cvasi-totalitatea aplicațiilor Fuzzy.

Fig. 4.5 Valori lingvistice și funcții de apartenență predefinite


Logica Fuzzy 111

În unele pachete software există funcții de apartenență predefinite (“by


default”), de formă triunghiulară/ trapezoidală, cu 3, 5 sau 7 valori, simetrice
sau asimetrice, care pot fi selectate de utilizator, atunci când îi satisfac
cerințele, fără un efort suplimentar de configurare a acestora (fig.4.5).
Prescurtările din figură provin din engleză: NL = Negative Large; NM =
Negative Medium; NS = Negative Small; NZ = Near Zero; PS = Positive
Small; PM = Positive Medium; PL = Positive Large), iar valorile sunt
normate (între -1 și 1)
Ultimele considerații din această secțiune se referă la gradul de
apartenență și fac apel la Fig. 4.3, b. În această figură sunt reprezentate cele
trei funcții de apartenență, corespunzătoare celor trei valori lingvistice ale
variabilei lingvistice „vârstă”. Considerând un subiect de 25 de ani, acesta va
avea următoarele grade de apartenență la cele 3 valori (calculate pe bază de
asemănări de triunghiuri):

tânăr (vârsta = 25) = 15/20  1 = 0,75;

între două vârste (vârsta = 25) = 5/20  1 = 0,25;

bătrân (vârsta = 25) = 0.

4.4. Operatorii logicii Fuzzy

Pentru cei care cunosc logica clasică (booleană), operatorii acesteia


(AND – ŞI, OR – SAU și NU – NOT) pot fi aplicați și în logica Fuzzy,
întrucât aceasta este o extensie a logicii clasice, având valorile extreme 1
(complet adevărat) și zero (complet fals).
Dacă se analizează tabelele de adevăr ale celor trei operații în logica
bivalentă:
112 INTELIGENŢĂ ARTIFICIALĂ

A B A ŞI A B A SAU A NOT A
B B
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1
AND OR NOT

se poate trage concluzia că operația care corespunde funcției ŞI, putând


fi extinsă la logica multivalentă este operația min (A,B), cea care corespunde
operației SAU este max (A, B), iar operației NOT este îi corespunde (1 – A).

Fig. 4.6 Operatorii AND (Min), OR (Max) și NOT în logica bi- și


multivalentă

În logica Fuzzy operatorul AND este realizat în cele mai multe cazuri
cu ajutorul operatorului minimum (Min), aplicat funcțiilor de apartenență a
(x) și b (x), corespunzătoare la două valori lingvistice diferite:

c (x) = min [a (x), b (x)]. (4.6)

Se poate demonstra cu ușurință că operatorul Min este comutativ și


asociativ, adică:
Logica Fuzzy 113

c (x) = min [a (x), b (x)] = min [b (x), a (x)], respectiv:
d = min [a, b, c] = min{min [a, b], c} = min{min [c, b], a} =
min{min [a, c], b}.

Operatorul OR este realizat în cele mai multe cazuri cu ajutorul


operatorului maximum (Max), aplicat funcțiilor de apartenență a (x) și b
(x), corespunzătoare la două valori lingvistice diferite:

c (x) = max [a (x), b (x)]. (4.7)

Acest operator este, de asemenea, comutativ și asociativ, permițând


scrierea unor relații similare celor corespunzătoare operatorului min.

Literatura de specialitate și soluțiile hardware și software pentru


implemetarea logicii Fuzzy oferă și alte variante pentru operatorii AND și
OR. De multe ori sunt utilizați operatorii produs (AND) și sumă (OR):

c (x) = a (x) ∙ b (x) (AND),


c (x) = [a (x) + b (x)] / 2 (OR). (4.8)

Altă variantă definește operatorii AND și OR cu ajutorul relațiilor:

c (x) =  min [a (x), b (x)] + (1 - ) [a (x) + b (x)] /2 (AND); (4.9)
c (x) =  max [a (x), b (x)] + (1 - ) [a (x) + b (x)] /2 (OR),

care permit o ponderare adecvată între cei doi termeni ai fiecărui


operator, prin intermediul coeficientului   [0, 1].

4.5. Etapele raționamentului (inferenței ) Fuzzy


114 INTELIGENŢĂ ARTIFICIALĂ

Orice definiție pertinentă a unui sistem de control Fuzzy pune în


evidență faptul că un astfel de sistem reproduce comportamentul unui expert
uman. În această situație, cunoștințele operatorului uman sunt exprimate prin
intermediul unor reguli lingvistice Fuzzy. Interpretarea acestor reguli va
determina, ca și în cazul omului, o decizie aproximativă, care trebuie însă
materializată printr-o acțiune precisă. Operatorul uman monitorizează
mărimile care caracterizează un proces, pe baza indicațiilor de la sistemele
senzoriale, sub formă de valori afișate, grafice, diagrame etc. și execută o
acțiune precisă, cum ar fi apăsarea unei taste, acționarea unui comutator,
închiderea unei porți sau a unei valve etc. Operatorul uman poate fi înlocuit
de o combinație dintre un sistem bazat pe reguli Fuzzy și un bloc de
defuzzificare (Fig. 4.7).

Fig. 4.7 Structura de comandă a unui proces cu ajutorul logicii Fuzzy


Logica Fuzzy 115

Termenul de inferență (raționament) Fuzzy – „Fuzzy inference” indică


procesul care determină valorile ieșirilor în funcție de valorile intrărilor, prin
intermediul aplicării unor reguli lingvistice. Regulile Fuzzy sunt de forma:

IF <antecedent> THEN <consequent> →


(DACĂ <antecedent> ATUNCI <consecință>).

O aplicație Fuzzy presupune interpretarea uneia sau mai multor astfel


de reguli (Fig. 4.8 a, b și c). Toate figurile se referă la o aplicație Fuzzy cu 2
intrări, o ieșire și 2 reguli.
Senzorii din sistemul reglat măsoară valori exacte (crisp), x1 și x2,
pentru cele două variabile de intrare X1 (de exemplu, temperatura) și X2 (de
exemplu, variația de temperatură), pe baza cărora se determină gradele de
apartenență la submulțimile A11, A12, A21 și A22 (fuzzificare).
Aceste valori calculate stau la baza interpretării setului de reguli, în
cadrul etapei de inferență. În Fig. 4.8, b s-a utilizat pentru AND operatorul
„MIN”, iar în Fig. 4.8, c, operatorul „Produs”. Fiecare regulă induce o
mulțime Fuzzy la nivelul variabilei de ieșire, y.
După finalizarea interpretării tuturor regulilor, urmează ultima etapă,
denumită defuzzificare, în cadrul căreia, pe baza mulțimii Fuzzy agregate a
variabilei de ieșire și cu un algoritm adecvat (de exemplu, centrul de greutate
al suprafeței), se determină o valoare exactă a mărimii de ieșire (de exemplu,
poziția ventilului) care este transmisă elementului de execuție.
Regulile corespunzătoare exemplelor din figurile 4.8, b și c:

If (x1 is A11 AND x2 is A21) THEN (y is B1)


If (x1 is A12 AND x2 is A22) THEN (y is B2),

au câte 2 antecedente, legate prin conectorul AND și câte o consecință.


x1 și x2 sunt variabile Fuzzy de intrare, y este o variabilă Fuzzy de ieșire, iar
A11, A12, A21, A22, respectiv B1 și B2 sunt valori lingvistice (funcții de
apartenență – Membership Functions). Aceste reguli sunt de tipul Mamdami,
116 INTELIGENŢĂ ARTIFICIALĂ

caracterizate prin aceea că atât antecedentele cât și consecințele sunt


exprimate utilizând valori lingvistice.

a)

b)
Logica Fuzzy 117

c)

Fig. 4.8 Etape în rezolvarea a unei aplicații Fuzzy

O altă formă de scriere a regulilor este cea denumită Takagi-Sugeno, în


care consecințele sunt exprimate sub forma unor expresii analitice sau ecuații.
În acest caz regulile de inferență au următoarea formă:

dacă x1 este A1 și x2 este A2 și… și xn este An


atunci y = fk (x1, x2,….,xn),

unde fk : X1 x X2 x ….x Xn → Y (cu k = 1,…,numărul de reguli, m)


sunt în general funcții liniare, având forma:

fk (x1,x2,…, xn) = a1k  x1 + … + ank  xn + a0k.

Rezultatul inferenței (ca valoare exactă =”crisp”) se obține ca o medie


ponderată a rezultatelor parțiale ale regulilor interpretate individual:
118 INTELIGENŢĂ ARTIFICIALĂ

m
 wk  f k ( x1 ,....., xn )
y = k =1 (4.10)
m
 wk
k =1

De exemplu, inferența bazată pe setul de două reguli:

If x1 is A11 AND x2 is A21 THEN y = a11 x1 + a21  x2 + a01;


If x1 is A12 AND x2 is A22 THEN y = a12 x1 + a22  x2 + a02,

aplicată intrărilor Fuzzy x1 și x2 (Fig. 4.9) permite determinarea


ponderilor w1 și w2 asociate fiecărei reguli și calculul valorii exacte a ieșirii:

w  y + w2  y2
y= 1 1 , (4.11)
w1 + w2

în care:
y1 = a11 x1 + a21  x2 + a01
y2 = a12 x1 + a22  x2 + a02.
Logica Fuzzy 119

Fig. 4.9 Inferență Takagi-Sugeno


Rezolvarea aplicațiilor Fuzzy, cu parcurgerea succesivă a celor trei
etape distincte: fuzzificarea; inferența (interpretarea regulilor) și
defuzzificarea, va fi detaliată cu ajutorul a două aplicații distincte, cu reguli
de tip Mamdami. În cazul primei aplicații ieșirea are valori cu funcții de
apartenență de tip „singleton”, iar pentru cea de-a doua aplicație funcțiile de
apartenență corespunzătoare ieșirii au formă triunghiulară.

4.6 Detalierea etapelor de rezolvare cu ajutorul a 2


aplicații
4.6.1 Aplicația 1 – Comanda unei mașini de spălat
Foarte multe mașini de spălat moderne folosesc controllere Fuzzy
pentru reglarea unor parametri importanți: cantitatea de detergent, durata de
spălare etc.
Un model de comandă a unei mașini de spălat, presupune determinarea
timpului de spălare (variabilă de ieșire) pe baza măsurării gradului de
murdărire și a tipului de murdărire a rufelor – variabile de intrare (Fig. 4.10,
a) [FNE92]. Cele două intrări pot fi măsurate utilizând un singur senzor optic.
Murdărirea este determinată de transparența apei din incinta mașinii de
spălat: cu cât rufele sunt mai murdare cu atât transparența apei va fi mai
redusă. Pe de altă parte, tipul de murdărire poate fi determinat cu același
senzor, dar pe baza timpului de saturație, respectiv a momentului în care
modificarea transparenței apei este apropiată de zero (sub o limită impusă).
De exemplu, hainele soioase au nevoie de un timp mai mare pentru atingerea
saturației, întrucât grăsimea e mai puțin solubilă în apă.
Un alt mod de comandă, care va fi detaliat în această secțiune,
utilizează logica Fuzzy pentru a doza cantitatea de detergent, în funcție de
gradul de murdărire a rufelor (Murdărire) și a greutății acestora (Greutate) –
Fig. 4.10, b. Mașina de spălat folosește în acest caz doi senzori, unul optic, ca
și în cazul precedent, pentru măsurarea gradului de murdărire și un senzor
care măsoară greutatea cuvei cu rufe.
120 INTELIGENŢĂ ARTIFICIALĂ

Fig. 4.10 Scheme bloc pentru controlul Fuzzy al mașinilor de spălat

Fără îndoială că poate fi luat în considerare și un model Fuzzy de


comandă mai complex, care să controleze atât cantitatea de detergent cât și
timpul de spălare, în baza parametrilor de intrare: gradul de murdărire, tipul
de murdărire, greutatea (Fig. 4.10, c).

Se va detalia cazul din Fig. 4.10, b, inspirat din [IBR03]. Funcțiile de


apartenență pentru cele două variabile de intrare și variabila de ieșire
(Detergent) sunt următoarele (cu valori cuprinse între 1 și 100, de exemplu în
%):
Variabila „Murdărire”, cu funcții de apartenență triunghiulare:
• a_curat (aproape curat)
• murdar
• soios
• f_murdar (foarte murdar)
Variabila „Greutate”, cu funcții de apartenență triunghiulare:
• f_ușoara (foarte ușoară)
• ușoara
• grea
Logica Fuzzy 121

• f_grea (foarte grea)


Variabila „Detergent”, cu funcții de apartenență de tip „singleton”:
• f_puțin (foarte puțin)
• puțin
• mult
• f_mult (foarte mult)
• maxim

Setul de reguli poate fi suficient de consistent (4 valori ale variabilei


„Murdărire” x 4 valori ale variabilei „Greutate” x 2 operatori AND/OR = 32
reguli). În [IBR03], de exemplu, este specificat un set complet de 16 reguli
pentru operatorul AND.

Considerând însă numai 4 de reguli pe bază de care se face dozarea:


• IF Murdarire IS a_curat OR Greutate IS f_ușoară THEN Detergent
IS f_puțin
• IF Murdarire IS soios OR Greutate IS f_grea THEN Detergent IS
f_mult
• IF Murdarire IS murdar OR Greutate IS grea THEN Detergent IS
mult
• IF Murdarire IS f_murdar AND Greutate IS f_grea THEN Detergent
IS maxim
și valorile determinate de senzori:

Murdărire = 18 și Greutate = 78,

se cere să se determine, utilizând operatorii Min-Max și metoda mediei


ponderate pentru defuzzificare, cantitatea de detergent (exprimată în %) care
va fi dozată de controllerul Fuzzy.
122 INTELIGENŢĂ ARTIFICIALĂ

a)

b)

c)

Fig. 4.11 Valori lingvistice și funcții de apartenență pentru variabilele mașinii


de spălat
Logica Fuzzy 123

Etapele de rezolvare
Fuzzificarea presupune că variabilele de intrare în sistemul comandat
sunt definite ca variabile Fuzzy (variabile lingvistice), cu valorile lingvistice
și funcțiile de apartenență corespunzătoare, astfel încât, pentru un set de
valori exacte (crisp) măsurate de senzorii din sistem, să se poată determina
gradele de apartenență, pentru fiecare variabilă, în parte. Întrucât funcțiile de
apartenență pentru toate variabilele de intrare sunt triunghiulare, se va folosi
asemănarea de triunghiuri, cu raportarea la baza 1 ( = 1) a triunghiurilor
mari. Astfel, din Fig. 4.11, a și b, se poate deduce:

a_curat(Murdărire=18) = 2/20  1 = 0,1;


murdar(Murdărire=18) = 8/20  1 = 0,4.
grea(Greutate=78) = 12/20  1 = 0,6;
f_grea(Greutate=78) = 8/20  1 = 0,4.

Pentru toate celelalte valori, gradele de apartenență au valoarea 0.


Valorile obținute, numite și valori  (-values) vor fi utilizate în etapa de
inferență.

Inferența este etapa în care se interpretează regulile Fuzzy. Toate


regulile au câte două antecedente, legate prin conectorii OR sau AND, pentru
care se vor folosi operatorii Max/Min. Astfel pentru grupul de reguli:
• IF Murdarire IS a_curat OR Greutate IS f_ușoară THEN Detergent
IS f_puțin
• IF Murdarire IS soios OR Greutate IS f_grea THEN Detergent IS
f_mult
• IF Murdarire IS murdar OR Greutate IS grea THEN Detergent IS
mult
• IF Murdarire IS f_murdar AND Greutate IS f_grea THEN Detergent
IS maxim
inferența va avea ca efect:
124 INTELIGENŢĂ ARTIFICIALĂ

Max (0,1; 0) = 0,1 → Detergent = f_puțin


Max (0; 0,4) = 0,4 → Detergent = f_mult
Max (0,4; 0,6) = 0,6 → Detergent = mult
Min (0; 0,4) = 0 → Detergent = maxim,

rezultând diagrama din Fig. 4.12, cu cele 4 valori delimitate pe dreptele


funcțiilor de apartenență de tip „singleton“.

Fig. 4.12 Rezultatul inferenței

Defuzzificarea presupune determinarea valorilor exacte ale


variabilelor de ieșire, care servesc la comanda sistemului.
Pentru defuzzificare se pot folosi diferite metode. Cea mai simplă
metodă presupune luarea în considerare numai a acelei reguli care determină
un efect maxim asupra variabilei de ieșire, care va reprezenta, de altfel, și
valoarea acesteia. Este metoda maximului și poate fi rezolvată cel mai rapid,
prin hardware sau software, mai ales în situațiile în care funcțiile de ieșire
sunt de tip „singleton”. Există două variante consacrate: Middle of Maximum
(MoM), presupune calculul centrului maximului suprafeței de înălțime
maximă și First of Maxima (FoM), care ia în considerare valoarea cea mai
din stânga a suprafeței de înălțime maximă. Una dintre cele mai utilizate
metode, care elimină dezavantajele metodei maximului este metoda centrului
de greutate (Center of Gravity Method). A fost dezvoltată de Watanabe în
Logica Fuzzy 125

1986 și presupune atribuirea unei valori exacte (crisp) variabilei de ieșire, ca


abscisă a centrului de greutate a suprafeței agregate, rezultate în urma
evaluării regulilor:

x  f R ( x )  dx
xG =  (4.12)
 f R ( x )  dx
cu limitele de integrare corespunzătoare domeniului (universului)
pe care a fost definită variabila de ieșire. Cele două suprafețe, care compun
suprafața agregată în Fig. 4.13, a, se suprapun în zona hașurată; formula de
calcul (4.12) ia în considerare suprafața comună o singură dată.

Fig. 4.13 Variante de calcul a centrului de greutate

Dacă cele două suprafețe sunt tratate separat (Fig.4.13, b), zona comună va
fi evaluată de două ori, astfel încât, în locul unei operații SAU se realizează o
însumare:
x  f A ( x )  dx +  x  f B ( x )  dx + ....
xG =  (4.13)
 f A ( x )  dx +  f B ( x )  dx + ...

În Fig. 4.13, c, apare un caz extrem de suprapuneri, care pune în


evidență diferențele dintre un xG calculat fără a lua în considerare
126 INTELIGENŢĂ ARTIFICIALĂ

suprapunerile și un xG’, care le interpretează aditiv. Dacă funcția cea mai


mare trebuie să fie dominantă, atunci prima soluție este cea mai adecvată, în
schimb, dacă se dorește luarea în considerare a influenței tuturor regulilor
Fuzzy asupra ieșirii, trebuie preferată a doua soluție.
În cazul prelucrării aditive a unor suprafețe separate, calculul poate fi
simplificat, dacă se folosește, în locul relației (4.13) următoarea expresie:

   x  f A0 ( x )  dx +  B   x  f B0 ( x )  dx + ....
xG = A (4.14)
 A   f A0 ( x )  dx +  B   f B0 ( x )  dx + ...

în care, în integrale apar funcțiile fA0 și fB0, care nu depind de mărimile


de intrare și pot fi calculate anticipat. Integralele de la numărător reprezentă
momente statice, iar cele de la numitor suprafețe. Se obține expresia:

  M A0 +  B  M B0 + ...
xG = A (4.15)
 A  A A0 +  A  A B0 + ...

În formula (4.15) forma funcțiilor de apartenență nu mai are nicio


influență asupra rezultatului, care depinde numai de suprafețe și de poziția
acestora pe axa abscisei. Această metodă este utilizată, de exemplu, ca
metodă standard de compilatorul C-Fuzzy al Togai InfraLogic Inc., fiind
denumită metoda „MAX-DOT”, precum și la procesoarele W.A.R.P.,
prezentate în secțiunea 6.7.5 a cărții de inteligență artificială a autorilor.

Relația (4.15) poate fi adaptată ușor pentru funcții „Singleton”:

 x +  B  x B + ...
xG = A A (4.16)
 A +  B + ...

Pentru aplicația 1, în cazul căreia variabila de ieșire are funcții de


apartenență de tip „singleton” se va folosi pentru defuzzificare relația (4.16):

 A  x A +  B  xB + ... 0,1 10 + 0,6  60 + 0,4  80 + 0 100 69


xG = = = = 62.72
 A +  B + ... 0,1 + 0,6 + 0,4 + 0 1.1
Logica Fuzzy 127

Sistemul de comandă va regla sistemul de dozare a detergentului în așa


fel, încât acesta să adauge la apa de spălare din cuvă o cantitate de 62,72%
din cantitatea maximă de detergent admisă (vezi și Fig. 4.12).

4.6.2 Aplicația 2 - Stabilirea prețului unui produs


Aplicația este din domeniul economic, ca dovadă că utilizarea logicii
Fuzzy nu este limitată strict la controlul unor echipamente și procese din
industrie.
O firmă este în faza de lansare a unui nou produs pe piață și urmărește
stabilirea unui Preț adecvat, în funcție de Cerere și costul de producție,
conform regulilor sintetizate în următorul tabel:
Tabel 4.1 Preț
Cost
Cerere Ieftin Scump
Mică Mic Mediu
Mare Mediu Mare

Managementul firmei a estimat următoarele funcții de apartenență,


exprimate prin coordonatele vârfurilor unor triunghiuri:

▪ Cerere (în mii de unități anual)


Mică {100,1 300,0} Mare {150,0 350,1}

▪ Cost de producție (în dolari per bucată)


Ieftin {10,1 20,0} Scump {12,0 24,1}

▪ Preț (în dolari per bucată)


Mic {20,1 35,0} Mediu {25,0 35,1 45,0} Mare {35,0 50,1}

Coordonatele indicate pentru fiecare variabilă, în parte, permit desenarea


curbelor corespunzătoare funcțiilor de apartenență pentru Cerere, Cost și Preț
(Fig. 4.14).
128 INTELIGENŢĂ ARTIFICIALĂ

a)

b)

c)
Fig. 4.14 Valori lingvistice și funcții de apartenență pentru variabilele
aplicației 2
Logica Fuzzy 129

Setul de 4 reguli se scrie pe baza tabelului 4.1 (operator AND):

• IF Cerere IS Mică AND Cost IS Ieftin THEN Pret IS Mic


• If Cerere IS Mică AND Cost IS Scump THEN Pret IS Mediu
• If Cerere IS Mare AND Cost IS Ieftin THEN Pret IS Mediu
• If Cerere IS Mare AND Cost IS Scump THEN Pret IS Mare

În urma unor analize economice și de marketing Cererea estimată este =


200 și Costul estimat este = 14 și trebuie decis asupra Prețului, utilizând
operatorii Min-Max și metoda centrului de greutate pentru defuzzificare.

Etapele de rezolvare
Fuzzificarea presupune că variabilele de intrare în sistemul comandat
sunt definite ca variabile Fuzzy (variabile lingvistice), cu valorile lingvistice
și funcțiile de apartenență corespunzătoare, astfel încât, pentru un set de
valori exacte (crisp), să se poată determina gradele de apartenență, pentru
fiecare variabilă, în parte. Întrucât funcțiile de apartenență pentru toate
variabilele de intrare sunt triunghiulare, se va folosi asemănarea de
triunghiuri, cu raportarea la baza 1 ( = 1) a triunghiurilor mari. Astfel, din
Fig. 4.14, a și b, se poate deduce:

mică(Cerere=200) = 100/200  1 = 0,5;


mare(Cerere=200) = 50/200  1 = 0,25.
ieftin(Cost=14) = 6/10  1 = 0,60;
scump(Cost=14) = 2/12  1 = 0,167.

Pentru grupul de reguli corespunzătoare aplicației 2:


If Cerere=Mică AND Cost=Ieftin THEN Pret=Mic
If Cerere=Mică AND Cost=Scump THEN Pret=Mediu
If Cerere=Mare AND Cost=Ieftin THEN Pret=Mediu
If Cerere=Mare AND Cost=Scump THEN Pret=Mare
inferența va conduce la:
130 INTELIGENŢĂ ARTIFICIALĂ

Min (0,5; 0,6) = 0,5 → Pret = Mic


Min (0,5; 0,167) = 0,167 → Pret = Mediu
Min (0,25; 0,6) = 0,25 → Pret = Mediu
Min (0,25; 0,167) = 0,167 → Pret = Mare,
și va avea ca efect delimitarea suprafeței din Fig. 4.15 mărginită cu
linii îngroșate.

Fig. 4.15 Rezultatul inferenței

În cazul acestei aplicații, defuzzificarea presupune utilizarea metodei


centrului de greutate pentru suprafața hașurată. Calculele sunt mai complicate
și nu justifică un efort manual. Se va considera soluția furnizată de pachetul
software FS-30AT (OMRON) în modulul de simulare (FS-30ATS) pentru
aplicația Fuzzy din exemplul 2, definită în programul de editare (FS-30
ATE):

Pret = 31,64$,

cum rezultă din Fig. 4.15.


Logica Fuzzy 131

4.7 Soluții hardware pentru implementarea


controllerelor Fuzzy
4.7.1 Variante; comentarii
Considerațiile prezentate mai sus permit înțelegerea structurii unui
controller Fuzzy. În Fig. 4.16 este prezentată diagrama bloc a unui sistem de
reglare standard, care constă din trei blocuri principale: sistemul comandat,
dispozitivele de măsurare și controllerul. Ieșirea y(t) a procesului este
măsurată și convertită într-un semnal electric echivalent de către un sistem
senzorial adecvat. Acest semnal este comparat cu semnalul de intrare de
referință, r(t), rezultând semnalul de eroare, e(t), aplicat la intrarea
controllerului, care generează la ieșirea sa semnalul de comandă a procesului,
u(t).

Fig. 4.16 Diagrama bloc a unui sistem de reglare standard

Diagrama bloc din Fig. 4.16 poate fi extinsă și pentru aplicațiile Fuzzy,
dar în aceste cazuri intervine un controller Fuzzy (FLC = Fuzzy Logic
Controller) în locul unuia clasic cu componente PID (Proportional Integral
Derivative). Un FLC (Fig. 4.17) include:
• un bloc de fuzzificare;
• un bloc de raționament (inferență) Fuzzy;
132 INTELIGENŢĂ ARTIFICIALĂ

• o bază de cunoștințe
• un bloc de defuzzificare.

Fig. 4.17 Structura de bază a unui controller Fuzzy

Baza de cunoștințe conține un set de reguli care asigură transpunerea


mulțimii variabilelor de intrare, E, măsurate de sistemele senzoriale care
urmăresc procesul comandat, într-o mulțime a variabilelor de ieșire, U. Baza
de cunoștințe conține și datele care definesc variabilele: univers de discurs,
valori lingvistice, funcții de apartenență.

În cele mai multe cazuri, semnalele achiziționate de la senzori sunt


analogice, după cum multe semnale pentru comanda elementelor de execuție
din proces sunt tensiuni analogice. Întrucât cvasi-totalitatea procesoarelor
Fuzzy existente sunt numerice, se impune o interfață pentru multiplexarea și
conversia analog-numerică a semnalelor de intrare, precum și o interfață
pentru conversia numeric-analogică a semnalelor de ieșire (vezi și Fig. 4.7).
Achiziția și conversia semnalelor analogice presupune un tact (o frecvență)
de eșantionare, care va impune un ritm de procesare și pentru controllerul
Fuzzy.

Creșterea spectaculoasă a aplicațiilor în care logica Fuzzy este utilizată


pentru controlul unor procese, a determinat dezvoltarea unor procesoare
Fuzzy specializate sau a unor componente hardware/ software pentru
procesoare de uz general.
Logica Fuzzy 133

Performanțele procesoarelor Fuzzy sunt determinate de următorii


parametri:
• Numărul de reguli prelucrate într-o secundă (FLIPS = Fuzzy Logic
Inference per Second);
• Numărul de ieșiri controlate/secundă;
• Timpul de răspuns al sistemului.
Implementarea hardware a logicii Fuzzy poate fi realizată în mai multe
moduri:
• Cu procesoare sau co-procesoare Fuzzy analogice;
• Cu microcontrollere convenționale;
• Cu microcontrollere, care conțin, pe lângă setul de instrucțiuni
clasice, și instrucțiuni specifice logicii Fuzzy;
• Cu componente de tip FPLA (Fuzzy Programmable Logic Array).
Reprezintă o extensie adaptată pentru logica Fuzzy a componentelor
PLA clasice, structurată pe circuite pentru operațiile logice ŞI, SAU,
MIN, MAX și NOT (negație).
• Cu componente Fuzzy de tip ASIC (Application Specific IC),
capabile să funcționeze independent, fără un procesor supraordonat;
• Cu procesoare sau co-procesoare Fuzzy numerice.

4.7.2 Procesoare Fuzzy analogice [ALS92]


Procesoarele Fuzzy analogice sunt mai puțin răspândite, multe soluții
fiind încă într-o fază experimentală. Eficacitatea lor este determinată de faptul
că, așa cum s-a mai spus, multe mărimi de intrare, măsurate într-un proces
controlat, sunt mărimi analogice, după cum, multe mărimi de ieșire, care
servesc la comanda adecvată a procesului, sunt, de asemenea, mărimi
analogice.
Un procesor numeric necesită, din acest motiv, circuitele necesare
conversiei analog-numerice (multiplexor, S&H, CAN), respectiv conversiei

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