Sunteți pe pagina 1din 10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

FUZZY VS. NON-FUZZY

6.1. Scopul lucrrii


Prin acest exemplu introductiv, se urmrete abordarea aceleiai probleme, prin dou
metode diferite: liniar i fuzzy.
6.2. Enunul problemei
Fie un numr ntre 0 i 10, care reprezint calitatea serviciilor la un restaurant (unde 10
este excelent). ntrebarea este ct ar trebui s fie baciul?
6.3. Abordarea Non-Fuzzy (clasic)
ncepem cu o relaie simpl. Presupunem c, pentru un nivel mediu al serviciului,
baciul este 15% din nota de plat, Adic:
B=0,15
(6.1)
Dac reprezentm grafic aceast valoare n Matlab utiliznd urmtorul program:
a=[0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15]
b=[0 1 2 3 4 5 6 7 8 9 10]
plot (b, a)
xlabel (Serviciu)
ylabel (Bacsis)

rezult figura:

Fig. 6.1.

Dar, aceast scriere nu ine cont de calitatea serviciului. Este nevoie s adugm un nou
termen n ecuaie, adic:
B=0,02N+0,05
(6.2)
unde: N=010 reprezint nota acordat serviciului.
1/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

Aceast funcie arat c baciul crete de la 5% (cnd serviciul este prost), pn la 25%
(cnd serviciul este excelent).
Grafic aceast comand reprezentat cu ajutorul programului:
close all
clear all
clc
i=1
j=1
for N = 0:10
B(i)=0.02*N+0.05
i=i+1;
A(j)=N
j=j+1;
end
plot (A, B)
xlabel (Serviciu)
ylabel (Bacsis)

apare ca n figura 6.2.

Fig. 6.2.

Dac vrem ca baciul s reflecte i calitatea mncrii, atunci trebuie s avem dou seturi
de numere de la 010, unul ataat calitii serviciilor i cellalt ataat calitii mncrii din
restaurant.
Relaia devine:
B = 0,01 (N1 + N 2 ) + 0,05
(6.3)
unde:
N1 nota acordat pentru servicii, N1=010;
N2 nota acordat pentru mncare, N2=010.
Reprezentarea grafic a relaiei 6.3 este prezentat n figura 6.3.
2/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

Fig. 6.3.

Dac i serviciul i mncarea au fost excelente, rezult un baci:


B = 0,01 (10 + 10) + 0,05 = 0,25
adic 25 % din nota de plat.
Ne hotrm s nu inem cont, n aceeai proporie i de serviciu i de mncare. S zicem
c acordm 80% din baci pentru serviciu i 20% pentru mncare.
Relaia de calcul devine:
B = 0,8 (0,02 N1 + 0,05) + 0,2 (0,02 N 2 + 0,05)
(6.4)
Adic, pentru ambele oferte excelente, baciul este de:
B = 0,8 (0,02 N1 + 0,05) + 0,2 (0,02 N2 + 0,05) = 0,8 (0,02 10 + 0,05) + 0,2 (0,02 10 + 0,05) = 0,25
25% din nota de plat.
Reprezentarea grafic a relaiei 6.4 este prezentat n figura 6.4.

Fig. 6.4.

Rspunsul este nc unul prea uniform. Dac dorim un rspuns mai puin plat, putem s
lsm nivelul mediu al baciului de 15% i s ne abadem de la aceast valoare numai dac
serviciul este foarte prost sau foarte bun, adic:
0,01 N + 0,05, pentru N [0,3)

B = 0,15, pentru N [3,7]


(6.5)
0,01 N + 0,15, pentru N (7,10]

Reprezentarea grafic a relaiei 6.5 este prezentat n figura 6.5.


3/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

Fig. 6.5.

Dac lum n considerare i mncarea:


0,8 (0,01 N 1 + 0,05) + 0,2 (0,01 N 2 + 0,05), pentru N 1, 2 [0,3)

B = 0,15, pentru N 1, 2 [3,7]


0,8 (0,01 N + 0,15) + 0,2 (0,01 N + 0,15), pentru N (7,10]
1
2
1, 2

(6.6)

Fig. 6.6.

Se observ c funcia a devenit deja destul de complicat i este dificil de modificat


ulterior.
6.4. Abordarea fuzzy
Facem o list a tuturor factorilor care conteaz n aceast problem i o construim ca pe
un set de reguli:
pentru serviciu
a. Dac serviciul este prost baciul este mic.
b. Dac serviciul este bun baciul este mediu (moderat).
c. Dac serviciul este excelent baciul este generos.
pentru mncare:
d. Dac mncarea este rnced (veche), baciul este mic.
e. Dac mncarea este delicioas, baciul este generos.
Ordinea n care se prezint regulile este arbitrar (nu conteaz care se pune
prima). Combinnd cele dou tipuri de reguli, se obine o singur list:
a. Dac serviciul este prost sau mncarea este veche, baciul este mic.
4/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

b. Dac serviciul este bun, baciul este mediu.


c. Dac serviciul este excelent sau mncarea este delicioas, baciul este generos.
Aceste trei reguli reprezint centrul soluiei. Dac dm o reprezentare matematic acestor
variabile lingvistice (de exemplu ce nseamn baci mediu), vom avea o interfa complet a
sistemului fuzzy.
Exist deci, dou lucruri importante de tiut: cum se face combinarea regulilor i cum se
definesc matematic, variabilele lingvistice.
n figura 6.7. este prezentat reprezentarea grafic asociat cu sistemul fuzzy care rezolv
problema.

Fig. 6.7.

