You are on page 1of 16

MEDII DE PROGRAMARE IN IA Cursul 3 Calcule logice fuzzy n Guru

Nicolae T and areanu

Facultatea de Matematic a si Informatic a, Universitatea din Craiova, str.A.I.Cuza 13, 1100-Craiova, Romania e-mail: rcai@central.ucv.ro

Obiective

Obiectivul acestui capitol este urm atorul: nt elegerea corect a a calculelor logice fuzzy In vederea atingerii acestor obiective cursantul trebuie s a execute sub Guru toate exemplele prezentate si s a urm areasc a explicat iile aferente din text.

Factori de certitudine pentru expresii logice

Utiliz and expresii logice putem obt ine variabile care au simultan valorile true si f alse. Astfel, dac a x = {1, 2, 3} atunci expresia x < 2 se evalueaz a la {TRUE, FALSE} deoarece 1 e mai mic ca 2, dar 2 si 3 nu mai sunt n aceea si relat ie cu 2. S a presupunem de asemenea c a purt am urm atorul dialog: Guru> x:={TRUE cf 60, false cf 70}; Guru> y:={TRUE cf 50, false cf 40}; Guru> z:=x and y ; ?z In cazul E.CFCO= "M" si E.CFJO = "P" r aspunsul dat de GURU este:

3 FALSE with certainty 70 TRUE with certainty 30 S a consider am de asemenea urm atorul exemplu: Guru>x:= {5 cf 90, 8 cf 70 }; Guru>y:= { 7 cf 60, 6 cf 52 }; z:= x>y; ?z Presupunem E.CFJO= "P" si E.CFCO= "M". Calculele decurg a sa cum se arat a n Tabelul 1. Comparat ia 5 cf 90 > 7 cf 60 5 cf 90 > 6 cf 52 8 cf 70 > 7 cf 60 8 cf 70 > 6 cf 52 Valoarea (prin E.CFJO) f alse cf 54 f alse cf 47 true cf 42 true cf 36 true cf 42 Valoarea lui z (prin E.CFCO) f alse cf 54

Tabelul 1: Calcule logice fuzzy


Calcule logice fuzzy

Tabelul 2 si Tabelul 3 precizeaz a valorile si metodele de calcul a certitudinii pentru expresiile X AND Y si X OR Y. de expresii rela- tionale si logice mpreun a cu modul de calcul al factorilor de certitudine:
Certitudinea pentru AND

Pentru exemplicare, vom prezenta urm atoarele tipuri Certitudinea pentru OR

4 true true false unknown true joint false cf x false false cf y false false unknown unknown conrmative cf x cf y unknown unknown

unknown false

Tabelul 2: Calculul certitudinii pentru AND

Dac a o expresie relat ional a cont ine numai constante, f ar a s a cont in a variabile, atunci ea are factorul de certitudine 100. De exemplu, expresia relat ional a 77 > 45 are valoarea logic a true cu factorul de certitudine 100. Expresia relat ional a 77 < 15 are valoarea logic a f alse cu factorul de certitudine 100. Dac a expresia relat ional a cont ine variabile fuzzy sau constante fuzzy, atunci valoarea de adev ar a ei este o valoare fuzzy n care true si f alse au anumit i factori de certitudine. Factorii de certitudine a elementelor care compun expresia relat ional a intr a ntr-un algoritm de calcul pentru obt inerea facto-

5 true true false unknown true false cf y true cf y Tabelul 3: Calculul certitudinii pentru OR false true false joint unknown unknown unknown true cf x unknown

conrmative cf x

rilor de certitudine globali. S a consider am urm atoarea secvent a de atribuiri: x:= 26 cf 54; y:= 14 cf 70; z:= x>y; Deoarece 26 > 14, valoarea logic a a variabilei z va true, dar cu un factor de certitudine care se va calcula prin metoda joint (adic a n funct ie de valoarea lui E.CF JO). Dac a E.CFJO= "M", atunci factorul de certitudine pentru z va 54, adic a M IN (54, 70). R aspunsul va : TRUE with certainty 54 Dac a E.CFJO="P" atunci rezultatul va TRUE with certainty 38

6 Dac a dorim s a execut am secvent a de comenzi: x:= 26 cf 54; y:= 14 cf 70; z:= x<y; atunci rezultatul a sat va FALSE with certainty 54 pentru cazul E.CFJO= "M" si FALSE with certainty 38 pentru E.CFJO="P".

Exemple de combinare a valorilor fuzzy

