006 - Lógica Fuzzy

Conceitos Básicos sobre a Lógica Fuzzy.

Conheça também Fundamentos de Lógica Fuzzy para Educadores

Acesse mais aquivos na Área de Download sobre Fuzzy Logic

Este tutorial foi traduzido por Ilan Chamovitz.
Original de http://www.swin.net/usuarios/miguel/index.htmTraducido del original en inglés: “A brief course in Fuzzy Logic and Fuzzy Control”
Autores: Peter Bauer, Stephan Nouak, Roman Winkler

INDICE

  • Introdução.
  • O que é um conjunto fuzzy?.
  • Operações com conjuntos fuzzy.
  • O controle fuzzy
  • Aplicações da lógica fuzzy.
  • Conclusão.
  • Definições

Introdução

A lógica nebulosa (Fuzzy Logic) surgiu como uma ferrementa para o controle de subsistemas e processos industriais complexos, assim como para jogos eletrônicos, sistemas de diagnóstico e outros sistemas especialistas. Apesar da lógica fuzzy ter sua origem nos  Estados Unidos, o crescimento rápido desta tecnologia a partir do Japão e atualmente alcança novamente os EUA e também a Europa. A lógica fuzzy  “explodiu” no Japão, a quantidade de pedidos de patente para aplicações aumenta exponencialmente.

Fuzzy, nebuloso, difuso, chegaram a ser palavras-chave para vender. Os artigos eletrônicos sem componentes difusos estão ficando gradualmente defasados.  Como una etiqueta, que mostra a popularidade da  lógica fuzzy, cada vez é mais frequente um selo com “fuzzy logic” impresso sobre o produto.
No Japão, a pesquisa sobre lógica nebulosa é apoiada amplamente com grande suporte. A Europa e os EUA se esforçam para alcançar o êxito japonês.  Por exemplo a NASA emprega a lógica nebulosa para o complexo processo de manobras de acoplamento.

No Brasil, um modelo baseado em lógica fuzzy foi desenvolvido para identificar as melhores localizações para plantio, esmagamento e usinagem do biodiesel.

A lógica fuzzy é basicamente uma lógica multivalorada que permite o uso de valores intermediários, complementando os valores convencionais como sim/não, verdadeiro/falso, preto/blanco, etc. As noções como “bem mais quente” ou “pouco frio” podem ser formuladas matematicamente e  podem ser processadas por computadores.  Desta forma tentou-se aplicar uma forma mais humanda de pensar na programação de computadores.  A Lógica Nebulosa se iniciou em 1965  por Lotfi A. Zadeh, professor de Ciência da Computaçãona Universidade da California em Berkeley.

O que é um conjnto fuzzy?

A noção mais básica de sistemas difusos é um (sub) conjunto difuso.

Por exemplo:

Em primeiro lugar consideramos um conjunto X com todos os números reais entre 0 e 10 que nós chamaremos o Universo de Discurso.  Agora, definimos um subconjunto A de X com todos os numeros reais no intervalo entre 5 e 8.

A = [5,8]Agora mostramos o conjunto A por sua fução característica, ou seja, festa função resulta em 1 ou 0 ao elemento em X, dependendo de se o elemento está no subconjunto A ou não. Veja a figura seguinte:


Podemos interpretar os elementos que assinalam 1 como os elementos que estão no conjunto A e os elementeos que assinalam 0 como os elementos que não estão no conjunto A.

Este conceito é suficiente para muitas áreas de aplicação. Porém, podemos encontrar facilmente situações onde falta flexibilidade.  Para compreender este conceito vejamos um exemplo:

Queremos descrever o conjunto de gente jovem.  Formalmente, podemos denotar

B = {conjunto de gente jovem}Como - em geral - a idade começa em 0, o limite inferior desde conjunto está claro.  O limite superior por outro lado, é bem mais difícil de se definir. Como primeira tentativa, colocamos com o limite superior, por exemplo, 20 anos. Para isso definimos B como o intervalo denominado:

B = [0,20]Agora a pergunta é:  Por que alguém,  em seu aniversário de 20 anos é jovem,  e no dia seguinte não é?

Obviamente, este é um problema estrutural, porque se movemos o limite superior do intervalo de 20 até um ponto arbitrário podemos fazer a mesma pergunta.

Uma forma mais natural de construir o conjunto B estaria em tornar mais suave a separação mais estrita entre o jovem e o não-jovem.  Faremos isso para permitir não somente a decisão se “ele/ela SIM está no conjunto de gente jóvem” ou “ele/ela NÃO está no conjunto de gente jovem”, mas também para tornar as frases mais flexíveis - como “ele/ela pertencem um pouco mais ao conjunto de gente jovem” ou “ele/ela NÃO pertencem aproximadamente ao conjnto de gente jovem”.

