2.3. Sistemas Nebulosos

Observando que muitos conceitos no mundo real não podem ser bem representados usando limites claramente definidos, Lofti A. Zadeh desenvolveu a teoria dos conjuntos nebulosos (Fuzzy Sets[Zad65]). Esta teoria generaliza a teoria clássica dos conjuntos para permitir que objetos possuam graus de pertinência à determinados conjuntos, possibilitando assim a representação de conceitos vagos e imprecisos, porém mantendo a precisão matemática no tratamento. O grau de pertinência de um elemento de um universo à um determinado conjunto é representado por um número real no intervalo [0,1], que representa o quão verdadeira é a afirmação de que este elemento pertence a este conjunto. Um grau de pertinência de 1 equivale ao clássico símbolo de pertinência , e um grau de pertinência de 0 equivale ao clássico símbolo . Entretanto, graus intermediários também podem ser tratados com idêntica facilidade.

Um conjunto nebuloso é caracterizado por meio de uma função, denominada função de pertinência, que relaciona os elementos de um universo de discurso X aos seus respectivos graus de pertinência µF(x) ao conjunto nebuloso F, que pode ser descrito como um conjunto de pares ordenados

F ={ (x, µF(x)), x X } (2.6)

Na Figura 2.8 é apresentada uma função de pertinência para o conjunto nebulosos perto, em relação a medidas de distância genéricas. Nesta função, distâncias entre 0 e 20 unidades possuem valor de pertinência µ(x)=1.0, significando que estas distâncias possuem total compatibilidade com o conceito de perto. Distância maiores de 20 e menores de 250 unidades apresentam valores de pertinência decrescentes, representando afinidades cada vez menores com o conceito perto. Distâncias acima de 250 unidades possuem grau de pertinência µ(x)=0.0, isto é, não são consideradas como tendo qualquer compatibilidade com o conceito representado. Os conceitos da teoria dos conjuntos nebulosos aproximam-se muito dos utilizados na linguagem e no raciocínio humano.

Os conjuntos nebulosos são uma maneira de representar a imprecisão e a incerteza encontrados normalmente em problemas reais, aos quais os conjuntos tradicionais não podem representar adequadamente. O poder de representação dos conjuntos nebulosos encontra-se na capacidade de representar conceitos vagos e imprecisos, os quais seres humanos tratam com grande habilidade. A maioria dos problemas encontrados na vida real pode ser resolvida com base em informações imprecisas, incompletas e vagas que estão disponíveis no momento, e mesmo assim as pessoas conseguem resolver estes problemas satisfatoriamente. Isto é devido ao processo de raciocínio aproximado a partir destas informações, de modo a obter um resultado também aproximado, porém satisfatório para o problema em questão.

Figura 2.10 - Função de pertinência para o conjunto perto.

2.3.1. Definições e Operações sobre Conjuntos Nebulosos

Do mesmo modo que a teoria clássica dos conjuntos permite que se efetuem operações de complemento, intersecção e união, assim também as permitem os conjuntos nebulosos. Entretanto, com o advento do conceito de função de pertinência, deve-se rever as operações básicas sobre estes conjuntos. Considerando os conjuntos nebulosos P e Q em um universo X, define-se:

Conjunto vazio: P = Ø se e somente se x X, P(x) = 0

Conjuntos iguais: P = Q se e somente se x X, P(x) = Q(x)

P subconjunto de Q: P Q se x X, P(x) Q(x)

As funções de pertinência generalizam o conceito de conjuntos, mas podem também ser empregadas para a representação de conjuntos clássicos, como no exemplo abaixo. Utilizaremos como universo de discurso X = {0,1,2, ..., 10}, i.e.,o conjunto dos números inteiros não negativos entre 0 e 10. A função de pertinência que caracteriza o conjunto clássico A=(x | 0 x 3, x X) é a dos números menores ou iguais a 3. Observa-se a divisão brusca entre os elementos pertencentes ao conjuntos (0,1,2 e 3), com valor de pertinência 1.0, e valores não pertencentes (4,5,...10), com valor de pertinência 0.0. Para realizar comparações, apresentamos também um conjunto nebuloso P, que denota o conceito de número pequeno. Observa-se claramente a suavidade na diferenciação entre elementos pertencentes e não pertencentes a este conjunto nebuloso.

