CAPÍTULO 7 Sistemas Fuzzy Paulo Eduardo Maciel de Almeida Alexandre Gonçalves Evsukoff “My crystal ball is Fuzzy” – Lotfi Zadeh (quando perguntado sobre o futuro após a criação da lógica fuzzy) O termo em língua inglesa “fuzzy” pode ter diversos significados, de acordo com o contexto de interesse, mas o conceito básico captado por este adjetivo passa sempre pelo vago, indistinto, incerto. As tentativas de tradução para o português ainda não são uma unanimidade: nebuloso e difuso são os exemplos mais populares na área de engenharia. Uma abordagem completa de todas as aplicações que podem ser desenvolvidas a partir da teoria de conjuntos fuzzy seria material suficiente para um livro. Este capítulo discute os conceitos básicos da lógica fuzzy e o funcionamento das principais ferramentas que utilizam este paradigma. Inicialmente, os conceitos da teoria de conjuntos fuzzy são apresentados a partir de elementos da teoria clássica de conjuntos. São mostradas as técnicas mais usadas de representação e processamento de conhecimento através de sistemas fuzzy, quando são introduzidas as idéias de variáveis lingüísticas e de modelos de inferência fuzzy. São apresentados e ilustrados através de exemplos os modelos de Mamdani e de Takagi-Sugeno-Kang para definição e processamento de regras de produção fuzzy. As principais aplicações da teoria de conjuntos fuzzy na engenharia são discutidas em detalhes. Sistemas de apoio à decisão, algoritmos para aproximação de funções e sistemas de controle baseados em lógica fuzzy estão entre as formas mais populares de utilização destes conceitos. Finalmente, são tecidas considerações sobre as perspectivas futuras de evolução e aplicação de sistemas fuzzy e comentadas as principais referências bibliográficas sobre o tema, como uma forma de auxiliar o leitor na escolha de fontes mais aprofundadas ou específicas na área de sistemas fuzzy. 7.1 Introdução A teoria clássica de conjuntos permite o tratamento de classes de objetos e suas interrelações em um universo definido. Este universo de discurso pode ser discreto ou contínuo, dependendo da natureza dos objetos que o compõem. Por exemplo, pode-se definir um universo U discreto que reúne todos os números entre -10 e 10 do conjunto Z dos números inteiros. Algebricamente, esta definição pode ser expressa por: U : {x ∈ Z /módulo(x) ≤ 10} 113 (7.1) 114 Sistemas Fuzzy Os objetos de uma mesma classe ou que possuem características semelhantes são agrupados em conjuntos. Neste contexto, um conjunto consiste de uma coleção de objetos ou elementos do universo de discurso. Existem três formas de se definir um conjunto na teoria clássica de conjuntos (Causey 1994). Por exemplo, pode-se definir um conjunto A, que reúne os elementos de U positivos, pela enumeração de todos os seus elementos: A : {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} (7.2) A segunda forma de se definir um conjunto baseia-se no fato de que os objetos de uma mesma classe possuem características semelhantes e são agrupados em conjuntos que refletem estas características. Assim, um conjunto consiste de uma coleção de objetos ou elementos do universo de discurso que possuem uma relação bem definida entre si. O conjunto A pode então ser redefinido como: A : {x ∈ U / x > 0} (7.3) O teorema da separação relaciona a teoria clássica de conjuntos e a lógica clássica booleana através de 7.3, onde um conjunto é definido por um predicado da lógica clássica que caracteriza os elementos que pertencem ao conjunto. Desta forma, se um elemento x do universo de discurso U pertence a um dado conjunto, então este elemento satisfaz um predicado associado a este conjunto. Pode-se definir este conjunto através de uma função, dita função característica χA : U → {0, 1} que associa a cada elemento do universo de discurso U , um valor binário. Esta função é expressa por: 0 , se x ∈ /A χA (u) = (7.4) 1 , se x ∈ A Finalmente, a terceira forma de representação de um conjunto é a expressão de sua função característica. O gráfico desta função no plano cartesiano, como mostrado na Figura 7.1, é uma forma usual de visualização deste tipo de representação. Neste caso, o eixo x representa o universo de discurso e o eixo y representa os valores da função característica χA para os elementos deste universo. Figura 7.1: Gráfico representando o conjunto A no universo U Considerando o universo U definido em 7.1, o conjunto dos números positivos, denotado por A em 7.2, e o conjunto dos elementos de U entre -5 e 5 ,denotado por B, as relações de pertinência de alguns elementos em relação a estes conjuntos podem ser obtidas através de 4∈A −6 ∈ /B ou ou χA (4) = 1 χB (−6) = 0 No mundo real (e em grande parte das aplicações de interesse na área de engenharia) existem propriedades que são vagas, incertas ou imprecisas e, desta forma, impossíveis de se caracterizar através de predicados da lógica clássica bi-valente. A teoria dos conjuntos fuzzy pode ser vista como uma extensão da teoria clássica de conjuntos, criada para tratar Teoria de Conjuntos Fuzzy 115 graus de pertinência intermediários entre a pertinência total e a não pertinência de elementos de um universo de discurso com relação a um dado conjunto. Por este prisma, um conjunto fuzzy é uma generalização da noção clássica de um conjunto deste universo. A definição da função de pertinência de um conjunto fuzzy depende do significado lingüístico definido para este conjunto e de sua interpretação no contexto do universo de discurso utilizado. Assim, na lógica fuzzy, o grau de pertinência de um elemento em relação a um conjunto é definido por uma função característica real, que assume como valor qualquer número pertencente ao intervalo real fechado [0, 1]. Algebricamente, ela é mapeada por µy (x) : U → [0, 1]. No universo de discurso definido em 7.1, pode-se ter um conjunto fuzzy chamado “conjunto dos números pequenos”, denotado por P , onde o grau de pertinência dos elementos de U em P é definido por ( µP (x) = 0.0 , se módulo(x) > 5 5−módulo(x) 5 , se módulo(x) ≤ 5 (7.5) Nota-se, agora, que não existe mais um limite abrupto que define os elementos que pertencem ou não ao conjunto P , como no caso dos conjuntos clássicos A e B. Por outro lado, os graus de pertinência dos elementos de U no conjunto P possuem variações suaves no intervalo real [0, 1], como mostrado na Figura 7.2. Figura 7.2: Gráfico representando o conjunto fuzzy P no universo U 7.2 Teoria de Conjuntos Fuzzy Um conjunto fuzzy F de um universo de discurso U é caracterizado por uma função característica real, comumente chamada de função de pertinência, mapeada por µF : U → [0, 1], que associa a cada x ∈ U um número real µF (x) no intervalo [0, 1], representando o grau de pertinência de x em F . O suporte de F é o subconjunto de pontos de U para o qual µF (x) é positivo. A representação de conjuntos fuzzy depende basicamente da natureza e da dimensão do universo de discurso definido. Quando o universo é discreto e composto de um número pequeno de elementos, a maneira mais usual adotada é a representação analítica, como mostrado em 7.6 para o caso do conjunto P . µP (x) = {0.0/-10, 0.0/-9, 0.0/-8, 0.0/-7, 0.0/-6, 0.0/-5, 0.2/-4, 0.4/-3, 0.6/-2, 0.8/-1, 1.0/0, 0.8/1, 0.6/2, 0.4/3, 0.2/4, 0.0/5, 0.0/6, 0.0/7, 0.0/8, 0.0/9, 0.0/10} (7.6) Neste caso, são representados todos os elementos do universo de discurso separados por vírgulas. Cada elemento deste universo é representado na forma “µP (xi )/xi ”, onde o primeiro termo representa o grau de pertinência de xi no conjunto P e o segundo termo identifica o próprio elemento xi . Por outro lado, quando o universo de discurso é contínuo ou possui uma quantidade grande de elementos discretos, a forma mais fácil de representação é o gráfico de sua 116 Sistemas Fuzzy função de pertinência, chamado de diagrama de Hassi-Euler (H-E). Um conjunto F denominado “conjunto dos números pequenos”, definido no universo dos números reais entre -10 e 10, e possuindo uma função de pertinência similar à mostrada em 7.5, seria representado pelo diagrama de H-E mostrado na Figura 7.3. Figura 7.3: Diagrama de H-E representando o conjunto fuzzy F no universo real U :[-10,10] 7.2.1 Operações Fuzzy Básicas Suponha três conjuntos fuzzy denominados “Pequeno”, “Médio” e “Grande”, em um universo de discurso real U : [0, 5], descritos em 7.7. Estes conjuntos estão representados na Figura 7.4 a seguir. 1, se x < 1.5 x − 1, se 1.5 ≤ x ≤ 2.5 3 − x, se 1.5 ≤ x ≤ 2.5 µM (x) = 4 − x, se 2.5 ≤ x ≤ 3.5 µP (x) = 0, se x > 2.5 0, se x < 1.5 ou x > 3.5 (7.7) 0, se x < 2.5 x − 2, se 2.5 ≤ x ≤ 3.5 µG (x) = 1, se x > 3.5 Figura 7.4: Diagrama de H-E dos conjuntos fuzzy “Pequeno”, “Médio” e “Grande” 1. Complemento: O complemento de um conjunto fuzzy A do universo de discurso U pode ser denotado por ¬A, com uma função de pertinência definida por µ¬A (xi ) = 1 − µA (xi ) (7.8) O complemento corresponde ao conectivo “NÃO”. Assim, a partir das definições dos conjuntos mostrados em 7.7 e da definição para o complemento de 7.8, resulta o conjunto “Não Grande”, mostrado na Figura 7.5. 2. União: Teoria de Conjuntos Fuzzy 117 Figura 7.5: Conjunto fuzzy resultante da Operação de Complementação “NÃO Grande” A união de dois conjuntos fuzzy A e B do universo de discurso U é definida de diversas formas na literatura. Por exemplo, pode-se representar A ∪ B ou A + B através da seguinte função de pertinência: µA∪B = max[µA (xi ), µB (xi )] (7.9) Esta é uma definição particular da operação de união proposta por Zadeh na década de 60 (Zadeh 1965b). Na verdade, pode-se definir de uma forma mais geral a operação de união entre conjuntos fuzzy através das normas S, ou seja, através de uma família de funções com as seguintes propriedades: • Comutatividade: S(a, b) = S(b, a) • Associatividade: S(a, S(b, c)) = S(S(a, b), c) • Monotonicidade: se a ≤ b e c ≤ d, então S(a, c) ≤ S(b, d) • Coerência nos Contornos: S(a, 1) = 1 e S(a, 0) = a Assim, qualquer função da família das normas S pode ser utilizada como um operador generalizado da união entre conjuntos fuzzy. Alguns trabalhos apontam, inclusive, vantagens desta substituição de operadores para certos tipos de aplicações (Pedrycz 1993a). De qualquer forma, a união corresponde sempre ao conectivo “OU”. Assim, a partir dos conjuntos mostrados em 7.7 e da definição para união de 7.9, resulta a operação de união mostrada graficamente na Figura 7.6. Figura 7.6: Conjunto fuzzy resultante da operação de união “Grande OU Médio” 3. Interseção: A interseção entre dois conjuntos fuzzy A e B do universo de discurso U é definida de diversas formas. Por exemplo, pode-se representar A ∩ B ou A.B através da seguinte função de pertinência: 118 Sistemas Fuzzy µA∩B = min[µA (xi ), µB (xi )] (7.10) Como no caso da união, a operação de interseção entre conjuntos fuzzy pode ser generalizada através de famílias específicas de funções, chamadas de normas T , com as seguintes propriedades: • Comutatividade: T (a, b) = T (b, a) • Associatividade: T (a, T (b, c)) = T (T (a, b), c) • Monotonicidade: se a ≤ b e c ≤ d , então T (a, c) ≤ T (b, d) • Coerência nos Contornos: T (a, 1) = a e T (A, 0) = 0 De qualquer forma, a interseção sempre vai corresponder ao conectivo “E”. Assim, a partir dos conjuntos mostrados em 7.7 e da definição para interseção de 7.10, resulta a operação de interseção mostrada graficamente na Figura 7.7. Figura 7.7: Conjunto fuzzy resultante da operação de interseção “Médio E Pequeno” 7.3 Representação Fuzzy de Conhecimento Quando um ser humano está resolvendo um problema complexo, ele primeiro tenta estruturar o conhecimento sobre este problema em termos de conceitos gerais e, depois, observa as relações essenciais entre estes conceitos. Este processo de modelagem top-down permite que se converta relações essencialmente gerais e imprecisas, obtidas no primeiro momento, em algoritmos operacionais mais detalhados, numa segunda fase. A perspectiva essencialmente humana de encarar um problema normalmente não permite a definição precisa de uma solução, em termos de números exatos, por exemplo, mas conduz a uma classificação ou agregação qualitativa em categorias gerais ou conjuntos de possíveis soluções. A capacidade de se classificar de modo impreciso as variáveis de um problema, em termos de conceitos qualitativos ao invés de quantitativos, traduz a idéia de uma variável lingüística. O processo de representação fuzzy de conhecimento aqui descrito depende fundamentalmente deste conceito. 7.3.1 Variáveis Lingüísticas Uma variável lingüística é definida como uma entidade utilizada para se representar de modo impreciso e, portanto, lingüístico, um conceito ou variável de um dado problema. Ela admite como valores apenas expressões lingüísticas (freqüentemente chamadas de termos primários), como “frio”, “muito grande”, “aproximadamente alto”, etc. Estes valores contrastam com os valores assumidos por uma variável numérica, que admite apenas valores precisos (ou seja, números). Representação Fuzzy de Conhecimento 119 Um termo primário de uma dada variável lingüística pode ser representado por um conjunto fuzzy existente no universo de discurso onde esta variável está definida. Assim, cada conjunto fuzzy definido neste universo é associado a um conceito lingüístico que classifica ou define um valor impreciso para a variável em questão. Para um dado elemento x do universo de discurso, o valor de pertinência µA (x) representa o quanto este elemento satisfaz o conceito representado pelo conjunto fuzzy A. Os termos primários definidos para uma dada variável lingüística formam a sua estrutura de conhecimento. Esta estrutura é chamada de partição fuzzy desta variável. Na Figura 7.8, é mostrado um exemplo de partição fuzzy de uma variável lingüística chamada “Temperatura”. O universo de discurso utilizado é um segmento da escala Celsius de temperatura, entre 0 e 50 graus. Figura 7.8: Partição fuzzy de uma variável lingüística representando a temperatura A forma de utilização das variáveis lingüísticas depende basicamente da definição das propriedades sintáticas e semânticas que vão reger o comportamento do sistema de conhecimento fuzzy. As propriedades sintáticas definem o formato em que serão armazenadas informações lingüísticas fuzzy. Elas proporcionam a criação de uma Base de Conhecimento contendo sentenças estruturadas, sistematizando o processo de armazenamento, busca e processamento dos dados existentes. Por outro lado, as propriedades semânticas vão especificar de que modo é extraído e processado o conhecimento, armazenado na forma de declarações condicionais fuzzy, ou regras de produção fuzzy, contido na estrutura definida pelas propriedades sintáticas. 7.3.2 Regras de ProduçãoFuzzy A maneira mais comum de se armazenar informações em uma Base de Conhecimento fuzzy é a representação através de regras de produção fuzzy. Uma regra de produção normalmente é formada de duas partes principais: if <antecedente> then <conseqüente> O antecedente é composto por um conjunto de condições que, quando satisfeitas (mesmo parcialmente), determinam o processamento do conseqüente da regra por um mecanismo de inferência fuzzy. O processo acima descrito denomina-se disparo de uma regra. 120 Sistemas Fuzzy Por sua vez, o conseqüente é composto de um conjunto de ações ou diagnósticos que são gerados com o disparo da regra. Os conseqüentes das regras disparadas são processados em conjunto para gerar uma resposta determinística para cada variável de saída do sistema. 7.4 Modelos de Inferência Fuzzy Como já mencionado, a semântica é que vai definir, para o mecanismo de inferência, como serão processados os antecedentes, quais serão os indicadores de disparo das regras e quais os operadores utilizados sobre os conjuntos fuzzy existentes, para executar o processamento de conhecimento. Tipicamente, utilizam-se modelos de inferência fuzzy específicos de acordo com as propriedades sintáticas definidas, ou seja, o modelo de processamento definido para o sistema de conhecimento vai depender basicamente da forma de armazenamento de informações escolhida. 7.4.1 Modelo de Mamdani Ebrahim Mamdani propôs na década de 70 um método de inferência fuzzy que se tornou por muitos anos um padrão para a utilização dos conceitos da lógica fuzzy em processamento de conhecimento (Mamdani 1974). As regras de produção em um modelo de Mamdani possuem relações fuzzy tanto em seus antecedentes quanto em seus conseqüentes. Uma regra típica de um modelo deste tipo é mostrada em 7.11. if Temperatura = AumentandoM uito e Pressão = M uitoAlta, then PerigoDeExplosão = Grande (7.11) Como a maioria das aplicações de interesse possui sistemas convencionais de aquisição e atuação baseados em grandezas numéricas, o modelo de Mamdani inclui módulos de interface que transformam as variáveis de entrada em conjuntos fuzzy equivalentes e, posteriormente, as variáveis fuzzy geradas em variáveis numéricas proporcionais, adequadas para os sistemas de atuação existentes. Na Figura 7.9 é mostrado um diagrama típico de um sistema de processamento de conhecimento fuzzy que utiliza o modelo de inferência de Mamdani. Figura 7.9: Diagrama típico de um modelo de inferência de Mamdani Neste diagrama, a máquina de inferência recebe valores fuzzy provenientes do módulo de interface de entrada, processa as regras existentes na Base de Conhecimento e gera um conjunto fuzzy de saída para o módulo de interface correspondente, a partir da composição de todas as regras disparadas. Por uma regra disparada, entende-se uma regra cujo processamento do antecedente para as entradas atuais gerou graus de pertinência não nulos, ou seja, a relação fuzzy entre as entradas e os termos primários do antecedente é maior que zero. Modelos de Inferência Fuzzy 121 A regra semântica tradicionalmente utilizada para o processamento de inferências com o modelo de Mamdani é chamada de inferência Máx-Min. Ela utiliza as operações de união e de interseção entre conjuntos da mesma forma que Zadeh, através dos operadores de máximo e de mínimo, respectivamente. Considerando uma regra de produção fuzzy genérica como mostrada em 7.12, o método de inferência Máx-Min proposto por Mamdani será detalhado a seguir. if x1 = Ai e x2 = Aj e ... e xp = Aj , then y1 = Bi e y2 = Bm (7.12) Em 7.12, xi são as entradas do sistema, A1 , ..., Aj , são termos primários definidos nas partições fuzzy de cada variável de entrada, y1 e y2 são variáveis de saída e B1 , ..., Bm os termos primários definidos em suas partições fuzzy. Durante o processo de conversão escalar→fuzzy, os antecedentes de cada regra são processados através da intersecção fuzzy entre os graus de pertinência das entradas atuais nos termos primários definidos em cada uma. Este processo gera um grau de pertinência de disparo para cada regra de produção. Em outras palavras, é calculado para a k-ésima regra da Base de Conhecimento um coeficiente de disparo D(k) segundo 7.13, onde os índices k nos conjuntos fuzzy denotam os termos primários que compõem a regra k na Base de Conhecimento. Este processamento transformou informações quantitativas em informações qualitativas, sendo considerado um processo de generalização. Em inglês, ele é comumente chamado de fuzzification. i h i h D(k) = T µAk (x1 ), µAk (x2 ), ..., µAkp (xp ) = min µAk (x1 ), µAk (x2 ), ..., µAkp (xp ) 1 1 2 2 (7.13) Todas as regras para as quais o coeficiente de disparo for maior que zero são ditas regras que dispararam para as entradas atuais. Isto quer dizer que elas vão contribuir para o cálculo da saída correspondente do sistema de inferência. Estes coeficientes de disparo, por sua vez, vão limitar os valores máximos dos conjuntos fuzzy de saída gerados por estas regras. Finalmente, uma operação global de união vai compor um conjunto fuzzy para cada variável de saída, contendo informações sobre todas as regras disparadas para as entradas atuais. Em 7.14, é mostrada a composição deste conjunto para o caso da saída y2 da regra mostrada em 7.12. O universo de discurso desta variável de saída é composto pelos elementos y ∈ Uy2 . µBi0 (y) = S k=1..n h i h i T D(k) , µBi (y) = max min D(k) , µBi (y) , ∀ y ∈ Uy2 k=1..n (7.14) O processo de inferência acima descrito transforma uma informação qualitativa em outra informação qualitativa, através de uma conversão. O conjunto fuzzy gerado durante o processo de inferência pode então ser utilizado diretamente em um diagnóstico qualitativo de tomada de decisão, ou vai ser convertido em um valor escalar proporcional para atuação externa através de atuadores convencionais, no caso de um sistema de controle. A conversão fuzzy→escalar transforma informações qualitativas em uma informação quantitativa, sendo um processo de especificação. Em inglês, este processo é comumente chamado de defuzzification. Para a regra de produção definida em 7.12, parte-se do conjunto fuzzy de saída µB 0 (y) obtido pelo processo de inferência e chega-se a um valor escalar i yˆ2 correspondente. Os métodos mais utilizados para conversão fuzzy→escalar são o método do centro de massa e o método da média dos máximos. O método do centro de massa calcula, para um dado conjunto fuzzy de saída proveniente de uma Base de Conhecimento processada, a abscissa (no universo de discurso definido para a variável em questão) do ponto de centro de massa correspondente, e a utiliza como valor escalar de saída. A expressão analítica da implementação deste método é mostrada em 7.15. 122 Sistemas Fuzzy P yˆ2 = y∈Uy2 y.µBi0 (y) P y∈Uy2 (7.15) µBi0 (y) No caso do método da média dos máximos, o valor numérico da saída corresponde ao ponto do universo de discurso que corresponde à média dos pontos de máximo locais da função de pertinência do conjunto de saída, produzida pelo processo de inferência, como mostrado em 7.16. P _ ȳ2 = _ _ y k .µBi0 ( y k ) y ∈Uy2 _ ; onde y = n_ y max 0 0 y∈U ,U ⊂Uy2 h i µBi0 (y) (7.16) Um exemplo prático de execução do processo de inferência fuzzy aqui descrito é mostrado em detalhes adiante, na Seção 7.5. 7.4.2 Modelo de Takagi-Sugeno-Kang Na década de 80, foi proposta uma estrutura de inferência também baseada na teoria de conjuntos fuzzy (Takagi & Sugeno 1985a; Sugeno & Kang 1988a). Esta estrutura é denominada sistema de inferência de Sugeno, modelo de inferência fuzzy paramétrico ou simplesmente modelo TSK. Os autores demonstraram que estes modelos funcionam como bons aproximadores para sistemas que podem ser completa ou satisfatoriamente representados apenas através de suas relações de entrada e saída. Como no caso do modelo de Mamdani, os modelos fuzzy TSK são também baseados na utilização de uma base de regras condicionais de inferência. Mas, neste caso, os conseqüentes das regras, ao invés de serem formados por relações fuzzy, se compõem de equações paramétricas relacionando as entradas e as saídas do processo. A sintaxe do banco de conhecimento é diferente do caso do modelo de Mamdani, implicando em alterações também das propriedades semânticas correspondentes. A Equação 7.17 mostra uma regra genérica de um modelo TSK. se x1 = Ai e x2 = Aj e ... e xp = Am então y = φ (x1 , x2 , ..., xp ) (7.17) O processamento de conhecimento em um modelo TSK é similar ao ocorrido em modelos de Mamdani. A etapa de conversão escalar→fuzzy é idêntica, como mostrado em 7.18, exceto pelo fato de que a norma T utilizada na maioria das aplicações não é a função “min(.)”. h i D(k) = T µAk (x1 ), µAk (x2 ), ..., µAkp (xp ) (7.18) 1 2 A saída numérica é calculada diretamente pela soma das saídas das regras, ponderada pelos valores de ativação D(k) de cada uma delas (7.19). Um modelo TSK com múltiplas saídas sempre pode ser transformado em múltiplos modelos de saída única. D(i) .φi (x1 , ..., xp ) ŷ = i=1..k P D(i) P (7.19) i=1..k É comum a utilização de um modelo TSK em substituição a um modelo matemático convencional em um esquema de controle ou modelagem de sistemas reais. Para ser utilizado desta maneira, é necessário que o modelo seja ajustado de forma a se comportar como o sistema real que está representando. Assim, devem ser criadas partições fuzzy para as variáveis de entrada, ou seja, são definidos conjuntos fuzzy nos universos de discurso destas variáveis. Através de um conjunto de dados de entrada e saída do sistema Modelos de Inferência Fuzzy 123 a ser modelado, os parâmetros P dos conseqüentes destas regras são estimados segundo algum índice de desempenho definido pelo usuário. A minimização do erro quadrático entre a saída do modelo de Sugeno e os dados de saída disponíveis é normalmente utilizada como medida do desempenho. Neste caso, um algoritmo de mínimos-quadrados recursivo (MQR) pode ser utilizado para realizar esta estimação. Uma vez que as partições fuzzy e os parâmetros de saída estão otimizados segundo o índice escolhido pelo usuário, o modelo está pronto para substituir o modelo convencional existente. Em 7.20, a expressão que relaciona as entradas e as saídas de um modelo TSK de primeira ordem, utilizando um conjunto de k regras de produção fuzzy e p entradas. Ela é consistente com a regra de produção genérica mostrada na Equação 7.17. y(x1 , x2 , ..., xp ) = k X βi .(Pi0 + Pi1 .x1 + ... + Pip .xp ) (7.20) i=1 onde T µAi1 (x1 ), ..., µAip (xp ) βi = k P T µAj1 (x1 ), ..., µAjp (xp ) (7.21) j=1 A seguir, é descrito de forma resumida um método de ajuste de modelos TSK baseado em um índice de desempenho quadrático. Dado um conjunto de dados de entrada e saída representado por x1j , x2j , ..., xkj , yj (j = 1, 2, ..., m) O conjunto de parâmetros P dos conseqüentes das regras fuzzy pode ser estimado por MQR. Considerando uma matrix X de dimensões m x k.(p+1), um vetor Y de dimensão m e um vetor P de parâmetros de dimensão k.(p+1), tem-se: β11 ... βk1 x11 .β11 ... x11 .βk1 xp1 .β11 ... ... X= ... (7.22) β1m x1m .β1m ... xp1 .β1m ... xp1 .βkm Y = [y1 , ..., ym ]T P = [P10 , ..., Pk0 , P11 , ..., Pk1 , ..., Pkp ]T Então os parâmetros P podem ser calculados por: P = (X T .X)−1 .X T .Y (7.23) Ou, alternativamente, podem ser estimados de forma recursiva através de um filtro de Kalman em regime permanente do tipo Pi+1 = Pi + Si+1 .xi+1 .(yi+1 − xi+1 .Pi ) Si .xi +xi+1 .Si Si+1 = Si − 1+x (i = 0, 1, ..., m − 1) .S .xT i+1 i (7.24) i+1 Na Equação 7.24, xi são linhas da matriz X. Os valores iniciais P0 e S0 são definidos como em 7.25 a seguir, onde α é um número escalar positivo com grande módulo e I uma matriz identidade de dimensões k.(p+1) x k.(p+1). A matriz S é comumente chamada na literatura de matriz de covariâncias. Ela mede a correlação entre os parâmetros P durante o treinamento. P0 = 0 S0 = α.I (7.25) Um exemplo prático de aplicação do método aqui descrito é mostrado em detalhes na Seção 7.6, para o caso de aproximação de funções. 124 Sistemas Fuzzy 7.5 Sistemas de Apoio à Decisão Como sistemas capazes de processar de forma eficiente informações imprecisas e qualitativas de forma geral, os modelos de inferência fuzzy são especialmente adequados em processos que exigem tomadas de decisão por parte de operadores e gerentes de operação. Aplicações deste tipo representam o conhecimento e a experiência existentes sobre um determinado estado do processo ou situação e, a partir da entrada de dados sobre os seus estados atuais, podem inferir sua evolução temporal, as variações importantes que ocorreram ou mesmo gerar sugestões sobre as próximas ações a serem tomadas. O exemplo a seguir mostra um sistema simples de auxílio à tomada de decisão, para o caso do consumo de um automóvel. Ele utiliza um modelo de inferência de Mamdani. Exemplo 7.1: Processamento de um modelo de Mamdani para apoio à tomada de decisões. Figura 7.10: Exemplo de um Modelo de Inferência de Mamdani com 3 regras Considere que a relação entre a velocidade e o consumo de um automóvel pode ser descrita através das três regras mostradas na Figura 7.10. São criadas partições fuzzy para estas variáveis e é definida uma regra semântica para o processo de inferência fuzzy a ser realizado. Neste caso, utiliza-se a inferência Max-Min. Agora, é possível se alimentar valores de velocidade para a obtenção de valores percentuais de consumo, calculados a partir da Base de Conhecimento criada. No processo de inferência mostrado acima, uma entrada escalar de velocidade foi convertida em um conjunto de graus de pertinência nos termos primários definidos para a variável lingüística “Veloc”. Este vetor de pertinências é então utilizado para limitar os conjuntos fuzzy de saída da variável lingüística “Consumo”, segundo a Base de Conhecimento definida. Assim, para a regra 1, o termo de consumo “Médio” foi limitado em 0.65 e para a regra 2, o termo de consumo “Pequeno” foi limitado em 0.35. O valor de saída para a variável escalar “Consumo” foi obtido através de um método de conversão fuzzy→escalar adequado. Neste caso, foi utilizado o método do centro de massa. A Figura 7.11 mostra uma análise final da relação entre o consumo e a velocidade do automóvel em questão. De posse destes dados, é possível verificar, por exemplo, a velocidade na qual o consumo de combustível é mínimo. Aproximação de Funções 125 Figura 7.11: Análise do problema de consumo após o processamento fuzzy 7.6 Aproximação de Funções Uma aplicação bastante comum dos modelos de inferência fuzzy é sua utilização para aproximação de funções não lineares. Aproximadores de funções normalmente são módulos componentes de um sistema mais complexo de modelagem, de tomada de decisão ou de controle. Em tais sistemas, freqüentemente é necessário o cálculo de valores de funções ou de suas derivadas em pontos específicos. As expressões analíticas destas funções podem ser de difícil cálculo ou mesmo não estarem disponíveis. Nestes casos, são necessários sistemas capazes de aproximar o comportamento de tais funções a partir de dados práticos existentes. Pelas suas propriedades sintáticas, os modelos de inferência de TSK são mais adequados a este fim. A existência de funções paramétricas nos conseqüentes de suas regras e a facilidade de se ajustarem a partir de um conjunto de dados de entrada e saída faz com que eles sejam intrinsecamente relacionados com a tarefa de aproximação de funções em geral. No entanto, os modelos de Mamdani também podem ser utilizados para este fim. No Exemplo 7.2 é descrito um problema simples de aproximação de uma função não-linear de uma única variável, abordando diferentes soluções e discutindo os resultados obtidos. Exemplo 7.2: Aproximação de um conjunto de pontos no plano através de sistemas de inferência fuzzy. Um conjunto de pontos adquiridos de uma função não-linear é mostrado na Figura 7.12, através de uma tabela e de um gráfico no plano cartesiano. A linha contínua mostra uma solução por regressão quadrática executada sobre os pontos dados, como forma de comparação com os resultados obtidos com a lógica fuzzy. Primeiramente, foi empregado um modelo de Mamdani. As partições fuzzy criA seguinte base de regras foi definida a são representação adas para as variáveis de entrada e depara saída mostradas do na sistema: Figura 7.13. se x(t) = A1 então y(t) = B2 se x(t) = A2 então y(t) = B1 (7.26) se x(t) = A3 então y(t) = B2 A saída do modelo de Mamdani é mostrada na Figura 7.14, considerando que o método de inferência Máx-Min foi empregado. Esta abordagem é freqüentemente 126 Sistemas Fuzzy Figura 7.12: Pontos adquiridos de uma função y = f (x) Figura 7.13: Partições fuzzy criadas para as variáveis x e y chamada de síntese pelo conhecimento, pois ela pressupõe o conhecimento de um especialista no momento de criação das partições fuzzy e da base de regras. Foi também implementada uma solução por meio de um modelo TSK de ordem zero. A partição de entrada foi escolhida como no caso anterior e os parâmetros de saída estimados pelo método dos mínimos quadrados, constituindo uma síntese pelos dados. O vetor de parâmetros P estimado é mostrado em 7.27 e o resultado gráfico da aproximação mostrado na Figura 7.15 a seguir. Pode-se notar que a aproximação obtida para y(x) através do modelo TSK de ordem zero é um pouco melhor que a obtida pelo modelo de Mamdani. No entanto, nenhuma das duas abordagens gerou uma aproximação satisfatória, já que a função a ser aproximada é quadrática. P = 0.8953 −0.1813 0.9642 T (7.27) Finalmente, utilizou-se um modelo TSK de primeira ordem, com a partição de entrada idêntica à das abordagens anteriores e os parâmetros de saída, mostrados em 7.28, também estimados pelo algoritmo MQR discutido na Seção 7.4.2. Os resultados da Figura 7.16 são visivelmente superiores aos fornecidos pelas abordagens anteriores e se aproximam bastante do conjunto de pontos dados. Aproximação de Funções 127 Figura 7.14: Aproximação de função pelo modelo de Mamdani (em vermelho) Figura 7.15: Aproximação de função por um modelo TSK de ordem zero (curva tracejada) 0.4584 P0 = 0.0540 −0.8355 ; −0.8857 P1 = 0.7988 1.8430 (7.28) Sistemas aproximadores de funções estão presentes na maioria das aplicações de modelagem de processos dinâmicos reportadas da literatura. Da mesma forma que se pode estimar a relação entre duas variáveis através de um modelo TSK, é possível se utilizar esta mesma ferramenta para a estimação das relações entre variáveis de entrada e saída de um processo dinâmico do qual se necessite de um modelo aproximado. Sistemas que possuem a capacidade de aproximar qualquer função ou relação entre variáveis com uma dada precisão são chamados de aproximadores universais. Informações mais aprofundadas sobre a teoria de aproximadores universais podem ser encontradas em (Girosi & Poggio 1990; Poggio & Girosi 1990). 128 Sistemas Fuzzy Figura 7.16: Aproximação de função por um modelo TSK de primeira ordem (curva tracejada) 7.7 Controle de Processos O interesse crescente pela aplicação da teoria de conjuntos fuzzy em controle de processos se deve ao fato de os processos industriais complexos apresentarem dificuldades significativas ao controle automático devido às não linearidades, comportamento variante no tempo, baixa qualidade das medidas disponíveis, altos níveis de ruído, sensoreamento distribuído e fortemente interconectado, etc. Em geral, nesses sistemas, controlam-se apenas variáveis subsidiárias, as quais podem ser medidas e controladas (temperatura, pressão, fluxo, etc.), deixando-se a cargo do operador o controle global da qualidade e quantidade de produto produzido. Até meados da década de 80, o projeto de sistemas de controle era baseado quase que exclusivamente nas teorias clássica e moderna de controle. Uma grande desvantagem destas duas abordagens é a necessidade de uma descrição bastante rígida do comportamento da planta a ser controlada, através de modelos matemáticos (King & Mamdani 1977). Mesmo assim, a teoria clássica de controle permite o projeto de controladores com bom desempenho, para o caso de sistemas lineares mono-variáveis (com apenas uma entrada e uma saída). Analogamente, a teoria de controle moderno provou ser bastante útil no projeto de controle de sistemas lineares multi-variáveis de natureza determinística e estocástica, utilizando representação em espaço de estados e métodos de resposta em freqüência. No entanto, no caso de sistemas altamente não lineares e de difícil modelagem matemática, surgem dificuldades consideráveis no projeto de controladores apropriados usando as teorias tradicionais de sistemas lineares. Atualmente, o uso de computadores de processo tem permitido a utilização de técnicas modernas de controle, inclusive com o emprego de modelos matemáticos, e estas técnicas têm produzido bons resultados para problemas lineares de natureza determinística ou estocástica. Todavia, quando o processo é complexo, surgem dificuldades no projeto de controladores adequados usando a teoria de sistemas lineares. Os problemas que ocorrem ao se tentar controlar sistemas não-lineares e complexos podem ser resumidos no Princípio da Incompatibilidade (Zadeh 1973): “Quando a complexidade de um sistema aumenta, nossa habilidade para fazer afirmações precisas e ainda significantes sobre seu comportamento diminui até um limiar ser alcançado, além do qual precisão e significância (ou relevância) Controle de Processos 129 tornam-se características quase mutuamente exclusivas”. Observa-se, entretanto, que na maioria destes casos o operador é capaz de articular uma boa estratégia de controle, baseada na intuição e na experiência. Esta estratégia pode ser representada por um conjunto de regras de decisão heurística que, se for utilizado adequadamente, pode gerar um controlador heurístico com boa performance. Assim, é interessante incluir estas ações de controle num esquema de automação, e para tanto requer-se um método de descrição desta estratégia de controle. Tal fato conduz a dois problemas (King & Mamdani 1977): 1. As ações de controle do operador são freqüentemente erráticas, inconsistentes ou sujeitas a erro devido à natureza imprecisa dos processos de decisão humanos e, assim, a atividade de controle do operador é difícil de ser interpretada precisamente; 2. O operador freqüentemente responde não somente a uma única medida, mas a modelos complexos de medidas e observações de variáveis não mensuráveis, tais como cor, consistência, etc. Os Sistemas Especialistas convencionais são um bom exemplo de aplicação de regras heurísticas com o intuito de aproximar o raciocínio humano. No entanto, o tratamento bi-valente adotado para processamento limita fortemente o tipo de raciocínio obtido. Por outro lado, se forem utilizados os conceitos de lógica fuzzy para a implementação prática e processamento destas regras heurísticas, o algoritmo resultante será um controlador fuzzy baseado em regras. A primeira implementação de um controlador deste tipo foi relatada por Ebrahim Mamdani (Mamdani 1974). Desde então, o projeto de controladores baseados na transformação de expressões lingüísticas em modelos fuzzy se tornou a principal área de aplicação da teoria dos conjuntos fuzzy na engenharia. A tradução desta informação imprecisa utilizando a teoria convencional de controle é inviabilizada devido à complexidade matemática que poderia resultar. Entretanto, a teoria de conjuntos fuzzy proporciona grande facilidade para descrever e processar tal tipo de informação, através de variáveis lingüísticas e de regras de produção fuzzy. 7.7.1 Sistemas de Controle Fuzzy de Mamdani Uma coleção de regras de produção fuzzy como a mostrada em 7.12 pode descrever lingüisticamente uma estratégia de controle de processo. Este tipo de estratégia lingüística pode ser chamado de um algoritmo de controle fuzzy ou de uma Base de Conhecimento fuzzy. O Exemplo 7.3 discute brevemente uma abordagem de transformação de conhecimento impreciso em uma regra de produção que pode ser utilizada em um sistema de controle. Exemplo 7.3: Propriedades sintáticas de regras de produção fuzzy em um sistema de controle baseado no modelo de Mamdani. Uma regra qualitativa típica para controle de temperatura pode ser: “Se a temperatura está alta e aumentando então aumente o resfriamento um pouco” Utilizando-se o conceito de variáveis lingüísticas, uma partição fuzzy definida para a variável temperatura, como a mostrada na Figura 7.8, e as seguintes partições fuzzy: • delta_temp = [N egativo, Zero, P ositivo] para a variação de temperatura e • delta_resf r = [N egativoGrande, N egativoP equeno, Zero, P ositivoP equeno, P ositivoGrande] para a variação do resfriamento. 130 Sistemas Fuzzy Pode-se reescrever esta regra em termos das variáveis criadas e seus termos primários da seguinte forma: if temp = Alta and delta_temp = P ositivo then delta_resfr = P ositivoP equeno A implementação de um sistema de controle fuzzy baseado no modelo de inferência de Mamdani deve observar as seguintes etapas: • Definição dos universos de discurso das variáveis de entrada e saída do controlador (incluindo a sua discretização, ou seja, os níveis de quantização de cada um); • Partição dos universos de discurso definidos, ou seja, criação dos termos primários envolvidos e graus de pertinência dos conjuntos fuzzy que representam cada termo; • Determinação das regras que formam o algoritmo de controle (Base de Conhecimento); • Definição de parâmetros semânticos tais como: escolha das operações fuzzy adequadas, forma de conversão de variáveis de entrada e saída, tipo de atuação do controlador (tipicamente, posicional ou incremental), método de aprendizado, etc. Funcionando como um sistema de controle baseado em regras, um modelo de inferência fuzzy de Mamdani possui tipicamente o diagrama de fluxo de sinais mostrado na Figura 7.17. O sistema de controle recebe informações sobre o estado do sistema sob controle através de suas variáveis de entrada, processa estas informações através de sua Base de Conhecimento e gera em sua saída um sinal de controle correspondente. Figura 7.17: Sistema de Controle fuzzy baseado no modelo de Mamdani Atualmente, não existe um procedimento rigoroso de síntese para o desenvolvimento de um algoritmo de controle fuzzy. Uma base de regras de produção deve ser criada a partir do conhecimento do sistema (pela experiência de um especialista na operação ou através de leis físicas). Um observador treinado pode obter a descrição da estratégia de controle pela observação e discussão do processo com o operador e a partir das leis físicas que governam o comportamento dinâmico do sistema (Sutton & Towill 1985). No entanto, têm surgido várias abordagens que proporcionam a geração automática de regras e partições fuzzy baseada em dados de entrada e saída do sistema sob controle. A maioria destas abordagens utiliza outras tecnologias de Aquisição de Conhecimento associadas à lógica fuzzy para a função de adaptação. O Capítulo ?? descreve em maiores detalhes estas associações. Para se conseguir rapidez em implementações on-line utilizando arquiteturas de computador do tipo Von Neumann, as ações de controle podem ser previamente computadas e colocadas em forma de uma tabela (look-up table), que terá tantos elementos quantos Controle de Processos 131 forem o número de regras e termos primários vezes o universo de discurso das variáveis definidas no controlador. Em arquiteturas paralelas, as regras podem ser processadas simultaneamente. As regras devem ser avaliadas em intervalos regulares, do mesmo modo que em um sistema de controle digital convencional. A escolha do intervalo de amostragem depende do processo sob controle e deve seguir as regras válidas para o projeto de sistemas de controle amostrados convencionais. Uma Base de Conhecimento fuzzy deve ser testada de alguma forma antes de uma implementação prática. A utilização de um modelo matemático do processo pode facilitar esta etapa de validação do conhecimento. Durante estes testes, é aconselhável a visualização da forma do conjunto fuzzy de saída do processo de inferência, para avaliação das regras utilizadas. A análise do conjunto resultante pode determinar a qualidade das regras utilizadas. Por exemplo, o conjunto “A” da Figura 7.18 a seguir mostra um pico único forte, indicando uma regra dominante nesta região. O conjunto “B”, com dois picos, mostra que no mínimo duas regras fortes e contraditórias estão presentes, enquanto o conjunto fuzzy “C” mostra um resultado que indica a falta de um bom conjunto de regras na região mostrada. Nos dois últimos casos, é necessário o ajuste do controlador para se obter um desempenho de qualidade do sistema (King & Mamdani 1977). Figura 7.18: Análise de desempenho de uma Base de Conhecimento fuzzy Para o ajuste de um controlador fuzzy baseado no modelo de Mamdani, pode-se utilizar os seguintes métodos: • Modificação das regras de controle; • Modificação dos universos de discurso (níveis de quantização) das variáveis; • Modificação na definição das partições fuzzy das variáveis. Os dois últimos métodos possibilitam um ajuste mais fino, enquanto o primeiro, um ajuste mais grosso (Almeida, Figueiredo, Braga, Jota, & Araújo 1993). Vários paradigmas de Aquisição de Conhecimento podem ser combinados de forma simultânea ou utilizados seqüencialmente, como discutido no Capítulo ??, para executar o ajuste automático de um controlador fuzzy baseado no modelo de Mamdani. Este tópico, no entanto, foge ao escopo deste capítulo. 7.7.2 Sistemas de Controle Fuzzy TSK O modelo de inferência TSK também pode ser utilizado como um controlador para regulação de processos físicos. De fato, é fácil se imaginar um conjunto de regras de Sugeno 132 Sistemas Fuzzy onde as variáveis de entrada representam os estados de um processo dinâmico e a função de saída gera um sinal de controle para este processo. O modelo de TSK permite a concatenação de controladores compostos por diferentes estratégias, agrupados em um mesmo conjunto de regras. O processo de obtenção da saída global do sistema, a partir da média ponderada das saídas das regras disparadas, como mostrado em 7.21, garante uma transição suave entre as estratégias individuais componentes do sistema de controle. Em 7.29, é mostrada de forma compacta uma regra de um modelo TSK construído para este fim. R(i) : if X é Li , then u = φ(P, X) (7.29) Na equação acima, o vetor X representa os estados de um sistema dinâmico sob controle, Li representa um termo ou conjunto de termos primários das partições fuzzy criadas para os estados deste sistema e φ(P, X) representa uma estratégia de controle individual componente do sistema de controle. O vetor de parâmetros P pode ser treinado, neste caso, para otimizar o funcionamento do controlador segundo algum critério de desempenho definido pelo usuário. Lingüisticamente, a Equação 7.29 pode ser traduzida como: if o vetor de estados X tem a propriedade Li , then aplique o controlador u = φ(P, X) Um exemplo de utilização de um controlador fuzzy baseado em um modelo TSK é mostrado na Figura 7.19, onde um conjunto de controladores em paralelo é criado para garantir a operação de um sistema não linear em uma extensa faixa de operação, com bom desempenho. Normalmente, o ajuste de um único controlador nestes casos fica dificultado ou impossibilitado pelas não-linearidades do sistema. Os parâmetros otimizados para uma faixa de operação do sistema podem se tornar ruins em outros pontos, causando queda no desempenho ou até mesmo a instabilidade do sistema de controle. Figura 7.19: Diagrama equivalente do sistema de controle fuzzy baseado no modelo TSK Exemplo 7.4: Projeto de um Controlador Fuzzy-PID multi-faixa utilizando um sistema de controle fuzzy baseado no modelo TSK. Os controladores PID (proporcional+integral+derivativo) são largamente utilizados na indústria pela sua versatilidade e relativa facilidade de sintonia. No entanto, no caso de processos altamente não-lineares, a sintonia dos parâmetros Kp , Ki e Kd de ajuste fica muito difícil de ser feita manualmente para toda a faixa de operação da planta. Na maioria dos casos, o que se faz é a sintonia em uma faixa preferencial de atuação. Desta forma, abre-se mão do desempenho e da eficiência nas demais faixas, onde o controlador opera apenas para garantir a estabilidade do sistema, mas com baixo desempenho. Para resolver este problema, pode-se projetar um modelo TSK com as seguintes variáveis: Perspectivas Futuras 133 PO - Valor absoluto da variável controlada, possibilitando a detecção do ponto de operação atual ER - Sinal de Erro entre a entrada de referência e a saída do processo sob controle IE - Integral no tempo do sinal de erro ER DE - Derivada Temporal do sinal de erro ER Agora, devem ser criadas partições fuzzy para estas variáveis de forma a contemplar todas as regiões de interesse na operação do processo. Cria-se então uma regra de produção fuzzy para cada faixa de operação para a qual se necessite de um ajuste particular do controlador PID. Assim, para n regras, serão criados n controladores PID, cada um funcionando mais ativamente em uma faixa de operação do processo e garantindo uma transição suave entre eles devido às operações de composição de inferência baseadas na lógica fuzzy. Uma regra típica de um sistema de controle deste tipo é mostrada abaixo: R(j) : se P O = Pequeno, então u = W0_j + WP O_j .P O + KP _j .ER + KI _j .IE + KD_j .DE A matriz de parâmetros P resultante pode ser dividida em duas sub-matrizes principais, KP ID e WP O , onde KP ID é uma matriz contendo os valores dos parâmetros Kp , Ki e Kd de ajuste dos controladores PID implementados em cada regra e WP O vai possibilitar ajustes particulares de operação do controlador para cada ponto de operação. 7.8 Perspectivas Futuras Pouco a pouco, o número grande e contínuo de publicações reportando o sucesso de aplicações baseadas em sistemas de inferência fuzzy acaba por sedimentar as idéias lançadas por Lotfi Zadeh na década de 60. A prova de teoremas que garantem a estabilidade de tais sistemas (Lo & Chen 1999) e as demonstrações de equivalência matemática entre sistemas fuzzy e métodos convencionais de processamento de dados (sistemas de controle, diagnóstico, sistemas de tomada de decisão, etc.) (Pinheiro & Gomide 1999) jogam por terra argumentações céticas, outrora bastante comuns, sobre a falta de confiabilidade e previsibilidade do funcionamento de sistemas que utilizam a lógica fuzzy. O que se observou na última década foi uma mudança conceitual no que se refere ao entendimento dos sistemas baseados em lógica fuzzy e suas potencialidades. Antes confinados a aplicações específicas e de pequeno porte, eles passaram a ser cada vez mais utilizados de forma integrada com outras tecnologias em sistemas de maior porte e de uso mais geral. O que se espera como uma tendência para os próximos tempos é a utilização da lógica fuzzy através de módulos de apoio à decisão que possam ser configurados pelo usuário. Estes módulos serão capazes de compartilhar dados de entrada e saída com outros módulos similares, possibilitando que uma decisão seja apoiada por diagnósticos gerados simultaneamente por um pool de ferramentas de processamento distintas, funcionando cooperativamente. Exemplos desta tendência são os Sistemas Especialistas de última geração, que possuem várias ferramentas de apoio à decisão incorporadas (sistemas fuzzy, Redes Neurais, redes Bayesianas, etc.) e permitem que o usuário configure um modelo de processamento segundo suas necessidades, utilizando topologias diversas. Os Capítulos ?? e ?? descrevem em maiores detalhes associações comuns entre tecnologias distintas de processamento de conhecimento e tipos de combinações que podem proporcionar vantagens ao usuário. 134 Sistemas Fuzzy 7.9 Referências Comentadas Como já foi discutido, as aplicações de lógica fuzzy reportadas nos últimos anos são vastas e variadas. Da mesma forma, as publicações estendem-se desde textos teóricos e de mais difícil interpretação, de interesse específico para matemáticos, até descrições mais pragmáticas e muitas vezes desprovidas de conceitos teóricos importantes, direcionadas principalmente a profissionais de engenharia e finanças que desejam uma abordagem mais voltada para uma aplicação específica em vista. Muitas destas publicações vêm acompanhadas de material eletrônico (software e manuais) adequado às etapas iniciais de familiarização com as idéias e técnicas apresentadas. Entre os títulos com ênfase teórica, pode-se destacar (Klir & Folger 1988), (Kosko 1992b) e (Gomide & Pedrycz 1998), além do artigo seminal sobre conjuntos fuzzy publicado por Lotfi Zadeh em meados da década de 60 (Zadeh 1965b) e de uma versão atualizada publicada pelo próprio na revista IEEE Computer, 23 anos depois (Zadeh 1988). Entre as publicações de cunho prático, voltadas para aplicações em engenharia, o artigo de Ebrahim Mamdani de 1974 foi provavelmente o primeiro relato de uma aplicação prática de lógica fuzzy publicado (Mamdani 1974). Podem ser citados os livros de Witold Pedrycz (Pedrycz 1993a) e de Ronald Yager (Yager & Filev 1994) para o caso de controle de processos, e o livro editado por Hellendoorn, Driankov e outros (Driankov, Hellendoorn, & Reinfrank 1993). Estes mesmos autores editaram em 1997 uma coletânea de artigos com abordagens específicas de modelagem (Hellendoorn & Driankov 1997). Editado no Brasil, (Simões & Shaw 1999) é um dos primeiros textos publicados em português que cobre aplicações de controle e modelagem fuzzy de processos. Técnicas de agrupamento e detecção de padrões podem ser vistas em detalhes em (Bezdek 1981), (Kandel 1982) e (Baraldi & Blonda 1998), que faz uma revisão comparativa de vários métodos e técnicas híbridas. Michio Sugeno e outros pesquisadores publicaram em 1994 um livro importante que cobre várias aplicações da lógica fuzzy no Japão (Terano, Asai, & Sugeno 1994). Por sua vez, Robert Uhrig e Tsoukalas discutem aplicações nos EUA em (Uhrig & Tsoukalas 1997). Muitos livros e artigos técnicos na área fornecem códigos-fonte específicos para aplicações de controle, modelagem e agrupamento, entre outros. Um bom exemplo disto é (Rao & Rao 1995). Em 1993, Viotti publicou na revista Dr. Dobbs um código em linguagem C de uma máquina de inferência fuzzy de uso geral (Viotti 1993). Já outra gama de livros apresenta o assunto através de ferramentas prontas, onde o usuário é guiado pela interface existente e pode ter um sentimento maior das potencialidades da lógica fuzzy. É o caso do livro acompanhado de software de Martin McNeill (McNeill & Thro 1994). Finalmente, indica-se ao leitor interessado uma busca por artigos técnicos em periódicos especializados no âmbito acadêmico, como por exemplo os editados pelo IEEE (Institute of Electrical and Electronic Engineers), como “Transactions on Fuzzy Systems”, de cunho mais teórico, “Transactions on Industry Electronics”, “Transactions on Systems, Man and Cybernetics” e “Transactions on Industrial Applications”, onde é possível se encontrar, com freqüência, aplicações práticas relacionadas à lógica fuzzy. Os periódicos editados pela entidade européia IFAC (International Federation of Automatic Control), como “Automatica” e “Fuzzy Sets and Systems”, também são boas fontes de referência na área.