Lógica difusa
Origem: Wikipédia, a enciclopédia livre.
A lógica difusa ou lógica fuzzy é uma generalização da lógica booleana que admite valores lógicos intermediários entre a falsidade e a verdade (como o talvez). Como existem várias formas de se implementar um modelo fuzzy, a lógica fuzzy deve ser vista mais como uma área de pesquisa sobre tratamento da incerteza, ou uma família de modelos matemáticos dedicados ao tratamento da incerteza, do que uma lógica propriamente dita.
A lógica difusa normalmente está associada ao uso de uma teoria de conjuntos fuzzy.
As implementações da lógica difusa permitem que estados indeterminados possam ser tratados por dispositivos de controle, como por exemplo avaliar conceitos como morno, médio...
Ao trabalhar com a lógica fuzzy é comum chamar a lógica booleana de lógica nítida.
Muitos pesquisadores de versões booleanas de lógica não aceitam a lógica fuzzy como uma verdadeira lógica, no sentido em que aceitam, por exemplo, a lógica modal. Isso pode ser associado a diferentes fatos, entre eles o fato de muitos modelos permitir soluções aproximadas que não correspondem a uma "verdade" lógica.
Índice |
[editar] Noções básicas
Na lógica proposicional, a cada proposição p associamos um entre dois valores possíveis: verdadeiro ou falso. É comum que sejam escolhidos valores numéricos como 1 para representar o verdadeiro e 0 para representar o falso.
Um modelo fuzzy simples é construído associando-se um valor μ(p) a uma proposição p, indicando o grau de veracidade dessa proposição, sendo que μ(x) é uma função (arbitrária) cujo conjunto imagem está entre 0 e 1 (ou 0% e 100%). Se exige pouco dessa funcional: caso p seja verdade, deve estar associado ao valor 100%, caso p seja falso deve ser associado ao valor 0%. Dessa forma, a lógica estende a lógica booleana, pois ao invés de permitir só dois valores (1 e 0) permite uma gama infinita de valores.
Da mesmo forma que são estendidos os valores possíveis das proposições, também devem ser estendidos os operadores, como NÃO, E e OU. Porém, ao estender esses operadores, devemos manter certas propriedades, entre elas a compatibilidade com a versão booleana da lógica. Assim, um operador NÃO-fuzzy, ao ser aplicado sobre o valor de uma proposição fuzzy que seja 0 ou 1, deve retornar o mesmo valor que um operador NÃO retornaria na lógica booleana.
Existem uma ampla gama de funções que podem ser utilizadas como NÃO-fuzzy, E-fuzzy e OU-fuzzy, tendo sido aplicadas a vários sistemas, porém as que contém mais propriedades desejáveis e que simultaneamente são bastante fáceis de utilizar são:
- Não-fuzzy(x) = 1 - x
- E-fuzzy(x,y) = Mínimo(x,y)
- OU-fuzzy(x,y) = Máximo(x,y)
Utilizando essa modelo, podemos construir o seguinte exemplo:
Suponha que desejássemos representar de forma fuzzy a altura de Alice (1,65m), Bob (1,75m), Carlos(2,0m) e Denise(1,45m). Nossas proposições serão da forma "X é alto", e serão:
- A = Alice é alta, μ(A)=55%
- B = Bob é alto, μ(B)=75%
- C = Carlos é alto, μ(C) = 100%
- D = Denise é alta, μ(D) = 0%
Usando os operadores acima descritos, podemos escrever sentenças como:
- Carlos não é alto, NÃO(C), μ(NÃO(C))=100%-μ(C)=0%
- Bob não é alto, NÃO(B), μ(NÃO(B))=100%-μ(B)=25%
- Denise é alta e Alice é Alta, D e A, μ(D e A)=mínimo(μ(D),μ(A))=0%
A lógica está claramente associada a teoria dos conjuntos. Cada afirmação (do tipo "Carlos é alto") representa na verdade o grau de pertinência de Carlos ao conjunto de pessoas altas. Isso permite que conjuntos como "alto" e "baixo" sejam tratados de forma separadas e afirmações como "Carlos é alto 75%" e "Carlos é baixo 50%" sejam válidas simultaneamente, ao contrário do que seria esperado em um modelo nítido. Esse tipo de afirmação é facilmente encontrada na descrição, por humanos, na forma como entendem certo conceito, e a lógica difusa é uma ótima forma de tratar essa forma de incerteza.
[editar] Inferência difusa
Fazer uma inferência difusa significa aplicar regras do tipo SE X ENTÃO Y de forma que X e Y, e a própria sentença, sejam noções difusas. Dessa forma, se torna mais fácil interpretar matematicamente e implementar sistemas a partir do conhecimento humano, como em: SE A TEMPERATURA É ALTA E A PRESSÃO É ALTA ENTÃO O FLUXO DE COMBUSTÍVEL DEVE SER PEQUENO.
É importante notar que no caso acima, uma versão de uso corrente da lógica difusa, a regra é igual a uma regra nítida que seria usada em um sistema especialista. Porém, os conjuntos (ALTO, MÉDIO e BAIXO para temperatura, por exemplo) permitem graus de pertinência, onde uma temperatura pode ter algum grau em todos os conjuntos, enquanto em um sistema nítido, apenas um valor seria possível.
Assim, em sistemas difusos, com um conjunto de regras, várias regras aparentemente contraditórias são válidas simultaneamente, possuindo ainda um grau de validade. A solução final é obtida por meio da agregação dos resultados por meio de alguma operação matemática, como o cálculo do centro de massa da resposta obtida.
No caso da inferência, para cada conjunto de operações básicas NÃO,E e OU escolhidos, são possível várias versões da implicação. Isso porque, na lógica nítida, A=>B (A implica em B) é equivalente a várias sentenças.
Outra forma de inferência difusa é aplicar regras como o modus ponens e modus tolens. Isso permite várias variações. Em uma delas, sabendo que "A implica em B" de forma nítida, e tendo apenas um valor difuso de A, é possível calcular o valor de B.
[editar] Conjuntos Difusos
Normalmente, o uso da lógica difuso está associado ao uso de conjuntos nebulosos.
Um conjunto nebuloso estende o conceito de conjunto permitindo que um elemento passa a ter um grau de pertinência variando entre 0 e 1, ao invés de pertencer ou não ao conjunto como na teoria de conjuntos tradicional.
Veja que o princípio é o mesmo aplicado a lógica difusa, onde o grau de veracidade pode passar a variar entre 0 e 1.
Para cada conjunto, então, é criada uma função de pertinência, que indica o grau de pertinência de seus elementos. Normalmente, essa função é criada de forma a representar algum conceito impreciso, como "ser alto".
[editar] Raciocínio fuzzy
O raciocínio fuzzy também é conhecido como raciocínio aproximado e pode ser dividido em 5 etapas.
- Transformação das variáveis do problema em valores fuzzy, ou fuzzificação
- Aplicação dos operadores fuzzy
- Aplicação da implicação
- Combinação de todas as saídas fuzzy possíveis
- Transformação do resultado fuzzy em um resultado nítido, a defuzzificação.
No primeiro passo, para cada valor de entrada associamos uma função de pertinência, que permite obtar o grau de verdade da proposição. • Determinar o grau de pertinência de cada conjunto (proposição); • Limitar o valor da entrada entre 0 e 1;
O segundo passo é aplicar os operadores fuzzy, assim como os operadores da lógica nítida. Os operadores usados na lógica fuzzy são AND e OR, conhecidos como operadores de relação. Na lógica fuzzy são utilizados para definir o grau máximo e mínimo de pertinência do conjunto. O terceiro passo é aplicar o operador de implicação, usado para definir o peso no resultado e remodelar a função, ou seja, o terceiro consiste em criar a hipótese de implicação. Como no exemplo abaixo: • Serviço é excelente OU atendimento é rápido ENTÃO pagamento é alto.
No quarto passo ocorre a combinação de todas as saídas em um único conjunto fuzzy, algo semelhante ao processo de união e intersecção, na teoria dos conjuntos abruptos. O quinto e ultimo passo no processo do raciocínio fuzzy, é a ‘defuzzyficação’ que consiste em retornar os valores, obter um valor numérico dentro da faixa estipulada pela lógica fuzzy. Um exemplo simples que demonstra o processo de pertinência do raciocínio fuzzy seria. Se A é identificado como ‘o tomate está vermelho’ e B como ‘o tomate está maduro’, então se é verdade que ‘o tomate está vermelho’, é também verdade que ‘o tomate está maduro’. Essa seria um exemplo pensado na lógica tradicional onde: • Fato: x é A; • Regra: se x é A então y é B; • Conclusão: y é B
Esta regra aplica um conceito aproximado. Porem se pensarmos desta forma: se nós temos a mesma regra de implicação se o tomate está vermelho, então ele está maduro e nós sabemos que o tomate está mais ou menos vermelho, então nós podemos inferir que o tomate está mais ou menos maduro. Ou seja: • Fato: x é A’ (quase A) • Regra: se x é A então y é B • Conclusão: y é B’ (quase B)
Este conceito de fuzzyficação funciona da seguinte forma se A’ está próximo de A (situação inicial) e B’ está próximo de B (inicial). A, A’, B e B’ fazem parte do conjunto universo, chegando assim ao paradigma do raciocínio fuzzyano, também chamado de modus ponens generalizado.