Figura 2.11 - Conjunto clássico A e conjunto nebuloso P

As operações básicas de complemento, união e intersecção de conjuntos clássicos e nebulosos são discutidas a seguir:

A operação de complemento sobre o conjunto clássico A realiza uma inversão da função de pertinência, resultando no conjunto ~A = (4 x 10). A mesma operação pode ser realizada sobre o conjunto nebuloso P, aplicando a cada ponto a regra µ(~P) = (1 - µ(P)). Assim obteremos o conjunto ~P, que pode ser descrito como o conjunto dos números não pequenos, ou grandes. Podemos definir então a operação de complemento como:

~A = {(x, µA(x)) | µ~A = 1 - µA(x)} (2.7)

Para o caso da união, considere um conjunto B = (x | 2 < x < 5, x X). A união dos conjuntos A e B resulta no conjunto C = (x | 1 < x < 5). Esta operação pode ser vista como o máximo dentre as funções de pertinência de A e B, tomado ponto a ponto.

AB = {(x , µAB(x)) | (x) = max(A(x), B(x))} (2.8)

Do mesmo modo, a intersecção entre A e B resulta no conjunto D = (x | 2 < x < 3), e pode ser vista como o mínimo sobre as funções de pertinência de A e B.

AB = {(x , µAB(x)) | (x) = min(A(x), B(x))} (2.9)

Para ilustrar é apresentada na Figura 2.12 a aplicação da união e da intersecção clássica e nebulosa, sobre os conjuntos clássicos A e B, e sobre os conjuntos nebulosos P e ~P. Um ponto muito importante a ser notado é que o princípio do meio-excluído, A ~A =Ø, fundamental para a lógica clássica (e base para os paradoxos nela encontrados) não é mais válido. No caso dos conjuntos nebulosos, P~P pode ser diferente de Ø, como está apresentado na figura.

Figura 2.12 - Exemplos de Negação, União e Intersecção em conjuntos clássicos e nebulosos

As operações que podem ser aplicadas aos conjuntos nebulosos não limitam-se somente ao máximo e mínimo, mas formam uma família de normas, denominadas normas triangulares(normas T) e Co-normas triangulares(co-normas T, também conhecidas como normas S). Uma norma triangular(norma-T) é uma função :[0,1] X [0,1] [0,1] tal que, x, y, z, w [0,1] com as seguintes propriedades:

i. x w y z, se x y, w z (Monotonicidade)

ii. x y = y x (Associatividade)

iii. (x y) z = x (y z) (Comutatividade)

iv. x 0 = 0; x 1 = x (Contorno)

Uma co-norma triangular (ou norma-S) é uma função :[0,1] X [0,1] [0,1] satisfazendo as propriedades i) a iii) acima, e ainda:

iv. x 0 = x; x 1 = 1 (Contorno)

Entre as normas triangulares incluem-se o próprio operador mínimo, o produto algébrico, o produto limitado e o produto drástico , definidos abaixo:

intersecção ou mínimo: x ^ y = min(x,y)

produto algébrico: x . y = xy

produto limitado: x y = max(0, x+y-1)

x se y=1

produto drástico: x y = y se x=1

0 se x,y<1

Entre as co-normas triangulares, incluem-se o operador máximo, soma algébrica, soma limitada e soma drástica, definidas a seguir:

união ou máximo: xy = max(x,y)

soma algébrica: xy = x + y - xy

soma limitada: xy = min(1, x + y)

x se y=0

soma drástica: xy = y se x=0

1 se x,y>0

2.3.2. Produto Cartesiano e Relação entre Conjuntos

O produto cartesiano entre conjuntos clássicos X e Y, é representado por XY e definido como:

XY = {(x, y) | x X e y Y}.

Esta definição pode ser generalizada para uma família de conjuntos clássicos X1, X2,..., Xn e denotada por X1X2 ... Xn. Elementos do produto cartesiano são n-tuplas do tipo (x1, x2, ..., xn), de modo que x1 X1, x2 X2, ..., e xn Xn.