Continuaremos, mostrando como um conjunto difuso nos permite definir uma noção como “ele/ela é um pouco jovem”.

Como constatamos na introdução,  podemos utilizar conjuntos fuzzy para tornar computadores “mais sábios”, e agora temos que codificar a idéia mais formalmente. Em nosso exemplo, primeiro codificamos todos os elementos do Universo do Discurso com 0 ou 1. Uma maneira de generalizar este conceito está em permitir mais valores entre 0 e 1. Assim, são permitidas infinitas alternativas entre 0 e 1,  denominando o intervalo de unidade Yo = [0, 1].

A interpretação dos números agora assinalados a todos os elementos do Universo de Discurso é algo mais difícil.  Por exemplo, o número 1 assinalado a um elemento, significa que o elemento está no conjunto B e 0 significa que o elemento definitivamente  não está no conjunto B.  O resto dos valores significam uma pertinência gradual ao conjunto B.

Para ilustrar melhor, vejamos graficamente o conjunto de gente jovem de forma  similar ao nosso primeiro exemplo (quem tem 20 anos é jóvem), pela sua função característica:


Desta forma quem tem 25 anos de idade seria um jóvem ao grau de 50 por cento. Quem tem 20, teria 100% de pertinência ao conjunto jóvem e quem tem 35 possui grau 0 de pertinência ao conjunto jovem..

Agora sabemos o que é um conjunto fuzzy. Porém, o que se pode fazer com ele?

Operações com conjuntos fuzzy

Agora que temos uma idéia do que são conjuntos fuzzy, podemos introduzir as operações básicas sobre conjuntos fuzzy.  Assim como nas operações sobre conjuntos booleanos, podemos, também,

interseccionar, unificar e negar conjuntos difusos. Em seu primeiríssimo artigo sobre conjuntos fuzzy, L. A. Zadeh sugiriu o operador mínimo para a interseção e o operador máximo para a união dos conjuntos fuzzy. É fácil ver que estes operadores coicidem com a união booleana, e interseção se considerarmos unicamente os graus de pertinência 0 e 1.  Para esclarecer isso, mostraremos vários exemplos.  Seja A um intervalo fuzzy entre 5 e 8, e B um número fuzzy “em torno de 4 ” ,  As figuras correspondentes ilustram o exemplo:


A figura seguinte mostra a operação AND (Y) do conjunto fuzzy A e o número fuzzy B. O resultado está em azul e compreende os valores mínimos (And=interseção)


A operação OR (ou) do conjutno  do conjunto fuzzy A e o número fuzzy B está na próxima figura, também em azul e compreende os valores máximos (Or=união).


A próxima figura dá um exemplo da negação. A linha azul é a NEGAÇÃO do conjunto difuso  A.


variaveis lingüísticas que são descritas mediante conjuntos fuzzy.

Os controladores fuzzy

Os controladores difusos tem grande importância na teoria fuzzy.. Trabalham de uma forma bem diferente dos controladores convencionais;  o conhecimento especialista é utilizado ao invés das equações diferenciais para descrever um sistema.  Este conhecimento pode se expressar de uma maneira muito natural, empregando as

Exemplo: O péndulo invertido

O problema está em equilibrar una pértiga sobre una plataforma móvel que pode mover-se em apenas 2 direções, à esquerda ou à direita. Primeiro, teremos de definir (subjetivamente) qual é a velocidade do anden: alta, baixa, etc. Isto é necessário  para especificar as funções pertencentes ao conjunto fuzzy:

  • negativo alto (azul celeste)
  • negativo baixo (verde)
  • zero (vermelho)
  • positivo baixo (azul)
  • positivo alto (rosa)


O mesmo se faz para o ângulo  entre a plataforma e a pértiga e, também, para a velocidade angular deste ángulo:


Repare que, para facilitar, supomos que no início a pértiga está em uma posição perto do centro para que um ângulo de, digamos  45 graus em qualquer direção não possa - por definição - ocorrer.

Agora daremos várias regras que dizem o que fazer  em situações concretas:

Considere por exemplo que a pértiga está na posição central (o ângulo é zero) e não se move (a velocidade angular é zero). Obviamente esta é a situação desejada, e portanto nada teremos que fazer (a velocidade é zero).

