Fuzzy Logic (Lógica Difusa) Adriano Zanette Eduardo Aquiles Radanovitsck William Wolmann Gonçalves Apresentação realizada para a disciplina de Lógica para Computação 2006/2 – Prof. Marcus Ritt Breve história da Lógica Fuzzy - O conceito de conjuntos nebulosos (fuzzy sets) foi introduzido por Lofti Asker Zadeh em meados da década de 60. - Ele observou que recursos tecnológicos, baseados na lógica booleana, não eram suficientes para automatizar atividades relacionadas a problemas de natureza industrial, biológica ou química. - Em 1974, o Prof. Ebrahim Mamdani conseguiu controlar uma máquina a vapor com tipos diferentes de controladores aplicando o raciocínio fuzzy. POR QUE LÓGICA FUZZY? Desvantagens da lógica booleana: - É impossível descrever a realidade em sua totalidade utilizando apenas os extremos, apenas o falso ou o verdadeiro; - A modelagem de inferências é dificultada; - Na lógica booleana, não há o “meio-termo”; entretanto, nosso raciocínio e a linguagem natural usa esse “meio-termo” na tomada de decisões (lei do meio excluído); - Não se aplica a operações com conceitos subjetivos; - Logo, acaba sendo imprecisa. imprecisa George Boole POR QUE LÓGICA FUZZY? Vantagens da Lógica Difusa: - A Lógica Fuzzy está baseada em palavras e não em números, ou seja, os valores verdades são expressos lingüisticamente. - Melhor tratamento das imprecisões; - Facilidade na especificação das regras de controle, em linguagem próxima à natural; - O uso de variáveis lingüísticas nos deixa mais perto do pensamento humano; - Simplifica a solução de problemas; - Proporciona um rápido protótipo dos sistemas; - Simplifica a aquisição da base do conhecimento; - Requer poucas regras, poucos valores e poucas decisões. Um Rápido Exemplo... Admitindo se ter 3 pessoas de alturas diferentes: pessoa A com 1,50 de altura, pessoa B com 1,79 de altura e pessoa C com 1,80 de altura. E levando em consideração que: - Pessoa alta: >= a 1,80 de altura; - Pessoa baixa: < que 1,80 de altura. Seria a pessoa B, uma pessoa de baixa estatura? Nosso processo de inferência considera que 2 pessoas com uma diferença de 1cm de altura sejam “classificadas”, em relação a sua estatura, diferentemente? Se não, como podemos resolver esse problema? Modelando um raciocínio real que considera a pertinência dessa pessoa não em apenas um conjunto, mas nos dois ao mesmo tempo, e, em cada um, um grau diferente de “o quão” ela é membro. Um Rápido Exemplo... 1 Pessoa Baixa Pessoa Alta 0 1,79 1,80 Altura “O quão” a pessoa B seria dos dois conjuntos: Conjunto Pessoas Altas: 0,98 Conjunto Pessoas Baixa: 0,02 Logo, ela é suficientemente mais alta do que baixa, porém não é totalmente alta, nem totalmente baixa. Recuperamos o “meio” excluído! Aplicamos a idéia básica da lógica fuzzy! Não trabalhamos somente com os extremos, mas sim com o intervalo [0,1]. Aplicando na Indústria... Agora, pense em um sistema de refrigeração ou ventilação, que tem de controlar a temperatura de um certo ambiente e para isso possui as seguintes regras: SE ambiente está Frio OU ambiente está Fresco ENTÃO aumentar temperatura; SE ambiente está Morno ENTÃO manter temperatura; SE ambiente está Quente ENTÃO diminuir temperatura; Conjuntos Como percebemos, as regras são modeladas apenas por SE e ENTÃO, ENTÃO sem “SENÃOS”. Isso porque a temperatura de uma sala pode estar na intersecção de dois conjuntos. Assim, a saída passará por mais de um conseqüente. conseqüente As mudanças de temperaturas são graduais graduais! Percebeu a diferença? Analisando os gráficos em relação às temperaturas de um determinado ambiente, percebemos que os conjuntos bivalentes são mutuamente exclusivos, enquanto que a Teoria dos Conjuntos Difusos permite a transição entre conjuntos, conjuntos modelando uma possível ocorrência do mundo real. Imagens retiradas do site: site: http://www.dei.unicap.br/%7Ealmir/seminarios/99 http://www.dei.unicap.br/%7Ealmir/seminarios/99.1/ //www.dei.unicap.br/%7Ealmir/seminarios/99.1/Logica_Difusa/index .1/Logica_Difusa/index. Logica_Difusa/index.htm Raciocínio em Sistemas Fuzzy Não há como explicar o ‘funcionamento da lógica fuzzy’ apenas é possível entender seu raciocínio, conhecido como raciocínio aproximado que é dividido em quatro etapas*: 1°) 2°) 3°) 4°) Fusificação; Inferência; Combinação; Desfuzzificação (vários métodos). Predicados Quente, alto, grande, médio, frio, forte, pequeno, morno... Modificadores Muito, mais, pouco, menos, bastante, nenhum... Quantificadores Poucos, vários, muitos, usualmente, em torno de... Operação Equivalente na Lógica Booleana Definição União x OR y máximo(x, y) Intersecção x AND y mínimo(x,y) Complemento NOT x (1 - x) Implicação IF variável THEN ação ELSE outra ação IF temperatura alta THEN ... IF temperatura baixaTHEN ... IF temperatura media THEN… * Adaptação realizada para resumir as, originais, 5 etapas. Voltando ao segundo exemplo... Frio Fresco Morno 1 Quente 0,7 A temperatura estando em, no 1º caso, 1°C e, no segundo caso, 11°C, como será o raciocínio de nosso sistema? 0,3 0 -10 0 10 20 30 Temperatura °C Regras: IF ambiente está Frio OR ambiente está Fresco THEN aumentar temperatura; IF ambiente está Morno THEN manter temperatura; IF ambiente está Quente THEN diminuir temperatura; 2º) Caso: 1º) Caso: F(1ºC)Frio = 0,3 F(11ºC)Fresco = 0,3 F(1°C)Fresco = 0,7 F(11°C)Morno = 0,7 >> max(F(1ºC)Frio, F(1°C)Fresco) = 0,7 >> max(F(11ºC)Frio, F(11°C)Fresco) = 0,3 Portanto, aumentar temperatura = 0,7 Logo, aumentar temperatura = 0,3 e manter temperatura = 0,7. 0,7 F(11ºC)Frio = 0 Desfuzzificando as saídas, em cada caso obteremos um valor que será a nossa “ação” final para o mesmo, podendo resultar também na intersecção de duas ações com um valor para cada uma delas. Aplicações da “Fuzzy Logic” Câmeras Fotográficas e Processamento Digital de Imagens Robótica LavaLava-louças Elevadores “RiceRice-Cookers” Cookers” Máquinas de Lavar Roupas Aplicações da “Fuzzy Logic” I, Robot Reconhecimento de Padrões LOTR – A Soc. Do Anel Softwares que trabalham com as interações de agentes (comportamentos de acordo com o que está em volta). LOTR – As Duas Torres Remote Sensing Cruise Control Nárnia Perguntas?