Logo Passei Direto

A maior rede de estudos do Brasil

Grátis
65 pág.
seminarioUnifal2014

Pré-visualização | Página 1 de 2

LÓGICA FUZZY 
IMPLEMENTAÇÃO COMPUTACIONAL 
DANILO MACHADO PIRES 
danilo.pires@unifal-mg.edu.br 
 É uma teoria matemática que pode ser entendida como uma 
generalização da lógica booleana. 
 
 Possibilita tratar de um modo mais adequado expressões 
inerentes a comunicação humana. 
 
 Criada por Loft Zadeh em 1965. 
 
 
 
 Pode sistematicamente traduzir termos difusos da 
comunicação humana em valores compreensíveis por 
computadores 
 
 O conceito de dualidade “Bivalência” 
 
 
 
 
 
L. fuzzy Probabilidade 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Incerteza 
Ocorrência do evento Definição do evento 
? 
Conjunto pessoas 
ricas 
Conjunto das pessoas 
altas 
Conjunto dos bons 
alunos 
? 
? ? 
? ? 
? 
? ? 
? ? 
? 
? ? 
? 
 São rígidos com pertinência {0,1} 
 
 
 
 
 
 
 
 
 
 
 
 São flexíveis com pertinência [0,1] 
 
 
 
 
1 
0 
1 
0 
10 50 100 10 50 100 
1 se A
( )
0 se x A
A
x
f x

 

