Lógica Difusa Milena Tápia [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 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) Universo Discreto X = {SF, Boston, LA} (discreto e (a) Universo Discreto não ordenado) C = “Cidade desejável para se viver” C = {(SF, 0.9), (Boston, 0.8), (LA, 0.6)} Grau de Pertinência 1 0.8 0.6 X = {0, 1, 2, 3, 4, 5, 6} 0.4 0.2 0 0 2 4 X = Número de filhos 6 (discreto) A = “Número de filhos” A = {(0, .1), (1, .3), (2, .7), (3, 1), (4, .6), (5, .2), (6, .1)} Universo Contínuo (b) Universo Contínuo X = (Conjunto de números reais positivos) Grau de Pertinência 1 0.8 (contínuo) 0.6 0.4 B = “Pessoas com idade em torno de 50 anos” 0.2 0 0 50 100 X = Idade B(x) B = {(x, 1 x 50 1 10 2 B(x) )| x em X} Notação Alternativa Um conjunto difuso A, pode alternativamente ser denotado por: x (discreto) A x (contínuo) A A ( x) | x xi X A ( xi ) | xi X Obs.: Os símbolos e representam o conjunto dos pares ordenados (x, A(x)). 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 Mais definições Normalidade Altura Suporte Núcleo A(x) = 1 Height(A) = Maxx A(x) Supp(A) = {x| A(x) > 0 e x X} Core(A) = {x| A(x) = 1 e x X} Pontos de Cruzamento Crossover = {x| (A) A(x) = 0.5} -cut A = {x| A(x) , x X} strong -cut A+ = {x| A(x) > , x X} Terminologia MF 1 A l t u r a .5 0 Núcleo Pontos de Cruzamento - cut Suporte X Mais definições Conjunto nulo Força Ø n A xi i 1 Convexidade Simetria Open left or right, closed 1 0.8 0.6 0.4 0.2 0 (b) Conjunto Fuzzy não-convexo Grau de Pertinência Grau de Pertinência (a) Dois conjuntos Fuzzy convexos 1 0.8 0.6 0.4 0.2 0 Exemplo: X = {a, b, c, d, e} A = {1/a, 0.3/b, 0.2/c, 0.8/d, 0/e} (normal) B = {0.6/a, 0.9/b, 0.1/c, 0.3/d, 0.2/e} (subnormal) Height(A) = 1 e Height(B) = 0.9 Supp(A) = {a, b, c, d} e Supp(B) = {a, b, c, d, e} Core(A) = {a} e Core(B) = Ø Exemplo (-cut) A = {0.3/a, 1/b, 0.5/c, 0.9/d, 1/e} para 0.3 0 para 0.5 > 0.3 para 0.9 > 0.5 A = {a, b, c, d, e} A = {b, c, d, e} A = {b, d, e} Operações Básicas Subconjunto Igualdade Complemento Complemento Relativo A B, se B(x) A(x) para cada x X A = B, se A(x) = B(x) para cada x X A = X - A A(x) = 1 - A(x) União C = A B c(x) = max(A(x), B(x)) E(x) = Max [0, A(x) - B(x)] C = A(x) B(x) Interseção C = A B c(x) = min(A(x), B(x)) C = A(x) B(x) Representação (a) Conjuntos Fuzzy A e B Grau de Pertinência A está contido em B 1 0.8 0.6 B A 1 0.8 0.6 0.4 0.2 0 0.4 A B (b) Conjunto Fuzzy não “A” 1 0.8 0.6 0.4 0.2 0 (c) Conjunto Fuzzy "A ou B" (d) Conjunto Fuzzy "A e B 0.2 0 1 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 Exemplo (União|Interseção) X = {a, b, c, d, e} A = {1/a, 0.7/b, 0.3/c, 0/d, 0.9/e} B = {0.2/a, 0.9/b, 0.4/c, 1/d, 0.4/e} C = {1/a, 0.9/b, 0.4/c, 1/d, 0.9/e} D = {0.2/a, 0.7/b, 0.3/c, 0/d, 0.4/e} Formulação da MF Função Triangular x a c x trimf ( x ; a , b , c ) max min , , 0 b a c b Função Trapezoidal d x x a , 1, , 0 b a d c trapmf ( x ; a , b , c , d ) max min Função Gaussiana gaussmf ( x; a, b, c) e 1 x c 2 2 Função Sino Generalizada gbellmf ( x ; a , b , c ) 1 x c 1 b 2b Formulação da MF (b) Trapezoidal 1 Grau de Pertinência Grau de Pertinência (a) Triangular 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 0 20 40 60 80 100 0 40 60 80 100 (d) Sino Gerneralizada 1 Grau de Pertinência Grau de Pertinência (c) Gaussiana 20 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 0 20 40 60 80 100 0 20 40 60 80 100 Propriedades (Interseção|União) Comutatividade A B = B A A B = B A Idempotência A A = A A A = A Associatividade A (B C) = (A B) C = A B C A (B C) = (A B) C = A B C Distributividade A (B C) = (A B) (A C) A (B C) = (A B) (A C) Propriedades A Ø = A A Ø = Ø AX=X AX=A A A B A A B A B A B Se A B então B = A B A = A B Se A B e B C então A C (Interseção|União) Propriedades (Comp.|Comp. Relativo) Negação Dupla ( A) = A Lei de Morgan (A B) = A B (A B) = A B =X X= Se A B então A B e A - B = A-A= -A= A- =A Uma característica significante que distingue os conjuntos difusos dos conjuntos clássicos é: A A A A X 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 = (wi*ri) / = 7.12 wi 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 difusa 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 difusas da regra. Alguns métodos de avaliação: MinMax, MaxMin, MaxProduto, MinMin, MaxMedia, MaxMax e Soma dos produtos. 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. 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, Distância de Hamming, Barras verticais, Método da altura, etc.