6.5. Concluzii
Utiliznd logica clasic, s-a ajuns la o funcie destul de complicat, care poate cu greu s
fie modificat ulterior i care conduce la un rezultat mai puin precis, dect n cazul utilizrii
logicii fuzzy (suprafaa obinut n figura 6.7 este curbilinie, nu plan, ca n figura 6.6).
n cazul utilizrii logicii fuzzy, se pot oricnd aduga noi reguli, care influeneaz forma
rezultatului.
Funciile create n cazul utilizrii logicii fuzzy, utilizeaz variabile lingvistice (serviciu
prost, mncare bun, baci generos), care au aceeai semnificaie oriunde n lume i sunt
nelese de oricine.

5/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

FUZZY LOGIC TOOLBOX


Scopul lucrrii
Utiliznd informaiile din materialul anterior vom folosi interfaa grafic (GUI
graphical user interface) din modulul Fuzzy Logic Toolbox al aplicaiei Matlab pentru stabilirea
baciului care trebuie dat n funcie de calitatea serviciului i a mncrii.
n modulul Fuzzy Logic Toolbox sunt 5 interfee grafice utilizare pentru construirea,
editarea i observarea unei probleme: Interfaa Fuzzy (Fuzzy Interface System), Editotul Fuzzy
(FIS Editor), Editarea Funciei de Apartenen (Membership Function Editor), Editorul de Reguli
(Rule Editor) i Vizualizarea Regulilor (Rule Viwer).

Enunul problemei:
Considernd un numr ntre 0 i 10, care reprezint calitatea serviciilor la un restaurant
(unde 10 este excelent) i un alt numr ntre 0 i 10 care reprezint calitatea mncrii (unde 10
este excelent) ntrebarea este ct ar trebui s fie baciul?
Rezolvarea problemei const n parcurgerea urmtorilor pai:
1. Se deschide aplicaia Matlab.
2. Se tasteaz comanda fuzzy. Apare interfaa:

6/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

Se constat c exist o singur intrare (imput1) i o singur ieire (output1). Problema


noastr are dou intrri (calitatea serviciului i calitatea mncrii) i o ieire (baciul).
Se mai adaug o nou intrare din meniul EditAdd imput.
3. Se d click pe zona galben de la imput1 i se schimb numele din imput1
serviciu.
4. Se d click pe zona galben de la imput2 i se schimb numele din imput2
mancare.
5. Se d click pe zona albastr de la output1 i se schimb numele din output1
bacsisul.
6. Din meniul File selecteaz Save to workspace as... i n fereastra care apare
Workspace variable scrie n csua alb bacsis i apoi apas butonul OK.

n
n
n
la

n acest moment interfaa de lucru trebuie s arate astfel:

7. Pentru definirea funciilor de apartenen se merge n modulul View Edit


membership functions...
7/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

8. Se selecteaz csua galben a variabilei serviciu. Se seteaz domeniul (Range i


Display Range) la valorile [0 10].
9. Din meniul Edit se selecteaz Add MFs... n fereastra care apare se selecteaz funcia
de apartenen gaussmf i se seteaz valoarea 3 pentru numr de MFs-uri.
10. Se selecteaz curba cu numele mf1 se schimb numele n prost i se seteaz
parametrii la domeniul [1.5 0]. Se selecteaz curba cu numele mf2 se schimb numele n bun i
se seteaz parametrii la domeniul [1.5 5]. Se selecteaz curba cu numele mf3 se schimb numele
n excelent i se seteaz parametrii la domeniul [1.5 10].

11. Se selecteaz csua galben a variabilei mancare. Se seteaz domeniul (Range i


Display Range) la valorile [0 10].
12. Din meniul Edit se selecteaz Add MFs... n fereastra care apare se selecteaz
funcia de apartenen trapmf i se seteaz valoarea 2 pentru numr de MFs-uri..
13. Se selecteaz curba cu numele mf1 se schimb numele n veche i se seteaz
parametrii la domeniul [0 0 1 3]. Se selecteaz curba cu numele mf2 se schimb numele n
delicioasa i se seteaz parametrii la domeniul [7 9 10 10].

14. Se selecteaz csua albastr a variabilei bacsis. Se seteaz domeniul (Range i


Display Range) la valorile [0 30].
15. Din meniul Edit se selecteaz Add MFs... n fereastra care apare se selecteaz
funcia de apartenen trimf i se seteaz valoarea 3 pentru numr de MFs-uri..
16. Se selecteaz curba cu numele mf1 se schimb numele n mic i se seteaz parametrii
la domeniul [0 5 10]. Se selecteaz curba cu numele mf2 se schimb numele n mediu i se
seteaz parametrii la domeniul [10 15 20]. Se selecteaz curba cu numele mf3 se schimb
numele n generos i se seteaz parametrii la domeniul [20 25 30].

8/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

17. Se recurge apoi la editarea regulilor din meniul ViewEdit Rules...


Regulile sunt urmtoarele:
a. If serviciul este prost OR mancarea este veche then basisul este mic.
b. If serviciul este bun then basisul este mediu.
c. If serviciul este excelent OR mancarea este delicioasa then basisul este generos.

Dup scrierea regulilor se poate alege formatul de scriere a regulilor din meniul
Options Format symbolic sau indexed.
n acest moment sistemul fuzzy este complet definit. Pentru a vedea rezolvarea problemei
n fereastra Rule Editor se merge la ViewView Rules...
Se modific cele dou intrri (prin micarea liniilor roii) i n consecin se va
modifica i valoarea baciului.
Pentru a vedea rezolvarea grafic a problemei n fereastra Rule Editor se merge la
ViewView Surface...
9/10

Tehnici de inteligen artificial

Laborator 6 - Fuzzy vs. Non - Fuzzy

10/10