Sistemas Nebolosos (Fuzzy) Prof. Alexandre Monteiro Recife ‹#› Contatos Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/gtalk: [email protected] [email protected] Site: http://www.alexandrecordel.com.br/fbv Celular: (81) 9801-1878 Lógicas Não-Clássicas As lógicas não-clássicas podem ser classificadas em dois grupos distintos: • Extensões da lógica clássica: adicionam um vocabulário novo, portanto novos teoremas e inferências válidas, mas mantêm todos os teoremas originais - Lógica Modal - Lógica Temporal - Lógicas Não-Monotônicas • Desvios da lógica clássica: em geral mantêm o vocabulário original da lógica clássica, no entanto difere com respeito a teoremas e inferências válidas - Lógica Multi-Valorada - Lógica Fuzzy 3 Variações da Lógica Clássica: Lógica Fuzzy Grande parte da compreensão humana sobre os acontecimentos dos fatos é imprecisa Em muitos casos, a precisão pode ser um tanto inútil, enquanto instruções vagas podem ser melhor interpretadas e realizadas • Exemplo de compreensão humana - Formal: “Comece a freiar 10 metros antes do sinal PARE” - Vulgar: “Comece a freiar perto do sinal PARE” • Outro exemplo: - Ao utilizar-se a lógica clássica, definem-se regras como: “Pessoas jovens são aquelas cujas idades estão entre 0 e 20” - Nesta lógica, uma pessoa com 20 anos e 1 dia não é considerada uma pessoa jovem - Porém, sabemos que isso não é verdade no mundo real - Daí a necessidade de se utilizar mecanismos para descrever o grau de pertinência de uma pessoa ao conjunto de “jovens” 4 Características: Lógica Fuzzy (1/2) A lógica fuzzy resulta de dois estágios de fuzificação • A passagem da lógica bivalente para a lógica não-enumerável multi-valorada como um resultado de se permitir graus de pertinência a conjuntos denotados por predicados da linguagem objeto - Introdução de predicados "vagos" na linguagem • A passagem para muitos valores de verdade contavelmente difusos como resultado de se tratar como vago o próprio predicado meta-lingüístico "verdadeiro", sendo este passo mais controverso e radical - Verdadeiro, muito verdadeiro, não muito verdadeiro,... A Lógica Difusa foi desenvolvida por Lofti A. Zadeh da Universidade da Califórnia em Berkeley na década de 60 5 Características: Lógica Fuzzy (2/2) Trabalha 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 fuzzy contém como casos especiais não só os sistemas lógicos binários, como também os multi-valorados A lógica fuzzy vem sendo aplicada nas seguintes áreas • Análise de dados • Construção de sistemas especialistas • Controle e otimização • Reconhecimento de padrões, etc. 6 Conjuntos Fuzzy (1/3) Conjuntos com limites imprecisos A = Conjunto de pessoas altas Conjunto Clássico 1.0 Conjunto Fuzzy 1.0 .9 .8 Função de pertinência .5 1.75 Altura (m) Altura (m) 1.60 1.70 1.75 7 Conjuntos Fuzzy (2/3) 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. 8 Conjuntos Fuzzy (3/3) 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 (MF) Universo ou Universo de discurso Um conjunto fuzzy é totalmente caracterizado por sua função de pertinência (MF) 9 Função de Pertinência Reflete o conhecimento que se tem em relação a intensidade com que o objeto pertence ao conjunto fuzzy • 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 10 Altura (m) Formulação da MF Função Triangular Função Trapezoidal x a c x trimf ( x ; a , b , c ) max min , , 0 b a c b 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 11 b 2b Formulação da MF (b) Trapezoidal Grau de Pertinência Grau de Pertinência (a) Triangular 1 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 1 0.8 0.6 0.4 0.2 0 20 40 60 100 1 0.8 0.6 0.4 0.2 0 0 80 (d) Sino Gerneralizada Grau de Pertinência Grau de Pertinência (c) Gaussiana 20 80 100 0 20 40 60 12 80 100 Universo Discreto (a) Universo Discreto X = {SF, Boston, LA} (discreto e não ordenado) • C = “Cidade desejável para se viver” Grau de Pertinência 1 • C = {(SF, 0.9), (Boston, 0.8), (LA, 0.6)} 0.8 0.6 0.4 X = {0, 1, 2, 3, 4, 5, 6} (discreto) • A = “Número de filhos” 0.2 • A = {(0, .1), (1, .3), (2, .7), (3, 1), (4, .6), (5, .2), (6, .1)} 0 0 2 4 6 X = Número de filhos 13 Universo Contínuo Grau de Pertinência (b) Universo Contínuo 1 X = (Conjunto de números reais positivos) (contínuo) 0.8 • B = “Pessoas com idade em torno de 50 anos” 0.6 0.4 0.2 • B = {(x, 0 0 50 B(x) )| x em X} 100 X = Idade B(x) 1 x 50 1 10 2 14 Notação Alternativa Um conjunto fuzzy A, pode alternativamente ser denotado por: • x (discreto) A xi X • x (contínuo) A ( xi ) | xi A A ( x) | x X • Obs.: Os símbolos e representam o conjunto dos pares ordenados (x, A(x)). 15 Partição Fuzzy Partição fuzzy do universo de X representando “idade”, formada pelos conjuntos fuzzy “jovem”, “maduro” e “idoso”. Grau de Pertinência 1.2 Jovem Maduro Idoso 1 0.8 0.6 0.4 0.2 0 0 10 20 30 40 50 60 70 80 X = Idade 16 90 Variáveis Lingüísticas Uma variável lingüística possui valores que não são números, mas 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,...} 17 Operações Básicas Subconjunto Igualdade Complemento Complemento Relativo União 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) E(x) = Max [0, A(x) - B(x)] C = A B c(x) = max(A(x), B(x)) Interseção C = A(x) B(x) C = A B c(x) = min(A(x), B(x)) C = A(x) B(x) 18 Representação (b) Conjunto Fuzzy não “A” (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 A B 1 0.8 0.6 0.4 0.2 0 0.4 (c) Conjunto Fuzzy "A ou B" 0.2 (d) Conjunto Fuzzy "A e B" 0 1 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 19 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} • União - C = {1/a, 0.9/b, 0.4/c, 1/d, 0.9/e} • Interseção - D = {0.2/a, 0.7/b, 0.3/c, 0/d, 0.4/e} 20 Propriedades Comutatividade • AB=BA Idempotência • AA=A AB=BA AA=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 padrões: Comutatividade, Idempotência Associatividade, Distributividade etc. são válidas para os conjuntos fuzzy. Exceção: AA AAX 21 Grau de Crença x Grau de Verdade Grau de Crença x Teoria das Probabilidades • 80% dos pacientes com dor de dentes têm cáries - Uma probabilidade de 0.8 não significa “80% verdade” mas sim um grau de crença de 80% na regraGrau de verdade x Lógica Fuzzy • Mário é alto - A proposição é verdadeira para uma altura de Mario 1.65m ? - ...mais ou menos.... - Observar que não há incerteza, estamos seguros da altura de Mario • O termo linguístico “alto” é vago, como interpretá-lo? • Por exemplo, a teoria de conjuntos Fuzzy (semântica para lógica fuzzy) permite especificar quão bem um objeto satisfaz uma descrição vaga (predicado vago) - O grau de pertinência de um objeto a um conjunto fuzzy é representado por algum número em [0,1] 22 Sistemas Fuzzy Entradas Crisp Classificação Estimar uma medida com maior precisão Fuzificação das variáveis Definir Funções de Pertinência Aplicação das regras Atribuir Graus de pertinência Defuzificação das variáveis Saída Crisp 23 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 fuzzy. 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... 24 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. 25 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 26 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 27 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 fuzzy 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. 28 Agregação das Regras São as técnicas utilizadas na obtenção de um conjunto fuzzy de saída “x” a partir da inferência nas regras. Determinam quanto a condição de cada regra será satisfeita. 29 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, Método da altura, etc. 30 Lógica Fuzzy: considerações finais Lógica Fuzzy é uma importante ferramenta para auxiliar a concepção de sistemas complexos, de difícil modelagem, e pode ser utilizada em conjunto com outras tecnologias de ponta, como é o caso da combinação entre Lógica Fuzzy e Redes Neurais Artificiais, e Lógica Fuzzy e Algoritmos Genéticos. 31 Lógicas para IA: considerações finais Limitações da Lógica Clássica para lidar com argumentos informais Lógica Não-Clássicas • Extensões da Lógica Clássica - Lógica Modal - Lógica Temporal - Lógicas Não-Monotônicas • Desvios da Lógica Clássica - Lógica Multi-Valorada - Lógica Fuzzy 32 Exercícios 1 Seja o conjunto fuzzy A definido sobre o universo de discurso X = { 1 2 3 }. Desejamos mapear os elementos deste conjunto fuzzy para outro universo Y, sob a função: y = f(x) = 2x –1. Os elementos do universo Y obtido pela aplicação da função dada é Y = { 1, 3, 5 } Onde y = 1= (21- 1); y = 3 = ( 22-1); y = 5 = ( 23-1) Supondo que o conjunto fuzzy A é dado por : A = { 0.6/1 1/2 0.8/3 }, onde 0.6 é a pertinência de 1 no conjunto A; 1 é a pertinência de 2 no conjunto no conjunto A ; 0.8 é a pertinência de 3 no conjunto no conjunto A; O conjunto B = f(A) = {A(1)/f(1) A(2)/f(2) A(3)/f(3)}, do princípio de extensão. Deste resulta: B = { 0.6/ 1 1/ 3 0.8/ 5 }, é o conjunto resultado do mapeamento do conjunto A. Exercício 2 Suponha que temos os inteiros de 1 até 10 como elementos de dois universo de discurso X1 e X2 , com X1 = X2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, e sejam A e B dois conjuntos fuzzy definidos sobre X1 e X2 respectivamente. O conjunto A = “ aproximadamente 2” e o conjunto B = “aproximadamente 6” dados segundo: A = { 0.6/1 1/2 0.8/3 } ; B = { 0.8/5 1/6 0.7/7} Obtenha o conjunto produto cartesiano de A x B correspondente ao número C = “aproximadamente 12”, definido sobre o espaço produto: X1 x X2 = {5, 6, 7, 10, 12, 14, 15, 18, 21} Solução Exercício 2 Podemos escrever : 2 x 6 = { 0.6/ 1 1/ 2 0.8 /3 }x{ 0.8/ 5 1/ 6 0.7/ 7} Em se tratando de produto cartesiano podemos escrever: C = { min(0.6, 0.8) / 5 min(0.6, 1.0) / 6 min(0.6, 0.7) / 7 min(1.0, 0.8) / 10 min(1.0, 1.0) / 12 min(1.0, 0.7) / 14 min(0.8, 0.8) / 15 min(0.8, 1.0) / 18 min(0.8, 0.7) / 21} C = { 0.6/5 0.6/6 0.6/7 0.8/10 1.0/12 0.7/14 0.8/15 0.8/18 0.7/21}, este é o conjunto produto cartesiano AxB. Bibliografia R. Turner. Logics for Artificial Intelligence. John Wiley, 1985. E. Rich e K. Knight. Inteligência Artificial. Makron Books, 2a. Edição, 1994. S. Haack. Filosofia das Lógicas. UNESP Editora, 1998. P. Almeida e A. Evsukoff. Sistemas Fuzzy em Sistemas Inteligentes. Manole, 2003 J. Jang, C. T. Sun e E. Mizutani. Neuro-Fuzzy and Soft Computing. Prentice Hall, 1997. 36