LÓGICA FUZZY
Também conhecido como lógica nebulosa ou difusa
Introdução
• Lógica que permite quantificar suas possibilidades.
• Base para se trabalhar com imprecisões
• Tradicionalmente, uma proposição lógica tem dois extremos: ou é completamente verdadeiro ou é
completamente falso, binário.
• Entretanto, na lógica Fuzzy, uma premissa varia em
grau de verdade de 0 a 1, o que leva a ser
Introdução
• Surgiu com Lofti A. Zadeh, Berkeley (1965) – Para tratar do aspecto vago da informação
– 1978 – desenvolveu a Teoria das Possibilidades
• menos restrita que a noção de probabilidade
– Objetivo: ligar a linguística e a inteligência
Introdução
• Considerando a seguinte sentença: Joãozinho é alto.
• A proposição é verdadeira para uma altura de Joãozinho 1.65m?
• O termo linguístico “alto” é vago, como interpretá-lo?
Introdução
• Lógica convencional: sim/não, verdadeiro/falso
• Lógica Fuzzy (difusa ou nebulosa):
– Refletem o que as pessoas pensam
– Tenta modelar o nosso senso de palavras, tomada de decisão ou senso comum
– Trabalha com uma grande variedade de informações
Características
• Baseia-se em palavras, ou seja, os valores verdades são expressos linguisticamente:
– Baixo, médio, alto, quente, frio, ..., e outros usados para definir estados de uma variável.
• Possui vários modificadores de predicados: – Muito, mais ou menos, pouco, bastante.
• Possui também um amplo conjunto de quantificadores:
Funções de Pertinência
• Todo um conjunto nebuloso é definido pela sua função de pertinência a qual mapeia os elementos de X para um
Funções de Pertinência
• Função Triangular:
• Função Trapezoidal:
• Função Gaussiana:
Conjuntos Fuzzy
• Definição formal: Um conjunto fuzzy A em X é expresso como um conjunto de pares ordenados:
• Um conjunto fuzzy é totalmente caracterizado por sua
Conjuntos Fuzzy
• A função de pertinência µA(X) indica o grau de
compatibilidade entre X e o conceito expresso por A:
– µA(x) = 1, indica que x é completamente compatível com
A;
– µA(x) = 0, indica que x é completamente incompatível
com A;
– 0 < µA(x) < 1, indica que x é parcialmente compatível com A, com grau µA(x).
• Enquanto a lógica clássica:
– pode ser visto como um conjunto nebuloso específico;
– µA{0,1} pertinência do tipo “tudo ou nada”, “sim ou não” e não
Variáveis Linguísticas
• São o centro da técnica de modelagem dos sistemas nebulosos.
• Tripla (V,X,T) onde:
– V é o nome da variável linguística;
– X é o conjunto de referência;
– T é o conjunto de valores linguísticos que a variável V pode assumir;
0.2 0.8
(Variável linguística)
(Conjunto de Ref.)
Variáveis Linguísticas
• Uma variável linguística possui valores que não são números, mas sim palavras ou frases na
linguagem natural.
• Exemplo de variáveis linguísticas do conjunto altura com qualificadores:
Regras Nebulosas
• Permitem que a linguagem da modelagem fuzzy expresse a semântica usada por
especialistas. Forma mais comum: SE/ENTÃO:
SE <antecedente> ENTÃO <consequente>
• Exemplo:
– SE “duração do projeto” == “não muito longo”
Operações sobre conjuntos Fuzzy
• A palavra “não” é dita “negação” da
sentença original. (complemento)
– NÃO-fuzzy( x ) = ( 1 – x ) (Zadeh, 1965)
• A palavra “e” representa a Intersecção de duas sentenças.
– E-fuzzy( x, y ) = Mínimo( x, y ) (Zadeh, 1965)
• A palavra “ou” representa a União das duas sentenças.
Operações sobre conjuntos Fuzzy
• Suponha que desejássemos representar de forma fuzzy a altura de Alice(1,65 m), Bob (1,75 m), Carlos(2,0m) e Denise(1,45 m). Nossas proposições serão da forma "X é alto", e serão:
– A = Alice é alta, μ(A) = 0,55
– B = Bob é alto, μ(B) = 0,75
– C = Carlos é alto, μ(C) = 1,0
– D = Denise é alta, μ(D) = 0,0
• Usando os operadores fuzzy, podemos escrever sentenças como:
– Carlos não é alto
• NÃO(C), μ(NÃO(C))= 1,0 - μ(C) = 0,0 – Bob não é alto,
• NÃO(B), μ(NÃO(B))= 1,0 - μ(B) = 0,25 – Denise é alta e Alice é Alta,
Operações sobre conjuntos Fuzzy
• A lógica está claramente associada a teoria dos conjuntos. Cada
afirmação (do tipo "Carlos é alto") representa na verdade o grau de pertinência de Carlos ao conjunto de pessoas altas.
• Isso permite que conjuntos como "alto" e "baixo" sejam tratados de forma separadas e afirmações como "Carlos é alto (0,75)" e "Carlos é baixo (0,5)" sejam válidas simultaneamente.
Sistemas Especialistas Fuzzy
• São sistemas baseados em regras que usam lógica Fuzzy para raciocinar sobre os dados
• Possuem a habilidade de codificar
conhecimento de forma próxima à usada
pelos especialistas
Sistema Fuzzy: Exemplo
• Determinar o tempo de irrigação de uma plantação (em minutos), de acordo com a
Passo 1: Fuzzificação
• Etapa onde as variáveis linguísticas são definidas de forma subjetiva.
• Engloba
– Análise do Problema – Definição das Variáveis
– Definição das Funções de pertinência – Criação das Regiões
• Na definição das funções de pertinência para cada variável, diversos tipos de espaço podem ser gerados:
Passo 1: Fuzzificação
• Se temperatura é fria e umidade é alta então irrigação é pequeno;
• Se temperatura é média e umidade é média então irrigação é médio;
• Se temperatura é fria e umidade é média então irrigação é médio;
Passo 1: Fuzzificação
• Valores numéricos são transformados em
graus de pertinência para um valor linguístico:
• Exemplo:
– Temperatura = 16 C
– Umidade = 58.5 %
Passo 2: Inferência
• Etapa na qual as proposições (regras) são definidas e depois são examinadas paralelamente.
• Engloba:
– Definição das proposições – Análise das Regras
Passo 2: Inferência
• Para Temperatura = 16 (C) e umidade = 58.5 (%), temos:
– Temperatura é fria com µt(16) = 0.4
– Temperatura é média com µt(16) = 0.6
– Temperatura é quente com µt(16) = 0
– Umidade é baixa com µu(58.5) = 0
– Umidade é média com µu(58.5) = 0.7
Passo 2: Inferência
• Se temperatura é fria e umidade é alta então irrigação é pequeno
– temperatura é fria = µt(16) = 0.4 – umidade é alta = µu(58.5) = 0.3
– irrigação é pequeno: E-fuzzy(0.4, 0.3) = Mínimo(0.4, 0.3) = 0.3
• Se temperatura é média e umidade é média então irrigação é médio
– Irrigação é médio: E-fuzzy(0.6, 0.7) = Mínimo(0.6, 0.7) = 0.6
• Se temperatura é fria e umidade é média então irrigação é médio
– Irrigação é médio: E-fuzzy(0.4, 0.7) = Mínimo(0.4, 0.7) = 0.4
• Se temperatura é quente e umidade é baixa então irrigação é grande.
Passo 2: Inferência
• Implicação:
1. irrigação é pequeno: 0.3
2. Irrigação é médio: 0.6
3. Irrigação é médio: 0.4
Passo 2: Inferência
• Quando várias regras inferem a mesma variável linguística, os resultados são agregados
• Obtém um único conjunto difuso, que descreve a saída do sistema
• Pra quê?
– Por que se espera que o sistema difuso produza uma única decisão.
• Usualmente, o operador de agregação é uma
Passo 3: Defuzzificação
• Etapa no qual as regiões resultantes são convertidas em valores para a variável de saída do sistema.
• Esta etapa corresponde a ligação funcional entre as regiões Fuzzy e o valor esperado.
• Dentre os diversos tipos de técnicas de defuzzificação destaca-se:
– Centróide
– Primeiro dos máximos
– Média dos máximos
Passo 3: Defuzzificação
• Centróide:
– O valor da saída é o centro de gravidade.
• Método do Primeiro dos Máximos:
– O valor da saída é o primeiro ponto entre os valores que tem o maior grau de pertinência inferido pelas regras;
• Método do Média dos Máximos:
Passo 3: Defuzzificação
z0 z0 z0
Passo 3: Defuzzificação
Primeiro MAX: O valor de saída seria 50 min de irrigação
Sistema Fuzzy: Outro exemplo
• Objetivo do sistema:
– um analista de projetos de uma empresa quer determinar o risco de um determinado projeto.
– Quantidade de dinheiro e de pessoas envolvidas no projeto.
• Base de conhecimento
– Se dinheiro é adequado ou pessoal é baixo então risco é pequeno.
– Se dinheiro é médio e pessoal é alto, então risco é normal.
– Se dinheiro é inadequado, então risco é alto .
• Problema:
Passo 1: Fuzzificação
Dinheiro/risco inadequado Médio Adequado Pessoal Baixo Alto Gr au d e pe rti n ên ci a Gr au d e pe rti n ên ci a 1 1 35 0.25 0.75 0.20 0.80 60• µi(35) = 0,75
• µm(35) = 0,25
• µad(35) = 0
• µb(60) = 0,20
Passo 2: Inferência
• Se dinheiro é adequado ou pessoal é baixo então risco é pequeno
– dinheiro é adequado = µad(35) = 0
– pessoal é baixo = µb(60) = 0,20
– risco é pequeno: MAX(µad(35), µb(60)) = 0,20
• Se dinheiro é médio e pessoal é alto, então risco é normal
– dinheiro é médio = µm(35) = 0,25
– pessoal é alto = µa(60) = 0,80
– risco é normal: MIN(µm(35), µa(60)) = 0,25
• Se dinheiro é inadequado, então risco é alto
Passo 2: Inferência (graficamente)
Pequeno Normal Alto
Pequeno Normal Alto
Passo 2: Inferência
• Conjunto de valores obtidos aplicando as regras:
1. risco é pequeno: 0,20
2. risco é normal: 0,25
Passo 3: Defuzzificação
• Vamos utilizar o centro de gravidade dessa vez para obter a saída:
Risco Gr au d e pe rti n ên ci a 1 0.75 0.20
10 20 30 40 50 60 70 80 90 100
Passo 3: Defuzzificação
• Seja C a função de calculo do centróide. De
forma discreta, temos:
C = σσµµr 𝑥 𝑥
r 𝑥
C = σµr 𝑥 𝑥
σµr 𝑥 =
10+20+30+40 ∗0,2+ 50+60+70 ∗0,25+ 80+90+100 ∗0,75
0,2+0,2+0,2+0,2+0,25+0,25+0,25+0,75+0,75+0,75 = 70,4
Risco Gr au d e pe rti n ên ci a 1 0.75 0.20
10 20 30 40 50 60 70 80 90 100
Centróide: O valor de saída seria 70,4%
Aplicações
• Sistemas baseados em lógica fuzzy podem ser usado para gerar estimativas, tomadas de
decisão, sistemas de controle mecânico... – Automação e controle
– Previsão de séries temporais
– Reconhecimento de padrões
– Automação industrial
Aplicações
• O Japão é um dos maiores utilizadores e difusores da lógica fuzzy.
– O metrô da cidade de Sendai utiliza desde 1987 um sistema de controle fuzzy.
– Aspiradores de pó e máquinas de lavar da empresa Matsushita
-carrega e ajusta automaticamente à quantidade de detergente necessário, a temperatura da água e o tipo de lavagem.
– TVs da Sony utilizam lógica fuzzy para ajustar automaticamente o contraste, brilho, nitidez e cores.
– A Nissan utiliza lógica fuzzy em seus carros no sistema de transmissão automática e freios antitravamento.
– Mitsubishi tem um ar condicionado industrial que usa um controlador fuzzy. Economiza 24% no consumo de energia.
– Câmeras e gravadoras usam fuzzy para ajustar foco automático e
Bibliotecas Fuzzy
• Softwares para auxílio a projeto e implementação de Sistemas Fuzzy:
– Fuzzy Toolbox do Matlab
– SciFLT for Scilab (free)
– X-Fuzzy (free)
– FuzzyClips (free, API para Java)
– FLIE (Fuzzy Logic Inference Engine) do Fabro...
Referências
• https://www.ime.unicamp.br/~valle/Teaching/M S580/
• https://www.mathworks.com/products/fuzzy-logic.html
• https://atoms.scilab.org/
• http://www2.imse-cnm.csic.es/Xfuzzy/
• https://en.wikipedia.org/wiki/FuzzyCLIPS
• https://github.com/joaofabro/FLIE