Lógica Fuzzy (Difusa) Jorge Manuel Lage Fernandes [email protected] •Conceito Lógica difusa é uma lógica multivalorada capaz de capturar informações vagas, em geral descritas em uma linguagem natural e convertê-las para um formato numérico, de fácil manipulação pelos computadores de hoje em dia. A representação depende não apenas do conceito, mas também do contexto em que está sendo usada. A lógica difusa pode ainda ser definida como a lógica que suporta os modos de raciocínio que são aproximados, ao invés de exatos, como estamos acostumados a trabalhar. •Histórico A Lógica Difusa foi desenvolvida por Lofti A. Zadeh da Universidade da Califórnia em Berkeley na década de 60 e combina lógica multivalorada, teoria probabilística, IA e RNA para poder representar o pensamento humano, ou seja, ligar a linguística e a inteligência humana, pois muitos conceitos são melhores definidos por palavras do que pela matemática. •Objetivo A lógica difusa objetiva fazer com que as decisões tomadas pela máquina se aproximem cada vez mais das decisões humanas, principalmente ao trabalhar com uma grande variedade de informações vagas e incertas, as quais podem ser traduzidas por expressões do tipo: a maioria, mais ou menos, talvez, etc. Antes do surgimento da lógica fuzzy essas informações não tinham como ser processadas. A lógica difusa vem sendo aplicada nas seguintes áreas: Análise de dados, Construção de sistemas especialistas, Controle e otimização, Reconhecimento de padrões, etc. Características Baseia-se em palavras e não em números, ou seja, os valores verdades são expressos lingüísticamente. Por exemplo: baixo, médio, alto, e outros usados para definir estados de uma variável. Possui vários modificadores de predicado como por exemplo: muito, mais ou menos, pouco, bastante, médio, etc; Características Possui também um amplo conjunto de quantificadores, como por exemplo: poucos, vários, em torno de, usualmente; Faz usos das probabilidades lingüísticas, como por exemplo: provável, improvável, que são interpretados como números fuzzy e manipulados pela sua aritmética; Manuseia todos os valores entre 0 e 1, tomando estes, como um limite apenas. Conjuntos Difusos Conjuntos com limites imprecisos. A = Conjunto de pessoas altas. Conjunto Crisp 1.0 Conjunto Difuso 1.0 .9 .8 Função de pertinência .5 1.75 Altura (m) 1.60 1.70 1.75 Altura (m) Conjuntos Difusos Conjuntos Difusos Definição formal: Um conjunto difuso A em X é expresso como um conjunto de pares ordenados: A {( x, A ( x)) | x X } Conjunto Difuso Função de pertinência (MF) Universo ou Universo de discurso Um conjunto difuso é totalmente caracterizado por sua função de pertinência (MF). Conjuntos Difusos Um conjunto difuso A definido no universo de discurso X é caracterizado por uma função de pertinência A, a qual mapeia os elementos de X para o intervalo [0,1]. A:X[0,1] Desta forma, a função de pertinência associa a cada elemento x pertencente a X um número real A(X) no intervalo [0,1], que representa o grau de possibilidade de que o elemento x venha a pertencer ao conjunto A, isto é, o quanto é possível para o elemento x pertencer ao conjunto A. Função de Pertinência Reflete o conhecimento que se tem em relação a intensidade com que o objeto pertence ao conjunto difuso. Características das funções de pertinência: Medidas subjetivas; Funções não probabilísticas monotonicamente crescentes, decrescentes ou subdividida em parte crescente e parte decrescente. “alto” no Brasil MFs .8 “alto” nos EUA .5 “alto” na Itália .1 1.75 Altura (m) Variáveis Lingüísticas Uma variável numérica possui valores numéricos: Idade = 65 Uma variável lingüística possui valores que não são números, e sim, palavras ou frases na linguagem natural. Idade = idoso Um valor lingüístico é um conjunto fuzzy. Todos os valores lingüísticos formam um conjunto de termos: T(idade) = {Jovem, velho, muito jovem,... Maduro, não maduro,... Velho, não velho, muito velho, mais ou menos velho,... Não muito jovem e não muito velho,...} Partição Difusa Grau de Pertinência Partição difusa da variável lingüistica “Idade”, formada pelos valores lingüisticos “jovem”, “maduro” e “idoso”. 1.2 Jovem Maduro Idoso 1 0.8 0.6 0.4 0.2 0 0 10 20 30 40 50 X = Idade 60 70 80 90 Sistemas Difusos Entradas Crisp Fuzificação das variáveis Definir Funções de Pertinência Classificação Aplicação das regras Atribuir Graus de pertinência Estimar uma medida com maior precisão Defuzificação das variáveis Saída Crisp Fuzzificação Etapa na qual os valores numéricos são transformados em graus de pertinência para um valor lingüístico. Cada valor de entrada terá um grau de pertinência em cada um dos conjuntos difusos. O tipo e a quantidade de funções de pertinência usados em um sistema dependem de alguns fatores tais como: precisão, estabilidade, facilidade de implementação... Determinação das regras Descrição das situações nas quais há reações através de regras de produção (If - then). Cada regra na saída especifica uma ou várias conclusões. Regras If - then • Estilo Mamdani Se a pressão é alta, então o volume é pequeno alta pequeno • Estilo Sugeno Se a velocidade é média, então a resistência = 5 * velocidade média resistência = 5*velocidade Sistema de inferência Se velocidade é baixa então resistência = 2 Se velocidade é média então resistência = 4 * velocidade Se velocidade é alta então resistência = 8 * velocidade MFs baixa média alta .8 .3 .1 2 Regra 1: w1 = .3; r1 = 2 Regra 2: w2 = .8; r2 = 4*2 Regra 3: w3 = .1; r3 = 8*2 Velocidade Resistência = S(wi*ri) / = 7.12 Swi EXEMPLOS Controles industriais. Produtos de consumo: geladeiras, ar condicionado, Filmadoras, máquinas fotográficas, máquinas de lavar roupas, aspirador de pó, TV, etc. Indústria automotiva : injeção eletrônica, suspensão ativa, freios. Elevadores (Hitachi, Toshiba) Veículos autoguiados e robôs móveis (IBM, NASA) Ventilações de túneis urbanos (Toshiba) Controle de tráfego urbano Controle de parada e partida de trens de metrô (Sendai. Tokio). Exemplos comerciais de sucesso Máquina de lavar: distinguem a sujeira das roupas e o tipo de tecido, para então determinar automaticamente as necessidades de água, detergente e potência. Aspirador de pó: capazes de identificar não apenas a sujeira, mas também a quantidade de pó no chão e variar a pressão da sucção em função disso. Câmeras de vídeo: geram imagens “limpas” eliminando os efeitos distorcidos causados pela imperícia do cinegrafista e objetos em movimento. Aparelhos condicionadores de ar: variam a intensidade da operação dependendo do número de pessoas presentes no ambiente, mantendo a temperatura homogênea constantemente. O sistema fuzzy possui, para esse controle, 25 regras de aquecimento e 25 de refrescamento, aquece e esfria 5 vezes mais rápido e economiza 24% em potência. Câmeras fotográficas: utilizada para medir claridade das imagens, zoom e determinar o focus. APLICAÇÕES DE LÓGICA FUZZY EM EQUIPAMENTOS DE PROCESSAMENTO DE IMAGENS Câmeras Fotográficas 1 - AUTOFOCUS (CANON Inc.) Regras de Fuzzy : análise de cerca de 300 fotos feitas por oito pessoas. Introdução de 3 pontos no campo de visão Distância entre os pontos são medidas • Localização e o relacionamento entre os pontos, a lógica fuzzy decide onde o focus desejado deve ficar. •Melhoria na taxa de focus de 73,6% para 96,5% •microcontrolador de 4 bit com 500 byte de memória. 2 - AUTOFOCUS (Minolta.) Necessário localizar o objeto principal O sistema fuzzy usa 6 informações que são obtidas pelo processamento de saídas de 4 sensores de focus, informação de lentes e um sensor que detecta a posição da câmera. Sete regras fuzzy, obtidas em análise de 1000 fotos, determinam a localização do objeto principal para foca-lo. Com a adição da lógica fuzzy há uma melhora de 15% no focus. 3- AUTOEXPOSIÇÃO (Minolta.) Lógica fuzzy é usada para determinar o valor da exposição e a melhor combinação de abertura e velocidade do disparador. Usa valores de brilho obtidos de 14 posições no campo de visão e a posição do objeto principal (que é determinada pelo mecanismo de autofocus). O valor de exposição é determinado por três modelos de inferência fuzzy. O Primeiro sistema fuzzy usa a diferença de brilho entre o objeto principal e o fundo para medir a quantidade de brilho presente. O Segundo sistema fuzzy decide se a exposição é para ser focada somente no objeto principal ou na cena toda. O Terceiro sistema fuzzy usa a saída desses 2 modelos fuzzy e então calcula o valor final da exposição. CÂMERAS FILMADORAS (SANYO) Divide a cena em um conjunto de valores 8 X 8. Esses valores são utilizadas para realizar a automação dos componentes. 1- AUTOFOCUS Sistema fuzzy usa vários sinais : sinal de brilho no centro da figura (região 1+2), informação de zoom, etc O sistema fuzzy tem 21 regras e decide a área do focus e a direção do focus. Por exemplo, uma das regras pode ser : SE a diferença de brilho na área central é grande E o zoom esta próximo da cena ENTÃO y = 0.8, onde y é o grau em que a área central contribui na determinação do focus. 2 - AUTOEXPOSIÇÃO decide o valor da exposição avaliando o sinal de brilho de 6 regiões no campo de visão (denotado por Vi ,1 < i < 6) e associando a eles diferentes pesos . Há 11 regras fuzzy, e a jth regra produz uma combinação linear do valor do brilho denotado por: Ej = wj1 v1 + wj1 v1 + wj2 v2 + ...+ wj6 v6 onde wji é o peso dado para o brilho na área i. Cada regra tem um conjunto diferente de pesos. Em caso de luz forte a regra pode ser: SE valor máximo Vi é Grande E o brilho médio é baixo ENTÃO esses Vi que são menores que a média são dados grandes pesos. Estabilização de Imagens para Filmadoras (Matsushita Eletric) problema : filmar enquanto caminha ou filmar de um veículo. lógica fuzzy é usada para determinar se o movimento da imagem é devido às mãos, ou devido ao objeto sendo filmado. As entradas do sistema fuzzy são 4 vetores de movimento, cada uma das quatro regiões em que a imagem foi dividida, mais as suas taxas de mudança. Cada área é dividida em 30 pequenas áreas. Dois frames sucessivos são comparados para computar os valores da diferença espacial para cada área. Essas diferenças são somadas sobre as 30 áreas em uma região para produzir uma diferença Ri para a região i e para cada região, um vetor deslocamento resulta no menor valor de Ri. Esse deslocamento mínimo é o vetor movimento Vi para cada região. A lógica fuzzy usa os valores Vi como entrada para detectar tremor nas mãos. Quando as mãos tremem e não há movimento do objeto, então o mínimo Ri é quase zero. Se há um pequeno movimento do objeto na imagem e a mão esta firme então, a área correspondente ao movimento do objeto tem um valor de diferença especial que é diferente das áreas ao redor. Contudo os valores Ri são pequenos. Quando há movimento da mão e movimento do objeto, então o mínimo Ri é maior do que no caso de não ter movimento do objeto. Uma regra usada poderia ser: SE os 4 vetores movimentos são paralelos E seus tempos diferenciais são pequenos ENTÃO esta ocorrendo tremor nas mãos e a direção do tremor é a direção do vetor movimento. Uma vez que a direção do tremor é conhecida, o frame no buffer é deslocado na direção oposta do movimento, tal que a estabilização é executada. EQUIPAMENTOS DE TELEVISÃO O sistema fuzzy controla contraste, brilho e nitidez. Os parâmetros de entrada são o brilho ambiente na sala e a distância entre o telespectador e a televisão. O brilho da sala é calculado pelo sensor de luz, fornecendo um valor de 1 a 8. A distância do telespectador é calculada pela localização do controle remoto. Uma regra pode ser : SE a sala esta levemente clara E o telespectador esta longe, ENTÃO a imagem será nítida e clara