Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
1 / 27
Logica fuzzy
Precizie si realitate
Paternitatea logicii fuzzy
Istoric
Multimi fuzzy
Fuzzy vs. probabilitate
Operatii cu multimi fuzzy
Implementare Arduino a mf
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
2 / 27
Fuzzy: vag, neclar, imprecis, scamos, pufos, nuanţat
Fuzziness: imprecizie nestatistica si caracter vag al
informatiilor si datelor.
Logica fuzzy o găsim peste tot unde avem de-a face cu
importanţa relativă a preciziei: “Cât de importantă este precizia,
când este mulţumitor şi un răspuns aproximativ, dar semnificativ?”
[Reznik, 97]
Precizie si realitate
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
3 / 27
Precizie si realitate – cont.
“Precizia nu este realitate (adevăr).” – Henri Matisse
“Cred că nimic nu este adevăr necondiţionat şi astfel măîmpotrivesc oricărei afirmaţii de adevăr deplin şi oricăreipersoane care o face.” – H. L. Mencken
“Atâta vreme cât legile matematicii se referă la realitate, ele nusunt sigure. Şi atâta vreme cât sunt sigure, ele nu se referă larealitate.” – Albert Einstein
“Pe masură ce creşte complexitatea, formulările precisepierd din înţeles şi formulările pline de înţeles pierd dinprecizie.” – Lotfi Zadeh
Perle ale înţelepciunii populare:
Nu vede pădurea din cauza copacilor
Nu fi scump la tărâţe şi ieftin la făină
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
4 / 27
Lotfi Zadeh (1921– )
Gloria de a fi considerat “părintele logicii fuzzy” îi
revine lui Lotfi A. Zadeh, în urma publicării
articolului său “Mulţimi fuzzy” în revista
“Information and Control” în anul 1965
În 1991 la Tokyo, Zadeh spune că editorul din acea vreme al revistei i-a
confirmat ceea ce presupunea şi el şi anume că articolul a fost publicat numai
pentru că Zadeh era un membru al colectivului de redacţie.
“Motivul pentru care am ales cuvântul fuzzy este că ceea ce am avut în minte
sunt clasele care nu au graniţe precis delimitate”.
“Logica fuzzy nu este exact genul de termen pe care l-aţi folosi în literatura
ştiinţifică […]. Mă gândesc că termenul a provocat anumite controverse. Dar
controversa serveşte unui scop util dând subiectului o mai mare vizibilitate”.
“Unii oameni sunt potrivnici logicii fuzzy chiar dacă nu ştiu ce este, numai din
cauza numelui. Dar ca şi cu orice altceva, odată cu trecerea timpului, numele
devin mai puţin importante.”
Paternitatea logicii fuzzy
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
5 / 27
Istoric al logicii fuzzy
[Ebe07] Eberhart, R., Shi, Y., Computational Intelligence.
Concepts to Implementations, Elsevier, Morgan Kaufman
Publisher, ISBN 978-1-55860-759-0, 2007;
Pagini: 270 - 275
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
6 / 27
De ce să utilizam logica fuzzy? Este usor de inteles si implementat
Este flexibila
Este toleranta la date imprecise
Poate modela functii complexe cu nivel ridicat de precizie
Poate utiliza cunostintelor expertilor (exprimate calitativ, lingvistic)
Poate fi combinata cu tehnici conventionale de control
Se bazeaza pe limbajul natural
Nu utilizam logica fuzzy daca:
exista deja o solutie simpla
exista controlere care functioneaza foarte bine
nu este convenabila din anumite motive
Logica fuzzy - codificarea bunului simt
• utilizati bunul simt la implemetare si probabil veti lua cele mai bune decizii
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
7 / 27
Mulțimi fuzzy Este dificil de stabilit cu certitudine apartenenţa sau
neapartenenţa unui obiect dat la o clasă sau alta de obiecte.
Noţiunea de mulţime în forma ei clasică reprezintă mai
degrabă o idealizare a situaţiilor reale.
Există fenomene în care gradualitatea şi ambiguitatea joacă
un rol important (imprecizie care nu este de tip aleator).
Problema este de a putea aprecia în ce măsură un obiect
dat aparţine unei clase ale cărei margini nu pot fi
precizate clar (transant).
La baza logicii fuzzy se află o întrebare care ţine de esenţa
gândirii: “Ce este o clasă?”.
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
8 / 27
Împărţire în clase
Multimi fuzzy
Multimi clasice
“201 este amplificare mare”
adevarat
“199 este amplificare mare”
fals
“201 este amplificare mare”
adevarat – cu grad 0,55
“199 este amplificare mare”
adevarat – cu grad 0,45
Cum impartim in 2 clase (medie, mare)
valorile amplificarilor cuprinse intre 50 si 300?
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
9 / 27
Definire mulțime fuzzy Clasă de obiecte cu grade de apartenenţă continue. O astfel de mulţime
este caracterizată de o funcţie de apartenenţă ce atribuie fiecărui obiect un
grad de apartenenţă între 0 şi 1.
i. Variabila lingvistică x =: o proprietate, un atribut al obiectului (obiectelor)
în discuţie (pentru un amplificator: amplificarea);
ii. Valoarea lingvistică A =: un adverb, adjectiv asociat variabilei lingvistice,
care dă numele mulţimii fuzzy asociate (medie, mare);
iii. Universul discuţiei X =: o mulţime clasică, tranşantă, pe care se definesc
mulţimile fuzzy (intervalul considerat pentru amplificare X = [50; 300];
iv. Funcţia de apartenenţă A =: asociază fiecărui element x gradul de
apartenenţă la mulţimea fuzzy A
A(x) : X[0; 1] (exemplu: medie(amplificare) : [50; 300][0; 1].
v. Gradul de apartenenţă =: măsura în care un element aparţine unei
mulţimi fuzzy, [0; 1] (mare(201) =0,55; pentru amplificare de 201 ce
aparţine mulţimii fuzzy ‘amplificare mare’)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
10 / 27
Definiremulțime fuzzy- cont.
Mulţimea fuzzy A este complet determinată de mulţimea perechilor ordonate:
A = {(x, A(x))xX}.
variabila
lingvistica
valoare
lingvistica
universul
discutiei
0.55
grad de
apartenenta
functie de
apartenenta
0.3
Suportul unei multimi fuzzy A: Submultimea strictă a lui X ale cărei elemente
au grade de apartenenţă nenule în A: 0|)(supp xXxA A
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
11 / 27
Care variabile lingvistice se preteaza la impartire in mf?
Ce valori lingvistice se potrivesc?
1. Calitatea servirii la restaurant
2. Culorile semaforului
3. Inaltimea unei persoane
4. Temperatura
5. Lunile anului
6. Variația comenzii unui element de acționare (actuator)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
12 / 27
0
0.2
0.4
0.6
0.8
1trapmf gbellmf trimf gaussmf gauss2mf smf
0
0.2
0.4
0.6
0.8
1zmf psigmf dsigmf pimf sigmfsingleton
Tipuri de multimi fuzzyMultimi fuzzy predefinite in Matlab
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
13 / 27
Mulțime fuzzy triunghiulară
restin;0
;
;
)()(
xaa
x
axa
x
xxA A
];[supp (A)
(finita) discreta multime o este
},...{ Daca ,2,1 nxxxX
n
n
xxxxA
;...;;
2
2
1
1
A – se mai numeste și numar fuzzy triunghiular
“x este apoximativ egal cu a”
Definită prin punctele de
inflexiune ),,( a
multimiicentrula
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
14 / 27
Multime fuzzy triunghiulara - exemplificare
13;5;10]15;0[ aX
Reprezentati grafic o mf triunghiulară
Care este expresia analitica a mf?
Care este suportul mf?
Care este centrul mf?
Considerati ca universul discutiei este finit, descris de valorile
}15,14,12,11,10,8,7,5,4,0{X
15
,14
,12
,11
,10
,8
,7
,5
,4
,0
)(xA
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
15 / 27
Multime fuzzy triunghiulara - implementare (cod Arduino)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
16 / 27
Multime fuzzy trapezoidala
restin;0
;
;1
;
)()(
xbb
x
bxa
axa
x
xxA A
];[supp (A)
A – se mai numeste si numar fuzzy trapezoidal
“x este apoximativ in intervalul [a; b]”
intervalul de toleranta],[ ba
Definită prin punctele de
inflexiune ),,,( ba
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
17 / 27
Multime fuzzy trapezoidala - implementare (cod Arduino)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
18 / 27
Multime fuzzy trapezoidala - exemplificare
11;5];11,7[],[]15;0[ baX
Reprezentati grafic o mf triunghiulara
Care este expresia analitica a mf?
Care este suportul mf?
Care este intervalul de toleranta al mf?
Considerati ca universul discutiei este finit descris de valorile
}15,14,12,11,10,8,7,5,4,0{X
15
,14
,12
,11
,10
,8
,7
,5
,4
,0
)(xA
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
19 / 27
Multime fuzzy gaussianac – centrul multimii
σ – abaterea standard;
controleaza forma multimii
0,
)()(2
2
2
)(
c
exxA
cx
A
X(A)supp
2;9;]15;0[ cXReprezentati grafic o mf gaussiana cu
15
,14
,12
,11
,10
,8
,7
,5
,4
,0
)(xA
Pentru cazul discret
Definită prin valorile
),( c
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
20 / 27
Multime fuzzy gaussiana - implementare (cod Arduino)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
21 / 27
Multime fuzzy singleton
c – centrul multimii
restin,0
,1)()(
cxxxA A
c(A)supp
A se mai numeste si punct fuzzy
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
22 / 27
Partitie fuzzy
Pentru fiecare element din universul discutiei X, suma gradelor de
apartenenta la toate multimile fuzzy definite peste X este egala cu 1.
N mf definite peste X
N
i
A
i
xXx
NiA
i
1
1)(,
,...,1,
Cum definim o partitie fuzzy formata din 5 mf pentru variabila
lingvistica “inaltimea unei persoane” considerand X=[140, 220] cm?
Ce valori lingvistice pot fi utilizate?
Care sunt
gradele de
apartenenta ale
valorii de 163
cm, la fiecare
mf?
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
23 / 27
Operatii cu multimi fuzzy
Intersectia XxxBxAxBA )()()(
Ce operator putem folosi pentru conectivul logic “si” ?
XxxxxBxAxBA BA ))(),(min()()()(
demo matlab – intersectie.m
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
24 / 27
Exemplificarea
intersectiei
pentru mf
discrete:
4
2.0,
3
3.0,
2
0.1,
1
0.1,
0
9.0,
1
3.0,
2
1.0
4
4.0,
3
3.0,
2
6.0,
1
0.1,
0
6.0,
1
3.0,
2
6.0
B
A
4
2.0,
3
3.0,
2
6.0,
1
0.1,
0
6.0,
1
3.0,
2
1.0BA
Pentru conectivul logic “si” se pot utiliza si alti operatori:
Operatorul utilizat pentru implementarea conectivului logic “si” trebuie sa
fie o norma triunghiulara (t - norma)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
25 / 27
Definitie: O norma triunghiulara (t-norma) este o aplicatie
1] [0,1] [0,x]1,0[: T
simetrica, asociativa, nedescrescatoare in raport cu oricare argument si
T(a, 1) = a, pentru orice a[0, 1]. Cu alte cuvinte satisface proprietatile:
T(x, y) = T(y, x) (simetrie)
T(x, T(y, z)) = T(T(x, y), z) (asociativitate)
T(x, y) ≤ T(x*, y*) daca x ≤ x* si y ≤ y* (monotonie)
T(x, 1) = x, pentru orice x [0, 1] (identitate)
Facultativ
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
26 / 27
Reuniunea XxxBxAxBA )()()(
Ce operator putem folosi pentru conectivul logic “sau” ?
XxxxxBxAxBA BA ))(),(max()()()(
demo matlab – reuniune.m
Se utilizeaza la operatia de
agregare in SLF
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
27 / 27
Exemplificarea
reuniunii
pentru mf
discrete:
4
2.0,
3
3.0,
2
0.1,
1
0.1,
0
9.0,
1
3.0,
2
1.0
4
4.0,
3
3.0,
2
6.0,
1
0.1,
0
6.0,
1
3.0,
2
6.0
B
A
4
4.0,
3
3.0,
2
0.1,
1
0.1,
0
9.0,
1
3.0,
2
6.0BA
Pentru conectivul logic “sau” se pot utiliza si alti operatori:
Operatorul utilizat pentru implementarea conectivului logic “sau” trebuie
sa fie o co-norma triunghiulara (t - conorma)
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
28 / 27
Definitie: O co-norma triunghiulara (t-conorma) este o aplicatie
1] [0,1] [0,x]1,0[: S
simetrica, asociativa, nedescrescatoare in raport cu oricare argument si
S(a, 0) = a, pentru orice a[0, 1]. Cu alte cuvinte satisface proprietatile:
S(x, y) = S(y, x) (simetrie)
S(x, S(y, z)) = S(S(x, y), z) (asociativitate)
S(x, y) ≤ S(x*, y*) daca x ≤ x* si y ≤ y* (monotonie)
S(x, 0) = x, pentru orice x [0, 1] (identitate)
Daca T este o t-norma atunci egalitatea
)1,1(1),( baTbaS
defineste o t-conorma si spunem ca S este derivat din T
Facultativ
Tehnici de inteligenţă computaţională în electronică, G. Oltean
LOGICA FUZZY
29 / 27
ComplementCe operator putem folosi pentru
complement (negare) ?XxxxA A ),(1)(
Sunt
satisfacute
legile din
teoria
multimilor
clasice ?
• legea tertului exclus
• legea noncontradictiei
• legile lui De Morgan BABA
OAA
XAA
• NU (Lukasiewicz -da)
• NU (Lukasiewicz -da)
• DA
demo matlab –
complement.m