Uma relação entre conjuntos clássicos X1, X2,..., Xn, é um subconjunto do produto cartesiano por eles formado. Este subconjunto representa as n-tuplas que pertencem à relação. Utilizando a notação de funções de pertinência, poder-se-ia dizer que as n-tuplas deste subconjunto possuem pertinência 1 à essa relação, enquanto que todas as outras possíveis n-tuplas possuem pertinência 0. Deste modo, torna-se possível estender o conceito de relação entre conjuntos para os sistemas nebulosos.

2.3.3. Relações Nebulosas

Uma relação nebulosa R entre dois conjunto clássico X e Y é um subconjunto nebuloso do produto cartesiano X Y, definido pela função de pertinência R(x,y) e expressa por:

R = { R(x,y) / (x,y), xX , yY }

Uma relação nebulosa expressa o grau de correspondência entre os elementos dos conjuntos clássicos X e Y, expresso como valores no intervalo [0,1], representando o nível de afinidade do par à relação. Um exemplo é a relação nebulosa de proximidade entre diferentes cidades, como na tabela abaixo:


Relação Proximidade  São Paulo  Campinas  Rio de         
                                           Janeiro        
Rio de Janeiro          0.5        0.6      1.0       
Curitiba                0.6        0.4      0.3       
Jundiaí                 0.9        0.95     0.5        

Tabela 2.1 - Um exemplo de uma relação nebulosa

2.3.4. Conjuntos Nebulosos e Variáveis Linguísticas

Os conjuntos nebulosos representam uma informação imprecisa de maneira direta, através de graus de pertinência µ(x) de cada elemento x de um conjunto nebuloso. Um exemplo clássico é o tratamento humano à referências de altura: em lugar de usar números precisos, as pessoas utilizam um grupo de conjuntos nebulosos representativos. Neste caso, estes conjuntos poderiam ser simplesmente Baixo, Médio e Alto, e poderiam ser representados como a seguir:

Figura 2.13 - Conjuntos Nebulosos representando altura.

Deste modo, pessoas podem ser classificadas de acordo com a altura, em um (ou mais) dos conjuntos nebulosos representativos deste conceito. Qualquer pessoa com menos de 150 centímetros, ou um metro e meio, teria grau de pertinência µ(x)=1.0 ao conjunto nebuloso Baixo, isto é, se enquadraria totalmente no conceito de estatura baixa. Note também que os limites entre os conjuntos se sobrepõem, podendo assim um mesmo indivíduo, de um metro e sessenta (160 centímetros), por exemplo, se classificar tanto como Baixo quanto como Médio, mas com diferentes graus de pertinência. Uma representação precisa pode ser feita utilizando a notação valor/conjunto, sendo este elemento com 160 centímetros de altura caracterizado como 0.75/Baixo + 0.25/Médio. Cabe observar que a distribuição dos conjuntos sobre o universo de discurso pode ser arbitrário, que as funções podem tomar quaisquer formato (trapezoidal, como no exemplo, mas também triangular ou gaussiana), e que pode ou não haver sobreposição de conjuntos. Toda esta generalidade proporciona uma alta capacidade de representação e de adequação ao problema a ser tratado.

Um conceito relacionado com conjuntos nebulosos é o de variável linguística. Entende-se por variável um identificador que pode assumir um dentre vários valores. Deste modo, uma variável linguística pode assumir um valor linguístico dentre vários em um conjunto de termos linguísticos. No exemplo da Figura 2.13, a variável poderia ser denominada altura, e assumir um dos seguintes valores: baixo, médio ou alto, elementos do conjunto T={baixo, médio, alto}.

Formalmente, uma variável linguística é caracterizada pela quíntupla{ X, T(X), U, G, M}, onde X é o nome do conjunto de termos (altura, no exemplo), U o universo de discurso, G uma gramática para gerar os termos T(X), e M o significado dos termos linguísticos, representado através de conjuntos nebulosos.