Consideremos outro caso: o pólo está na posição central como antes, mas está em movimento a baixa velocidade na direção positiva.  Naturalmente teriamos que compensar o movimento da pértiga movendo a plataforma na mesma direção, a baixa velocidade. Desta forma acabamos de construir 2 regras que podem ser apresentadas de maneira mais formal, assim:

Se o ângulo é zero e a velocidade angular é zero  então a velocidade será zero.
Se o ângulo é zero e a velocidade angular é positiva baixa  então a velocidade será positiva baixa.

Podemos resumir todas as regras aplicaveis em uma tabela:

| angulo | veloc | NA NB C PB PA ———-+—————————— v NA | NA . NB | NB C a C | NA NB C PB PA n PB | C PB g PA | PA

onde NA é uma  (usual) abreviatura para Negativa Alta, NB para Negativa Baixa, etc.

Continuando,  mostraremos como estas regras poden ser aplicadas com valores concretos para o ângulo e velocidade angular. Para isso, vamos  definir 2 valores explícitos para o ângulo e para a velocidade angular, para operar com eles.
Consideremos a situação seguinte:

Um valor atual para o ângulo:

Um valor atual para a velocidade angular:


Agora mostraremos como aplicar nossas regras a esta situação real. Vejamos como aplicar a regra

Se o ângulo é zero e a velocidade angular é zero  então a velocidade será zero

para os valores que havíamos definido.

Esta é a variável  lingüística “ângulo” onde nos centramos no conjunto fuzzy “zero” y o ângulo atual:


Nos damos conta que nosso valor real pertence ao conjunto difuso  “zero” em um grau de  0.75:


Agora mostramos a variável lingüística “velocidade angular” onde nos centramos no conjunto fuzzy “cero” o valor atual de velocidade angular:


Nos damos conta que nosso valor real pertence ao conjunto difuso  “zero” em um grau de 0.4:


Como as duas partes da condicao de nossa regra estao unidas por um Y (operação lógica AND) calculamos o  mín(0.75,0.4)=0.4 e cortamos o  conjunto borroso “zero” da variable “velocidad” a este nivel (segundo nossa regra):


Por sua parte, o resultado da regra

Se o ângulo é zero e a velocidade angular é negativa baixa  então a velocidade será negativa baixa.

é:


O resultado da regra

Se o ângulo é zero e a velocidade angular é positiva baixa  então a velocidade será positiva baixa.

é:


O resultado da regra
Se o ângulo é positivo baixo  e a velocidade angular é negativa baixa  então a velocidade será zero.

é:


Estas quatro regras agregadas resultam em um unico gráfico:


O resultado do controlador fuzzy é un conjunto fuzzy(de velocidade), e assim teremos que escolher um valor representativo como saida final. Existem vários métodos heurísticos (métodos de  defuzzificação), um deles toma o centro de gravidade do conjunto fuzzy:


O procedimento completo se  se denomina controlador de Mamdani.

Conclusão

Aqui concluímos o nosso  breve curso sobre lógica fuzzy e controle fuzzy. Esperamos que aproveite e que as explicações sejam de alguma ajuda para você.


Definições

Interseção de Conjuntos

Chamamos um novo conjunto gerado a partir dos  conjuntos determinados A e B, interseção de A e B, se o novo conjunto contem exatamente esses elementos que estao contidos em  A e em B.

Unificação / União de Conjuntos

Chamamos um novo conjunto gerado a partir dos  conjuntos determinados A e B, união de A e B, se o novo conjunto contem todos os elementos que estao contidos em  A ou em B ou em ambos.

Negação de Conjuntos

Chamamos um novo conjunto que contém todos os elementeos que estão no universo de discurso mas não estão no conjunto A a negação de A.

Variáveis lingüísticas

Uma variavel  lingüística é um quíntuple (X,T(X),U,G,M,), onde X é o nome da variavel, T(X) é o término conjunto (isto é, o conjunto de nomes de valores lingüísticos de X), U é o universo de discurso, G é a gramática para gerar os nomes e M é um conjunto de regras semânticas para associar cada X com seu significado.




Original de http://www.swin.net/usuarios/miguel/index.htm

Miguel Ángel Montejo Ráez:

radastan@swin.net

Aplicaciones da la lógica fuzzy

O emprego de controle fuzzy é recomendado:

  • Para processos muito complejos, quando não existe um modelo matemático simples.
  • Para processos altamente não lineares.
  • Se o processamente do (lingüisticamente formulado) conhecimento especialista pode ser desempenhado.

O emprego do controle fuzzy não é uma boa idéia se:

  • O controle convencional teoricamente oferece um resultado satisfatório
  • Existe um modelo matemático de fácil solução e adequado.
  • O problema não tem solução.