Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE MACKENZIE Programa de pós-graduação em Engenharia Elétrica Área de Concentração: Engenharia da Computação SISTEMAS COMPUTACIONAIS BASEADOS EM LÓGICA FUZZY Francisco Ribacionka Dissertação de Mestrado apresentada a Universidade Mackenzie como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica na área da Engenharia da Computação. Orientador: Prof. Dr. Laécio Carvalho de Barros São Paulo 1999 R112 Ribacionka, Francisco Sistemas Computacionais baseados em Lógica Fuzzy / Francisco Ribacionka – São Paulo, 1999 115 f.: il; 30 cm Dissertação (Mestrado em Engenharia Elétrica – Área de Concentração: Engenharia da Computação) – Universidade Mackenzie, 1999 Bibliografia: f. 115. 1. Lógica Fuzzy 2. Conjuntos Fuzzy 3. Engenharia da Computação I. Título CDD 511.322 À minha mãe (Em Memória) Ao meu pai Às minhas irmãs Neusa e Nanci À minha esposa Márcia e meu filho André, pela paciência! Certa noite, em uma de suas aulas no mestrado, o professor Vilmar nos contou a seguinte estória: Estava o coelho digitando a sua tese de mestrado, em sua toca, quando passa rasteira uma águia, que comenta: : “- O que será que o meu almoço estará fazendo?”. Pousa na entrada da toca e pergunta: “- Oi amigo coelho. O que você está fazendo?”. “- Estou digitando a minha dissertação de mestrado!”. “- Mas do que trada a sua pesquisa?”. “- Trata em como transformar uma águia em almoço de coelho!”. “- Ora! Podes me mostrar o seu trabalho?”. “- Claro”, responde o coelho. “Entre na minha toca que eu mostro”. E foi pena para todo lado. Após alguns minutos, palitando os dentes, o coelho comenta: “-Realmente, o tema do meu trabalho é muito bom.”. E, com um tapinha em suas costas, o leão completa: “- Sim, o tema é importante. Mas o orientador é muito mais!” Agradeço a Deus por ter colocado o Laécio no meu caminho. INTRODUÇÃO A teoria de conjuntos fuzzy foi introduzida por Lotfi Asker Zadeh em 1965 (Zadeh (1965)), como uma teoria matemática aplicada a conceitos vagos. Desde então a pesquisa e aplicação desta teoria em sistemas de informática tem crescido. Uma área de aplicação da teoria fuzzy é a chamada raciocínio aproximado, conforme Zadeh (1975), onde um tipo de raciocínio não é totalmente certo nem totalmente errado. Este tipo de raciocínio se aproxima da forma do raciocínio humano. Neste caso, variáveis lingüísticas são representadas por conjuntos fuzzy, interpretando uma variável lingüística como uma variável cujos valores são palavras ou sentenças em uma linguagem natural. Conjuntos fuzzy proporcionam, aos métodos de desenvolvimento de sistemas computacionais, uma forma de programação mais próxima da linguagem e do raciocínio humano. Atualmente, Lotfi Zadeh é diretor do BISC1 - Berkeley Initiative in Soft Computing - na Universidade da Califórnia, em Berkeley. O seu grupo tem como objetivo a divulgação e pesquisa das aplicações da "computação Soft", que é uma derivação da computação tradicional. Zadeh chama a computação tradicional de "Computação Hard" e a principal diferença entre elas é o fato da computação Soft ter uma tolerância em relação à imprecisão, incerteza ou verdade parcial, tendo como modelo a mente humana, conforme Zadeh (1997). A computação Soft é baseada na Lógica Fuzzy, Teoria de Redes Neurais, Raciocínio Probabilístico, Algorítimos Genéticos, Teoria do Caos e Teoria do 1 O endereço na Internet deste grupo de pesquisa é http://www.cs.berkeley.edu/projects/Bisc, e pode ser um ponto de partida para uma busca na Internet dos grupos de pesquisa sobre Lógica Fuzzy. Aprendizado, onde cada uma destas teorias se complementam para apresentar na computação Soft uma solução mais abrangente para uma faixa maior de aplicações. Uma conseqüência disto é que em muitos casos, um problema pode ser resolvido mais eficientemente usando uma combinação destas teorias ao invés do uso exclusivo de uma delas. Um exemplo são os sistemas NeuroFuzzy em aplicações industriais como mostra Altrock (1995). Zadeh (1997) afirma que, além de aplicações industriais, a computação Soft está sendo aplicada em produtos para o consumidor final, como aparelhos de ar condicionado, filmadoras e tantos outros, onde as técnicas de computação Soft aplicadas a estes produtos incluem um indicativo de "Quociente de Inteligência de Máquina", ou MIQ (Machine Intelligence Quotient), sendo a Lógica Fuzzy a teoria mais aplicada nos produtos com este quociente. Além destas aplicações, a teoria fuzzy já está incluida em programas tradicionais para aplicações científicas e de engenharia. Dois destes programas são o MatLab da empresa Math Works2 e o Mathematica da empresa WRI3. O programa MatLab contém uma interface gráfica que possibilita o desenvolvimento de métodos fuzzy e NeuroFuzzy, com geração de código fonte na linguagem C. O programa Mathematica fornece um conjunto de recursos para criar, modificar e visualizar sistemas baseados na Lógica Fuzzy. Na bibliografia consultada, o termo Lógica Fuzzy é usado de duas formas: 2 O endereço na Internet com informações sobre o módulo fuzzy do programa MatLab é http://www.mathworks.com/products/fuzzylogic 3 Na Internet o endereço para obter maiores informações sobre Lógica fuzzy no programa mathematica é http://store.wolfram.com/view/fuzzylogic 1º) Com o objetivo de generalizar a lógica clássica Aristotélica, onde as proposições são valoradas apenas por 0 ou 1 (falsas ou verdadeiras), com o intuito de quantificar, formalizar e mesmo raciocinar com conceitos subjetivos e imprecisos (fuzzy). 2º) Como generalização de tudo que envolve conceitos fuzzy. Neste trabalho são utilizadas as duas formas, onde é feito um estudo da teoria fuzzy e como esta teoria pode contribuir no desenvolvimento de sistemas para solução de problemas complexos e de difícil modelamento. No Capítulo 1, tem-se uma visão geral das aplicações da teoria fuzzy e um histórico de seu desenvolvimento. No Capítulo 2, faz-se um estudo da teoria tradicional de conjuntos e da teoria de conjuntos fuzzy, procurando mostrar as diferenças fundamentais entre estas teorias. No Capítulo 3 faz-se um estudo da lógica tradicional e da lógica fuzzy, procurando apresentar as diferenças fundamentais entre ambas, onde também é introduzido o conceito de raciocínio aproximado. No Capítulo 4 estuda-se uma metodologia para o desenvolvimento de Sistemas Fuzzy, com a descrição de um exemplo. A codificação deste exemplo na linguagem de programação C e a conclusão deste trabalho é feita no capítulo 5. Este programa foi desenvolvido no ambiente operacional Linux. O fato do Linux ser um sistema aberto e ter um compilador C padrão ANSI, proporciona o desenvolvimento de programas mais facilmente adaptáveis a outros ambientes operacionais. CAPÍTULO 1. APLICAÇÕES DA LÓGICA FUZZY Segundo Klir (1997), a teoria fuzzy tem se estabelecido como uma regra importante na Ciência da Computação, tornando os recursos de armazenamento e manipulação da informação e do conhecimento em uma forma mais compatível com o pensamento humano. A principal vantagem de se usar teoria fuzzy nestes sistemas baseados em computação está na capacidade adquirida de representar e manipular informação e conhecimento expresso numa linguagem natural. Esta capacidade torna estes sistemas mais flexíveis e realistas. A Lógica Fuzzy surgiu há cerca de trinta anos com a publicação do artigo Zadeh (1965), mas somente na atualidade está sendo aplicada na confecção de produtos e sistemas. Tem sido usada como uma ferramenta em sistemas de controle de processos industriais, aplicações domésticas e de diversão eletrônica, sistemasde diagnósticos e outros sistemas especialistas. Criada nos Estados Unidos, esta tecnologia vem crescendo em aplicações no Japão e na Europa e o número de patentes requeridas vem aumentando exponencialmente. Segundo Cox (1998), a maior parte vem de aplicações de Controladores Fuzzy. As principais áreas de aplicação da Lógica Fuzzy são: Sistemas de Controle Fuzzy, Tomada de Decisão, Reconhecimento de Padrões e Processamento de Imagens, Medicina, Ecologia, Banco de Dados Fuzzy, NeuroFuzzy e Aplicações em Sistemas Operacionais. A seguir, descreve-se cada uma destas aplicações. 1.1 SISTEMAS DE CONTROLE FUZZY Lee (1990), afirma que, sistemas de controle é a área que mais tem recebido aplicações da teoria fuzzy, especialmente em aplicações industriais. Ele também afirma que o uso de controladores fuzzy tem como objetivo emular a forma humana de operar um sistema. Generalizando, um controlador fuzzy pode ser visto como um método de tomada de decisão, baseado no raciocínio aproximado, fazendo com que o sistema se pareça mais com a forma humana de operar o sistema controlado. Enquanto controladores clássicos são baseados em modelos matemáticos rígidos para controle de processos, controladores fuzzy são baseados no conhecimento da operação humana. Este conhecimento é formulado em termos de regras de controle fuzzy, cada um expresso por uma proposição condicional, tal como: SE velocidade do veículo é devagar E distância entre o veículo e o sinal de "Pare" é grande ENTÃO pressão sobre os freios é nenhuma onde velocidade e distância são variáveis observadas do processo controlado, enquanto pressão é uma variável que representa a ação a ser controlada. Os termos lingüísticos devagar, grande e nenhuma são apropriadamente representados na lógica fuzzy. Muitos produtos disponíveis no mercado de consumo já contêm controladores fuzzy, segundo Zadeh (1997): Máquinas de lavar roupa, aspiradores de pó, barbeadores, filmadoras, automóveis (sistemas de freios, transmissão automática, e outras funções), refrigeradores e aparelhos de ar condicionado. Sistemas mais complexos são usados para controlar grupos de elevadores, sistemas de metrô urbano e controle de tráfego de veículos. Em Arbex (1996), a arquitetura de controladores fuzzy é apresentada em detalhes e uma discussão a respeito dos elementos de projeto é realizada, com uma comparação entre controladores fuzzy e controladores convencionais. Maruyama (1991), apresenta diretrizes gerais para o desenvolvimento de projeto de controladores fuzzy, com a apresentação da arquitetura de controladores fuzzy com uma discussão sobre os parâmetros deste projeto. 1.2 TOMADA DE DECISÃO Tomar uma decisão é uma das atividades humanas fundamentais e o objetivo da mesma é o estudo de como são feitas e de como elas podem levar a um maior sucesso. Klir (1995) mostra como é feita a aplicação da teoria fuzzy sobre a teoria de tomada de decisão, através da utilização de conceitos vagos e pouco específicos, semelhantes à formulação humana de preferências e objetivos. Na teoria clássica trabalha-se com um conjunto de alternativas naturais, onde a decisão é feita sobre certas condições disponíveis para a referida resolução. A resolução é tomada sobre condições de riscos, os quais são determinados pela distribuição probabilística de cada ação. Quando as probabilidades das ações não são conhecidas, o grau de risco só pode ser estimado aproximadamente, e as decisões são feitas sobre graus de incerteza. Neste caso, pode-se aplicar a teoria fuzzy para se obter um maior grau de sucesso. Os sistemas fuzzy podem ser desenvolvidos para auxiliar na decisão de tomada de preço de um produto novo como mostra Cox (1998) ou na compra uma casa, segundo ilustra Klir (1997), ou até na escolha da escola para seu filho, como está em McNeill (1994). São sistemas que auxiliam no processo de decisão. Exemplo 1 Para ilustrar este método, supõe-se uma pessoa que deverá decidir-se por uma entre quatro propostas de emprego, considerando o salário oferecido e a distância entre o local de trabalho e sua casa. Estas informações podem ser representadas por dois conjuntos fuzzy, sendo salário representado pela letra S e distância, representado pela letra D. Colocados em uma escala entre 0 e 1, sendo 0 o pior caso, e 1 o melhor caso; a pessoa atribui o valor 0.1 para a primeira proposta, aqui chamada de p1, 0.3 para a proposta p2, 0.48 para a proposta p3 e 0.8 para a p4. O conjunto S fica: S: {0.1, 0.3, 0.48, 0.8} Este conjunto caracteriza que a proposta p4 é uma proposta mais interessante em termos de salário do que a proposta p1. Para o conjunto D a pessoa atribui a seguinte seqüência ordenada pelas propostas: D: {0.4, 0.6, 0.2, 0.2} Ou seja, em uma escala entre 0 e 1, sendo 0 o emprego fica muito longe de sua casa e 1 fica muito próximo. A proposta p1 recebe o valor 0.4, a proposta p2 recebe o valor 0.6, a proposta p3 o valor 0.2 e p4 também 0.2, pois a distância entre o local de trabalho das propostas p3 e p4 e sua residência são iguais. Analisando o conjunto D, conclui-se que a empresa com a proposta p2 é a que fica mais próxima de sua casa. Aplicando o método proposto por Klir (1995), a combinação dos dois conjuntos S e D gera o conjunto final F dado pelo menor valor entre cada elemento para as propostas p1, p2, p3 e p4: F={menor(0.1,0.4),menor(0.3,0.6), menor(0.48,0.2), menor(0.8,0.2)} F={0.1,0.3,0.2,0.2} O conjunto final F tem os valores 0.1 para a proposta p1, 0.3 para a proposta p2, 0.2 para a proposta p3 e 0.2 para a proposta p4. Deste conjunto F a decisão é tomada levando-se em conta o elemento com o valor mais próximo de 1. Neste caso a melhor proposta de emprego é a proposta p2. O próximo item também envolve tomada de decisão, onde o sistema deve escolher um entre vários padrões no processamento de imagens. 1.3 Reconhecimento de Padrões e Processamento de Imagens O reconhecimento de padrões está associado ao processamento de imagens. Klir (1997), afirma que o objetivo básico é comparar as categorias identificadas nos dados com categorias definidas em tabelas ou base de dados. Uma aplicação é o reconhecimento óptico de caracteres, ou OCR (Optical Character Recognize), onde através de um scanner digitaliza-se textos para posterior conversão de uma imagem em um texto manipulável por um programa de computador. Quando se digita um texto em um editor de textos, cada letra é um valor numérico em uma tabela. A conversão de uma imagem em texto lida com a manipulação de imagens, pois cada letra digitalizada deve ser convertida para um número que represente esta letra. Shimura (1975), considera o reconhecimento de padrões essencialmente fuzzy, porque não há uma fronteira definida entre as categorias de fontes de caracteres. Afirma que o reconhecimento de padrões é mais um evento probabilístico do que determinístico, pois a impressão de caracteres pode ser afetada por várias situações, como a má qualidade de impressão ou sujeira no papel. No caso de se ter um padrão, onde o número de modelos de exemplo para comparação e reconhecimento é limitado, impedindo a aplicação da teoria probabilística, um modelo fuzzy é mais útil na classificação de padrões desconhecidos do que os métodos de classificação tradicionais. 1.4 MEDICINA A aplicação da teoria fuzzy na medicina tem sido reconhecida desde 1970, segundo Klir (1997). O foco principal tem sido o modelamento dos processos de diagnóstico de doenças. Exemplo 2 Por exemplo, para diagnosticar a cirrose o médico faz exames de sangue para identificar se: "Total de proteínas está diminuindo, a-globulina está freqüentemente diminuindo, e g-globulina está aumentando". Os termos diminuindo, freqüentemente, e aumentandosão valores vagos. Assim, para representar estes termos de forma manipulável, a teoria fuzzy é uma opção. 1.5 ECOLOGIA Barros (1992, 1997), tem aplicado a teoria fuzzy em dinâmica de população distinguindo basicamente duas situações. A primeira quando acredita-se que o ambiente (clima, higiene, cidade, floresta, etc.) onde vivem os indivíduos, interfere fortemente na dinâmica de suas relações; a outra trata de questões de competição ou predação entre espécies onde tanto o conceito de presa como o de predador são cotados de maneira subjetiva. Um ser, como o tubarão, pode ser considerado como predador, porém seu grau de predação certamente não é o mesmo durante toda a sua vida, podendo até sair da condição de predador para presa quando muito jovem ou velho. 1.6 BANCOS DE DADOS FUZZY Um banco de dados informatizado tem como objetivo capacitar um usuário a manipular e recuperar informações armazenadas eletrônicamente, como descrito em Klir (1995). Muitos modelos para representar estas informações têm sido propostos. Um destes modelos é chamado de modelo relacional, que consiste de um conjunto multi-dimensional de relações manipuladas como tabelas, conforme conceitua Korth (1994). As colunas destas tabelas correspondem a campos ou atributos e são chamados de domínios. Cada domínio é definido em um conjunto universal apropriado. As linhas destas tabelas são os elementos da relação e correspondem a registros, chamados de tuplas. O acesso ao banco de dados é feito através de operações algébricas tradicionais, como a união ou a interseção sobre os domínios a serem operados, a fim de produzir a informação desejada. O modelo relacional proposto por Buckles (1983), difere do modelo tradicional no seguinte aspecto: os elementos das tuplas, contidos em uma relação, podem ser subconjuntos do domínio universal, permitindo a inclusão de conceitos vagos como "tamanho igual a grande", ou "potencial igual a bom". A aplicação da algebra relacional fuzzy utilizada para acessar um banco de dados fuzzy, providencia uma maior flexibilidade na recuperação e manipulação das informações em uma linguagem mais próxima da linguagem humana. Cox (1995), propõe a aplicação da teoria fuzzy em banco de dados gerenciados pela linguagem SQL (Structured Query Language) com a criação de novas bibliotecas de comandos SQL, com a capacidade de manipular informações vagas ou imprecisas. Segundo esta proposta, com a teoria fuzzy a capacidade de busca e recuperação de informações através da linguagem SQL é ampliada de forma a permitir aplicações na área financeira, para negócios e na industria com um alcance que o uso tradicional não permite. Como os problemas das áreas citadas envolvem conceitos imprecisos, como “situação economicamente viável”, “alta produtividade” ou “baixa liquidez” a teoria fuzzy é bem aplicada. A próxima seção também trata da manipulação de informações, onde, utilizando uma base de dados, o sistema tem como objetivo o aprendizado de um determinado comportamento. 1.7 NEUROFUZZY A combinação com a teoria de redes neurais fornece uma capacidade de aprendizado para fazer com que os controladores fuzzy se adaptem a uma variada gama de condições, como descrito em Altrock (1997), e em Altrock (1995). O objetivo das redes neurais é o de imitar a mente humana, a fim de processar informações através de algoritmos que capacitem um aprendizado de um determinado comportamento. O benefício da teoria fuzzy é o de capacitar a tomada de decisões, onde a teoria de redes neurais permitem um aprendizado, a partir de um conjunto de dados, enquanto a teoria fuzzy proporciona uma forma de se obter resultados sobre este aprendizado. Altrock (1997), também mostra como esta teoria tem sido utilizada em aplicações industriais, aplicações na área financeira e de negócios. Blinder (1994), apresenta a implementação da lógica fuzzy em redes neurais artificiais aplicados na biologia. Mostra que a representação de problemas biológicos tem um grande grau de incerteza e imprecisão lingüísticas e que, através da teoria fuzzy, aliada a teoria de redes neurais, obtém-se uma ferramenta com grande poder de síntese. 1.8 SISTEMAS OPERACIONAIS Kandel (1998), apresenta o uso da tecnologia fuzzy na arquitetura de sistemas operacionais. O sistema operacional é uma parte importante de um sistema de computador e tem como objetivo principal, gerenciar eficientemente a arquitetura do computador, a qual é formada pelos elementos de hardware e software que compõem este sistema. Técnicas fuzzy podem ser usadas para um aprimoramento da qualidade de um sistema operacional com a inclusão de algoritmos fuzzy, pois muitos elementos que compõem um sistema de computador podem ser considerados fuzzy. Por exemplo, o tempo de acesso a memória, que pode ser mais rápido ou não de acordo com as condições gerais de uso do sistema, ou o tempo de resposta de um processamento, que depende do espaço em disco disponível para uso de um determinado programa. Os termos mais rápido e tempo de resposta são valores vagos, onde a teoria fuzzy pode ser aplicada para se obter um melhor gerenciamento do sistema, a fim de se obter melhores resultados. Perguntas do tipo "Deve-se segmentar o programa em blocos grandes ou pequenos para se obter o menor tempo de execução?" são problemas que o sistema operacional deve resolver a todo instante. Valores vagos como grandes, pequenos e menor possibilitam a aplicação da teoria fuzzy. Este capítulo tratou das aplicações da teoria fuzzy. No capítulo 2 será visto a teoria de conjuntos fuzzy. CAPÍTULO 2. CONJUNTOS FUZZY Na teoria clássica de conjuntos, um elemento ou pertence ao conjunto ou não pertence ao mesmo. Esta dicotomia é reflexo da lógica clássica, onde cada proposição é tratada como totalmente falsa ou totalmente verdadeira. No entanto, muitas proposições não podem ser bem caracterizadas dessa forma. Por exemplo, na classe das pessoas altas de uma localidade a fronteira não pode ser precisamente determinada. Isto porque há uma transição contínua entre ser alto e não ser alto. Não é razoável que uma pessoa com 1.69m seja considerada baixa e outra com 1.70m alta. Há muitos outros exemplos que não podem ser representados totalmente pela teoria clássica de conjuntos; como a classe dos altos salários em uma empresa, a linha de custo de um produto, ou a experiência administrativa de uma pessoa. Um conjunto fuzzy é um recurso natural para caracterizar estes conceitos. Uma das principais motivações para a criação de conjuntos fuzzy é a representação de conceitos imprecisos. Um indivíduo é membro do grupo de pessoas altas de acordo com o conceito de alto. A idéia é atribuir um grau (valor) a cada membro individual do grupo que indica o grau de compatibilidade do elemento com o conceito que se deseja precisar. Com o objetivo de dar um tratamento ou mesmo tornar programável conceitos que julga-se vagos ou imprecisos, como bem maior, bem menor, aproximadamente, é que surge a idéia de conjuntos fuzzy (ou nebulosos). Zadeh (1965) propôs então a seguinte definição matemática: Definição 2.1 Um subconjunto fuzzy A de um conjunto clássico X é dado por uma função a:X ® [0,1], onde a(x) é o grau de pertinência do elemento x a a, com os graus 1 e 0 representando, respectivamente, a pertinência máxima e a não pertinência do elemento ao conjunto fuzzy A. A função a é chamada grau de pertinência do conjunto fuzzy A. Baseando-se na caracterização de um conjunto clássico A através da sua função característica 1A é que definiu-se um subconjunto fuzzy por meio de uma função "generalizando" o conceito de subconjunto clássico. Isto é, enquanto a função indicadora (ou característica) 1A que caracteriza o subconjunto A assume apenasvalores no conjunto {0,1}, a função grau de pertinência A(x) do subconjunto fuzzy A pode assumir qualquer valor no intervalo [0,1]. Aqui neste texto, a exemplo de tantos outros, às vezes o próprio conjunto fuzzy A será usado para indicar sua função grau de pertinência. A construção de conjuntos fuzzy é tratada na próxima seção. 2.1 CONSTRUINDO CONJUNTOS FUZZY A construção de conjuntos fuzzy tem como objetivo modelar um sistema através de termos lingüísticos apropriados. Estes termos podem ter aplicações diferentes, conforme o contexto. Por exemplo, o termo "jovem" tem um significado diferente quando utilizado por crianças ou por adultos. A sua construção varia sempre para diferentes universos. O problema de se construir as funções grau de pertinência no contexto de várias aplicações não é um problema da teoria fuzzy em si. É um problema relacionado a um novo campo chamado de "Engenharia do Conhecimento", onde se concentra a aquisição dos fatos relacionados ao conhecimento da situação. O processo de aquisição do conhecimento envolve um ou mais especialistas na área de aplicação e um engenheiro de conhecimento. O engenheiro deve transformar em uma forma operacional o conhecimento fornecido pelos especialistas. Muitos métodos para construção da função grau de pertinência têm sido desenvolvidos, e um deles é descrito no exemplo a seguir. Exemplo 3 Supondo que se tem em uma competição cinco mulheres para a disputa de Salto Ornamental: Márcia, Cristina, Nanci, Neusa e Terezinha e o júri é composto por dez juízes, descritos por J1, J2, ..., J10, que darão 1 para um bom salto e 0 para um salto ruim. Deve-se construir uma função grau de pertinência A que capture o termo lingüístico "excelente saltadora". Após receber os resultados dos juízes, monta-se uma tabela como: Tabela 1 - Notas fornecidas pelos Juizes Juiz Márcia Cristina Nanci Neusa Terezinha J1 1 1 1 1 1 J2 0 0 1 1 1 J3 0 1 0 0 1 J4 1 0 1 1 1 J5 0 0 1 1 1 J6 0 1 1 1 1 J7 0 0 0 0 0 J8 1 1 1 1 1 J9 0 0 0 0 1 J10 0 0 0 0 1 Para cada concorrente calcula-se o grau de pertinência de acordo com a média do número total de respostas favoráveis ao número total de juízes. Este procedimento fornece o seguinte conjunto fuzzy para a excelente saltadora: A = 0.3 / Márcia + 0.4 / Cristina + 0.6 / Nanci + 0.6 / Neusa + 0.9 / Terezinha Neste exemplo, tem-se que Terezinha pertence mais ao conjunto fuzzy das excelentes saltadoras do que as demais e Márcia pertence menos. Aqui utiliza-se uma forma de representar este conjunto fuzzy. A representação de um conjunto fuzzy facilita o seu entendimento e as formas de se representar estes conjuntos vem a seguir. 2.2 REPRESENTAÇÕES DE CONJUNTOS FUZZY A representação das funções que definem os membros de um conjunto fuzzy facilita a visualização deste conjunto, e pode ser feita na forma tabular ou de lista, graficamente e na forma analítica. Para conjuntos finitos, as funções podem sempre ser representadas por tabelas. A tabela representando um conjunto fuzzy lista todos os elementos do conjunto com seus respectivos graus de pertinência. No seguinte exemplo tem-se uma ilustração deste tópico. Exemplo 4 Seja A o conjunto dos alunos "estudiosos" de uma sala de aula de uma faculdade, e sejam os alunos desta sala: Fernando, Carlos, Márcia e André. Este conjunto A é um subconjunto do conjunto universo X com todos os alunos da faculdade. Nem todos os alunos do conjunto A estudam diligentemente, logo alguns têm um grau de mais estudioso, outros menos estudioso variando entre os valores 0 e 1. Para os alunos citados tem-se a representação tabular: Tabela 2 - Alunos e seus graus de estudo Estudante Grau de estudo Carlos 0.3 Márcia 0.7 Fernando 0.8 André 0.9 Alternativamente à tabela acima, pode-se listar os pares consistindo de cada membro com seu grau de estudo, da seguinte forma: A = { (Fernando; 0.8), (Carlos; 0.3), (Márcia; 0.7), (André;0.9)} Esta segunda forma tabular é mais comumente escrita assim: A = 0.8/Fernando + 0.3/Carlos + 0.7/Márcia + 0.9/André Aqui o símbolo / é usado apenas para associar o elemento do conjunto universo X e o seu grau de pertinência ao conjunto fuzzy A. Assim também o sinal de + não significa soma; simplesmente conecta os elementos do grupo. A forma geral para representar o conjunto fuzzy A quando X é finito tem a forma: Uma outra forma de se representar um conjunto fuzzy é feita graficamente. A representação gráfica é a mais usada na literatura fuzzy por ter uma interpretação mais intuitiva. No caso de se fazer a representação em duas dimensões, o eixo vertical representa a função grau de pertinência no intervalo [0,1], e o eixo horizontal contém a informação a ser modelada. A seguir tem-se três exemplos de representação gráfica de conjuntos fuzzy. No exemplo 5, tem-se uma curva que inicia em 1 (no eixo vertical) e se aproxima do eixo horizontal, ou seja, toma forma de uma curva decrescente. No exemplo 6 tem-se uma curva que cresce e depois decresce, na forma de sino. No exemplo 7, tem-se uma curva que inicia próxima ao eixo horizontal e vai crescendo até o limite de 1. å= xxAA /)( Exemplo 5 Um conjunto fuzzy J compatível com o conceito de jovem deve, no mínimo, indicar que, quanto menos idade um indivíduo tiver, mais jovem será. Sua função grau de pertinência J (x) pode ser representada como na figura 1. Figura 1 – Função grau de pertinência de jovens Exemplo 6 O conjunto fuzzy de pessoas de meia idade poderia ser representado pela função A(x) ilustrada na figura 2. Neste exemplo, a curva tem a forma de sino, crescendo da esquerda para a direita até uma certa idade, e depois decrescendo com a idade. Que a curva deva ter esta forma acredita-se que seja consenso. As controvérsias talvez apareçam a respeito da idade, onde há mudança do crescimento da curva. Figura 2 – Conjunto de pessoas de meia idade Exemplo 7 Suponha que uma universidade defina níveis de experiência acadêmica, de acordo com o número de créditos feitos pelos alunos, conforme a tabela 3: Tabela 3 - Níveis de experiência acadêmica Nível Créditos (em horas) Iniciante 0-32 Segundanista 33-62 Júnior 63-94 Sênior 95-126 Ao contrário da teoria clássica de conjuntos que definiriam precisamente os níveis de experiência, o termo vago grau de experiência acadêmica corresponde a um genuíno conjunto fuzzy. Os créditos (em horas) é que classificam os níveis dos indivíduos, porém há diferenças de créditos dentro de cada nível. Por exemplo, o indivíduo com 126 créditos é mais sênior que aquele que tem 95 créditos. Uma representação gráfica para este exemplo pode ser a seguinte: Figura 3 - Representação dos níveis de experiência acadêmica Nesta fase, em que os conjuntos fuzzy estão sendo definidos, é de fundamental importância o trabalho conjunto do especialista e do engenheiro de conhecimento, como descrito na seção 2.1. A representação analítica é também bastante utilizada em teoria fuzzy. Quando o conjunto universo X é infinito, é impossível listar todos os elementos com seus graus. O exemplo a seguir ilustra este caso. Exemplo 8 Por exemplo, o conjunto fuzzy A dos números reais em torno de 6 não pode ser representado na forma tabular por motivos claros. No caso, uma representação analítica de A é: Se 5 £ x £ 6 Se 6 £ x £ 7 caso contrário A figura 4 representa graficamente este conjunto. ï î ï í ì - - = 0 7 5 )( x x xA Figura 4 - Conjunto fuzzy dos números reais "em torno de 6" Após examinar as diversas formas de representar conjuntos fuzzy, segue-se as operações que podem ser feitas entre estes conjuntos. 2.3 OPERAÇÕES ENTRE CONJUNTOS FUZZY Executar operações entre conjuntos fuzzy significa combinar, comparar ou agregarestes conjuntos. As operações entre conjuntos permitem construções que são muito importantes em várias situações envolvendo informações e processamento de dados. Na teoria tradicional, as operações básicas entre conjuntos são três: União, Interseção e Complemento. Na teoria fuzzy estas são chamadas de operações básicas, existindo outras que generalizam estas, conforme visto em Gomide (1998), em Klir (1995), e em Blinder (1994). Para o desenvolvimento deste trabalho será visto apenas as operações básicas. A seguir tem-se as definições para União, Interseção e Complemento de Conjuntos, para a teoria tradicional e para a teoria fuzzy. Definição 2.2 Seja X o conjunto universo. A união entre dois conjuntos A e B na teoria clássica é representada por AÈB, e definida como o conjunto que contém todos os elementos pertencentes ao conjunto A ou ao conjunto B. Formalmente: AÈB = {x Î X | x Î A ou x Î B} (1) Considera-se a união entre dois conjuntos fuzzy A e B em X, denotada por AÈB, o conjunto expresso pela equação (2) e definida pela função grau de pertinência: (AÈB)(x) = max [A(x), B(x)] (2) para todo x Î X. Exemplo 9 Supõe-se que X seja o conjunto de n pacientes de um médico, identificados pelos números 1, 2, 3, 4, 5 e sejam A e B os conjuntos que representam os pacientes em X com Pressão Alta e Febre, respectivamente. Usando a equação (2) podemos determinar AÈB dos pacientes em X que têm pressão alta ou febre, conforme a tabela 4: Tabela 4 - Ilustração da União dos conjuntos fuzzy A e B Paciente A=Pressão Alta B=Febre AÈB 1 0.6 0.7 0.7 2 1.0 1.0 1.0 3 0.2 0.8 0.8 ... ... ... ... n 1.0 1.0 1.0 Os valores desta tabela são os graus com que cada paciente pertence ao conjunto fuzzy A, B, e AÈB. A próxima definição é a da interseção de conjuntos. Definição 2.3 Seja X o conjunto universo. A interseção entre dois conjuntos A e B na teoria clássica de conjuntos é denotada por AÇB e contém todos os elementos pertencentes a A e a B simultaneamente. Formalmente: AÇB = {x Î X | x Î A e x Î B} (3) Na teoria de conjuntos fuzzy, a interseção entre dois conjuntos fuzzy A e B definidos no universo X é denotada por AÇB, definida por sua função grau de pertinência dada por: (AÇB)(x) = min[A(x), B(x)] (4) para todo x Î X. Exemplo 10 Como exemplo, seja A o conjunto de rios que são longos, B o conjunto de rios navegáveis. A interseção AÇB é dada por rios que são longos e navegáveis, conforme ilustrado na tabela 5: Tabela 5 - Ilustração da Interseção de conjuntos fuzzy para o exemplo 10 Rio A=Rio Longo B=Navegável AÇB Amazonas 1.0 0.7 0.7 Nilo 0.9 0.6 0.6 Danúbio 0.5 0.8 0.5 Mississipi 0.8 0.5 0.5 Neste exemplo tem-se que o rio Amazonas tem um grau 0.7 na escala [0,1] como sendo navegável e longo enquanto que o rio Mississipi possui grau 0.5, de acordo com a última coluna da tabela. As particularidades do complemento de um conjunto fuzzy são descritas a seguir. Definição 2.4 Na teoria tradicional de conjuntos, o complemento de um conjunto A é denotado por A' e composto por todos os elementos do conjunto universo X que não pertencem a A . Mais precisamente: A' = { x | x Î X e x Ï A} (5) Os elementos x de A' podem ser caracterizados pela função indicadora de A' dada por: Se x Ï A' Se x Î A'ï î ï í ì = 0 1 )(' xI A Na teoria de conjuntos fuzzy, dado um subconjunto fuzzy A de um conjunto universo X, o complemento fuzzy de A é outro subconjunto fuzzy A' de X que "troca" o grau de pertinência dos elementos de A . Isto é, enquanto que para cada x Î X, A(x) expressa o grau que indica o quanto x pertence a A, A'(x) expressa quanto x não pertence a A . A função grau de pertinência de A' é definido por A'(x) = 1 - A(x) (6) Para todo x Î X. Exemplo 11 Para ilustrar o complemento de um conjunto fuzzy, toma-se o exemplo 7 dos alunos com experiência acadêmica. De acordo com a definição para complemento de conjuntos fuzzy, as funções grau de pertinência de A e de seu complemento A' (dos alunos sem experiência acadêmica) estão representadas na figura 5 Figura 5 - Complemento de um conjunto fuzzy Uma conseqüência da imprecisão dos limites dos conjuntos fuzzy é a de que há uma sobreposição do conjunto com seu complemento. Quando um aluno pertence ao grupo dos alunos com experiência com grau 0.8, ele também pertence ao grupo de alunos sem experiência com grau 0.2, como indicado na figura 6 onde no eixo das abscissas são colocadas as horas de créditos. Esta é uma diferença fundamental entre a teoria clássica e a teoria de conjuntos fuzzy. Na teoria clássica, um elemento ou pertence ao conjunto ou a seu complementar. Nesta seção discutiu-se as operações entre conjuntos fuzzy. Na próxima será discutida o conceito de relações fuzzy. 2.4 RELAÇÕES FUZZY Associações entre objetos têm sido assunto de grande interesse para a humanidade. Matematicamente, as associações entre objetos está intimamente ligada ao conceito de relações entre conjuntos, que por sua vez é definida através do produto cartesiano. Definição 2.6 O produto cartesiano X1 x X2 x .. x Xn dos conjuntos X1, X2, ..., Xn é constituido pelas n-uplas (x1, x2, ..., xn) onde cada coordenada xi é um elemento do conjunto Xi. Formalmente tem-se: X1 x X2 x ... x Xn = {(x1, x2, ..., xn):x1 ÎX1, x2 Î X2, ..., xn Î Xn} A qualquer subconjunto do produto cartesiano X1 x X2 x ...x Xn dá-se o nome de Relação (R). Quando o produto cartesiano é composto apenas por dois conjuntos X1 x X2, a relação R é chamada de binária e no caso em que X1 = X2 = ... = Xn = X, diz-se que R é uma relação em X. Todos os conceitos sobre relação enunciados acima se referem à teoria clássica. Enquanto as relações clássicas descrevem a presença ou ausência de associação entre os elementos de dois ou mais conjuntos, as relações fuzzy têm a intenção de captar o valor ou nível da associação entre os elementos dos conjuntos. Sendo a relação R um subconjunto do produto cartesiano, tal relação pode ser identificada por sua função característica. Para definir uma relação fuzzy, a idéia é usar a função grau de pertinência no lugar da característica para o caso clássico. Definição 2.7 A qualquer subconjunto fuzzy R do produto cartesiano X1 x X2 x ... x Xn, dá-se o nome de relação fuzzy. Identificando a relação fuzzy R com sua função grau de pertinência, o valor R(x1, x2, ..., xn ) Î [0,1] indica o grau de associação entre os elementos x1, x2, ..., xn . A relação fuzzy assim como no caso clássico, é chamada de binária quando tem-se apenas dois conjuntos X1 x X2 compondo o produto cartesiano. Uma relação fuzzy binária é uma generalização da relação binária tradicional no sentido que a função grau de pertinência generaliza a função indicadora. Na teoria tradicional, a relação R:X x XÞ{0,1} é dita: 1. Reflexiva se R(x1, x1) = 1 2. Simétrica se R(x1, x2) = 1 implica R(x2, x1) = 1 3. Transitiva se R(x1, x2) = R(x2, x3) = 1 implica R(x1, x3) = 1 4. Anti-simétrica se R(x1, x2) = R(x2, x1) = 1 implica x1 = x2 Há muitas maneiras de se converter estas propriedades de uma função R:X x XÞ{0,1} para uma função R:X x XÞ[0,1]. Nguyen (1997) apresenta uma delas, para uma relação fuzzy R em um conjunto X, para todo x1, x2 e x3 Î X, a relação é: 1. Reflexiva se R(x1, x1) = 1 2. Simétrica se R(x1, x2) = R(x2, x1) 3. Transitiva se R(x1, x3) ³ R(x2, x3) Ù R(x2, x3) 4. Anti-simétrica se R(x1, x2) > 0 e R(x2, x1) > 0 implica x1 = x2 A seguir, descreve-se um exemplo de uma relação binária fuzzy. Exemplo 12 Para exemplificar, considere a relação binária fuzzy R em um conjunto D de documentos e um conjunto C de termos chaves usados na recuperação em um sistema de informação de um determinado banco de dados: D = {d1, d2, ..., dn} C = {c1,c2, ..., cn} Onde D pode ser um banco de dados bibliográficos e C a lista de nomes dos autores das informações armazenadas. Sua função grau de pertinência é definida no produto cartesiano DxC. Para cada documento d no conjunto D e para cada elemento chave c no conjunto C, o grau de pertinência R(d,c) pode ser interpretado neste caso como o grau de pertinência do documento d para o termo c. Este grau pertence ao intervalo [0, 1], sendo que o grau igual a 1 significa que a chave de busca fornecida permite recuperar a informação exata procurada, e um valor igual a 0 significa que não há nenhum documento correspondente a ela no banco de dados. Ou seja, se a chave fornecida for um nome completo e houver um documento correspondente a ele no banco de dados, esta chave terá valor 1 para este documento. Se não houver um documento referente a este autor, então ela terá valor 0. Caso seja fornecido um nome parcial, é possível que vários documentos correspondam a esta chave, recebendo ela um valor parcial para cada documento fornecido. Uma chave com o conteúdo “Francisco Ribacionka” terá um valor 1 caso se encontre algum registro correspondente a esta chave de busca. Uma chave com conteúdo “Francisco” terá um valor menor, pois recuperará todos os registros que contenham esta palavra. Esta caracterização do relacionamento entre documentos e termos chave é altamente expressiva, pois é a informação buscada. Qualquer relação clássica definida no mesmo produto cartesiano é menos expressiva: requer que cada documento seja declarado como relevante ou não para cada termo chave. Em comparação com as relações clássicas, relações fuzzy substancialmente aumentam a capacidade de expressar os conceitos de relacionamento em uma linguagem natural. Para um melhor entendimento destas relações, há a sua representação gráfica. Na teoria clássica de conjuntos, as principais formas de se representar graficamente uma relação entre conjuntos são a representação por coordenadas e representação matricial. O mesmo ocorre na teoria de conjuntos fuzzy. Na teoria clássica, toda relação é um subconjunto do produto cartesiano que pode ser expressa por uma lista com todos os pares que compõem a relação quando os conjuntos são finitos. Exemplo 13 Considere a relação R={(galinha, ovos), (vaca, leite), (cabra, leite)}. A figura 6 ilustra a relação R onde os pontos marcados especificam os pares que fazem parte da relação. Figura 6 – representação por coordenadas da relação R acima Os graus de pertinência dos pares ordenados que estão relacionados são todos iguais a 1 enquanto os que não estão relacionados é zero. Uma relação fuzzy finita também pode ser representada por uma lista de pares ordenados do produto cartesiano levando em conta seus graus. Os pares cujos graus são zero usualmente são omitidos. Uma representação por coordenadas, neste caso, precisaria de um terceiro eixo. Exemplo 14 Suponha que a produção de leite de vaca seja o dobro da de leite de cabra. Neste caso, se atribuir grau 1 para indicar a relação de vaca com leite, é razoável que cabra com leite deve ter grau ½. Assim sendo, tem-se uma relação fuzzy e faz-se necessário um terceiro eixo para indicar o grau. A figura abaixo ilustra este exemplo. Figura 7 - Representação por coordenadas de uma relação fuzzy Na teoria fuzzy, além da representação gráfica, uma outra forma de representar relações binárias é através de matrizes, cujas entradas são os graus correspondentes aos elementos do produto cartesiano envolvidos. Considere a relação binária fuzzy em XxY, onde X={x1, x2, ... ,xn} e Y={y1, y2, ... , ym}. Seja R uma relação fuzzy de X em Y, e R(xi, yj)=rij o grau com que xi está relacionado com yj. Uma representação matricial para R é dada pela tabela 6 abaixo. Tabela 6 - Relação matricial XxY R y1 y2 ... ym x1 r11 r12 ... r1m x2 r21 r22 ... r2m ... ... ... ... ... xn rn1 rn2 ... rnm Exemplo 15 Como exemplo, considere o conjunto X com a relação de três grandes cidades: X={São Paulo, Curitiba, Porto Alegre} e R a relação fuzzy em X representando a relação muito longe de, com valores aceitos no intervalo [0,1]. Um valor próximo de 0 significa perto, e um valor próximo de 1 significa longe. Representando São Paulo por “S”, Curitiba por “C” e Porto Alegre por “P” uma possibilidade para R pode ser dada pela matriz na tabela 7. Tabela 7 – Representação matricial da relação fuzzy L acima S C P S 0 0.4 1 C 0.4 0 0.6 P 1 0.6 0 O exemplo 13 teria a matriz da tabela 8, pois no caso clássico as entradas da matriz seriam 0 ou 1 para se obter uma representação fuzzy binária por matrizes. Tabela 8 – Representação matricial da relação R R Vaca Cabra Galinha Ovos 0 0 1 Leite 1 1 0 Cereal 0 0 0 Nesta seção mostrou-se que, em comparação à teoria tradicional, relações fuzzy possibilitam uma maior capacidade de representar informações. Na próxima seção será descrito o conceito de número fuzzy. 2.5 NÚMERO FUZZY Assim como no caso clássico, aqui também pretende-se fazer "contas". A diferença é que aqui pretende-se, por exemplo, "somar" quantidades imprecisas. Para isto, "cria- se" os objetos que generalizam os números reais. Tais objetos serão chamados de números fuzzy. O conceito de número fuzzy vem do fato de muitos fenômenos não poderem ser caracterizados por números precisos. Precisamente, tem-se a seguinte definição: Definição 2.8 Um conjunto fuzzy A é chamado de número fuzzy quando o conjunto universo onde A está definido é o conjunto dos números reais e A é normal. Isto é, A é um número fuzzy se A:R ® [0,1] e A(x)=1 para algum x, dado como certo. Os números fuzzy pertinentes a este trabalho são aqueles que expressam conceitos como “em torno” de um valor preciso ou possivelmente, de um intervalo. Segundo Klir (1997), a forma geral para expressar a função grau de pertinência de um número fuzzy triangular é: Se a - s £ x £ a + s caso contrárioïî ï í ì - - = 0 1 )( s ax xA A figura 8 contém a representação deste número fuzzy. Figura 8 - Representação na forma triangular Outra classe importante tem a forma trapezoidal. Cada elemento desta classe é caracterizada por cinco parâmetros, a, b, c, d, e. Sua representação analítica tem a forma genérica: Se a £ x < b Se b £ x £ c Se c < x £ d caso contrário A figura 9 contém uma representação desta função. Figura 9 - Representação analítica genérica na forma trapezoidal Funções grau de pertinência com a forma de sino também são comuns. A fórmula genérica para estes casos é: se (a-s) £ x £ (a+s) caso contrário ï ï ï î ï ï ï í ì - - - - = 0 1 )( cd xd ba xa xA ( ) ïî ï í ì = - 0 )( 2 b ax exA A figura 10 contém uma representação desta função. Figura 10 - Representação analítica genérica na forma de sino As operações algébricas com números fuzzy são as mesmas da teoria clássica. Neste trabalho será tratado apenas soma e subtração de números fuzzy. A soma ou subtração de dois números fuzzy utiliza as regras de soma e subtração de intervalos. A adição de um intervalo é dada pela fórmula: [a,b] + [c,d] = [a+c,b+d] (7) A subtração de dois intervalos é dada pela fórmula: [a,b] – [c,d] = [a-d, b-c] (8) Para números fuzzy triangulares, o exemplo a seguir mostra como é fácil obter suas soma e subtração. Exemplo 16 Os números fuzzy representados na Figura 11 indicam o conceito de aproximadamente 2 e 4, respectivamente. Figura 11 – Representação dos números fuzzy 2 e 4 Para executar a adição dos números dados na figura 11, primeiro soma-se os valores centrais, 4 + 2 = 6. Este será o valor central do resultado da soma. A soma das bases é a soma dos intervalos [3,5] + [1,3]= [4,8]. A subtração dá-se da mesma forma, 4 –2 = 2, que é o valor central do resultado da subtração, e os extremos do número é calculado a partir da subtração dos intervalos [3,5] - [1,3] = [0,4] representados pela figura 12. Figura 12 - Resultado da soma e da subtração dos números fuzzy 2 e 4 Neste capítulo foram tratadas as várias formas de apresentação dos conjuntos fuzzy e as operações que neles podem ser executadas. No capítulo 3 será tratado o conceito de lógica fuzzy e sua utilização em raciocínio aproximado. CAPÍTULO 3. LÓGICA FUZZY O termo “Lógica Fuzzy” é utilizado de duas formas: a primeira, para representar e manipular informações imprecisas com o propósito de tomar decisões. É o uso da teoria de conjuntos fuzzy e envolve todos os conceitos descritos no capítulo 2; a segunda refere-se à extensão da lógica clássica, que é o objetivo deste capítulo. O uso da lógica fuzzy também possibilita conclusões imprecisas a partir de proposições imprecisas, como é típico na linguagem natural. Esta área é usualmente referida como raciocínio aproximado. A seguinte afirmação é um exemplo de raciocínio aproximado: Selos antigos são usualmente colecionáveis; Selos colecionáveis são caros; Portanto, selos antigos são usualmente caros. Esta é uma inferência dedutiva. Alguns dos predicados não são termos precisos, a saber: antigos, usualmente e caros; por este motivo, a lógica clássica não trata estes termos. O propósito da lógica fuzzy é dar sentido formal para estas inferências, baseando-se em termos lingüísticos imprecisos, tais como: alto, jovem, normal, verdadeiro, falso, parecido, muito ou pouco, entre outros. De uma forma ampla, a lógica fuzzy é uma aplicação da teoria de conjuntos fuzzy. Utiliza os conceitos, princípios e métodos desenvolvidos na teoria de conjuntos fuzzy para formular a teoria do raciocínio aproximado, que é necessária para estabelecer a conexão entre os graus de pertinência de um conjunto fuzzy e os graus de verdade nas proposições fuzzy. No próximo tópico serão relacionados alguns conceitos da lógica tradicional e as bases para o desenvolvimento da lógica fuzzy. 3.1 LÓGICA CLÁSSICA E MULTIVALUADA A lógica binária, baseada no "Sim" ou "Não" foi desenvolvida por Aristóteles, e é chamada de "Lógica Aristotélica". Aristóteles desenvolveu sua teoria a partir do trabalho de Pitágoras e seus antecessores que acreditavam na precisão matemática do universo e que tudo poderia ser definido através de uma relação matemática. A partir da lógica clássica que trata do raciocínio baseado em proposições, é chamada de cálculo proposicional. É um sistema usado para representar conhecimento na forma de sentenças declarativas que expressam proposições, utilizando-se letras e símbolos lógicos para forma-las. Segundo Klir (1997), inferências são listas de declarações proposicionais, onde uma delas é a conclusão, e as outras, premissas que dão suporte a esta conclusão. A seguir tem-se um resumo do cálculo de proposições (Nguyen (1997)). Seja V = {a, b, c, ... }. Os elementos do conjunto V são chamados de variáveis lógicas. Especifica-se três conectivos básicos: Ù (e), Ú (ou), ‘ (não) e dois conectivos lógicos, Þ (implica) e Û (equivalência). A tabela 9 contém alguns símbolos lógicos. Tabela 9 - conectores lógicos Símbolo Operação ‘ negação Ù Conjunção Ú Disjunção Þ Implicação Û Equivalência A partir dos elementos do conjunto V e estes conectivos, obtém-se expressões como a Ù b, a Ú b, a’Ú (b Ù c), etc. Estas expressões são chamadas de fórmulas. O conjunto de todas as fórmulas é denotado por F. Para qualquer função t1:V®{0,1} tem-se uma função t2:F®{0,1} definida assim: para cada variável a em uma fórmula, substitui-se t1(a) na fórmula. A tabela 10 define as operações Ù, Ú e ‘ para os valores verdade {0,1}. Tabela 10 – Valores verdade para a lógica tradicional Ú 0 1 Ù 0 1 ‘ 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 O próximo exemplo ilustra a valoração de uma proposição da lógica clássica, utilizando-se os conectores lógicos e as regras estabelecidas pela tabela 10. Exemplo 17 Suponha que t1(a)=0, t1(b)=1 e t1(c)=1, então: t2(((a Ú b) Ù c) Ù (b’ Ú c)) = ((t1(a) Ú t1(b)) Ù t1(c)) Ù (t1(b)’ Ú t1(c))) = (( 0 Ú 1) Ù 1) Ù (1’ Ú 1) = (1 Ù 1) Ù (0 Ú 1) = 1 Ù 1 = 1 O conector lógico Þ tem por objetivo modelar proposições condicionais na forma “Se ... então ..:”. e o conector Û modelar as expressas na forma “Se e somente se”. A tabela 11 mostra os valores verdade para estes conectores. Tabela 11 – Conectores lógicos ÞÞ (implica) e Û (equivalente) a b ÞÞ a b Û 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 Um modo de representar a inferência dedutiva é o método de dedução modus ponens, e que tem a seguinte arquitetura: Regra: p Þ q Fato: p Conclusão: q onde p e q são proposições lógicas e significam "q será verdade se p é verdade". Este argumento é válido para qualquer atribuição de valores verdade para p e q. Fazendo ambos p Þ q e p verdade, então q é verdade. A seguinte tabela contém as combinações possíveis para esta regra, sendo V verdadeiro e F falso. Tabela 12 – Tabela verdade para modus ponens p q p Þ q V V V V F F F V V F F V Klir (1997), relata que desde o início da ciência moderna até o fim deste século, a incerteza tem sido pouco tratada na ciência. Esta atitude vem gradualmente mudando principalmente com o surgimento de métodos estatísticos a partir do início do século 20. Após a aceitação da teoria estocástica, esta foi amplamente aplicada em várias áreas da ciência. No entanto, apesar de seu sucesso, tal teoria não foi capaz de capturar a incerteza em todas as suas manifestações. Em particular, não foi capaz de trabalhar certos resultados da incerteza de termos lingüísticos que aparecem na linguagem natural. Estas limitações forçaram o surgimento de novas teorias para lidar com a imprecisão e com a incerteza. Na lógica tradicional, as proposições são completamente verdadeiras ou completamente falsas. Portanto todas as inferências são forçadas a reconhecer apenas estas duas alternativas. Através da história da lógica ocidental, ocorreu uma expansão da rígida teoria da lógica com dois valores com a permissão do uso de variáveis, onde seus valores podem ser parcialmente verdade ou parcialmente falso. Por exemplo, Aristóteles argumentou que as proposições sobre fatos futuros não podem ser nem verdadeiros nem falsos, mas que valores futuros são potencialmente verdadeiros ou potencialmente falsos. Este problema ocorre não somente em eventos futuros, mas também em aplicações de mecânica quântica, onde valores verdadeiros, de certas proposições, são indeterminados, devido a limitações de métricas aplicadas ao fenômeno subatômico. Uma alternativa para esta situação é a lógica multivaluada. Nas lógicas multivaluadas, incluem-se valores adicionais entre os extremos da lógica tradicional e os valores verdadeiro ou falso, chamados de valores indeterminados. No caso da lógica de três valores, há exatamente um valor indeterminado. Em todas as lógicas com três valores, define-se os valores 0, 1 e ½ para verdadeiro, falso e indeterminado. A introdução deste valor intermediário naturalmente afeta a tabela-verdade definida na lógica clássica. A tabela verdade para negação é definida na tabela 13: Tabela 13 - Negação para lógica de três valores p ‘p 0 1 ½ ½ 1 0 Onde ‘p é a negação de p. A tabela 14 ilustra a lógica de três valores de Lukasiewicz . Verifica-se que as definições padrões da lógica clássica para os conectores Û, Þ, Ù e Ú são as mesmas para os valores 0 e 1. Entretanto, o novo valor ½ faz com que tenha uma conseqüência importante: não vale a lei do terceiro excluido (p Ú ‘p = 1) nema lei da contradição (p Ù ‘p = 0) e algumas outras tautologias, conforme Klir (1997). Tabela 14 - Tabela verdade definida por Lukasiewicz a b Ù Ú Þ Û 0 0 0 0 1 1 0 ½ 0 ½ 1 ½ 0 1 0 1 1 0 ½ 0 0 ½ ½ ½ ½ ½ ½ ½ 1 1 ½ 1 ½ 1 1 ½ 1 0 0 1 0 0 1 ½ ½ 1 ½ ½ 1 1 1 1 1 1 Mais geralmente, para qualquer valor n, os valores verdade para esta lógica de n valores são usualmente nomeados por números racionais no intervalo [0,1]. Isto define o conjunto de valores verdade T definido por: Logo, em uma lógica para 5 valores, os valores verdade são 0, ¼, ½, ¾ e 1. Os valores verdade para as fórmulas envolvendo os conectivos Û, Þ, Ù e Ú podem ser obtidos por: p' = 1-p (9) p Ù q = min(p, q) (10) p Ú q = max(p, q) (11) p Þ q = min(1, 1 - p+ q) (12) p Û q = 1 - ½ p - q½ (13) þ ý ü î í ì - - -- = þ ý ü î í ì - - - - --- = 1, 1 2 ,..., 1 2 , 1 1 ,0 1 1 , 1 2 ,..., 1 2 , 1 1 , 1 0 n n nnn n n n nnn Tn No caso de n = 2, onde T2 = {0, 1}, obtém-se a tabela verdade definida na lógica tradicional e no caso T3 = {0, 1/2, 1}, as fórmulas acima fornecem a tabela 14. Estes valores podem ser interpretados como graus de verdade. Assim a lógica multivaluada pode ser interpretada como um precursor da lógica fuzzy. Na próxima seção será tratada as proposições fuzzy. 3.2 PROPOSIÇÕES FUZZY O cálculo proposicional fuzzy generaliza o cálculo proposicional clássico, utilizando o conjunto verdade [0,1] ao invés do conjunto {0,1}. Tanto no caso da teoria tradicional, como na teoria fuzzy, o conjunto F de fórmulas lógicas é construído a partir do conjunto V de variáveis lógicas, utilizando-se os conectivos básicos Ù (ou), Ú (e), ‘ (não) e os dois conectivos lógicos, Þ (implica) e Û (equivalência). Assim como na lógica tradicional, no cálculo proposicional fuzzy a função t2:F®[0,1] que dá o valor verdade de uma fórmula envolvendo variáveis e conectivos fuzzy são obtidas a partir de uma função t1:V®[0,1], substituindo-se cada elemento a Î V de uma fórmula lógica pelo seu valor t1(a) em [0,1]. O resultado da valoração de uma proposição fuzzy é o intervalo com o grau de veracidade da proposição. Dado um conjunto fuzzy A, o grau de pertinência A(x) para qualquer elemento x no conjunto universo X, pode ser interpretado como o grau de verdade da proposição fuzzy "x é membro de A". Inversamente, dada uma proposição arbitrária "x é E", onde x é membro do conjunto X e E é uma expressão lingüística (como baixo, alto, muito longe, extremamente devagar); seu grau de verdade pode ser interpretado como o grau de pertinência A(x) do conjunto fuzzy A, caracterizado pela expressão lingüística E no contexto dado. As proposições fuzzy podem ser classificadas como condicionais ou incondicionais. As proposições condicionais são escritas na forma se-então. São implicações entre proposições fuzzy. Proposições deste tipo têm a forma: p: Se X é A então Y é B (14) onde X e Y são variáveis que assumem os valores x e y, e A, B são predicados representados por conjuntos fuzzy. Exemplo 18 Por exemplo, sejam X, A, Y e B conforme descrito: · X: é uma variável que assume um valor que indica a temperatura do corpo de uma determinada pessoa e pode variar na faixa [35,50]. Um valor até 36 é considerado normal e acima deste valor a temperatura é considerada alta; · A: corresponde a uma variável fuzzy que pode assumir os termos lingüísticos Baixa ou Alta; · Y: uma variável que informa o estado da temperatura do corpo de uma pessoa, podendo assumir os valores 0 para estado normal e 1 para indicar um estado febril; · B: uma variável fuzzy que pode receber os termos lingüísticos Febril ou Normal. Neste exemplo, os valores possíveis para A são Baixa ou Alta, e os valores possíveis para Y são Normal ou Febril. Duas proposições possíveis são: Se a temperatura é baixa, então o estado é normal Se a temperatura é alta, então o estado é febril Atribuindo-se o valor 38 para X então o conjunto fuzzy A “alta” é atingido. Como conseqüência, Y recebe o valor 1 e o conjunto fuzzy B “febril” é atingido. Substituindo X, A, Y e B em (14), a proposição fuzzy condicional fica: Se a temperatura é alta, então o estado é febril Observa-se que a temperatura, para ser alta, deve estar dentro do domínio alta, gerando uma saída fuzzy febril. No caso das proposições fuzzy incondicionais, a forma de apresentá-las é: p: “X é A” é Y (15) onde X é uma variável que recebe um valor x de um conjunto de valores possíveis e A é uma propriedade atribuída à variável. Esta propriedade é representada por um conjunto fuzzy. O exemplo a seguir ilustra esta forma de proposição. Exemplo 19 Seja X a temperatura que assume um valor x igual a 380 C; A igual a propriedade Alta e Y Febril. Substituindo os valores na expressão (15) tem-se: A temperatura de 380 C é alta é febril 380 C é o valor da variável temperatura; "é Alta" é o predicado fuzzy atribuído ao valor da temperatura. Com o intuito de modelar matematicamente as proposições condicionais e fazer inferências é que se explora o método dedutivo modus ponens. Para isto, é preciso, a exemplo do caso clássico, definir os conectivos lógicos que vão compor os métodos de dedução na lógica fuzzy. Esta teoria é desenvolvida na próxima seção. 3.3 LÓGICA FUZZY O objetivo aqui é definir os conectivos “e”, “ou”, “não”, “implica” e “se e somente se”. Todos estes conectivos devem ser definidos com o propósito de generalizar as tabelas verdade dos correspondentes conectivos nos casos clássicos. Isto é, quando estes conectivos são usados para valorar fórmulas clássicas, as tabelas verdade devem coincidir com as clássicas. Há na literatura muitas formas de se definir os conectivos mencionados acima através dos conceitos de t-normas e t-conormas, como em Nguyen (1997) e em Gomide (1998). Neste trabalho define-se os conectivos como foi no caso da lógica multivaluada, ou seja, o conectivo ‘ (não) é uma aplicação definida em [0,1] e os conectivos Ù (ou), Ú (e), Þ (implica) e Û (se e somente se) são relações binárias definidas em [0,1] através das fórmulas: a' = 1-a (14) a Ù b = min(a, b) (15) a Ú b = max(a, b) (16) a Þ b = min(1, 1 - a+ b) (17) a Û b = 1 - ½ a - b½ (18) Deve ser notado que cada uma das fórmulas acima generalizam de fato os conectivos do caso clássico como é o caso da implicação: 0 Þ 0 = min(1,1-0+0) = 1 0 Þ 1 = min(1,1-0+1) = 1 1 Þ 0 = min(1,1-1+0) = 0 1 Þ 1 = min(1,1-1+1) = 1 A lógica fuzzy permite a construção de modelos matemáticos baseados em informações imprecisas, onde se aplica a teoria de raciocínio aproximado para se obter conclusões a partir de premissas imprecisas. Este tópico é tratado a seguir. 3.4 RACIOCÍNIO APROXIMADO Raciocínio aproximado refere-se ao processo onde obtém-se conclusões a partir de premissas imprecisas. Segundo Nguyen (1997), quando esta imprecisão é considerada fuzzy, o termo raciocínio fuzzy é utilizado. A seguinte forma de raciocínio é comum na vida diária: · “Se um tomate está vermelho, então está maduro”. Caso se tenha um tomate vermelho, é automática sua classificação como maduro. · “Se x é grande, então y é pequeno”. Tendo um x grande, conclui-se que y é pequeno. Esta é uma generalização do conhecido método dedutivo modus ponens. A diferença para o modus ponens clássico são os predicados envolvidos. No caso fuzzy, os termos lingüísticos são expressos em uma linguagem natural e são modelados como subconjuntos fuzzy. Considere as proposições p e q: p : “x é A” q : “y é B” Onde A e B são subconjuntos fuzzy dos conjuntos U e V, e x e y são variáveis que assumem valores em U e V; tem-se, então, o modelo: p Þ q : “Se x é A entãoy é B” p : “x é A” q : “y é B” p Þ q é uma proposição fuzzy condicional, que é modelada por um subconjunto fuzzy R de UxV, através da função grau de pertinência: R(x,y) = A(x) Þ B(y) = min(1,1 - A(x) + B(y)) de acordo com (17) A implicação para o caso clássico, isto é, A(x) B(y) Î {0,1} produz: de modo que ou seja ou Esta igualdade pode ser interpretada assim: Se R é uma relação que representa a condicional “Se x Î A então y Î B” ï î ï í ì Ï Î = Ryxse Ryxse yxR ),(0 ),(1 ),( )](),([sup)( xAyxRyB Ux Ù= Î ARB o= ï î ï í ì Ï Î =Ù Î Byse Byse xAyxR Ux 0 1 )](),([sup e observa-se que x Î A conclui-se que y Î B, ou seja, se a entrada for A a saída é B. Com o objetivo de inferir conjuntos fuzzy, esta regra será generalizada para uma situação fuzzy geral. Considerando-se a regra, “Se o tomate está vermelho, então está maduro” e o fato “o tomate está quase vermelho” o que se pode dizer a respeito do estado do tomate? Esta forma de raciocínio pode ser considerada como uma generalização do modus ponens. A composição de regras para obter uma inferência que pode responder a questões como esta está descrita a seguir. Sejam X e Y variáveis em U e V, respectivamente. Sejam A, A* e B subconjuntos fuzzy e Regra: “Se x é A então y é B” Fato: “x é A*” Conclusão: B* ? Como se obtém esta conclusão? A afirmação condicional acima é uma relação binária fuzzy R, que é um subconjunto fuzzy de UxV e A* é um subconjunto fuzzy de U. Por analogia ao caso clássico, define-se: Esta é a forma geral da regra de inferência composicional, proposta por Nguyen (1997), para a resolução de modelos fuzzy. )}(*),({sup)(* xAyxRyB Ux Ù= Î Por exemplo, sejam os conjuntos A={0.5/x1 + 1.0/x2 + 0.6/x3} e B={1.0/y1 + 0.4/y2}. Se A*={0.6/x1 + 0.9/x2 + 0.7/x3}, para se calcular B* tem-se: R = 1.0 /x1,y1 + 0.9/x1,y2 + 1.0 /x2,y1 + 0.4/x2,y2 + 1.0 /x3,y1 + 0.8/x3,y2 min(1,1-0.5+1.0) min(1,1-0.5+0.4) ... B*(y1) = max[min(0.6,1.0), min(0.9,1.0), min(0.7,1.0)] B*(y1) = max[0.6, 0.9, 0.7] = 0.9 B*(y2) = max[min(0.6,0.9), min(0.9,0.4), min(0.7, 0.8)] B*(y2) = max[0.6, 0.4, 0.7] = 0.7 B* = {0.9/y1 + 0.7/y2} No próximo capítulo, estuda-se o método de desenvolvimento de sistemas fuzzy, utilizando-se a teoria até aqui descrita, porém com outro método de inferência: o método de Mamdani, o qual utiliza-se, formalmente, da regra de inferência generalizada acima, sem exigir que a relação R(x,y) seja uma implicação fuzzy. CAPÍTULO 4. METODOLOGIA PARA O DESENVOLVIMENTO DE SISTEMAS FUZZY Este capítulo tem como objetivo mostrar um método para o desenvolvimento de um programa de computador, utilizando lógica fuzzy. Em uma primeira parte, detalha-se as etapas para o desenvolvimento de um sistema fuzzy. Nesta etapa é feita a análise do sistema nos moldes entrada, processamento, saída, por um engenheiro de sistemas, conforme Pressman (1995). Em seguida mostra-se o mecanismo de inferência de Mamdani, que é o método que melhor se aplica para o exemplo escolhido. Posteriormente desenvolve-se um caso prático. A metodologia desenvolvida aplica- se a modelos com duas variáveis de entrada, com o objetivo de gerar uma variável de saída. Os conjuntos fuzzy envolvidos no processo devem ser números fuzzy triangulares. 4.1 ETAPAS PARA O DESENVOLVIMENTO DE UM SISTEMA FUZZY Segundo Pressman (1995), um sistema é um conjunto de elementos, o qual é organizado para implementar certo procedimento ou controle ao processar informações. Um sistema fuzzy é caracterizado por um conjunto de instruções para computador, que o capacita a produzir uma função desejada. Um sistema fuzzy é um conjunto de instruções em um programa, ou software, baseado na lógica fuzzy. Como está descrito no Capítulo 1, uma área de grande aplicação da lógica fuzzy é a da engenharia, em controladores fuzzy. Um controlador fuzzy é um dispositivo de software e hardware com o objetivo de controlar um determinado processo e tem sido aplicado em produtos para o consumidor final. Um controlador fuzzy é composto por quatro módulos, assim descritos: Módulo de fuzificação É o módulo onde os valores de entrada do sistema são convertidos para conjuntos fuzzy, com as respectivas faixas de valores onde estão definidos. Módulo da base de regras fuzzy Neste módulo, define-se as proposições fuzzy que serão avaliadas de acordo com as variáveis de entrada para compor a variável de saída. Módulo de inferência fuzzy O módulo de inferência fuzzy é responsável pela valoração das proposições fuzzy e da forma como elas são combinadas para produzir a saída. Módulo de defuzificação A defuzificação é o processo de conversão de um conjunto fuzzy de saída em um número que melhor represente este conjunto. É a etapa final executada por um controlador fuzzy. A figura 13 contém a representação gráfica de um controlador fuzzy. Figura 13 - Esquema de um controlador fuzzy Segundo Cox (1998), todo sistema deve ser visualizado e entendido pelo engenheiro de sistemas, através de um trabalho conjunto com o especialista no problema a ser modelado. Tal parceria é necessária para uma melhor definição dos parâmetros ou variáveis de controle. Um parâmetro de controle é uma variável do modelo cujo valor determina o próximo estado do mesmo, ou tem o seu valor alterado por um ou mais estados. No modelo de uma seguradora de veículos, por exemplo, tem-se como parâmetro de controle a idade do motorista, que determina faixas de desconto para cada caso. O perfeito entendimento das variáveis de controle esclarecem se o sistema pode ser modelado usando lógica fuzzy. Modelos que têm parâmetros de controle com propriedades intrínsecas imprecisas indicam uma adequação da aplicação da teoria fuzzy. Um modelamento fuzzy é construído a partir de um vocabulário básico de conjuntos fuzzy, que definem as propriedades semânticas do modelo. As regras são formadas para manipular estes conjuntos e daí extrair os resultados esperados. O engenheiro de sistemas deve aprender a pensar em um alto nível de abstração a fim de poder codificar apropriadamente a experiência do especialista do problema a ser modelado. São quatro as etapas para o desenvolvimento de um sistema fuzzy: · Definir as variáveis de entrada e saída que compõem o sistema; · Definir os conjuntos fuzzy que compõem o domínio destas variáveis; · Construir a base de dados com as regras que definem como estas variáveis se relacionam; · Interpretar a saída. Na definição das variáveis de entrada e saída é feita a análise do sistema nos moldes tradicionais de entrada, processamento, saída e a definição do modelo em partes funcionais, localizando, no sistema global, onde pode-se aplicar a teoria fuzzy. A primeira tarefa é definir quais informações fluem pelo sistema, quais transformações são executadas nestas informações e quais são as informações fornecidas pelo sistema. A segunda etapa do projeto de desenvolvimento de um sistema fuzzy, consiste na definição e construção dos conjuntos fuzzy para cada variável que compõe o sistema. O especialista responsável pelo modelamento, deve “particionar” cada variável que compõem o sistema em subconjuntos fuzzy, também chamados de faixas, com seus respectivos domínios. Estas faixas são utilizadas na definição das proposições fuzzy que formam a base de regras. As proposições condicionais fuzzy descrevem o conhecimento do especialista sobre o sistema modelado, e tem a forma: Se proposição fuzzy, então ação fuzzy. Este trabalho focaliza apenas os casos com duas variáveis de entrada e uma variável de saída. Assim, a proposição anterior toma a forma: Se variável_de_entrada1 = ð e variável_de_entrada2= ð então, variável_de_saída = ð A quantidade de regras total que formará a base de regras vai depender de quantos conjuntos fuzzy compõem cada variável de entrada. Por exemplo, caso a variável_de_entrada1 e a variável_de_entrada2 sejam compostas por três números fuzzy, o total de regras que vai compor o referido banco será nove. O valor parcial da variável de saída ou ação fuzzy, para cada proposição, é decidido pelo especialista do sistema modelado. Ao conjunto de regras atingidas aplica-se um método de inferência para a resolução deste conjunto de proposições. O método de inferência utilizado neste trabalho, para o cálculo da variável de saída, é o método de Mamdani. Este método apresenta um processo baseado na agregação das variáveis fuzzy de entrada para obter como resultado, um conjunto fuzzy na saída. A seguir descreve-se este método. 4.2 MÉTODO MAMDANI DE INFERÊNCIA Yager (1995), descreve o funcionamento do método de Mamdani em controladores fuzzy, tendo como base um modelo fuzzy com duas variáveis de entrada, v e d e uma variável de saída p, definido pelas seguintes regras: Tabela 15 – Base de regras para um modelo fuzzy genérico Se v é v1 e d é d1 então p é p1 Se v é v1 e d é d2 então p é p1 Se v é v2 e d é d1 então p é p2 Se v é v2 e d é d2 então p é p2 ... Se v é vn e d é dn então p é pn onde v1, v2, ...e vn são valores lingüísticos associados à variável v e definidos como subconjuntos fuzzy do universo de discurso X1; d1, d2, ...e dn são valores lingüísticos associados à variável d e definidos como subconjuntos fuzzy do universo de discurso X2 e p1, p2, ...e pn são valores lingüísticos associados à variável p e definidos como subconjuntos fuzzy do universo de discurso Y. Com estes subconjuntos pode-se montar uma matriz, como na tabela abaixo: Tabela 16 – Variáveis v, d, p v v1 v2 ... vn d1 p1 p2 ... ... d d2 p1 p2 ... ... ... ... ... ... ... dn ... ... ... pn Os valores p1, p2, ...e pn são definidos pelo engenheiro de sistemas em conjunto com o especialista do sistema a ser modelado. Portanto, é possível que um valor pn seja utilizado como resultado em mais de uma regra. Conforme os valores fornecidos para as variáveis v e d, uma ou mais proposições da tabela 15 são atingidas (ou valoradas). Cada uma destas proposições gera um conjunto fuzzy Fi dado por: Fi = vi Ù di Ù pi = min(vi, di, pi) (19) A agregação de todas as proposições da tabela 15 que foram atingidas gera o conjunto fuzzy F dada por: (20) Este é o método de inferência de Mamdani, isto é, a partir dos valores de entrada, obtém-se Fi por (19) e em seguida o conjunto fuzzy F de saída definido por (20). Ao conjunto fuzzy F, pode-se aplicar um método de defuzificação para encontrar um número que melhor represente a saída fuzzy F. Alguns destes métodos serão vistos a seguir. i n i FF Ú = = 1 4.3 INTERPRETAR A SAÍDA - DEFUZIFICAÇÃO Como visto na seção 4.2, cada proposição da base de regras atingida, gera um conjunto fuzzy de saída. Por exemplo, sejam v e d duas variáveis de entrada para um determinado processo, que vai gerar a variável p de saída; v1 e v2 números fuzzy definidos para a variável v e d1 e d2 números fuzzy definidos para a variável d. As seguintes proposições geram as regiões fuzzy A, B e C que serão utilizadas para compor a saída: Se v é v1 E d é d1 ENTÃO p é A; Se v é v2 E d é d1 ENTÃO p é B; Se v é v2 E d é d2 ENTÃO p é C. Para se encontrar um número r que melhor represente a informação dada pelo conjunto fuzzy de saída F, utiliza-se do processo chamado de defuzificação. A figura 14 ilustra este processo. Figura 14 - Processo de agregação e defuzificação O método de defuzificação pelo Centro de Gravidade com domínio discreto segundo Cox (1998) é: (21) Quando o domínio não é discreto, o Centro de Gravidade é calculado pela fórmula: (22) A defuzificação pela Média do Máximo está representada pela figura abaixo, e é calculada tendo como base a saída fuzzy a partir da agregação dos resultados. Partindo do exemplo da figura 14, observa-se na figura 15 os pontos p1 e p2 que compõem o valor de p através da fórmula: r = p1 + (p2 - p1) / 2 (23) Figura 15 - Defuzificação pela composição da Média do Máximo O Centro dos Máximos encontra as duas regiões com maior grau de pertinência. O valor r é calculado pela média dos pontos p1 e p2 indicados na figura 16. å å = == n i i n i ii xA xAx P 0 0 )( )( dxxA dxxxA P R R ò ò = )( )( Figura 16 - Centro dos Máximos Outros métodos de defuzificação são apresentados. Cox (1998), mostra outros métodos: Média dos Valores Máximos, Média do Conjunto Básico, Limites Mínimos e Máximos do Conjunto Básico e o Método da Defuzificação pelo Máximo. Oliveira (1995), apresenta o método de defuzificação SD (Subsethood defuzzification) baseado em operações teóricas sobre conjuntos. Este método tem como característica a capacidade de fornecer uma percepção da natureza da computação envolvida nos estágios da construção da arquitetura de controladores fuzzy. Na próxima seção será desenvolvido um caso prático com o objetivo de ilustrar o desenvolvimento de sistemas fuzzy. 4.4 SISTEMA FUZZY ILUSTRATIVO O propósito seguinte é ilustrar cada passo descrito anteriormente com um exemplo factível nos dias atuais. O método empregado pode ser aplicado a outros sistemas com as mesmas características: duas variáveis de entrada e uma de saída. Os números fuzzy envolvidos devem ser triangulares. A idéia apresentada por McNeill (1994), mostra um sistema que simula a pressão com que o motorista deve acionar os freios do veículo ao sinal de “Pare” em um cruzamento. A nível de simplificação, não será levado em conta outros fatores que poderiam fazer parte do sistema, como outros veículos, pedestres, bicicletas, buracos ou animais. O sistema vai simular, simplesmente, o que ocorre quando um veículo conduzido pelo seu motorista se aproxima de um cruzamento, onde há um sinal de “Pare”. Quais informações são recebidas, como é feito o processamento destas informações e como obter o resultado deste processamento, que é o nível de pressão que o motorista deve impor sobre o freio do veículo. O primeiro passo para a construção deste sistema é definir as variáveis de entrada e saída que compõem o sistema. As variáveis que compõem a entrada são a velocidade com que o motorista segue com seu veículo e a distância do veículo em relação ao sinal de “Pare” no cruzamento. A informação de saída é o valor da pressão sobre o freio que o motorista deve impor para diminuir a velocidade do veículo. As variáveis velocidade, distância e pressão sobre o freio, neste exemplo, devido as características imprecisas que elas representam, devem ser tratadas pela teoria fuzzy. Por exemplo, ao avistar o sinal, o motorista não sabe com exatidão qual a sua velocidade nem a que distância ele se encontra do mesmo; ele sabe, por exemplo, que está muito próximo ou próximo do mesmo e seu carro está devagar ou um pouco rápido. Estes termos lingüísticos serão representados por conjuntos fuzzy, que retratam conceitos vagos e imprecisos de uma forma natural. O próximo passo é a definição dos valores lingüísticos para cada variável. Atribui- se aqui quatro faixas de valores para velocidade: “Parado”, “devagar”, “pouco rápido” e “muito rápido”. A variável distância será definida em cinco faixas: “No sinal”, “muito próximo”, “próximo”, “pouco longe” e “muito longe”. Para a variável pressão sobre o freio tem-se as faixas “nenhuma”, “leve”, “média” e “forte”. As definições destas faixas estão na tabela 17. A figura 17 tem a representação de cada conjunto fuzzy da
Compartilhar