Variáveis linguísticas podem também conter modificadores (também linguísticos) que alteram seu valor. Exemplos de modificadores válidos são: muito, pouco, não muito, mais ou menos. Existem também conectivos que podem ser aplicados à estas variáveis, e e ou. Assim, um valor válido para a variável linguística altura seria não muito alto e não muito baixo. Os modificadores linguísticos podem ser definidos matematicamente, como no exemplo dos conjuntos baixo e muito baixo, onde o modificador muito é caracterizado por elevar cada ponto da função de pertinência à segunda potência. Os conectivos and(e) e or(ou) são equivalentes às operações de união e intersecção de conjuntos, respectivamente, podendo dar origem a conjuntos complexamente definidos, porém representados lingüisticamente de maneira simples. Na Figura 2.14 é apresentado um exemplo da aplicação dos modificadores lingüísticos muito e não ao conjunto nebulosos pequeno (P).

Figura 2.14 - Modificadores linguísticos muito pequeno (P2) e não pequeno (~P)

2.3.5. Proposições Nebulosas

Seja uma frase da forma (X é A), onde X é o nome de uma variável linguística e A um subconjunto nebuloso definido no universo de discurso X. Esta frase é denominada proposição nebulosa. Proposições nebulosas podem ser combinadas utilizando-se operadores lógicos E e OU, ou de implicação da forma SE...ENTÃO. As proposições nebulosas resultantes podem ser descritas em termos de relações nebulosas, como a seguir.

Sejam X e Y variáveis linguísticas com universos de discurso X e Y, respectivamente. Sejam A e B conjuntos nebulosos definidos respectivamente em X e Y. As preposições nebulosas (X é A) e (Y é B) podem ser conectadas pelo operador OU, como abaixo, gerando a proposição nebulosa binária, através de uma relação nebulosa R em XY:

(X é A) ou (Y é B) ((X,Y) é RAouB)

A relação nebulosa RAouB é determinada por uma norma-S:

RAouB = { R(x,y) = A(x) B(y) , xX, yY}

De modo análogo, a relação RAeB é determinada por uma norma-T.

A implicação lógica SE ... ENTÃO é também conhecida como declaração condicional nebulosa, regra nebulosa ou implicação nebulosa. Este operador descreve a dependência do valor de uma variável nebulosa em relação ao valor de outra. Implicações são da forma:

SE (X é A) ENTÃO (Y é B)

que pode ser representado por:

( (x,y) é RAB )

A relação nebulosa de implicação RAB pode ser obtida através das funções de pertinência individuais µ(x) e µ(y) de diversas maneiras, como definido a seguir:

(1) Mamdani (1974) : RAB(x,y) = µA(x) ^ µB(y)

(2) Larsen (1981) : RAB(x,y) = µA(x) . µB(y)

(3) Implicação Nebulosa aritmética de Zadeh: RAB(x,y) =1 (1 - µA(x) + µB(y))

(4) Implicação Nebulosa MaxMin de Zadeh: RAB(x,y)=(µA(x) ^ µB(y)) (1 - µA(x))

sendo as mais utilizadas, em aplicações de controle, as propostas por Mamdani [Mam74] e Larsen[Lar80]. Para realizar a combinação de N declarações nebulosas do tipo SE ... ENTÃO, utiliza-se o conectivo OU, usualmente implementado pelo operador max () [Lem84]:

R(x,y) = j ( Aj(x) ^ Bj(y) ), j=1,2,....., N

2.3.6. Composição de Relações Nebulosas

A composição C entre duas relações P(X,Y) e Q(Y,Z), denotada por:

C(X,Z) = P(X,Y)Q(Y,Z)

é definida como o subconjunto C(X,Z) de XZ, tal que (x,z) C se e somente se existe ao menos um yY tal que (x,y)P e (y,z)Q.

Do mesmo modo que as operações básicas possuem uma variedade de generalizações para os conjuntos nebulosos, a operação de composição de relações nebulosas pode tomar diversas formas. A mais comum destas formas é a composição max-min, definida [Zad65] como:

µPQ(x,z) = max min[µP(x,y), µQ(y,z)]

yY