( ) [0,1]A x 
Conjunto Clássico Conjunto Fuzzy 
1 1 
µ(x) X(x) 
FUZZY CLÁSSICO 
Baixo Médio Alto 
170 180 Altura (cm) 
Indivíduo Altura Conjunto 
BAIXO 
Conjunto 
MÉDIO 
Conjunto 
ALTO 
Paulo 179cm 0 1 0 
EXEMPLO: Altura de um indivíduo 
Baixo Médio Alto 
Altura (cm) 
Indivíduo Altura Conjunto 
BAIXO 
Conjunto 
MÉDIO 
Conjunto 
ALTO 
Paulo 179cm 0 0,6 0,4 
170 180 179 
0,4 
0,6 
179 
{ ( ) / }AA x x
r 
θ 
a b c a b c d 
1 
Gaussiana Triangular Trapezoidal 
1 1 
1 1 
1 1 
A 
A 
B 
B 
A B 
A B 
µ(x) 
µ(x) X(x) 
X(x) 
)()()()( xxx BABA  
)()()()( xBxAxBA  
A B
A B
FUZZY CLÁSSICO 
1 1 
A 
_
A _
A
_
A
)(1)( xx AA  
µ(x) 
A
_
A
X(x) 
_
A
FUZZY CLÁSSICO 
1 1 
A 
_
A _
A
_
A
)(1)( xx AA  
µ(x) 
_
A A x 
_
A A x 
A
X(x) 
_
A
FUZZY CLÁSSICO 
1 1 
A 
_
A _
A
_
A
)(1)( xx AA  
µ(x) 
A
_
A A  
_
A A  
X(x) 
_
A
FUZZY CLÁSSICO 
Conjuntos Fuzzy normal 
Conjuntos Fuzzy Convexo (todos os níveis são conjuntos fechados) 
O suporte do conjunto é limitado 
 
Para utilizar números fuzzy em qualquer sistema faz 
necessário efetuar operações aritméticas. (Fuzzy 
arithmetic). 
 
Permite “estender” qualquer operação pontual para 
operações envolvendo conjuntos difusos. 
 
Seja A um conjunto fuzzy em X. 
 
 
 
 ( )B f A
:f X Y
( ) sup ( )B x Ay x  
f(x) 
x 
A ={um conjunto fuzzy em X} 
 μA (x) 
A 1 
f(x) 
x 
A ={um conjunto fuzzy em X} 
 μA (x) 
A 1 
f(x) 
x 
 μ
B
 (
y
) 
A ={um conjunto fuzzy em X} 
 μA (x) 
A 1 
f(x) 
x 
 μ
B
 (
y
) 
A ={um conjunto fuzzy em X} 
 μA (x) 
A 1 
f(x) 
x 
 μ
B
 (
y
) 
A ={um conjunto fuzzy em X} 
 μA (x) 
A 1 
f(x) 
x 
 μ
B
 (
y
) 
A ={um conjunto fuzzy em X} 
Conjunto fuzzy 
B=f(A) 
 μB (y) =supxμA(x) 
 μ
B
 (
y
) 
 μA (x) 
B 
A 
1
 
1 
f(x) 
x 
Processador 
De Entrada 
Processador 
De Saída 
Máquina de 
Inferência Fuzzy 
Base de Regras 
Saída Entrada 
Conjunto 
Fuzzy 
Conjunto 
Fuzzy 
Entrada Saída 
X є Rn Yє Rn 
Fuzzificação Defuzzificação 
 
 Processador de entrada (Fuzzificação). 
 
 
Frio Normal Quente Jovem Adulto 
0 30 50 °C 
Temperatura 
μ (T) 
1 1 
anos 
μ (t) 
Faixa Etária 
idoso 
0 30 45 20 
0,4 
 
 Base de Regras. 
 SE....Então 
Exemplo: 
 
 SE (temperatura é baixa) Então (ambiente é frio) 
 SE (Temperatura é baixa) E (umidade é alta) Então (ambiente é desconfortável) 
 
 
 Máquina de inferência. 
 
 
Regra1: SE (x é A1 e y é B1) ENTÃO (z é C1) 
Regra 2: SE (x é A2 e y é B2) ENTÃO (z é C2) 
1 2C C
DEFUZZIFICAÇÃO 
z0 z0 z0 
Centróide Média dos Máximos Menores dos Máximos 
^
1
1
( )
( )
n
A i i
i
n
Ai
i
x x
y x







μ μ μ 
• Objetivo do sistema: 
– Um analista de projetos de uma empresa quer determinar o risco de um determinado 
projeto (%) / Saída 
– Quantidade de dinheiro e de pessoas envolvidas no projeto /Entrada 
• Representação das variáveis de entrada e da variável de saída 
Dinheiro 
Inadequado 
Médio 
Adequado 
Qt. Pessoas 
65 
Baixa Alta 
30 45 60 (%) 35 
Risco 
10 40 60 90 (%) (%) 
Baixo normal Alto 
Problema: Qual o risco em investir 35% do dinheiro 
disponível e utilizar 60% dos funcionários no projeto em 
questão? 
Dinheiro QT. Pessoal Risco 
SE adequado ou baixa Então baixo 
SE médio E alta Então normal 
SE inadequado Então alto 
Base de Regras 
• Passo 1: Fuzzificar 
25,0)35(&75,0)35(  mi 
Dinheiro 
Inadequado 
Médio 
Adequado 
35 
.25 
.75 
Qt. Pessoas 
60 
Baixa Alta 
.2 
.8 
8,0)60(&2,0)60(  ab 
Dinheiro QT. Pessoal Risco 
SE adequado ou baixa Então baixo 
SE médio E alta Então normal 
SE inadequado Então alto 
baixa Alta Alto Baixo 
normal 
Avaliação das regras 
Inadequado Adequado 
Médio 
Dinheiro Qt. Pessoal Risco 
ou 
Ou→máximo 
E→mínimo 
0 
0,2 
 
35 
Inadequado Adequado 
Médio 
baixa Alta Alto 
Alto 
Baixo 
normal 
Baixo 
normal 
baixa 
Avaliação das regras 
Inadequado Adequado 
Médio 
Alta 
Dinheiro Qt. Pessoal Risco 
ou 
e 
Ou→máximo 
E→mínimo 
0 
0,2 
 
0,25 
0,8 
Dinheiro QT. Pessoal Risco 
SE adequado ou baixa Então baixo 
SE médio E alta Então normal 
SE inadequado Então alto 
35 
Alto Baixo 
normal 
Inadequado Adequado 
Médio 
Dinheiro 
Risco 
Ou→máximo 
E→mínimo 
0,75 
Avaliação das regras 
Dinheiro QT. Pessoal Risco 
SE adequado ou baixa Então baixo 
SE médio E alta Então normal 
SE inadequado Então alto 
Risco 
Risco Risco Risco 
37 
Então o risco de 
investimento é de 
70,4% 
Risco 
%4,70
8,3
5,267
75,075,075,025,025,025,02,02,02,02,0
75,0*)1009080(25,0*)706050(2,0*)40302010(



C
37 
Então o risco de 
investimento é de 
70,4% 
Modelagem Fuzzy para Estimar o Volume do Eucalyptus sp. 
 
 40 árvores para ajuste do modelo. 
 Variáveis Lingüísticas 
 (DAP)2,HT: Antecedentes 
 VTC: Conseqüente. 
 Linguagem de programação C++ 
 Funções de pertinência do tipo triangular. 
 Método de inferência Mandani 
 Método de defuzzificação Centróide 
 
 
 
 
 
 
//variável dap ao quadrado(retorna um registro) 
registro DAP(double x){ 
 registro dap; 
 dap.classe1 = pertinenciatri(319.3, 600.3, 881.2,x); 
 dap. classe2 = pertinenciatri(600.3, 881.2, 1162,x); 
 dap. classe3 = pertinenciatri(881.2, 1162, 1443,x); 
 dap. classe4 = pertinenciatri(1162, 1443, 1724,x); 
 dap. classe5 = pertinenciatri(1443, 1724, 2005,x); 
 dap. classe6 = pertinenciatri(1724, 2005, 2286,x); 
 dap. classe7 = pertinenciatri(2005, 2286, 2567,x); 
 return temp; 
 
} 
 
 
 
 
 
 
 
 
Regra Se E ENTÃO 
DAP2 
 
HT 
 
V 
 
Min(DAP,HT,VCC) 
1 dap.classe6 ht.classe5 v.classe6 Min(dap.classe6, ht.classe5, v.classe6) 
2 dap.classe5 ht.classe5 v.classe6 Min(dap.classe5, ht.classe5, v.classe6) 
3 dap.classe3 ht.classe5 v.classe4 Min(dap.classe3, ht.classe5, v.classe4) 
⋮ ⋮ ⋮ ⋮ 
26 dap.classe3 ht.classe3 v.classe3 Min(dap.classe3, ht.classe3, v.classe3) 
 
 
 
 
 
 
 
 
Regra Se E ENTÃO 
DAP2 
 
HT 
 
V 
 
Min(DAP,HT,VCC) 
1 dap.classe6 ht.classe5 v.classe6 Min(dap.classe6, ht.classe5, v.classe6) 
2 dap.classe5 ht.classe5 v.classe6 Min(dap.classe5, ht.classe5, v.classe6) 
3 dap.classe3 ht.classe5 v.classe4 Min(dap.classe3, ht.classe5, v.classe4) 
⋮ ⋮ ⋮ ⋮ 
26 dap.classe3 ht.classe3 v.classe3 Min(dap.classe3, ht.classe3, v.classe3) 
cl1 
e 0,25 
0,8 
cl2 cl3 cl4 ... 
cl1 cl2 cl3 ... cl1 cl2 cl3 cl4 ... 
900 37,5 
 
 
 
 
Regra Se E ENTÃO 
DAP2 
 
HT 
 
V 
 
Min(DAP,HT,VCC) 
1 dap.classe6 ht.classe5 v.classe6 Min(dap.classe6, ht.classe5, v.classe6) 
2 dap.classe5 ht.classe5 v.classe6 Min(dap.classe5, ht.classe5, v.classe6) 
3 dap.classe3 ht.classe5 v.classe4 Min(dap.classe3, ht.classe5, v.classe4) 
⋮ ⋮ ⋮ ⋮ 
26 dap.classe3
Página12