In aceast a sect iune vom prezenta c ateva exemple de combinare a valorilor fuzzy. Un bun exercit iu pentru cititor este s a descifreze urm atorul program ipf utilizat pentru a evident ia principalele aspecte legate de calculul cu valori fuzzy: \marginpar{\footnotesize{\emph{Variabila #DSKOUT}}} #DSKOUT="fuz.txt"; E.ODSK=TRUE; E.OFUZ=10;

7 E.BEST=15; E.NUMV=10; LOCAL x,y,t,z1,z2,z3,z4,z5; x={2 cf 30, 5 cf 40, 6 cf 20}; y={4 cf 20, 7 cf 60, 6 cf 70}; t={2 cf 15, 8 cf 90, 5 cf 83}; output "VARIABILA x este:"; E.OCF=TRUE; output x; E.OCF=FALSE; output " "; output "VARIABILA y este:"; E.OCF=TRUE; output y; E.OCF=FALSE; output " "; z1=x+y; output "E.OCF=FALSE; Suma lui x cu y este: "; output z1; output " "; output "E.OCF=TRUE; Suma lui x cu y este: "; E.OCF=TRUE; output z1; E.OCF=FALSE; output " "; y+=x; output "Rezultatul evaluarii y+=x este:"; E.OCF=TRUE; output y; E.OCF=FALSE; output " "; output "VARIABILA t este:"; E.OCF=TRUE; output t;

8 E.OCF=FALSE; output " "; t-=x; output "Rezultatul evaluarii t-=x este:" E.OCF=TRUE; output t; E.OCF=FALSE; output " "; z2=x>y; output "Evaluarea z2 a expresiei x>y este:"; E.OCF=TRUE; output z2; E.OCF=FALSE; output " "; z3={TRUE cf 40, FALSE cf 70}; output "VARIABILA z3 este:"; E.OCF=TRUE; output z3; E.OCF=FALSE; output " "; z4=z2 AND z3; output "Evaluarea z4 a expresiei z2 AND z3 este:"; E.OCF=TRUE; output z4; E.OCF=FALSE; output " "; z5=NOT z4; output "Negatia lui z4 este: "; E.OCF=TRUE; output z5; E.CFJO="P"; local a,b,c; a={1 cf 40, 2 cf 80, 3 cf 65}; b={200 cf 60, 300 cf 70};

9 E.OCF=FALSE; output " "; output "E.CFJO=\"P\""; output "VARIABILA a este:" E.OCF=TRUE; output a; E.OCF=FALSE; output " "; output "VARIABILA b este:"; E.OCF=TRUE; output b; E.OCF=FALSE; output " "; c=a*b; output "Rezultatul a*b este:"; E.OCF=TRUE; output c; Comenzile #DSKOUT="fuz.txt"; si E.ODSK=TRUE; sunt utilizate pentru a preciza numele fuz.txt a unui sier n care se vor depune rezultatele programului. Redirectarea ie sirii este specicat a prin setarea variabilei utilitare E.ODSK. Cont inutul sierului fuz.txt este urm atorul: VARIABILA x este: 5.00 with certainty 2.00 with certainty 6.00 with certainty VARIABILA y este: 6.00 with certainty 70 40 30 20

10 7.00 with certainty 4.00 with certainty 60 20

E.OCF=FALSE; Suma lui x cu y este: 11.00 12.00 9.00 8.00 10.00 6.00 13.00 E.OCF=TRUE; Suma lui x cu y este: 11.00 with certainty 12.00 with certainty 9.00 with certainty 8.00 with certainty 10.00 with certainty 6.00 with certainty 13.00 with certainty Rezultatul evaluarii y+=x este: 6.00 with certainty 7.00 with certainty 70 60 40 40 30 30 20 20 20

11 5.00 with certainty 2.00 with certainty 4.00 with certainty VARIABILA t este: 8.00 with certainty 5.00 with certainty 2.00 with certainty Rezultatul evaluarii t-=x este: 8.00 with certainty 5.00 with certainty 2.00 with certainty 90 60 15 90 83 15 40 30 20

Evaluarea z2 a expresiei x>y este: FALSE with certainty TRUE with certainty VARIABILA z3 este: FALSE with certainty TRUE with certainty 70 40 40 30

Evaluarea z4 a expresiei z2 AND z3 este:

12 FALSE with certainty TRUE with certainty Negatia lui z4 este: TRUE with certainty FALSE with certainty E.CFJO="P" VARIABILA a este: 2.00 with certainty 3.00 with certainty 1.00 with certainty VARIABILA b este: 300.00 with certainty 200.00 with certainty Rezultatul a*b este: 600.00 with certainty 400.00 with certainty 900.00 with certainty 300.00 with certainty 200.00 with certainty 56 48 46 28 24 70 60 80 65 40 70 30 70 30

13

Figura 1: Execut ia lui cf1.ipf

4
jos:

Teme

TEMA nr. 4.1 Considerat i programul cf1.ipf de mai

E.OFUZ=3; x={25 cf 40,-7 cf 70,2 cf 20,10 cf 80}; ?x;

Explicat i rezultatele a sate prin execut ia lui, prezentate n gura 1. TEMA nr. 4.2 Considerat i programul cf2.ipf de mai jos:

14

Figura 2: Execut ia lui cf2.ipf E.OFUZ=3; E.OCF=TRUE; x={25 cf 40,-7 cf 70,2 cf 20,10 cf 80}; ?x;

Explicat i rezultatele a sate prin execut ia lui, prezentate n gura 2. TEMA nr. 4.3 Considerat i programul cf3.ipf de mai jos: E.OFUZ=3; E.OCF=TRUE; E.BEST=2;

15

Figura 3: Execut ia lui cf3.ipf x={25 cf 40,-7 cf 70,2 cf 20,10 cf 80}; y={5 cf 40,3 cf 70,8 cf 20,-5 cf 80}; z=x+y; ?z;

Explicat i rezultatele a sate prin execut ia lui, prezentate n gura 3. TEMA nr. 4.4 La execut ia programului de mai jos E.OCF=TRUE; E.BEST=3; E.OFUZ=5;

16

Figura 4: Execut ia lui log1.ipf x:={10 cf 60,20 cf 70,-15 cf 10,65 cf 30}; a:=x+1; ?a y={20 cf 50,80 cf 40}; z={TRUE cf 10,FALSE cf 20}; u=x < y; ?u; t=u and z; ?t se obt in rezultatele din Figura 4. Explicat i rezultatele a sate.

You might also like