Traducido del original en inglés: "A brief course in Fuzzy Logic and Fuzzy Control"
Autores: Peter Bauer, Stephan Nouak, Roman Winkler
INDICE
Fuzzy, nebuloso,
difuso, chegaram a ser palavras-chave para vender. Os artigos eletrônicos sem
componentes difusos estão ficando agradualmente defasados. Como una mordaza, que muestra la popularidad de la lógica borrosa, cada vez es más frecuente un sello con "fuzzy logic" impreso sobre el producto.
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 borrosa é 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.
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.
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:
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
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:
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:
Agora sabemos o que é um conjunto fuzzy. Porém, o que se pode fazer com ele?
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:
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 | PAonde 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:
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:
Se o ângulo é zero e a velocidade angular é negativa baixa então
a velocidade será negativa baixa.
é:
Se o ângulo é zero e a velocidade angular é positiva baixa então
a velocidade será positiva baixa.
é:
O emprego de controle fuzzy é recomendado:
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.