para todo xX e zZ. Entretanto, pode-se utilizar qualquer norma-T em substituição ao operador mínimo, como o produto algébrico[Kau75], produto limitado ou o produto drástico[Miz81].

2.3.7. Regra de Inferência Composicional

Considere-se duas proposições nebulosas:

SE (X é A) ENTÃO (Y é B) : ( (X,Y) é R1 )

SE (Y é B) ENTÃO (Z é C) : ( (Y,Z) é R2 )

Estas duas proposições podem ser compostas de forma a resultar em:

SE (X é A) ENTÃO (Z é C) : ( (X,Z) é R12 )

Como já apresentado, R12 = R1 R2 é determinada pela composição sup-. Por exemplo, esta pode ser definida por uma regra do tipo max-min:

µR1µR2 (x,z) = max min [µR1(x,y), µR2 (y,z)]

yY

ou por uma regra do tipo max-produto:

µR1µR2 (x,z) = max (µR1(x,y) . µR2 (y,z) )

yY

2.3.8. Lógica Nebulosa

Baseada na teoria dos conjuntos nebulosos, a lógica nebulosa proporciona os mecanismos para realizar inferências lógicas baseadas em informações imprecisas. Analogamente a teoria dos conjuntos, a lógica nebulosa é uma generalização da lógica tradicional. Utilizando os respectivos conceitos de negação, união e intersecção nebulosas, é possível realizar todos os processos de inferência já conhecidos na lógica tradicional com conjuntos nebulosos. A principal regra de inferência da lógica clássica é o modus ponens. Segundo esta regra, a partir do conhecimento de um fato (X é A') e da existência de uma regra do tipo "se (X é A) então (Y é B)", pode-se inferir (Y é B'). Esta regra básica foi generalizada para a utilização com a lógica nebulosa, dando origem ao modus ponens generalizado. Nesta nova regra, os conjuntos envolvidos, A e B, são conjuntos nebulosos, e conclusões podem ser obtidas sempre que o antecedente é parcialmente satisfeito, da seguinte forma:

(x é A') : A' = { (µA'(x),x), x X}

se (X é A) então (Y é B) : (X,Y) é R

Dadas estas duas proposições nebulosas, pela regra da composição pode-se inferir:

(Y é B')

Por exemplo, utilizando-se a regra de inferência max-min, teremos que:

B' = A' R : B'(y) = x ( µA'(x) µR(x,y) )

2.3.9. Controle Nebuloso

A lógica nebulosa pode ser utilizada para a implementação de controladores nebulosos, aplicados aos mais variados tipos de processos[Lee90]. A utilização de regras nebulosas e variáveis linguísticas confere ao sistema de controle várias vantagens, incluindo:

- simplificação do modelo do processo;

- melhor tratamento das imprecisões inerentes aos sensores utilizados;

- facilidade na especificação das regras de controle, em linguagem próxima à natural;

- satisfação de múltiplos objetivos de controle;

- facilidade de incorporação do conhecimento de especialistas humanos;

Entretanto, quando tanto as leituras de sensores quanto os sinais esperados pelos atuadores do sistema de controle não são nebulosos, são necessários elementos adicionais entre o controlador nebuloso e o processo a ser controlado. Estes elementos são denominados fuzificador e defuzificador, e estão posicionados na entrada e saída do sistema de controle, respectivamente. Estes elementos são responsáveis por transformar as medidas obtidas dos sensores em conjuntos nebulosos (fuzificador), e em transformar os conjuntos nebulosos obtidos na saída do controlador em valores não nebulosos de controle para o processo (defuzificador).

Figura 2.15 - Estrutura básica de um controlador nebuloso

Como exemplo, é apresentado o problema de controle de direção de um veículo, apresentado na Figura 2.16. As leituras realizadas pelos sensores são a distância para a esquina(x1), o ângulo entre a direção seguida pelo carro (x3), e as distâncias laterais até as paredes(x2 e x4). Com base nas respostas (imprecisas) dos sensores, o sistema de controle deve ser capaz de fazer o carro contornar a curva, e continuar seu caminho. O primeiro passo é realizado pelo fuzificador, que recebe as leituras dos sensores e as transforma em conjuntos nebulosos a serem tratados pelo procedimento de inferência. A fuzificação consiste da transformação das leituras em conjuntos nebulosos que representem tanto o valor lido, como a falta de precisão deste valor. A técnica de fuzificação mais utilizada consiste da atribuição de uma função de pertinência triangular ou gaussiana ao valor lido, centrando esta função no exato valor passado pelo sensor. Os conjuntos nebulosos gerados são então armazenados na base de dados, e utilizados para realizar as inferências nebulosas. Esta base de dados contém também a definição dos conjuntos nebulosos que caracterizam os valores que poderão ser assumidos pelas variáveis linguísticas utilizadas pelo controlador. Na Figura 2.16 são apresentados exemplos das funções de pertinência das variáveis x1 e x3. O cerne do controlador nebuloso é a base de regras, a qual armazena regras linguísticas que definem o comportamento do sistema. As regras são da forma "se (x1 é A) e (x2 é B) e (x3 é C) e (x4 é D) então (y é E)", sendo x1, x2, ..., x4 e y variáveis linguísticas, e A, B, C , D e E valores que estas variáveis podem assumir. Um exemplo válido de regra, a qual deve ser explicitada por um especialista no processo controlado, é:

- se (x1(distância até a esquina) é grande)

e (x3(ângulo com a parede) é frente)

e (x2 e x4 (distâncias laterais) não são grandes)

então (y(atuação no volante do carro) é frente).

Figura 2.16 - Exemplo de aplicação de controle nebuloso

2.3.10. Inferência Nebulosa

O processo de inferência ocorre através da determinação do valor de cada conseqüente das regras nebulosas, a partir dos graus de compatibilidade entre as proposições derivadas das medidas com as respectivas proposições presentes nos antecedentes das regras.. Cada medida dos sensores a e b, após fuzificada (gerando os conjuntos nebulosos A' e B'), é comparada com os antecedentes de todas as regras nebulosas. Esta comparação é realizada aplicando-se o operador de intersecção(min) entre os conjuntos representativos da leitura do sensor(A'e B') e do antecedente de cada regra(A1 e A2). Este processo resulta no nível de satisfação que cada leitura de sensor apresenta para cada regra. Após este cálculo, para todas as entradas, é realizada a inferência, isto é, a propagação dos valores verdade através das regras nebulosas, gerando conjuntos nebulosos representativos dos conseqüentes de cada regra. Para isto é utilizada a regra da composição de relações. A contribuição de cada regra é levada em consideração via, por exemplo, a união(max) entre os conjuntos nebulosos resultantes das regras (C1 e C2). Neste ponto, já se possuem as respostas para o controlador, mas na forma de um conjunto nebuloso (C1C2). Para que se possa aplicar tal resposta ao processo, através dos atuadores, é necessária uma defuzificação do resultado. Existem vários métodos de defuzificação, sendo os mais usados o do valor máximo e o do centro de área.

Figura 2.17 - Um exemplo do processo de inferência nebulosa.

Na Figura 2.17 são apresentados exemplos de inferência nebulosa, com duas regras operando sobre os mesmos conjuntos de entrada. Os conjuntos A' e B' representam leituras de sensores, já fuzificadas. Estes conjuntos são comparados com os antecedentes nebulosos das regras 1 e 2, e é realizada a interseção entre os conjuntos. Os conjuntos C1' e C2' são formados a partir do menor valor de pertinência encontrado, propagado para os conjuntos C1 e C2. O conjunto C'= C1'C2' é o resultado da inferência nebulosa das regras 1 e 2, e em geral necessita ser defuzificado para fornecer um sinal de controle para o sistema controlado. Nesta figura são também apresentados os dois pontos mais comuns utilizados pela defuzificação, correspondendo ao cálculo do centro de área (Cd1), ou à média dos máximos (Cd2).

Figura 2.18 - Outro exemplo de inferência nebulosa - utilizando regra do produto.

A Figura 2.18 apresenta o mesmo mecanismo de inferência, mas utilizando o operador max-produto de Larsen na composição das relações.