LÓGICA FUZZY Por: Carlos Eduardo Ramisch – 134657 Daniel Emílio Beck – 134653 Kao Cardoso Félix – 1346 Marcelo Serra Castilhos – 13 Ciência da Computação – 2004/2 Departamento de Informática Teórica Lógica para Computação (INF05508) – Professor Luís da Cunha Lamb Universidade Federal do Rio Grande do Sul (UFRGS) RESUMO Iooioioi, ioioioioioi ,oioioioioioioi. Oioioioioioioioioi! Oioioioioioioi oioi oi oioioi oi oi oi oi oioioioioioioioioioi: iooi, ioioi, iooioioi i oioioioi. Iooioioioi, oioiioooioioi oi oi oi oioioiooioioi oioi oioi. 1. INTRODUÇÃO Ioioio 2. HISTÓRICO Ioioioioi 3. FUNDAMENTOS E CONCEITOS A lógica fuzzy tem seus conceitos baseados nos fundamentos da lógica clássica. Ela foi, a princípio, uma extensão de conceitos sobre os conceitos clássicos, e, com o tempo, foram sendo criadas soluções específicas para alguns problemas oriundos da inclusão dos valores intermediários entre o verdadeiro e o falso tradicionais. 3.1. Conjuntos Fuzzy Para compreender como a lógica clássica foi adaptada para a lógica fuzzy, é necessário primeiro compreender como funciona a lógica de conjuntos fuzzy. Na lógica clássica, a relação de pertinência pode resultar em verdadeiro ou falso apenas, se um elemento pertence ou não a determinado conjunto. Dessa forma, podemos atribuir: (x) = 1 se x ∈ A A (x) = 0 se x ∉ A A Como a lógica fuzzy admite infinitos valores­verdade entre verdadeiro e falso (analogamente, são admitidos por convenção infinitos valores reais no intervalo [0,1], onde 0 representa completamente falso e 1 representa completamente verdadeiro), a teoria de conjuntos foi adaptada de forma que cada elemento de um conjunto é representado na forma de um par ordenado, onde a cada elemento é associado um grau de pertinência que varia no intervalo [0,1]. Dessa forma, define­se um conjunto fuzzy A no conjunto universo U através de uma função A(x): U → [0,1], o qual denota­se por: A = { A(x)/x},x ∈ A Um conjunto unitário fuzzy (ou singleton) é definido por um conjunto A com um único elemento x cujo A(x)=1. 3.2. Operações e Relações Os operadores lógicos fuzzy são adaptações que permitem valores intermediários dos operadores da lógica clássica. Dessa forma, podemos estabelecer as seguintes definições sobre um conjunto universo U: • Conjunto vazio: A = ∅ ↔ A(x) = 0, ∀x ∈ U. • Complemento (denotado por A’): (x) = 1 ­ A(x) , ∀x ∈ U. A’ • Igualdade: A = B ↔ A(x) = B(x) , ∀x ∈ U. • Continência: A ⊂ B ↔ A(x) < B(x), ∀x ∈ U. • Complemento (denotado por A’): (x) = 1 ­ A(x) , ∀x ∈ U. A’ • A∪B • União (∨): (x) = max ( A(x), B(x)) Intersecção (∧): (x) = min ( A(x), B(x)) A/∩B As operações max e min utilizam conceitos de norma triangular (norma­t) e co­norma triangular (co­norma­t). Uma norma­t e uma co­norma­t são funções τ: [0,1]×[0,1] → [0,1] tal que, ∀x,y,z,w ∈ [0,1]: a) x ≤ y ∧ w ≤ z → x τ w ≤ y τ z b) x τ y = y τ x c) (x τ y) τ z = x τ (y τ z) Uma norma­t ainda satisfaz x τ 0 = 0; x τ 1 = x, enquanto uma co­norma­t satisfaz x τ 0 = x; x τ 1 = 1. Dessa forma, a operação min é uma norma­t enquanto a operação max é uma co­norma­t. É fácil perceber que essas operações obedecem às propriedades das operações da lógica clássica da involução, idempotência, comutatividade, associatividade, distributividade, e transitividade. Além disso, max e min possuem a propriedade do elemento neutro análoga à da disjunção e conjunção da lógica clássica. Porém, ao contrário da lógica clássica, A∩A'≠∅ e A∪A'≠U. Uma relação fuzzy n­ária de A1, A2,...An sobre um universo U1,U2,...,Un é um conjunto fuzzy expresso da seguinte forma: R = { R(x1,...,xn)/x1,...,xn) tal que (x1,...,xn) ∈ U1×U2×...×Un 3.3. Variáveis Lingüísticas Uma variável lingüística é uma variável que assume valores como muito, pouco, demais, médio, etc. Estes valores são descritos por intermédio de conjuntos fuzzy. De forma mais geral, os valores que uma variável lingüística assume podem ser formados por termos primários (quente, frio, zero, médio, etc.), modificadores (muito, pouco, etc.), conectivos e delimitadores (parêntese). Os termos primários são normalmente formalizados na forma de uma função triangular sobre um conjunto fuzzy. Os conectivos são implementados através das definições das operações sobre conjuntos fuzzy. Os modificadores são composições de funções, por exemplo, consideremos q: U → [0,1] associada ao termo quente. Através do modificador de intensidade p associado ao termo pouco implementa a composição pouco quente através de p(q(x)). Os delimitadores eliminam ambigüidades e definem precedências. 3.4. Proposições e Dedução Natural Uma proposição fuzzy é a associação de uma variável lingüística α a um conjunto fuzzy A. Informalmente, (α é A) é uma proposição fuzzy. Proposições fuzzy podem ser combinadas através de operadores da lógica clássica, como OU, E e SE ... ENTÃO. Dessa forma, as proposições resultantes podem ser expressas na forma de relações fuzzy. Por exemplo, considerando as proposições sobre as variáveis lingüísticas x e y (x é A) e (y é B). Unindo­as com o operador OU, teríamos (x é A) OU (y é B), denotada pela relação ((x,y),RA OU B) onde R é a função fOU (geralmente uma co­ norma­t): RA OU B = {µR(x,y)/(x,y)} tal que µR(x,y) = fOU (µA (x), µB(y)) Analogamente, o operador E é implementado através da função fE e a implicação através da função f→. Quando uma implicação possui mais de um antecedente, eles são combinados através do conectivo E. Nesse formato, teremos uma composição das funções fE e f→. A função f→ é de fundamental importância no processo de inferência que algumas aplicações da lógica fuzzy utilizam. As funções descritas acima são implementadas através de analogias e equivalências com a lógica clássica. Por exemplo, a função fOU é análoga à disjunção da lógica clássica. Da mesma forma, a disjunção da lógica clássica é equivalente à operação fuzzy max. Analogamente à função fE associamos o operador fuzzy min. A função f→ pode ser implementada através das equivalências da lógica clássica (p → q) ↔ [(~p) ∨ q] e (p → q) ↔ ~[p ∧ (~q)]. Daí pode­se deduzir que a função de pertinência de uma relação de implicação R (p→q) pode ser denotada através de: µR(x,y) = 1 ­ min [µp(x), 1 ­ µq(y)] ou µR(x,y) = max [1 ­ µp(x), µq(y)] Obs: Demonstração através de tabelas­ verdade. Na lógica clássica, existe a regra de dedução natural do Modus Ponens. Essa regra é muito importante para as aplicações da lógica fuzzy. O Modus Ponens da lógica clássica é apresentado a seguir: 1. x é A 2. SE x é A ENTÃO y é B 3. y é B 3.5. Significação e Utilização das Definições e Regras Na lógica fuzzy, a função de pertinência µR(x,y) mede o grau de verdade da relação de implicação entre x e y. A regra do Modus Ponens na lógica fuzzy é uma extensão do tradicional, uma vez que: 1. x é A* 2. SE x é A ENTÃO y é B 3. y é B* Dessa forma, a regra será disparada conforme o grau de similaridade entre A e A*. Da mesma forma, Será disparado um B* similar ao conseqüente B da regra. A função de pertinência do conseqüente B* é dada pela seguinte composição: Considerando duas variáveis lingüísticas x e y e dois conjuntos fuzzy A e B tal que A = {µA(x)/x} e B = {µB(x)/x} e a relação R que implica A em B, então dado que (x é A*) onde A* = {µA*(x)/x}, então B* = A* o R. Quando mais de uma regra é adicionada a um sistema fuzzy, elas são unidas através da função fOU. O problema reside no fato de que este tipo de implicação não possui aplicação prática na engenharia, uma vez que uma vez que poderíamos chegar a conclusões como coisa alguma implica em qualquer coisa. Por esse motivo foram criadas regras de inferência fuzzy. Algumas delas são: o método max­min, o método max­ produto e raiz quadrada da soma (Root­ sum­square). Estes métodos possuem aplicações bastante específicas, e por este motivo não serão detalhados aqui, uma vez que, dependendo do tipo de aplicação, deve­se escolher dentre estes qual o mais eficiente. Todas as definições e regras aqui descritas servem de base para inúmeras aplicações que exigem este tipo de manipulação de informação. Algumas das aplicações que podem utilizar esses conhecimentos estão na área da inteligência artificial, controle de circuitos em computadores ou eletrodomésticos, até em cálculos de rotas de ônibus, enfim, todo tipo de sistema que lida com informações vagas. 4. APLICAÇÕES 5. REFERÊNCIAS BIBLIOGRÁFICAS [1] João Ricardo Bittencourt, Fernando Osório, "FuzzyF ­ Fuzzy Logic Framework: Uma solução software livre para o desenvolvimento, ensino e pesquisa de aplicações de inteligência artificial", Centro de ciências exatas e Tecnológicas, Universidade do Vale do Rio dos Sinos. [2] Petr Hajek, "Fuzzy Logic", Stanford Encyclopedia of Philosofy, 2002. [3] Steven D. Kaehler, "Fuzzy logic ­ an introduction", Seattle Robotics, 1998. [4] Ricardo Transcheit, "Lógica Fuzzy, raciocínio aproximado e mecanismos de inferência", Departamento de Engenharia Elétrica, Pontífice Universidade Católica do Rio de Janeiro, 2000.