LOGICA FUZZY Logica fuzzy - bel.utcluj.ro · “Logica fuzzy nu este exact genul de termen pe care...

30
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

Transcript of LOGICA FUZZY Logica fuzzy - bel.utcluj.ro · “Logica fuzzy nu este exact genul de termen pe care...

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

Tehnici de inteligenţă computaţională în electronică, G. Oltean

LOGICA FUZZY

30 / 27

Exercitiu