Lógica Fuzzy (Lógica Nebulosa) Adaptado de material dos profs. Mauro Roisenberg e Luciana Rech Lógica Nebulosa Introdução Lógica Difusa ou Lógica Fuzzy extensão da lógica boolena um valor lógico difuso é um valor qualquer no intervalo de valores entre 0 e 1 As implementações da lógica difusa permitem que estados não precisos possam ser tratados por dispositivos de controle. desse modo, é possível avaliar conceitos não-quantificáveis. Casos práticos: avaliar a temperatura (quente,morno, frio,etc..) sentimento de felicidade(radiante,feliz,apático,triste..) 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 ligar a lingüística e a inteligência humana, pois muitos conceitos são melhores definidos por palavras do que pela matemática. É uma técnica baseada em graus de pertinencia (verdade). os valores 0 e 1 ficam nas extremidades inclui os vários estados de verdade entre 0 e 1 idéia: todas as inf. admitem graus (temperatura, altura, velocidade, distância, etc...) Conjuntos Fuzzy Na teoria dos conjuntos nebulosos existe um grau de pertinência de cada elemento a um determinado conjunto. Conjuntos com limites imprecisos. Conjunto Fuzzy Conjunto Clássico 1.0 1.0 .9 .8 Função de pertinência .5 1.75 Altura (m) 1.60 1.70 1.75 A = Conjunto de pessoas altas Altura (m) Conjuntos Fuzzy Um conjunto fuzzy 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 pertinência do elemento x ao conjunto A, isto é, o quanto é possível para o elemento x pertencer ao conjunto A. 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) . crisp pode ser visto como um conjunto nebuloso específico (teoria de conjuntos clássica) A {0,1} pertinência do tipo “tudo ou nada”, “sim ou não” e não gradual como para os conjuntos nebulosos Função característica do conjunto “crisp” Conjuntos Fuzzy Definição formal Um conjunto fuzzy A em X é expresso como um conjunto de pares ordenados: A {( x , A ( x )) | x X } Conjunto fuzzy Função de pertinência Universo ou Universo de discurso Um conjunto fuzzy é totalmente caracterizado por sua função de pertinência. Lógica Fuzzy Fundamentos Representações Funções de pertinência representadas em computador podem ser: contínuas ou discretas. No caso contínuo, a função de pertinência é uma função matemática, possivelmente um programa. No caso discreto, a função de pertinência e o universo são pontos de uma lista (vetor). Universo Discreto não ordenado) C = “Cidade desejável para se viver” C = {(SF, 0.9), (Boston, 0.8), (LA, 0.6)} (a) Universo Discreto 1 0.8 Grau de Pertinência X = {SF, Boston, LA} (discreto e 0.6 X = {0, 1, 2, 3, 4, 5, 6} (discreto) 0.4 0.2 0 0 2 X = Número de filhos 4 6 A = “Número de filhos razoável” A = {(0, .1), (1, .3), (2, .7), (3, 1), (4, .6), (5, .2), (6, .1)} Universo Contínuo (b) Universo Contínuo Grau de Pertinência 1 X = (Conjunto de números reais positivos) (contínuo) 0.8 0.6 0.4 0.2 0 0 50 100 X = Idade B(x) 1 x 50 1 10 2 B = “Pessoas com idade em torno de 50 anos” B = {(x, B(x) )| x em X} Operações sobre conjuntos fuzzy Uma sentença modificada pela palavra “não” é dita “negação” da sentença original. NÃO-fuzzy(x) = 1 - x A palavra “e” é usada para juntar duas sentenças formando uma “conjunção” de duas sentenças. E-fuzzy(x,y) = Mínimo(x,y) De maneira similar a sentença formada ao conectarmos duas sentenças com a palavra “ou” é dita “disjunção” das duas sentenças. OU-fuzzy(x,y) = Máximo(x,y) Operadores 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, D e A, μ(D e A)= mínimo (μ(D), μ(A)) =0,0 20 Sistemas Fuzzy Sistema de controle fuzzy baseado no modelo de Mamdani. Componentes do sistema Definição das variáveis fuzzy de entrada e de saída: forma e valores das variáveis Regras fuzzy Técnica de defuzzificação Definição as variáveis Etapa na qual as variáveis lingüísticas são definidas de forma subjetiva, bem como as funções membro (funções de pertinência) 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: Triangular, Trapezoidal, Gaussiana, ... 23 Exemplos de variáveis fuzzy TRAPEZOIDAL TRIANGULAR 1 1 Frio Normal Quente Lento Rápido 24 Regras Fuzzy SE condição ENTÃO conclusão, com variáveis linguísticas (fuzzy) Exemplo: Se a fruta é verde então o gosto é azedo Se a fruta é amarela então o gosto é pouco-doce Se a fruta é vermelha então o gosto é doce 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. converte as variáveis fuzzy em valores numéricos ou aceitáveis pelo sistema. 27 Técnica de Defuzzificação Dentre os diversos tipos de técnicas de defuzzificação, pode-se citar: Centróide O valor de saída é o centro da gravidade da função de distribuição da possibilidade da ação de controle. 28 Método do Primeiro dos Máximos Encontra o primeiro ponto entre os valores que tem o maior grau de pertinência inferido pelas regras. Método da Média dos Máximos Encontra o ponto médio entre os valores que tem o maior grau de pertinência inferido pelas regras. 30 Técnicas de Defuzzificação Exemplos: z0 Centróide z0 Primeiro dos máximos z0 Média dos Máximos Etapas do Raciocínio Variáveis Calculadas (Valores Linguísticos) Nível Linguístico Inferência Variáveis de Comando (Valores Linguísticos) Fuzzificação Defuzzificação Nível Numérico Variáveis Calculadas (Valores Numéricos) Objeto Variáveis de Comando (Valores Numéricos) 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... INFERÊNCIA: Avaliação das regras Cada antecedente (lado if) tem um grau de pertinência. A ação da regra (lado then) representa a saída nebulosa da regra. Durante a avaliação das regras, a intensidade da saída é calculada com base nos valores dos antecedentes e então indicadas pelas saídas nebulosas da regra. INFERÊNCIA: Agregação das Regras São as técnicas utilizadas na obtenção de um conjunto difuso de saída “x” a partir da inferência nas regras. Determinam quanto a condição de cada regra será satisfeita. Para cada variável fuzzy de saída, considera o resultado de todas as regras. Por exemplo, considerando a pertinência máxima das regras para cada valor da variável. Defuzzificação Processo utilizado para converter o conjunto difuso de saída em um valor crisp correspondente. Alguns métodos de defuzzificação: Centróide, Média dos máximos, Primeiro dos máximos, Último dos máximos, etc. Um exemplo 1. 2. 3. Objetivo do sistema: um analista de projetos de uma empresa que determina o risco de um determinado projeto Variáveis de entrada: 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 a ser resolvido: dinheiro = 35% e pessoal = 60% 37 Inferência Fuzzy: Um exemplo Passo 1: Fuzzificar Dinheiro Pessoal .75 .8 .25 .2 60 35 Inadequado Adequado Médio i ( d ) 0, 75 & m ( d ) 0, 25 Baixo Alto b ( p ) 0 , 2 & a ( p ) 0 ,8 38 Inferência Fuzzy: Um exemplo Regra 1: Passo 2: Avaliação das regras OU máximo E mínimo 0,2 Adequado 0,0 Risco ou Baixo Regra 2: Risco 0,8 médio 0,25 e Alto 39 Inferência Fuzzy Regra 3: Risco 0,75 Inadequado 40 Inferência Fuzzy Passo 3: Defuzzificação Risco pequeno normal alto 0,75 0,25 0,20 10 20 30 40 50 60 70 80 90 100 C (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 267 ,5 70 , 4 3 ,8 41 Outro exemplo O sistema tem como objetivo determinar a gorjeta que um cliente deve dar. Esse sistema possui três variáveis (serviço, comida e gorjeta). As variáveis comida e serviço são variáveis de entrada e gorjeta é a variável de saída. Ex. Aplicações Copiadora Canon ajusta a voltagem do tambor baseado na densidade da imagem, temperatura e umidade. Secadora de roupa Matsushita ajusta a estratégia do tempo de secagem baseado no tamanho da carga e tipo de tecido Lavadoras de roupa (Daewoo, Goldstar, Hitachi, Matsushita, Samsung, Sony, Sharp, etc.) ajustam a estratégia de lavagem, baseado no nível sujeira, tipo de tecido, na quantidade de roupa, e nível d’água. Etc. Bibliografia Terano, T., Asai, K., Sugeno, M. - Fuzzy Systems Theory and its Applications - Editora Academic Press, 1992 (ISBN: 0126852456) Driankov, Dimiter - An introduction to fuzzy control - Editora SpringerVerlag , 1996 (ISBN: 3540606912) MAMDANI, E. H. Aplications of fuzzy algorithms for control of simple dynamic plant. Proc. IEEE 121, vol. 12, p. 1585-1588, 1973. SUGENO, M.. An introductory survey of fuzzy control. Information Sciences 36, p. 59-83, 1985.