Inteligência Artificial Escola de Verão 28 Laboratório Associado de Computação e Matemática Aplicada LAC www.lac.inpe.br/~demisio/ia_lac.html Lógica Nebulosa
A Lógica Nebulosa (ou Lógica Difusa Fuzzy Logic ) introduzida formalmente por Lotfi Zadeh em 965 para tratar do aspecto vago da informação Lida com conceitos com verdade parcial (imprecisão). Lógica clássica - declarações são verdadeiras (V) ou falsas (F). No sentido mais restrito - a lógica nebulosa é um sistema lógico, sendo uma extensão dos sistemas lógicos binários. No sentido mais amplo - a lógica nebulosa é a lógica baseada na teoria dos conjuntos nebulosos. O conceito básico na lógica nebulosa é o de uma variável lingüística, ou seja, uma variável cujos valores são palavras ou sentenças ao invés de números. 2
Representação de valores de pertinência intermediários entre os valores de verdade e falso da lógica clássica Possibilita a representação de conceitos imprecisos Aproxima o raciocínio humano ao da lógica executada pela máquina. Em Lógica Nebulosa, a verdade de uma declaração é um grau de pertencimento (pertinência). a declaração pode ser verdadeira e falsa ao mesmo tempo, mas com graus diferentes. O conceito de grau de pertencimento aplicado no problema do conjunto de pessoas altas anterior. Considerando,72 metros como limiar para o conjunto, Uma pessoa com,7 m é alta (verdade) com grau de 9% e como falsa com grau de %, por exemplo. 3
Exemplo: Considerando o universo de todas as pessoas que trabalham em uma empresa, deseja-se selecionar todas as pessoas altas. A:,79 m B:,68 m Sejam as alturas de C:,8 3 pessoas m A, B, C µ dadas por: ( Altura) Baixo Médio Alto µ ( Altura).8 Baixo Médio Alto,6 Altur a,7,79,8 [m] Conjunto Crisp de Altura.2,6,7,7 9,8 Conjunto Nebuloso de Altura Altura [m] Altura Baixo Médio Alto A,79 m B,75 m C,64 m Valor da função Característica no Conjunto Crisp Altura Baixo Médio Alto A,79 m.2.8 B,75 m.4.6 C,64 m.7.3 Valor da função de Pertinência do Conjunto Nebuloso 4
O grau de pertencimento de um objeto a um conjunto nebuloso é declarado por funções de pertencimento (ou de pertinência) que definem curvas em que cada ponto no espaço de entrada é mapeado em um valor de pertinência (ou grau de pertinência) que varia entre e. As funções podem ser de diversas naturezas e estão associadas à semântica desejada para um conceito. A implementação das funções pode ser realizada através de equações que definem triângulos, trapézios, Gaussianas, forma de S, sinos, etc. µ Exemplos: Definição de conjuntos nebulosos usando funções trapezoidais ( Altura).8 Baixo Médio Alto.2,6,7,7 9,8 Altura [m] Conjunto Nebuloso de Altura Jovem Meiaidade Idoso Idade 5
Lógica Nebulosa pode ser aplicada, na construção de sistemas especialistas para descrever conceitos imprecisos: ALTURA (alto, baixo); VELOCIDADE (rápido, lento); TAMANHO (grande, médio, pequeno); QUANTIDADE (muito, razoável, pouco); IDADE (jovem, velho). Considerando um conjunto nebuloso A, sua função de pertinência é definida como: µ ( x) : X A [,], x X X é o Universo de Discurso de todos os elementos, ou seja, o escopo da variável. O processo de atribuição de um grau de pertinência à variável é denominado de fuzificação ( fuzzyfication ). 6
Conjunto nebuloso discreto é representado associando-se cada elemento ao seu grau de pertinência. 2 n A = µ x + µ x + L+ µ A A 2 A x n = i=, n µ i A x i Conjunto nebuloso contínuo A = µ ( x) X A x Os operadores lógicos E (&), OU () e NÃO ( ) também se aplicam à lógica nebulosa. Os graus de pertinência nos extremos ( ou ) os operadores lógicos padrão se aplicam diretamente, a lógica nebulosa é considerada como um superconjunto da lógica clássica. 7
Normalmente, o operador E é implementado através de uma função de cálculo de valor mínimo; O operador OU é implementado por uma função de cálculo de valor máximo; O operador NÃO usa o complemento aditivo. Os três operadores também podem ser definidos de outras formas usando T-normas, para uma classe geral de operadores de intersecção, ou T-conormas, para uma classe geral de operadores de agregação para a união de conjuntos nebulosos. Os operadores também podem ser definidos de outras formas usando T-normas (classe geral de operadores de interseção), ou T-conormas (classe geral de operadores de agregação para a união) T-norma T-conorma Nome min( x, y) max( x, y) Zadeh x. y x + y xy Probabilistica max( x + y, ) min( x + y, ) Lukasiewicz xy x + y xy ( γ ) xy Hamacher ( γ > ) γ + ( γ )( x + y xy) ( γ ) xy x, se y = x, se y = Weber y, se x = y, se x =, se não, se não 8
Regras Nebulosas Se (premissa) então (conclusão) As regras nebulosas: Regra j: Se x é A j e... e x n é A nj então y é B j A nj e B j são conjuntos nebulosos. Sistemas baseados em lógica nebulosa. Base de Regras fuzificador Conj. nebulosos Entrada Nebulosa Máquina de Inferência Conj. nebulosos defuzificador Valores Numéricos Ação 9
Sistemas baseados em regras utilizando a lógica nebulosa. A interpretação das regras estabelecidas envolve: a) Fuzificação das entradas. São atribuídos valores de pertinência no intervalo [,] a todas as declarações nebulosas nos antecedentes das regras. Caso haja um único antecedente, seu grau de pertinência é considerado também como o grau de certeza (suporte) da regra. b) Aplicação de operadores nebulosos aos múltiplos antecedentes, o que resultará em um antecedente único com valor de pertinência no intervalo [,], que também será considerado como o grau de suporte da regra. c) Aplicação do método de implicação, que usa o grau de suporte de toda regra para obter o conjunto nebuloso de saída, ou seja, realiza a dedução. O conseqüente de uma regra nebulosa atribui um conjunto nebuloso à saída, representado por uma função de pertinência escolhida para indicar as qualidades do conseqüente. Se o antecedente é apenas parcialmente verdade (grau de pertinência < ), então o conjunto nebuloso de saída é truncado de acordo com o método de implicação.
Na lógica nebulosa a implicação faz uso de uma versão nebulosa de modus ponens, originalmente usado para obter B a partir de A & (A B). Tomando-se o fato de que A & (A B) (A & B) a versão nebulosa poderia ser: µ R (x,y) = min(µ A (x),µ B (y)), Conhecida como a Regra de Mamdani. Inferência nebulosa (ou modus ponens generalizado): Se x é A Então y é B Tem-se A* ----------------------------- Então B*
Quando existem várias regras que envolvem a mesma variável, é necessário usar um método de agregação das conclusões implicadas por cada regra. Se x é A Então y é B Se x é A2 Então y é B2... Se x é An Então y é Bn Diferentes técnicas de agregação (Mamdani, Larsen, Lukasiewics etc.) produzem resultados ligeiramente diferentes. A escolha do método depende do comportamento desejado no sistema. Após o processo de agregação, cada variável de saída é representada por um conjunto nebuloso. 2
Mamdani O operador de implicação nebuloso de Mamdani proposto nos anos 97, é uma versão simplificada de Zadeh max-min. φ [ µ ( x ), µ ( y )] µ ( x) µ ( y ) c A B A B Um sistema que usa o modelo de inferência de Mamdani utiliza um defuzificador para gerar a saída do sistema. φ Interseção União Modelo de inferência de Mamdani Larsen O operador de implicação nebuloso produto aritmético. de Larsen usa o O modelo de Larsen utiliza o defuzificador para gerar a saída do sistema. Produto União Modelo de inferência de Larsen 3
Takagi e Sugeno Takagi e Sugeno usa as seguintes regras nebulosas se/então: Se x é F l e... e x n é Fl n, então yl =c l +cl x +... + cl n x n F l i conjuntos nebulosos; c i parâmetros reais estimados; y l sistema de saída Esse modelo não precisa de defuzificador porque os valores de saída são crisp. Modelo de inferência de Takagi e Sugeno (Modelo de Interpolação ) As aplicações necessitam de uma saída na forma de um escalar, através da desfuzificação (adaptado do inglês Defuzzification ). Diferentes técnicas podem ser usadas para a desfuzificação de um conjunto nebuloso As mais usadas são o centro de gravidade, o centro de possibilidade máxima e o maior máximo. Este processo sempre implica em perda de informação. 4
Operadores de implicação Mamdani-Min Leste esquerda min 35 8 45 9 IF direção is sul THEN trajetória is frente. sul frente min 9 35 27-45 45-45 45 max 22,5-45 22,5 9 Sistemas baseados em lógica nebulosa. Controlador Nebuloso Base de Regras Valores Numéricos fuzificador Conj. Entrada nebulosos Nebulosa Máquina de Inferência Conj. nebulosos desfuzificador Ação de Controle sensor processo atuador 5
Problema de Navegação Autônoma Objetivo: Manter um veículo em movimento em uma trajetória desejada, sem intervenção de operadores externos.? Necessidades: - Obter informações do ambiente durante o movimento. - Replanejar a trajetória. Extração das Características A extração das características usa o operador gradiente 6
Operador gradiente usado em uma só direção (horizontal): (l,p-2) (l,p) (l,p+2) (l,p-) (l,p+) Faixa da Esquerda Variável faixa da esquerda: o Range foi ajustado para o vetor [-3 3]; foram adicionadas sete funções gaussianas; Faixa da esquerda muito a esquerda, parâmetros [2.25-3]; Faixa da esquerda médio a esquerda, parâmetros [2.25-2]; Faixa da esquerda pouco a esquerda, parâmetros [2.25 -]; Faixa da esquerda zero a esquerda, parâmetros [2.25 ]; Faixa da esquerda pouco a direita, parâmetros [2.25 ]; Faixa da esquerda médio a direita, parâmetros [2.25 2]; Faixa da esquerda muito a direita, parâmetros [2.25 3]; 7
Faixa da Direita Variável faixa da direita: o Range foi ajustado para o vetor [-3 3]; foram adicionadas sete funções gaussianas; Faixa da direita muito a esquerda, parâmetros [2.25-3]; Faixa da direita médio a esquerda, parâmetros [2.25-2]; Faixa da direita pouco a esquerda, parâmetros [2.25 -]; Faixa da direita zero, parâmetros [2.25 ]; Faixa da direita pouco a direita, parâmetros [2.25 ]; Faixa da direita médio a direita, parâmetros [2.25 2]; Faixa da direita muito a direita, parâmetros [2.25 3]; Variável Saída: o Range foi ajustado para o vetor [-3 3]; foram adicionadas sete funções gaussianas; Saída muito a esquerda, parâmetros [-39-3 -29-2]; Saída médio a esquerda, parâmetros [-29-2 -9 -]; Saída pouco a esquerda, parâmetros [-9 - -9 -.9997]; Saída zero, parâmetros [-9 -.9997.9998 9]; Saída pouco a direita, parâmetros [.9998 9 9]; Saída médio a direita, parâmetros [ 9 2 29]; Saída muito a direita, parâmetros [2 29 3 39]; 8
Exemplos de regras para o sistema real: -Se (faixa da esquerda está muito a esquerda) e (faixa da direita está muito a esquerda) então (saída é muito a esquerda); -Se (faixa da esquerda está médio a esquerda) e (faixa da direita está médio a esquerda) então (saída é médio a esquerda); -Se (faixa da esquerda está pouco a esquerda) e (faixa da direita está pouco a esquerda) então (saída é pouco a esquerda); Faixa da Esquerda Faixa da Direita 9